Okay, kicking off my #DecemberAdventure in march! I'm going to

a) rewrite my game framework again for the 3rd time, but this time it's going to be super small. If I can't do it in a week of part-time work it's too big! My previous versions are called sprout, since this is the 3rd one I might as well call it sprout3d.

b) get my head around how a camera shutter mechanism really works and how to build it

First day of my #DecemberAdventure went well! Started the new project and got to a good point with program startup, input and graphics  

I implemented the first platform (of many, hopefully), just OpenGL on desktop (Win/macOS/Linux) using the excellent sokol library by @floooh.

This third iteration of the game framework will be software rendered. I'm going from Lua programmable shaders on the GPU (in the second iteration) to simple triangles rendered on the CPU (in this iteration). Software rendering has many obvious downsides but my bet is that for a personal project, the pros outweigh the cons:

1) The code gets less complex when you don't need to involve the graphics card

2) The code gets very portable, which I feel is getting increasingly important in this age. For example, software rendering is one big reason why Doom has been ported to so many platforms. Also, when I explored UEFI over the weekend it occurred to me that given portable code, one potential target for my games could even be UEFI bootable applications!

3) I believe constraints helps creativity, and software rendering introduces a lot of constraints

4) It gives me an excuse to play around with low-fi rendering techniques without feeling like I'm faking it

5) Most importantly, I like chunky polygons and foggy environments!

With that manifesto out of the way, here is a program that fills the frame buffer pixels with a simple gradient:

On day two of my #DecemberAdventure , I ported over my software triangle rasterizer from an old project and added abstractions for file io to the framework. Using the new abstractions I made a crude .obj file loader.

Here is a 3d model of a truck (~13k tris) I made for a game codenamed "the 5 year project", which I started around 2014... time flies huh

#gamedev

I'm extremely tired today so I did not manage to do much for #DecemberAdventure. Cobbled together image loading using stb_image and managed to sample textures in the triangle rasterizer, but did not quite get it to a presentable stage, so a GIF will have to wait for tomorrow. Take care and don't work too hard everyone!

For today's #DecemberAdventure I cleaned up the .obj and texture loader and finally got proper texture mapping working! It's very satisfying seeing this coming together :)

PicoCAD model by the super-talented BEN @ https://bencanfield.itch.io

#picocad #gamedev

@gustav low poly