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: