Giter Site home page Giter Site logo

drdnar / open-adventure-ce Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 0.0 1.5 MB

The Colossal Cave Adventure ported to the TI-84 Plus CE/TI-83 Premium CE/Edition Python

License: Other

Makefile 3.74% C 73.24% Python 16.99% Smarty 4.75% Shell 0.03% Assembly 1.26%
adventure adventure-game c calculator colossal-cave ez80 fiction fiction-interactive game interactive-fiction text-adventure text-based ti-83-premium-ce ti-84-plus-ce ti-calculators

open-adventure-ce's People

Contributors

aarontraas avatar akien-mga avatar davidjsherman avatar drdnar avatar eric-s-raymond avatar jfsp avatar melbournebob avatar mojotx avatar nhorus avatar ninneman avatar peje66 avatar roschler avatar toddy15 avatar vonbrand avatar warrenmelnick avatar waterhouse avatar wconrad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

open-adventure-ce's Issues

Scroll back

Given the small screen size, it would be nice to be able to scroll up to see additional previous output. This can be implemented without using a large output buffer by remembering the string IDs and arguments passed to vspeak.

Title screen background image

At some point, I'd like to add a background image to the title screen, something that looks like the inside of a large cave.

Map display

A map display would be a nice feature.

. . . However, that goes against the spirit of the original game. Making your own map (or just trying not to get lost) is part of the fun.

Suggestion to add external USB keyboard support

I have no idea if this is possible, but I thought it would be really cool to be able to use a keyboard to type in the game.
The OS alredy supports this while in normal "calculator" mode after (I think) OS 5.1.5, soo I guess it's possible?
Video of what I mean
Imagine the fun and speed increase!! Anyway, thanks for that cool port. I had fun in class with it ;-)

Have a great day !

Translations

The dungeon file architecture makes adding language translations fairly straightforward: just translate the dungeon file, and rebuilt that file.

Some additional code changes will be required to support fully other languages:

  • The string input routine only supports basic ASCII---and not even all printable ASCII can be typed. More sophisticated IME code will be required if you want vocabulary containing non-ASCII characters.
  • There are still strings scattered throughout the code that are embedded in the code, instead of being fetched from the dungeon file. These strings should also be fetched from the dungeon file.
  • To support fetching strings from the dungeon file outside of the game loop, the dungeon file should be loaded at startup. (There's no obvious way to handle translating the "dungeon file missing" message. . . .)
  • The Huffman decoding tree format I'm currently using is reasonably fast and compact, but is limited to 7-bit output codes. Supporting other languages needing characters not found in basic ASCII will either require a new Huffman tree format to support 8-bit output codes; or, if all languages we want to support can be squeezed into 120ish code points, a character translation table to map a custom per-language 7-bit code page into a standard 8-bit code page.
  • Need to make sure make_dungeon[_calc].py will translate Unicode in the input adventure.yaml to the correct output code page.
  • FontLibC fully supports up to 255 printable glyphs, so supporting non-Latin-alphabet languages won't require much additional code---will just want to ensure that the font used to display it has the correct code page. (Note that FontLibC does not support logographic/ideographic scripts, unless fewer than 255 glyphs are required.)

I have no plans to produce any translations myself, but contact me if you would like to provide a translation.

Resume menu

The main menu's resume option currently does nothing. Using the resume verb in-game still works fine, though.

"PLUGH" triggers 100 % of the time

A hollow voice should only say "PLUGH" 25 % of the time, but it actually says it 100 % of the time, probably due to bad porting of LCG code.

Newlines in dungeon file

The current dungeon file has lots of newlines hard coded into it. The small screen size, however, means that those newlines appear in awkward places. My workaround has been just to ignore them, as the printing code has its own word wrapping algorithm, but they waste space in the dungeon file.

Fixing this will require either changing the test suite to accept the altered text (it's not smart enough to recognize that only line breaking changed), or have two separate dungeon files and have make_dungeon_calc.py generate different dungeon files. Personally, I'm inclined to do the latter.

Also, I guess, remove make_dungeon.py and rename make_dungeon_calc.py back to make_dungeon.py.

Options menu

An options menu allowing the user to configure the following would be nice:

  • Color scheme
  • Font
  • Whether to archive automatically game saves

Special formatting

Some messages are supposed to have special formatting, such as centered text. This is not yet properly supported.

Buggy line editor

Two issues in the line editor:

  • Backspace doesn't correctly erase character if deleting the last character
  • Pasting a shorter history entry into the line editor over longer typed text results in an off-by-one bug with one character from the old line being kept.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.