Journey in Odessia: JRPG For Nspire Series

This is a turn-based JRPG (Japanese style RPG) similar to breath of fire and pokemon for the Gameboy. Enter a unique world, fighting monsters, gaining exp and gold, rescuing a princess, and collecting rare gems. This has been tested on the TI Nspire CX CAS II model, but should theoretically work on any device with a 320 x 240 resolution screen . It may be slower on non CX CAS II devices, but it should theoretically still work on other devices. NOTE: YOU SHOULD PROBABLY VIEW THE HELP SCREEN BY PRESSING "h" AT THE MAIN MENU

Tech Stack:
I wrote the compiler for this program in C#. The compiler parses JSON files and bitmaps, and then converts them into scenes. I did some pretty serious engineering with this project. For example, the tiles are pure white/pure black (duotone). The compiler scans the tiles and determines whether there are more black pixels than white pixels in a tile and/or scene. If there are more black pixels, it fills the rectangle with black, and then afterwards only draws the white pixels. Vice versa if there are more white pixels than black pixels. The compiler also scans each scene bitmap and finds the tile that occurs most often. It then creates a lua table mapping to render functions. It behaves as if all tiles are the most occurring one, and then overwrites the others with the actual correct render functions.

There are 150 scenes in this game. If you liked pokemon, you'll most definitely like this.

One more cool thing to mention: this game does not require NDLess or any other jailbreak. It was written using TI's standard Lua engine. By using my custom C# compiler, I was able to make something complex using only fillRectangle and setPixel. If TI gives me the ability to fill rectangles and set pixels, it's game over. I win.

I am bothered by TI trying to find ways to make it impossible to run games on their calculators. I (and I suspect many others) am currently working as a software engineer and was inspired to pursue computer science education by getting exposure to calculator games during high school. The latest devices have "NSpire" in their name, and I think the devices do indeed inspire students to go into STEM fields. By suppressing games, TI is also suppressing inspiration...but to be clear., once more...I win this time. TI cannot kill my game without killing a standard feature that is advertised and widely used in education (the Lua interpreter).



Would you like the source code for the game and/or compiler? The compiled source is included in the below zip file. If you'd like access to the C# compiler, please message me with your GitHub username, and I'll grant access.

Game Link (Zip file):

https://www.ticalc.org/pub/nspire/lua/games/journey_through_odessia_v.zip
This looks great! I'm always glad to see more development for my favorite calculator Smile Is everything done with rects/setPixel, or are you using native routines for stuff like text? Also curious as to why you don't just make the compiler a public GitHub repo instead of granting access individually. It seems that something like that could be a great tool to have out there for anyone to use.
Ivoah wrote:
This looks great! I'm always glad to see more development for my favorite calculator Smile Is everything done with rects/setPixel, or are you using native routines for stuff like text? Also curious as to why you don't just make the compiler a public GitHub repo instead of granting access individually. It seems that something like that could be a great tool to have out there for anyone to use.


The compiler is kind of a hack. It's a bunch of stringbuilder.appendLine calls and is hard to read because with my string builders, I'm generating code with great-looking white space.

When applying for jobs, employers will often look at your public GitHub repos. If they see what I've made, they might pass on me and move on to other candidates because the code looks crazy because of all the nice whitespace gen.

The Lua API has methods of drawing strings, so it's fillrect, setpixel, and drawstring
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement