I’m interesting in knowing more about how vector games like Elite and Star Wars Atari were built from grounds up. The question is not how to implement vector graphics with modern 3D APIs like OpenGL and DirectX, since doing it is quite easy and does not require to build a vector/matrix system from scratch like those games did.
Some things I presume about these games:
- They work on an extremely low level and are written in ASM
- They’re actual 3D games and not faking it like After Burner. Not like Wolfenstein 3D, either. Afterburner used rotozoom/raster effects and Wolfenstein 3D used raycasting and 2D scaling and it’s not really 3D, since you can’t move up. Even if you could like the Build Engine that Duke Nukem 3D used, everything except the walls is just a sprite. Star Fox is closer to it, since uses actual 3D models, but the implementation uses SNES’ Super-FX chip and probably employs scanline trickery. I know Elite probably uses said scanline trickery as well (at least on some implementations like Elite NES) but I’m not sure about SWA, since it used a custom-built arcade machine; either way, I’d like to know more about it.
- Their 3D models are actual 3D models. They are defined as vectors and transformed according to the position of the camera.
I know the best thing to do would be to disassemble the source of Elite and see how things were done by myself but before doing that I want to know more about how they were made and if there are modern open-source projects that show similar techniques. I don’t mean Elite remakes like Oolite (which uses OpenGL and Obj-C) but projects that use similar techniques and avoid using APIs like OpenGL directly – not necessarily low-level projects, though, using 2D library like SDL (without OGL) should be enough, at least for now.
I know that the source code to MESA3D probably contains many of the routines that games like Elite and SWA implemented – I just want to see them in the context of a game. I know that what Elite and SWA basically did was implement Rasterisation, create their format for models and a loader (I’m pretty sure that at least SWA had models built from modelers using tools, although it’s not impossible to hard-code TIE-fighters it’s hard to do so accurately) and many other things I may be unaware of. But it’s really time-consuming to get into and I don’t care about much of the stuff that is in it. Keep in mind that games like Elite were very lightweight due to the low ROM and RAM that computers and consoles had at the time.
I’m new to 3D graphics and all my assumptions are based on my limited knowledge of 3D Geometry and school level maths, sorry if I said any bullshit. But I’d really like to know more about how those games work in every detail, and possibly not just “buy X book” since I’m quite broke. Although I’d buy a book about the development of Elite or a similar game, if it existed. Some general suggestions would be enough.