Member-only story
Designing a Game Engine for Beginners
Some reflections on how a game engine made for beginners should look.
The desire to program games was what got me into programming in the first place. I have probably been programming for some 30 years at this point and having children on my own. Today this makes me reflect upon how to teach programming to the next generation.
The Challenge of Learning Programming Today
While we have more amazing tools, hardware and resources available than ever before, it does present new and unique challenges.
Computer hardware today is exceptionally complicated compared to Commodore 64, Amiga and PCs with DOS that I grew up with. When I got serious about programming my own games I was doing it using C in DOS with what what called VGA mode which offered 320x200 pixel resolution at 256 different colors.
You manipulated the graphics by modifying bytes directly in memory. The video buffer started at memory address 0xA000 (hexadecimal number). You could just set a pointer to that location and begin altering bytes to change pixels on screen.
// Location of 256 color VGA graphics with 320x200 pixels
char *video_buffer = 0xA000;
// draw pixel
video_buffer[y*320+x] = color