Not quite--this is more a recreation of the Flash Portal clone. i.e. it's all 2D graphics and 2D physics.
I got my hopes up for a moment, preparing to be awestruck. Since I have a TI-89, that's what I think of when I hear "graphing calculator". My TI-89 can do 3D stuff (for instance this fun maze generator game http://www.ticalc.org/pub/89/asm/games/amaz89.zip), it would blow my mind to have anything close to a Portal 3D engine on it.
It's still awesome but not as mindblowing as the title suggests...
You ain't done nothing till you coded a 3d engine on a HP48 GX: 131x64 pixels and a 4-bit Saturn CPU. The timing tricks to extort four shades of gray from the monochrome screen were awesome.
This reminds me of this game for HP48. It had some pretty graphics for the time, using 4-grey colors with LCD timing tricks.
Unfortunately, it also meant the game was heavy (40KB!). And even more unfortunately, some HP48 emulators (most importantly the Android ones) do not support 4-grey graphics, making the game unusable... :(
It would not be that hard to write a 3D physics engine for a TI-89 calculator (Assuming you already know how to write a 3D physics engine, which I do). Problem is, it would be useless since it will probably take tens of seconds (if not more) to calculate each frame.
I would not be so sure. It really all depends on how much physics you want your "physics engine" to have. Rag-dolls? Not likely. Quake 1? Sure, you could do physics to that extent on an 89. The 89's are more powerful than you may suspect, unlike the 84 (seen in the article), they have Motorola 68k's.
You can get a lot more out of an M68k. (Actually, to be fair, the M68k calculators' larger screen size works against them, but if you are willing to sacrifice graphics you can easily surpass that demo.)
Gemini blew the socks off of all my middle school friends, but I'm embarrassed by the amount of time I spent on Galaxian in math class. Maybe one of these days, I'll dig out my 83+ and complete the no laser, no death run that I was always aiming for, just for old time's sake.
In hindsight, I wish I had spent that time learning Z80 instead...
Certainly, I didn't mean to imply it is, just use it as a benchmark against which you can get an idea about what the 84 is actually capable of (the Portal thing isn't really a great demonstration of that).
(It is not in fact even a 3d engine, but rather a vector BSP 2.5D one that is technically similar to Doom. To the extent with Doom has physics (pretty much only momentum (seen prominently in how explosion knock back effects entities) and gravity, so not really) that demo kind of has physics. Actually I don't think he actually does momentum, and his gravity is primitive. He's pushing the calculator pretty hard, I'm not sure how much more you could add, but the 89 can do much better.)
That's the thing, though. I'd be awestruck to see a Portal 3D physics-like thing on the 89 and be playable, because I'd have no idea how the person pulled it off and as I said above it'd be mindblowing. If you're familiar with physics engines, perhaps you're familiar with how the GBA works at the hardware level and how a game for it is typically made? Super Monkey Ball Jr. is an example of a game that blew me away and I'm still not really sure how they pulled it off.
The memory limitations are a bitch. It isn't that difficult to build your engine in that amount of space, but storing any decent graphics or level maps are nigh impossible. I had to quit working on a Zelda clone and JRPG because of memory issues. To this day, I've only seen one long game actually worth a crap and that's Joltima - http://www.ticalc.org/archives/files/fileinfo/34/3456.html Karneges had to use every trick in the book (huffman compression on 4 bit tilemaps) to fit it into 32K of RAM.
Still, it's impressive to do anything like Portal on the calculator. Glad that someone picked it up, even if the headlines are sensational.
You can absolutely page in data from Flash memory as needed, it's just non-trivial (and not handled by the "OS"). On devices with flash memory as an extension of RAM (TI 83+, 89, and 89 titanium), this could help for read-only level data that isn't needed all of the time.
Edit: Of course, Joltima targets the TI-83 (different from the 83+), which doesn't have any flash memory. Bravo, Justin Karneges.
You can also go the "App" route and make the whole thing an application that runs straight from flash.
Advantages are you can use many flash pages so your application can be massive, and your program will be easier to launch/distribute. We have the App signing keys so these days this route is pretty simple.
On the other hand you have to "allocate" ram to write to or scrounge for ram in predetermined areas in the address space. With regular assembly programs you can have "static" allocations that you can write to. Also programs don't take up a minimum of a single page, so they are generally preferred by people who are more comfortable with their calculator.
Damn, now I really want to revisit that z80 scheme implementation I was working on a few years ago...
Paging really, really sucks to manage on a TI calculator.
That being said, I loved working with the 32KB limit and optimizing every single byte out of my code. You got to learn all of the tricks like "XOR A" = 1 byte vs "LD A,0" = 2 bytes. However, some things sucked, like having to frequently write new sprite routines or tilemap scroller routines. I even ended up writing a logo style scripting language to handle animations in a RPG just to save a few KB.
Yes, this is clearly the 3% case for Knuth's quote, "... 97% of the time: premature optimization is the root of all evil"
> While programming for graphing calculators admittedly doesn’t give Marcolina’s work a wide reach
Are they joking? Those TI 83's will be used by high school students in the US/Canada as long as TI has this chokehold on schools. They've outlasted god-knows how many versions of Mac's, PC's, Nintendos, Xboxes, PS's.
How is the TI-83 still a thing? iPod is superior in every way: CPU display size and color, flexibility, cost (well, if they produced a last-gen version for the down market, it would be)
Also, don't underestimate the value of a UI and hardware keyboard centered around a specific workflow. Calculators are almost the opposite of a tablet/phone, computers specialized to programming and user input, with communication and content consumption as an afterthought at most.
The title says 'in 25kb on a graphing calculator'. The only way it's "amazing" is if you know what a graphing calculator is, and if you know that, then it's pretty obvious that the title is a mild form of poetic license rather than a sensationalist attempt to mislead. And really, when people think of "Portal physics", for the most part they think of 'a hole between two non-adjacent surfaces you can travel through', not 'a realistic 3D world where objects behave according to newtonian physics', because the latter is a dime a dozen.
Honestly, how many people who know what a graphic calculator was would seriously think that they "remade the Source engine", misled by the 'sensationalist' title?
The technically fascinating aspect of implementing narbuncular/portal physics is the optics of looking into a portal, not the trivial translation/rotation of passing through a portal in a platformer sideview.
You're right in a way. Portal could be thought of as two parts, the raw physics and the raw graphics. But when a lay person makes claims of recreating Portal's secret sauce, they're really implying the portal mechanism which is one part physical and one part graphical.
Literally recreating only the physics portion of Portal would be silly.
And yes I was intentionally trying to be sensationalist back because it's a waste of time being victim to submitter's sensationalist headlines, especially on a technical site such as as this (one would hope).
TI-83+ was my only hand-held programming system. In high school, I wrote Blackjack, Trapshoot, and a Whac-a-mole clone on it, along with a few originals. I hope that touchdevelop takes off-- it might be the only reason I'd get a tablet.
I didn't want the original (very long) URL which included the product name at that place (the technical term might be SEO-friendly URLs). So I first replaced it by an underscore to keep it short and then tried whether I can put something nicer in there. This wasn't generated by Amazon ☺
I got my hopes up for a moment, preparing to be awestruck. Since I have a TI-89, that's what I think of when I hear "graphing calculator". My TI-89 can do 3D stuff (for instance this fun maze generator game http://www.ticalc.org/pub/89/asm/games/amaz89.zip), it would blow my mind to have anything close to a Portal 3D engine on it.
It's still awesome but not as mindblowing as the title suggests...