Posts

Showing posts with the label GameJam

Ray-Tracing Experiments

Image
Inspired by the upcoming Ray-Tracing Kajam event , I decided to start fooling around with some ray-tracing code. I'm still feeling inspired by DOS limitations, so I'm rolling with that.  But I'm not so interested in making a Wolfenstein-a-like, which is a classic ray-tracing type of thing.  I also don't think I'm capable of making something as awesome as Death Taxi 3000 , which is just a phenomenal piece of work. So my mind settled on trying to get a height-map, voxel-style terrain rendering on something like a 486 PC.  Still a significant challenge, but something I feel I can get my head around. The trick to anything like this seems to be getting your data/algorithm simplifications right to make life easy for the CPU.  To that end, over the last few days, I've been playing around trying to see the effect different simplifications have and I think I'm onto something:   This experiment was done on a modern workstation running Linux.  It's a 256x256 height...

Lowrezjam 2020 entry: F-Z

      This evening I submitted F-Z , my entry for Lowrezjam2020 . I was going to make a helicopter game, but in 64x64 pixels I just couldn't get anything to actually look like a helicopter!  So I completely changed my mind and made an F-Zero style racer instead. In the limited time allowed for the jam, I only managed to make a single track.  However, the game was reasonably polished: it had a title-screen, menu, AI opponents, music, sound effects and a 'finished' race outro - with a particle effect for a podium place! It was the first time I'd written a racing AI.  I basically baked the AI instructions into the track tilemap, giving each AI-sector a heading value.  The runtime code loaded the sector polygon and calculated a middle-line for the sector using the polygon vertices and the heading.  The runtime AI first checked if it was way off the heading for the sector and corrected for that.  If the heading was okay, it checked if it was too...

Dos tidbit: register-based Watcall parameter order

It has occurred to me that in the course of writing DOS programs (some of which even work!), I spend an awful lot of time searching through documentation.  Which is, you know...fine.  It's part of the charm of retro coding. However, this ancient source has an inaccuracy which has bitten me twice (the second time because I forget about 99% of what I read).  Not that I bear the author any ill-will - if a document as detailed and comprehensive as that contained no inaccuracies at all, I would be worshiping the author as some kind of god.  It might even have been accurate at the time of writing (2010CE).  There's plenty more in that site which I intend to dig through and learn from as well. Anyway.  What bit me: When using register-based watcall* to call an asm procedure from C/C++, 16-bit parameters are passed in this order: AX, DX , BX, CX.   *in OpenWatcom V2 at time of writing. As I read it, the document says it is in the order AX, BX, CX, DX...

WIP DOS Game Jam Entry

Image
So for some reason I decided to really get my geek on and make an entry for the DOS Game Jam on itch.io. Whilst the game jam rules are really relaxed, I decided to head straight for making a game for real DOS-era hardware.  Then I decided making a game for mode 13h or mode X was a path too well trodden.  So I started messing around in mode 12h (640x480 16 colours). First, the tools: I went for Open Watcom to build and DosBox to run it.  They are both mature tools and work well on Ubuntu (Open Watcom under WINE). I very quickly decided I didn't like Open Watcom's code editor though, so I only use the IDE for building the code.  Geany is a lovely little editor which I like a lot more. Thence into the dark realms of x86 interrupts to set the video mode and direct-writes to hard-coded memory locations.  Coding ground to a halt immediately as I proceeded to read what felt like the entire internet . I had to learn about what an I/O port was and how to ...

2-Button Jam: Postmortem

Image
What? I participated in my first itch game jam and it was great fun.  I thought I'd write a postmortem for posterity and in case anybody might find it useful. The jam The game Art apps used: GIMP , Pinta , Tiled Sound apps used: Beepbox , Audacity Engine used: Godot How I came to the game jam I used to work as a game programmer and I've always harboured my dream of making my own games.  I'd been to my local game developer meetup , and we'd discussed itch game jams as a motivational tool.  When the Easter holidays came around (I'm a full-time teacher), I decided I would take the plunge.  I chose the 8-bits-to-infinity jam because the constraint of only using two buttons intrigued me. Initial ideas for the game With such a strong limitation as only having two buttons, I decided to start with the mechanics.  Having played Micro-Machines on the PSX back in the day, I remembered playing 4-player with only two controllers.  Each player had hal...