6 ms·
Tweaking Stunt Island's 30-year-old 3D engine
- fabiensanglard 2y agoThis is awesome. Mickey's Revenge looks so much better with LOD at 800%! This game is a gem, it deserves a spot in the video-game hall of fame.
- deleted 2y ago[deleted]
- amiga386 2y agoMickey's Revenge: https://www.youtube.com/watch?v=AZMDm-2IIzc https://www.youtube.com/watch?v=AZMDm-2IIzc Having just watched it, I like that the engine has specific support for points, lines and filled circles, because it predates efficient texture-mapping and high polygon counts, so they use dots for stars on the US flag, a series of line segments to write text in 3D, and green spheres to represent tree leaves. These days it's all triangles (...very well lit and textured triangles with more computation expended per pixel than the 1992 computer had in its entirety)
- sehugg 2y agoThe engine only copied pixels from fast main RAM to slow VGA RAM when they changed value, so using flat shading for most of the objects was a necessity for performance. IIRC all of the planes used Gouraud shading.
- 01HNNWZ0MV43FF 2y ago"Slow video RAM". Wild!
- mjg59 2y agoVideo ram is still slow if you're accessing it from the CPU! Doing software 3D didn't really let you make use of whatever (limited) acceleration video adapters had at the time, which were mostly aimed at accelerated lines and moving rectangles around (you know, things that are useful if you're Windows). That meant the CPU was having to calculate everything and then push pixels over the bus. This was why people were willing to use things like the VESA Local Bus, basically an extension of the 486 bus usually used to drive a graphics card and starting at a heady 100MB/sec. Terrible idea (it got faster as your CPU bus got faster, and if your card couldn't deal with that you'd have to underclock your CPU), but until graphics hardware started offering operations that matches what game developers wanted, the number of pixels you could push over that bus per second was genuinely a limiting factor.
- astrange 2y agoDid it have double buffering, or did you have to update the screen while it wasn't scanning out that part?
- fabiensanglard 2y agoMy understanding is that the double buffering was done in RAM (instead of VRAM). He did it by keeping the two last frames in EMS/XMS, calculating the delta, and copying only the parts that had changed from RAM to VRAM during VBLANK. Source: https://fabiensanglard.net/stunt_island/#:~:text=I%20always%20rendered%20to%20fast%20memory%20and%20kept%20the%20previous%20frame%3B https://fabiensanglard.net/stunt_island/#:~:text=I%20always%...
- mwcampbell 2y agoIs there still slow video RAM on machines with unified memory, like Apple Silicon Macs?
- Cumpiler69 2y ago>30-year-old 3D Engine I saw that title and thought to myself "Wow, a 3D game engine from the 80's!" before realizing 30 years ago was 1994-95, during the time of Doom 2 and a year before the first Quake. Damn, I'm getting old fast.
- vundercind 2y agoI'm sure everyone experiences this some, but do wonder if it's maybe worse for those for whom the year 2000 hit at the wrong point in their personal timeline. I don't think I ever quite got over guesstimating "X years ago" based on that marker. I've gotten a little better at it, but still get tripped up for a second by times-ago longer than 20 years or so. The other day I was reading something and was surprised that "50 years ago" was the mid '70s, not, like, the 50s. Then they hit me with Guardians of the Galaxy already being ten years old. Ouch, right in the mortality.
- Cumpiler69 2y agoSee this fact, GTA Vice City was set in the year 1986 and was released in the year 2003. That game is now older (21 years) than the time period it was set in when it launched (17 years). So if they made that game today with the same time delta, it would be set in the year 2008 when we already had the second gen iPhone. I think this perceived time warp is affecting many people in the 30+ age group since the world(at least the west) hasn't changed that much in the last 10-15 years or so, so compared to the past when 10-15 years delta made a huge difference, especially in the areas of technology and entertainment, so it kinda feels like time just went by us while the world stood still.
- ghurtado 2y agoYou've put it much better than I could. Basically, the 80s feel like they happened about 100 years ago. Which makes us depressingly old.
- fmbb 2y agoThe further we get past the year 2000 the more clear it becomes that all the pre-2000 memes of 2000 being the future were right, and not much happened in the west in terms of quality of life or daily conveniences or productivity since 2000.
- bhouston 2y agoNeat stuff! (The aliasing seems brutal now though with all that detail. Need to figure out how to boost the resolution / do some type of MSAA.)
- pjc50 2y agoThat's probably going to involve a full decompile and replacing the renderer, because DOS games are basically limited to using one of the video modes which render into 64k of video RAM.
- justsomehnguy 2y agoYep. https://fabiensanglard.net/reverse_engineering_strike_commander/ https://fabiensanglard.net/reverse_engineering_strike_comman...
- sehugg 2y agoYou could probably monitor the DOS VM to scrape camera/object matrices, render the static world in a huge GL (or what have you) display list, and then the other objects. The mesh formats were reverse engineered long ago.
- pixelesque 2y agoYes, for DOS games. However, DirectX games were much easier... I remember patching F-22 Total Air War (a DiD Flight Sim) to support higher resolutions back in 2001 or something, and it was just 3 bytes or so that needed changing, and worked surprisingly well... (Seem to remember a bit of a community doing it in various games on the simhq.com forums back then.)
- dividuum 2y agoNot sure how viable that would be, but if the rotation within the game is high-res enough I imagine one might render the same scene four times each with a rotation offset equivalent to half a pixel. Then combine those to a whopping 640x400 image :)
- sehugg 2y agoIt's difficult to impress how cool it was to have a open world flight sim / 3D movie editor in 1995. There's not much like it even today; GTA V's movie editor is close. A small "scene" grew up around it, and there were lots of mods/hacks in the 2000s: https://armknechted.com/sicentral/newpage/hacksi.html https://armknechted.com/sicentral/newpage/hacksi.html
- hvs 2y agoYeah, this was an incredibly unique game that I played hours of in high school. It obviously looks dated now, but was amazing at the time.
- thom 2y agoAbsolutely loved this game. I used to try and fly an F4 Phantom through the canyon at top speed. My brother created a short film "Attack of the Killer Christmas Trees". Endless fun.
- doug-armk 2y agoIt is an amazing game! Do you (or does he) happen to still have that short film somewhere? It sounds great. I collect user-made films, and have about 320 in the Stunt Island Archive. I'm sure there are thousands more than unfortunately never got preserved. Archive link: https://armknechted.com/sicentral/newpage/SIArchive.html https://armknechted.com/sicentral/newpage/SIArchive.html
- thom 2y agoThat's so cool! Feels like a long shot but I'll look into it.
- CodeWriter23 2y agoMy go-to stunt was climb to the aircraft ceiling then dive nearly straight toward the Golden Gate Bridge and fly under it and climb immediately. I was somewhat successful.
- Ylpertnodi 2y ago>I was somewhat successful. Given the technicalities of the stunt, I rather suspect you were successful (no crash), or not successful (did crash). "Somewhat successful", seems very - I don't know - 'corporate'..."The number of deaths do not reflect the overall success of the mission, which managed to gather substantial information regarding the cause of the deaths".
- astrange 2y ago"If you can walk away from a landing, it's a good landing. If you can use the airplane the next day, it's an outstanding landing."
- binary132 2y agoReally interesting! I’ve been working on an idea for a dual-purpose compiler/decompiler and this is really useful for understanding the kinds of things it might need to be used for.
- pjc50 2y agoThose seem to be very different purposes? Also, Ghidra is really good these days.
- verisimi 2y ago"Twerking stunt island's 30-year-old 3d engine?" On HN?! I'm in! ... ah
- neuronexmachina 2y agoThis is so great. I loved Stunt Island back in the day.
- k3vinw 2y agoIt’s fun to look back and gain some insight into how this game was made. 30 years ago I was just starting middle school and I remember vividly seeing this game for the first time. I was visiting my cousins and they had all these fantastic games like Secret of Monkey Island, Lechuck’s Revenge, Maniac Mansion, Day of the Tentacle. I remember spending hours playing these games. One of my favorites was Stunts which came with a built-in track editor! Feels just like yesterday. Shocking how our perception of time works.
- aleph_minus_one 2y ago> One of my favorites was Stunts which came with a built-in track editor! In case you didn't know it: the games of the TrackMania series can be considered spiritual successors of Stunts: > https://en.wikipedia.org/wiki/TrackMania https://en.wikipedia.org/wiki/TrackMania > https://www.trackmania.com/ https://www.trackmania.com/
- alberto-m 2y agoAh, I mentioned Stunts in the other post on my blog. The game still has a small but active community, with ongoing races (https://zak.stunts.hu/ https://zak.stunts.hu/).
- notjustanymike 2y agoLiterally the game that introduced me to programming. Building your own stunts was very similar to turtle scripting, only in 3D and far more engaging. When I started taking multimedia classes at RIT, working in Macromedia Director was a natural progression. Thanks Stunt Island, it's been a good career so far!