This is going to be a long read, as I cover most major hurdles with my game.
My first game is conveniently on this site, Viva Hexagon! Feat. Ipulo. Technically, this is just the demo version, and not the full game, but it has all of the basics. It mainly just lacks any singleplayer goals, so there's no real content aside from the leaderboards.
It's a board-based puzzle vs. game operating on a hexagonal grid. You control a 2d platforming character on the board to pick up and move around the hexagonal cells. The goal of the game is to create matches in a way that pieces fall and make chains, which in turn screws over the opponent to make them lose.
You can watch the trailer on YouTube here.
There's also a 2nd major gamemode where you and the other player share one big board, and have to try and kill each other, either by kicking your opponent, or making chains and matches to reduce their HP. It's kind of like budget Smash Bros. where you are also playing on a Tetris board.
This game was a stupidly complex concept for a first game. There were multiple hurdles that I'm surprised I pulled off for my first project.
Firstly, I had to make a way to store the hexagonal grid in a way which worked with gravity (the pieces have gravity). This means that the typical hex-coord system that people use doesn't work, so I had to come up with a solution on my own.
Second major hurdle was figuring out how to move the pieces. Hexagonal grids don't have cardinal axis, which is where the idea for a platforming character came in. You may not be able to intuitively move hexagons with the d-pad, but controlling a 2d character with a d-pad is one of the easiest things to do. This means I also design this game as a platformer with decent movement.
The platforming part is neat. Since the board is made up of hexagonal cells, it can form very interesting to navigate terrain. The game isn't ONLY about scoring points. You also have to keep your board organized so you can move the character around it, which is neat!
The third big thing is that the pieces you pick up may contain many hexagonal cells, making them large and awkward to move around. The character has free movement around the board, but the hexagons are locked to the grid. I had to make a system to try and intelligently figure out the most "natural" position to place the piece. This is the most important piece of the game, since it makes the game go from unplayably clunky, to relatively smooth and intuitive.
A player won't notice this system, since it's doing it's job properly. Think of it like driving an automatic vs. a manual. The automatic does all the work for you, so you don't even think about it, unless you know what it'd be like without it. That's why I mention it, because it's a complex system that I'll never get any acknowledgement for.
The final major aspect of my game is the A.I. opponent. Everything I mentioned before built up to this, as the AI has to take all of that into account. This includes:
- Be able to know what's going on with the whole board.
- Be able to control a 2d platformer character, and pathfind around the board, using all of the various movement options available.
- Be able to pick up pieces, and understand where to place them to make chains
- Be able to reset itself at ANY moment in the case of an emergency
Individually, those points are all complex. However, those points also affect each other, which means the AI has to take the whole picture into account.
For example, when the A.I. picks up and places pieces, it changes the shape of the board. The shape of the board can also change if other pieces fall and land. This means the A.I. has to strategize both around scoring points, but also keeping the board manageable for itself.
The whole field is dynamic, so the AI has to be able to have a plan in mind, but be able to improvise as well in case something stops it.
I've actually considered making a video going into detail about how the AI works, just because it's probably my favorite part of the game. Most of my time developing Viva Hexagon! was actually just watching the AI play against itself. Seeing my code bring the AI player to life was really charming to me.
Unfortunately, the majority of players who played my game only played "solo" mode, which lacks the AI entirely, as well as most of the game's features.
Seeing players either give up on the tutorial (which is my own fault), or only playing "solo" mode is really heartbreaking. All of the effort put into my game was for the versus mode and battle mode, which is fighting the A.I. player. This is extra annoying because I've gotten very little useful feedback for my game, since most people haven't even played the main part of the game.
FuturecopLGF made a video reviewing the best games of September 2023 on Newgrounds, including my game, and unfortunately he also only played the tutorial and solo mode, which is unfortunate because his feedback is typically great, and he completely missed the most cool parts of the game!
One last struggle I had was that I've never animated before, and I wanted to give the characters relatively smooth animations. I'm never really a fan of when art styles visibly look limiting, such as pixel art, or just low framerate in general. I understand why those art styles are prominent, since it's easy, but I wanted to go above and beyond for my first game. You'd never catch me making a pixel art game >:(
I'm also a little frustrated my game only lasted 4 days on the front page, while most last several weeks. But oh well, that's just be being whiny!