BRANDON FANNIN
  • Home
  • About
  • Résumé
  • Blog
  • Contact

Adventures in Game Development

New Project: Battlegrid Update 1

11/7/2025

 
Needless to say "A week or two studying for job interviews" isn't quite what happened. I have spent the last five months or so deep-diving into learning netcode and throwing together a project as a proof of concept for online multiplayer systems. The end result was a new portfolio piece that I can use to show I know what I'm doing when it comes to working with online systems. I didn't share my progress with this project on here because quite frankly there was very little to show visually and my weekly updates would have mostly been a bunch of trial and error. That being said, I will probably add a page to the site for code samples and share it there in the future.

Now, having gotten that taken care of, I have since started on my next actual game project. For this one I wanted to try my hand at making a game in a style similar to one of my favorite game series from my childhood: Megaman Battle Network.
Picture
 I've tried many times to explain what type of game Battle Network is to other people, but its kind of hard to pin down with our usual gaming genres. There are very few games like it, using a hybrid turn-based/action combat system where the player starts a turn by drawing a hand of cards that represent different attacks and actions. After choosing which cards they want to use, the game transitions into the action phase what the player can move around a grid and use said cards in the order they were selected while doing their best to avoid attacks from their enemies. While in the action phase, a gauge slowly fills up at the top of the screen, and when it is full the next turn begins with a new draw phase. The grid-based movement makes the game very easy to control, while the wide variety of card effects and the momentary pause for the card selection phase can produce a great amount of strategic gameplay.

There have been a handful of games that have come out over the years that have been inspired by this old GBA series, but at least in my experience none of them have quite managed to hit the same gameplay sweet-spot. Probably the most notable of the bunch, One Step From Eden, makes good on the action gameplay and the deck-building aspects of the original, but lacks a bit more of the overall strategic gameplay because there is no draw or card selection phase to slow things down. Your cards are delivered to you in shuffled order one after the other, leading to a much more hectic-feeling combat system as you continuously sling out attack after attack.

I want to do things a bit closer to the source material here, but I'll talk about my game design thought processes and decision making as we get further into the project. For now, here's a breakdown on what I've managed to get done in the roughly 3-4 weeks I've been picking away at the game so far.
Picture
As you can see, we have a grid divided into sides, we have actors on the grid, those actors have health displayed, and can move around freely on their side of the grid. Of note, I programmed the grid itself to allow for variable sizes, not sure if I'm going to use that feature in the long run, but it was easy enough to add in case I ever wanted to mix things up a bit, like so:
Picture
In addition to the basic movement mechanics, I have also gotten our action system almost fully up and running. Each action is made up of a chain of effects that string together in sequence. The system was specifically designed to be modular, with each effect basically acting as a building block from which I can create just about any action I can think of. The chains are also able to branch based on the results of individual effects, as well as apply or remove tags to the actor that is performing them, giving the system even more flexibility. Thus far I have made a base set of effects to work with, including but not limited to: damage patterns, projectile creation, telegraphing effects, branch conditionals, and forced movement. Here are a few basic examples with a breakdown of the effect sequences that make up the actions: 
Picture
Telegraph attack to row in front of user > Project damage ray effect to find first viable target in telegraphed area > apply damage and knockback effect on hit
Picture
Spawn projectile at user's position > On projectile hit, activate damage field centered on point of impact
Picture
Based on the "Step Sword" attack from Battle Network.
Record position > Apply "Invade" condition to user to allow them to enter enemy tiles > Advance forward 2 spaces > Deal damage to column in front of user > Return to recorded position > Remove "Invade" condition

And so on.

Though the system is very flexible, it is currently a little cumbersome to create the actions, so I will probably invest in making an editor tool to streamline the process in the future.  For now though, that's where we're at. The last thing I need to get the action system fully functional is to make sure that actions can be interrupted, for instances when an actor gets staggered while in the middle of trying to perform their own action. After that is done, I'll be moving on to the card architecture next. Whether or not I can get that half of the system fully up and running by then, I'll go into detail on my design considerations next week.

By the way, since I don't actually have a name for this one yet, for the time being I'll be referring to the project as either "Battlegrid" or my randomly generated project codename: "Halberd".

​See you next time.

Kicking Things Off

10/16/2024

 
So, where do I begin...

Given the extended nature of my unemployment, I have been spending a decent amount of my time working on various programming projects. For the most part, this has consisted of my attempts to learn the Unreal Engine and subsequently try to create some sort of game with it. I have but nine months of my life into this, and yet I feel like I have very little to show for it. It's not as though I haven't working at a decent pace or even that I've been wasting time; solo game development is a slow process and working in the Unreal Engine by yourself certainly has its challenges.  More on that later though. The point is that in spite of what I've managed to accomplish, there's not a whole lot of tangible evidence of what my time has been spent on, which can be.... discouraging to say the least. 

And that's why I'm adding this blog to my website; the hope is that if I can regularly post updates on what I've been working on, the things that I'm doing will feel more real. I'll have proof that work is being done, even if my brain doesn't think I'm making any progress. It will also make it easier to share the things I'm working on with others across the internet, so that's a nice bonus.

So, what exactly are we working on then? Well, as mentioned, solo development for Unreal certainly is a thing. The lack of proper documentation makes learning in a vacuum rather difficult, and I would say it is one of the primary reasons behind why I felt like I was making so little progress. Having to stop every five minutes and look up how built-in functions work, only to find little-to-no information online and end up experimenting until I figure it out, does consume quite a lot of time. As such, I have decided to change tactics. And by tactics I mean engines. The goal is still to learn something besides Unity, due to the greatly reduced demand for Unity developers in recent days, and so we've turned to another engine that has become popular lately; Godot.

I've already spent about a week digging in and watching tutorials, and I've liked what I've seen so far. The documentation situation is certainly a whole lot better, considering that information on every class and function is built right into the packaged code-editor. I've got high hopes, but I am still just starting out. Instead of diving right into one of my own personal projects this time, I have decided to make use of an old technique I remember from my college classes.  One of the best ways to learn a new engine, is to try to reverse-engineer a game that already exists.  Now, I tend to be attracted to platformers and action games when it comes to my own development habits, so something that would make me more familiar with those types of mechanics in Godot would be best. For this reason, the game I have chosen to emulate is.... 
Picture
Super Metroid.

A well known game with thoroughly explored mechanics, fully fleshed out designs, and readily available art and audio assets. A Game that will act as a platform to teach me basically everything I'll need to know about Godot's systems for future projects. The aim is to post here at least once a week, detailing the progress I make, thoughts I have about working in the engine, future plans, and any random things of note that I feel like sharing. Official posts might not start until next week, but we'll see how far we get into it by Friday.

Wish me luck, and see you next time.

    Archives

    April 2025
    March 2025
    February 2025
    January 2025
    December 2024
    November 2024
    October 2024

    Categories

    All
    AI
    Animation
    Attack Logic
    Camera
    Clean Up
    Enemies
    Game Development
    Godot
    Level Design
    Music
    Optimization
    Player Mechanics
    Projectiles
    Project Start
    Research
    Sound
    State Machines
    Super Metroid
    Tile Maps
    UI
    VFX

    RSS Feed

Proudly powered by Weebly
  • Home
  • About
  • Résumé
  • Blog
  • Contact