6 ms·
Slovak group GMG released a full featured FPS for 40+ year old computer (64kb of ram, 1.79Mhz 6502) Features: - raycaster engine running at 25 - 30 FPS - ani
by legoxx 5y ago
Slovak group GMG released a full featured FPS for 40+ year old computer (64kb of ram, 1.79Mhz 6502)
Features:
- raycaster engine running at 25 - 30 FPS
- animated textures
- lighting system
- destroyable walls
- automap
- 3 enemy types
- final boss
game is fully playable in Altirra emulator
video: https://www.youtube.com/watch?v=lRd3MucaRoU https://www.youtube.com/watch?v=lRd3MucaRoU
homepage: https://atari8.dev/final_assault https://atari8.dev/final_assault
discussion: https://atariage.com/forums/topic/326709-final-assault-new-game-by-gm https://atariage.com/forums/topic/326709-final-assault-new-g...
- aliswe 5y agothe FPS is really smooth - and the floating point (?!) calculations of the raycasting engine seem to be totally "on point" ?!?!
- flatiron 5y agoComment a bit of a limitation of the ray casting: https://atariage.com/forums/topic/326709-final-assault-new-game-by-gmg/?do=findComment&comment=4937575 https://atariage.com/forums/topic/326709-final-assault-new-g... simply amazing what they did. could you imagine if this came out in the 80s?!?!
- GekkePrutser 5y agoYes this would have been mind-blowing. Ps there was a game that had a similar FPS view in those days. It was a maze game with polygon graphics but no textures. I forget the name. No shooting though!
- laumars 5y agoThere were a few. I had Sultans Maze[1][2] and Articfox but plenty others existed too. [1] https://en.m.wikipedia.org/wiki/Sultan's_Maze https://en.m.wikipedia.org/wiki/Sultan's_Maze [2] https://youtu.be/af1CfayG5Ec https://youtu.be/af1CfayG5Ec [3] https://en.m.wikipedia.org/wiki/Arcticfox https://en.m.wikipedia.org/wiki/Arcticfox
- Thoreandan 5y ago* Mercenary: Escape from Targ (Novagen) http://mercenarysite.free.fr/mercframes_graphic.htm http://mercenarysite.free.fr/mercframes_graphic.htm "open world" vector FPS/RPG, fully RAM-resident, in 48k & 64k editions. * Alternate Reality: The City (Datasoft/Paradise Programming) FRPG with 90-degree turns, rendered walls/doors as scaled textures between the animated backdrop and foreground NPC sprites. I wrote an FAQ as a kid for Mercenary for local BBS' - I think I discovered at least 3 victory conditions. :^)
- legohead 5y agoI could tell something was off, but couldn't put my finger on it. Very cool
- mywittyname 5y agoSo I was curious about how the Atari 800 handled floating point calculations. As it turns out, Steve Wozniak helped develop the FP routines for the 6502. http://archive.6502.org/publications/dr_dobbs_journal_selected_articles/floating_point_routines_for_the_6502.pdf http://archive.6502.org/publications/dr_dobbs_journal_select...
- codedokode 5y agoI doubt there are any floating point numbers because FP is very slow to emulate (for example, just to add two numbers you have to shift mantissas and 6502 has no fast way to do it). If I was writing a game for an 8-bit CPU, I would use fixed point numbers (for example, 8.8 numbers which use 8 bits for integral part and 8 bits for the fractional part, or maybe 10.6, or 12.4 numbers). 6502 cannot multiply or divide (division is a costly operation even on modern CPUs) so I would use adding or subtracting logarithms for this purpose. 12-bit precision logarithm table requires just 8 Kb RAM (and you can get 13-bit precision with interpolation). The disadvantage of this approach is that every time you convert a number from linear to logarithm or vice versa you get approximately up to 0.3% error (for 12-bit logarithm). So multiplying or dividing several numbers in a row is fine, but if you have to alternate multiplication with additions you will accumulate an error. So I would look for formulas that avoid this. But for a game a little error in calculations is not noticeable. Also one might think that the most time-consuming part for pseudo-3D game is math and calculations. I doubt that. The most of CPU cycles are usually spent in rasterisation and applying textures. Is is easy to calculate positions of 3 vertices of a triangle, but it takes a lot of time to draw it line by line, pixel by pixel, and if you want to have textures this time can be multiplied 5x-10x.
- legoxx 5y ago8kb table for logs would consider 16% of 64kb that you have for engine, game, intro and end sequence.
- fstrthnscnd 5y ago> for example, just to add two numbers you have to shift mantissas and 6502 has no fast way to do it How much work is there to do beside shifting mantissa? (A shift is also necessary for many fixed point calculations).
- rasz 5y ago- 80x30 resolution - mostly 8 colors Its impressive, but unplayable.