DRAFT: Designing Maginet, from chess to Steam
2023-11-03 by Evrim Öztamur

Mechanical overview

My main inspiration for the game is the bishop and knight checkmate. I recently caught the chess-bug and have been lining a few rapid games every day with my morning coffee, while working through Ilya Maizelis’ The Soviet Chess Primer.

Despite playing often, I am really not a good chess player. I still struggle with visualisation and multi-move sequences. I work to improve, but it’s a challenging task nonetheless (and I have only so many hours a day to commit to chess).

The specific detail that caught my attention during my studies was the positioning aspect of the bishop and knight checkmates. Moving several pieces in tandem, you try to force your opponent into their inevitable demise. However, one mistake, and they slip out of your net.

This feeling of ‘ballet’ on a grid, some form of choreography, is the idea behind Maginet. I wanted to make players dance with each other on the board, make mistakes, learn from them. The dramatic futility of moves which follow your mistakes, however, is not something I like about chess. The game is simply inflexible, its moves always fatal, and that’s a good thing—for chess. What if I could write new rules for a new variant..?

Maginet level editor showcasing various mage types

Gamespace

I decided to keep the board: 8×8 is a nice size, our brains seem to be capable of maintaining the state in memory, and also can commit visual patterns to a vocabulary of sorts.

During play, I tried to change certain properties of the board, such as removing the edges (looping back around to the opposite edge), but despite being easy to program and a fun little party trick, it was very tough to use strategically. Moreover, it caused certain issues later on in the game where two mages would be just chasing each other from one edge to the other on the infinite loop—fun for the first time, not so much later on.

Move and zap!

There are multiple pieces in the game, and they are all mages (Mages-on-internet, Maginet, geddit?). These mages all move around in cardinal directions with the same exact patterns (and some exceptions), and attack as they move (with their own unique patterns).

Early on in the game, I expected to have more ‘spells’ and more ways to interact with the board and other pieces, but I realised soon while testing out the prototypes that this drifted away from being a chess-like board game, and turned into a tactical JRPG.

Each of the mages has a unique spell pattern denoted on their staves, and this is their attach pattern. Mages make a move on the board, and then attack all mages within the reach of their spell pattern. Attacking removes one health (or ‘mana’) from a mage. Once mages reach zero health, they ‘sleep’ and occupy the space on the board. This makes navigating closer encounters more challenging too, as a side effect, as a certain attack might block your future opportunities to defend.

Strategic complexity versus simple play

Chess has only a handful of rules which extrapolates into an immense level of complexity. Pieces have different movesets, with simple rules for engagement. Maginet flips this around, and simplifies it while doing so, to have a common moveset and rules of engagement.

Chess, unlike Maginet, had a long time to iterate on its rules to bring about this emergent strategic complexity. It has plenty of opportunities to tell the story of a war with many little battles and grander strategic choices—with its ups and downs, victories and blunders.

However, the intent behind simplifying the rules of engagement has some drawbacks in terms of how complex strategical opportunities can be too. For example, in chess, the bishop, rook, and queen have engagement rules which span the entire board, whereas in Maginet, just like the knight, the pieces only impact a 5×5 square. In turn, boards larger than 5 tiles on one axis reduce the impact of an individual mage, which can make late-game (where only a few mages remain on the board) rather tedious.

I have to be honest, I was not quite sure how to resolve these. Integrating pull-and-push, attack-and-defend mechanics is not always obvious. After discussing with many who tried the game, I ended up going for powerups which enhance the mages’ inherent abilities instead of adding more mechanics or UI to the problem (like mages having multiple spells, which would require interfaces to choose and indicate the active spell… yuck!)

Prototypes and iterations

Littered across the article are various GIFs and screenshots of the game throughout its development. They’re not ordered by any means, and it’s more of an eye-candy thing. You can see in the GIF below an earlier experiment with a double-damage powerup.

The game went through several design iterations on its mechanics, but retains the core idea of chess-like play and rules. For example, health used to be a larger component of the game, but was reduced to simplify gameplay and reduce information conveyed on the UI. Powerups were added, removed, and then added again. Diagonal moves were first conditional on the health level of the mage, but later turned into a powerup to allow for higher control over the strategical implications of its impact on mages’ movement.

I have to note here, before I start out saying nice things about Rust, that using a statically typed language makes iterating on game mechanics difficult. Even moreso when you’re dealing with Rust of them all…

Maginet early play with a double-damage powerup

Single-player and teaching new players

Designing a tutorial to teach players how to play the game is really difficult. During the development process, early on in fact, I had the opportunity to show the game to people and play with them on my phone (or with two phones). Kind of a cheeky bar trick, honestly, but telling people, ‘hey, we can actually play it right now’ has just been immensely helpful in understanding how people interact with the game. It’s also really gratifying to see them enjoy it too.

What I found out was that although I could explain the game to someone as we’re playing, I cannot play the game with each of the players who will purchase and try it online. In turn, I had to prepare a quick tutorial to guide players through some of the basics. I am still not quite confident in how it turned out, but it ended up being sufficient for people who’re generally familiar with computer games.

Following the tutorial, for the game’s actual launch, I decided to build a ‘campaign’ of levels, where more complex mechanics such as the interactions between different patterns or the uses of various powerups was gradually introduced to the player. After following the campaign, I realised the tutorial was perhaps a bit too intense, but I think this is not a big concern for players who started out with the very basic campaign levels, and moved to understand powerups or diagonal movement.

It’s still challenging to make people click the ‘Tutorial’ button in the main menu, let alone try out the campaign levels…

Maginet campaign view

Path to release

Taking a prototype, which looks essentially like below, and taking that into a real game that you can ask people to pay money for is a long path. This is the last 10% that takes another 90%. This is the real struggle, and man, it was not fun (for the most part).

Menus, polish, and everything else

A seriously large portion of games are simply UX. Colloquially known as ‘game feel’, there is no technical guideline after abiding to which you will have a game that feels good to play.

However, there are a lot that you can do by simply working on the menus, the bugs, and the juice.[^2]

Designing intuitive interfaces for a video game is not something that I had approached at the level of seriousness I did with Maginet. Most prototypes that I had built before did not have very complex behaviours or state transitions, some didn’t ever get to see buttons.

Graphics and sound

I worked with @MrmoTarius for the graphics. I have a long history with him dating back ten years or more at this point. He’s a deeply passionate and multi-instrumentalist (Blender to Photoshop to cameras) visual artist who just loves seeing games get made. He was kind enough to provide me with all the sprites, logo, and some promo art. He’s not really open for commissions, but check out his Twitter feed!

For the sound effects, @effoharkay came to the rescue. Incredibly professionally, he solved all my sound problems in three days, right before the launch. Absolute MVP, go commission him for good vibes (literally!)

Marketing

Well, I completely flunked this one. But I think failing to market is in general a big theme in my life, and probably of many other people working on their passions.

I genuinely don’t have much to say here, except that if you think the game looks fun, buy it! It’s not money that I’m looking for with this game (or with any other I’ll make), but it does feel really nice when somebody buys something you created!

My plan forward is to continue writing about the game and its technical components, reach out to chess and tactical strategy game communities on Reddit and Twitter, and try to garner a bit more interest.

Steam

Talking about flunking marketing, I also flunked Steam pretty hard. I had a couple people help me out with the process of getting a game on Steam (which is not difficult), but I made a couple of good decisions and a couple of big mistakes.

Good decisions

I participated in Steam’s NextFest, which is a small demo and publicity festival for upcoming games. I initially misunderstood that NextFest was for the actual release, which led to the October Crunch. However, my efforts were not fruitless as I obtained a lot of wishlists (750~) for a relatively niche game. This was already a pretty good start.

Besides the launch, I think that I was able to scope the game quite well, and ended up with a very good result! I am genuinely impressed at how capable I have become in Rust and other web technologies to have been able to pull this off, and have no qualms about anything but my terrible business-fu.

Big mistakes

Failing to discount on launch on the other hand led to a rather frustrating launch. Although wishlist to sale conversion are expected to be around 10-15%, I did not quite get there and ended up selling around 20 units in the first two weeks.

I feel like I hurried the launch unnecessarily and therefore made a few mistakes along the way. I was dealing with a terrible wisdom tooth pain (and subsequent extraction) throughout October, which made the whole process additionally painful.

Moreover, failing to discount on launch put my game on a 30-day discount lock (which I had no idea about), and that led to me failing to participate in the autumn seasonal sale as well.

Not only did I fail marketing, but I also fumbled the launch pretty badly too. I had some help from people along the way who assisted me in the basic gotchas of launching on Steam, but I definitely should’ve studied a bit better.

(As a last-ditch effort, I am writing this article!)