Game Dev Engine #2. Future Crew tribute. 360° Subscribers.

Subscribers:
808
Published on ● Video Link: https://www.youtube.com/watch?v=qTockj-Al8s



Duration: 2:01
426 views
5


2023-03-22. Full blog post: http://thefirstpixel.com/2023.03.23/future-crew/

I am currently implementing the Input sub-system and Frame-Rate/Cycle sub-system into the Xona System 8 engine... and I happened to notice my subscribers was at 360, so I thought about making a quick demo to celebrate. 360° perhaps... hmm... I thought about Future Crew's Second Reality, and its rotation section with the "mean man" image by Pixel.

Here is a quick texture mapping rotation demo in tribute to Future Crew. The original VGA mode 13h / mode-x resolution of 320x200 had 5:6 sized pixels (taller than wider), and I don't respect that here (you need quite high resolutions to showcase the image perfectly to the pixel and having the pixels the correct size - 1600x1200, in fact, so I could show a portion of this in 1920x1080, but my engine is currently running in a low-resolution mode, which I want to maintain for the retro feel!) My apologies to Pixel (Misko Iho).

While this does use the GPU, I invented bilinear texture mapping several years before Second Reality -- I programmed the Mode 7 graphics of F-Zero in GW-BASIC, and it only took 30 minutes to render a single frame!

In Second Reality, I noticed it drops to a lower resolution (seems to be 160x100) to enable full-screen frame-rate (70 Hz for VGA Mode 13h/Mode-X, 320x200 x 256-colors), which, at the time most video cards couldn't even handle a full 64,000 byte copy into video memory in 1/70th of a second! Later demos that improved the speed of full-screen rotation lead me to understand memory cache, and why texturing the whole screen line by line is not the most efficient use of reading memory. Better to texture 8x8 sections; more complex code, more instructions, but much faster! Given CPU speeds today, this is critical understandings for performance critical code.

Second Reality made a huge mark on my life. While it was not the beginning of my programming, or graphics, or optimization career -- it made a killer impact on me with regards to assembly language and presentation, and what you could pull out of the machine -- it was just magic. You just weren't allowed by physics to update that many pixels so fast. I had been trying to get my hands on assembly language for a decade, and only after this demo did I finally get my hands on something that allowed me to code all of my GW-BASIC and Turbo Pascal graphics in assembly. My F-Zero engine went from 1 frame / 1800 seconds to 30 frames / second with full color quantization and color fading like Doom lighting.

Second Reality made even more of an impact. I was merely shown the demo, and my understanding at the time is that this was an assembly language competition. Now, it was called Assembly '93, and while you did have to write assembly to get anything fast out of the PC, it was *not* an "assembly language competition". It was in fact, a graphics "demo scene" party where everyone and their dog had programmed similar effects, to music, with the result being a multi-media presentation -- but I didn't know that! I thought it was an "assembly language" competition where anything goes, and while I thought people may be showcasing some super fast algorithm, or hand optimized assembly, a group of Finnish kids thought "hmm, let's enter that", and instead of showing how fast bubble sort runs in x86 32-bit assembly, they made a multi-media demo hack that showcases a dozen effects not possible on a 386 or 486, most at the full frame rate, in Dolby surround sound, which isn't even possible on the sound card hardware they were using. My jaw dropped. Even after learning, this wasn't "reality", the effects they pulled off still seemed "unreal" (I swear I am not trying to make puns, I am adding the quotes afterwards), and it still stuck with me for a long time.


Playlists:
--------------
- Xona System 8: https://youtube.com/watch?v=PqFQv60p-0E&list=PLjnbT4UISq0YwheLThIhm3LDxIkwpmKeb
- Voxel: https://youtube.com/watch?v=uadGU-stF-w&list=PLjnbT4UISq0bQF1g85tE9jTrKfEtdRYlY
- Ray Cast: https://youtube.com/watch?v=SkaPYZOKPQg&list=PLjnbT4UISq0YcFtRFjFQqK0g6ONNCtrvY
- Graph-All: https://youtube.com/watch?v=kLSc7bZW2Bs&list=PLjnbT4UISq0YLgynFSpLzml4BMC6TDZL2
- Scroll Shmup: https://youtube.com/watch?v=l9bIYkZepPo&list=PLjnbT4UISq0Y_7IAN_zUzxgZnfhXxo_0Q
- Road: https://youtube.com/watch?v=rA4g4VX7ys8&list=PLjnbT4UISq0bnfd1RC3M4PgTgkmhlkikV
- Arena Shmup: https://youtube.com/watch?v=VKjiuq437t0&list=PLjnbT4UISq0adw__Y9B2eXA0LL35TyORU
- Wave Function: https://youtube.com/watch?v=ngctVd9VK8I&list=PLjnbT4UISq0Y8vYnrSauHkBKgOBHXFFdf
- 3D Polygon: https://youtube.com/watch?v=0Qq_euAMP48&list=PLjnbT4UISq0YyjqBGG8Q34Kng5gqDmYrT
- GW-BASIC: https://youtube.com/watch?v=QMQJ7o8e-GI&list=PLjnbT4UISq0bMjb81xFBIWOLhBKFCVkuB

Websites:
---------------
- GitHub: https://github.com/JDoucette
- Blog: http://thefirstpixel.com
- Studio: http://xona.com







Tags:
gamedev
monogame
indie
development
graphics
engine
xona
firstpixel
pixel
pixelart
retro
coding
wolf3d
raycast
raycasting
software
custom
shader