project-image

Coding History: 3D from Mode7 to DOOM

Created by Eniko

A video series teaching the code behind the early evolution of 3D.

Latest Updates from Our Project:

Next steps for Coding History
about 3 years ago – Thu, Oct 14, 2021 at 03:07:23 AM

Hi everyone! It's been a couple weeks, because after the kickstarter I took a bit of time off to relax, running a kickstarter can be pretty exhausting.

It's not all bad news though because during that time I played around with getting some type of 3D going on the Sega Mega Drive using SGDK. This let me de-rust some of my C skills (no pun intended) which will be useful for writing the 3D engine, and also required me to write a reasonably well-optimized software 3D renderer. That means it basically doubled as research for the 5 episode software rendering arc of Coding History. :) 

Here's a few random images from that effort:

Shaded and texture mapped triangles on the Sega Mega Drive/Genesis
Figuring out seamless subpixel rendering for triangles (Pico 8)
The preview software 3D renderer I built in C# for the project

Now that my break is done I can bring you up to speed on what the next steps for the project are.

The first thing I have to do is set up Backerkit and start getting replies from y'all on backer surveys, so that when the first episode goes out everyone will have had plenty of time to tell me how they want to be credited. I'll also probably be setting up some late backer options for pledges/upgrades via Backerkit since quite a few people expressed interest in pledging/upgrading but didn't have the money while the campaign was ongoing.

I'll also start researching and scripting the first (bonus) "introduction to 3D" episode. Because this is going to be the first episode it'll probably take longer than subsequent ones as I try and figure out all of my workflows and setup for making the videos. I'm also preparing for a big international move at the very start of the new year, and want to give everyone enough time to get their credits in, so while I know many of you are super excited to get this show started, I'm going to have to ask for your patience while I get everything set up to get that first episode out. :)

That's a wrap!
about 3 years ago – Fri, Sep 24, 2021 at 06:53:17 PM

I'm seriously exhausted so this will be a bit shorter than usual. Thank you so much for supporting Coding History! I barely thought it would raise the base 14k and now it's so, so far beyond that. This is a truly life changing amount of money for me, and I don't think I can even express how grateful I am to all of you in words, so emojis will have to do:

From the bottom of my heart: THANK YOU!! 😭🙏

Final stretch goal met!
about 3 years ago – Thu, Sep 23, 2021 at 12:37:55 AM

Backers have raised $55,000 and Ethan will be joining the Coding History project to help out with the engine and make sure my C code doesn't cause too much bleeding of the eyes if observed!

That was the final stretch goal. There's no more, and I'm exhausted, though in a good way. Thank you all so much for your support and your belief in this project. I'm going to work hard to make sure that everything comes out great!

I do have one last surprise to announce, and some of you may have seen me talking about this on Twitter. I'm going to do one extra episode for Coding History, probably the first episode I'll produce, that demystifies 3D in general, with as little math and code as possible. I think when people try and get into 3D there's too much "stuff", matrices, vectors, normalized device coordinates, vertices, fragments, shaders. And all of that stuff is cool, and it's necessary...

But it's not what "makes" something 3D. What makes something 3D is much easier, and more intuitive than I think most people realize. So the first episode of Coding History will be a bonus episode, an introduction to 3D rendering in general, hopefully explained in a way that anyone, no matter their background in math or programming, can follow along.

By starting out with this 13th bonus episode I hope to give everyone a working idea of how 3D rendering in general works, and make all subsequent episodes easier to follow.

Anyway, thanks again for all the support! It's truly life changing for me. We're not quite done yet, even though the stretch goals are. In fact there's still 40 hours to go, so if you haven't backed yet there's still time if you want to pick up any of the rewards.

Coding History's final 48 hours, $2,750 left
about 3 years ago – Thu, Sep 23, 2021 at 12:16:49 AM

We're now in the final 48 hours of Coding History. If you're following the project and were holding off until the end to back, now's the time!

I'm honestly blown away at how far this Kickstarter has come, I won't dwell on how meaningful it is to me because I've written about that before. What I would like to talk about is that if we can hit this final $55,000 stretch goal and get Ethan on board I think the 3D engine can go from something that is cool because it exists to something that is viable for commercial gamedev by adding Xbox and Switch support to the mix. That's not something I can do myself. I'm not an official licensee of any console so I don't have access to anything to do with consoles. But Ethan does, and has brought games to Xbox and Switch before!

Of course with the engine being a software 3D renderer based on principles from the 90s mostly written in C (more details here) it could run its graphics on virtually any modern platform, and who knows, maybe some less modern ones.

Anyway back while you can if you haven't, and maybe tell some of your friends if you have! :)

Stretch goal reached! Next: Coding History... on Switch? 👀
about 3 years ago – Wed, Sep 15, 2021 at 01:16:14 AM

The 45k stretch goal has been reached! All $10 (Patron level) and up backers will be receiving an Eni's Labyrinth key for the platform of their choice, Steam or itch.io, when it launches on those platforms!

There's only one more stretch goal left. If we can raise another $10,000 USD in the next 9 days Ethan Lee (aka flibitjibibo) will come on to help with the 3D engine. You may know him from his work porting games like Streets of Rage 4, Celeste, and Transistor, as well as being maintainer of FNA and SDL.

One of the many things his expertise can bring to the engine is portability, making sure games made in the engine will run on Windows, Mac, and Linux, just like he's done for years for games that use FNA. Speaking of FNA, Ethan also has experience getting that framework ready for Nintendo Switch and Xbox. Does that mean the Throwback Engine would be coming to those platforms? Maybe! Consoles are tricky business, but we'd definitely like to try to make that happen!

Plus it'd be nice to have someone with more experience at writing C than me on the project. :'D

Frankly the giant list of games he's ported, most of which are absolute bangers, makes me almost feel inadequate. Good thing then he's going to be helping out! :D Though, only if the project gets enough pledges to pay him for his time in the next week and change, so lets get the word out and make it happen!

Recommended Kickstarter:

Kokopa's Atlas is a cozy crafting/survival adventure game inspired by titles like Breath of the Wild, Gothic, Commandos, and Animal Crossing. After crashlanding on a planet that was unknown to all who previously passed by this sector of the galaxy, Kokopa and Pollimero soon realize their plight. With a ship that’s too damaged to resume flight Kokopa and Pollimero set out to see what adventures they can find.

The game has a nice bright and relaxing vibe, is already fully funded, and is closing in on their stretch goal to add 2 player co-op to the game. Check it out!