WIP Here I’ll connect all posts related to my Bush 522 Game Jam project. I should be ready by 31 Oct 2025. Posts Godot Flight Mechanics Links Bush 522 Game Jam
Godot Flight Mechanics
Introduction This is part of a series of posts about my Bush 522 Game jam project. The root post is here. The version of the engine is Godot 4.5. There are 3 main ways to implement flight mechanics for a game that I can think of: Simplify all interacting forces and apply them at a single point. Model the propeller, body and wing surfaces separately and apply forces locally. A hybrid approach, where some forces are simplified, and others are more detailed. In this post, I’ll mainly focus on the first approach, which is what I used for Bush 522. My goal is good gameplay, so I don’t care about realistic modelling, I only care about how it feels to fly. Towards the end of this post, I’ll go over some potential improvements of my simplified model, using a more hybrid approach. ...
Making a pilot mission pack for GTA SA
Introduction At the end of a yet another 100% run of GTA SA, I was finishing up with the Brown Streak train side missions. While I was thinking about how boring they are, my mind wandered into the big plane parked in the LV airport garage. How cool could an airliner pilot mission be! As I started aimlessly flying around in the game, brainstorming and thinking of various scenarios, I came up with something even better. I could make a mission chain using all of the planes in the game that never appear in vanilla missions. It could be themed around commercial flying and be similar to trucking. ...
Musical layouts for a computer keyboard
Introduction For a long time I’ve disliked the traditional way of simulating a synth/piano keyboard on a computer. Using the bottom row of letters for white keys and the ones above them as black wastes a lot of potential space for additional notes, leading to a very limited octave range. Not to mention that usually if a song is played in a specific scale, not even all the notes will be used. ...
Playing around with evolution training
Introduction In my previous post I made a neural network from scratch with the idea of using it for a tic-tac-toe agent. In this post I’ll go over the training process. My general intuition is to play each agent with all other agents twice, once for “o” and once for “x”. A reward function would decide what score an agent gets each game. The agents with top score progress to the next epoch, where they are cloned and mutated to fill the dropped out population. ...
Neural network from scratch
Introduction In my last post, I used a minimax algorithm to create a tic-tac-toe agent that sees a few steps ahead and can’t be beat. While this approach works for simple games like this one, it wouldn’t scale well for more complex games. For this reason, I wanted to implement an agent that can use a neural network to find patterns in the game through machine learning. If I can make this for tic-tac-toe, the general approach should be usable for other games. ...
Tic-tac-toe Minimax and Heuristics
Personal Note Game AI is something I find fascinating, my mind going into many directions just thinking about it: How is Stockfish able to accurately evaluate positions, pick moves and think so far ahead? How are my CPU opponents in Gran Turismo able to race so cleanly and adapt their lines to whatever situation appears on the track? How are the individual players in FIFA or Madden able to realistically coordinate on the field and adapt their tactics? Why do Arma’s CPU units feel so stupid? (Spoiler: It’s extremely difficult to write good computer controlled units for a game like this, especially without impacting performance.) And there are many more questions like these. I can’t possibly write them all down here. In this series of blog posts I’ll be sharing my experience as I journey into writing game agent logic and AI. You can follow along, hopefully learning from my insights and mistakes alike. I’m coming from a background in software engineering, so data structure and algorithm knowledge is a must for following this series. ...