Skip to main content

Start the count! - Demo is out 26th July!

· 2 min read
BRANE
Miloš

We're one step away from the demo finally being on Steam. The new build is 0.0.8 and it's awesome.

The demo drops on 26th July on Steam. Set those reminders!

If you can't wait to get your hands on it, there's an early build ready. Join the discord to get it or if you want to have a chat:https://discord.gg/HYV8Zz8V2Q.

The New build

Master of Chess Demo Teaser

I'm guessing most of the people interested in reading this already have tried the demo out. If you're one of those and want to know if you should refresh your experience, here's what is new:

  • Added time increment logic (Fisher time). Not having enough time shouldn't be a problem any more.
  • The sliders have been redesigned. I know it sounds trivial but it was a nightmare and I'm so happy with the improvement.
  • Upgraded the display of moves on match screen, making it easier and prettier to follow the match
  • Added more tooltips on the Tournament and Match Result screens for that extra bit of insight.
  • Squashed a bug messing with the move line color on the board. It's a cleaner, bug-free experience!
  • Many other smaller tidy ups that bring the game closer to what I have in mind
  • I also again degraded the AI experience, it's again too strong. But I hope to get to the bottom of it soon enough.

What's next?

The Steam release of course! Demo will be out on 26th of July, Wednesday. I'm excited, slightly nervous and full of expectations. I hope it goes well and gets some new players with fresh feedback.

You'll here from me again in three days. In the meantime, try out the demo and let me know what you think. Let's make chess fun for everyone!

New demo build - I need your worst!

· 4 min read
BRANE
Miloš

The latest version of the Demo is out. It's 0.0.7 time, baby!

I planned for this to be the last 'hidden' build before I move the demo to Steam.

I've had absolutely amazing feedback from a lot of players and that makes me truly happy, but you can't make a great game if all you have are praises. That's why I want to get as much critique as possible.

Join my discord to give me your worst opinion about the game: https://discord.gg/HYV8Zz8V2Q.

The Critique

  1. What sucks the most?
  2. What is the one feature that is really missing from the game that you really need?
  3. What's the one feature that is there but it just shouldn't be there or is so poorly implemented it's driving you crazy.
  4. What looks totally out of place?
  5. What made you quit the game in anger while slamming your hand on the keyboard?

If you have answer to any of these questions post it on Steam community, post it on Discord, hit me on Twitter, Reddit, it doesn't matter. I'll get to it eventually. I'm not promising I'll change anything, but I can promise you I'll read it and take it into account while developing this game. And I also promise you I won't take it personal, so please do your worst!

New features

New demo build brings some new features, some long awaited improvements (and also some deletions, but if no one notices it's like they were never really there).

Tip mechanism

Master of Chess Create Player Screen

This s a feature that will change a lot about how the match played. For players that played the game before the change I'd really like to know if they consider it a step into right direction. Get a tip about your move and lose some energy as the result. It's simple and I think a quite good addition to the match experience. Let me know your thoughts!

I think it needs a little bit of balancing and nuance but it really changed the gameplay for the better.

Export PGN

Master of Chess Create Player Screen

A small but handy improvement, based on feedback I got on Discord (I can't find who reported it, sorry!). Click on the export PGN button and it will copy the PGN content to your clipboard.

Improvements

  • Most of the time was spent on fixing and upgrading the AI. I think it's a lot better (realistic) now but it's probably still to strong for my liking. Let me know if it's any better!
  • Create player screen got some love too. You can decrease your ELO now, and maximum ELO is only defined by players year of birth, not his selected month and day.
  • Added Scotland, Wales and China
  • Some blurry sprites have been improved (while not all of them are extinguished, but I have a great list compiled by my discord community master - Zokaper)
  • Cursor has been changed and is more responsive (meaning it changes colors when he is over something interactable)

And many little ones that people probably do not care about that much.

What's next?

It's getting closer to the day I release the demo on Steam. Last time I tested it via Steam launcher it crashed only couple of seconds after I started! I hope that won't be the case any more.

So in order to do that I wanted to tidy up all the assets I have around marketing. Go and check which streamers, youtubers and bloggers I can contact about my game and try to fix a few nasty bugs that remained.

So in about two weeks (a little less I hope), when another blog drops here, I hope it will be from a guy that has a demo released on Steam. It's a big thing for me!

Thanks for reading and I'm looking forward to your opinions. Let's make chess fun for everyone!

Behind the Scenes of Master of Chess: Decoding the AI

· 4 min read

As I plan to tackle the issue of badly balanced AI difficulty this week, it's a good time to do a write-up of how AI works right now. It will probably help me and some people might find it interesting too.

When I started, what problems I had to solve?

Firstly, AI had to know how to play chess. I used an existing strong engine for this, named Arasan. It's not Stockfish but it's closest to it in strength (Arasan is rated 3419 ELO at the time of the writing. https://ccrl.chessdom.com/ccrl/4040/) while being under MIT license (that allows me to sell the game).

Now comes the hard part, the AI strength must be scalable in some way so the game makes any sense. This isn't that hard to do actually, you just select non-optimal moves here and there. The real complexity emerged when I attempted to correlate the AI's non-optimal move selection with the player character's abilities. At present, Master of Chess features two primary skills, Strategy and Tactics, that players need to improve as they progress through the game.

How do Tactics/Strategy influence this 'non-optimal move selection'?

To answer this question I have to introduce few more concepts.

  • First off, we have Evaluation. Every move produced by Arasan comes with an evaluation, represented by a number denoting how many centipawns the current player is ahead or behind the opponent. To put it simply, an evaluation of 0 cp (centipawns) signifies a balanced position, while an evaluation of 1000cp implies the player making the move is a queen and a pawn ahead.
  • Now, let's introduce Player's Evaluation. This value is essentially the sum of Arasan's evaluation and a semi-random figure, which I call Variance. The Variance is integral to the AI, influencing the eventual player's evaluation value that's displayed on the screen.
  • How is variance calculated? Well, that's where Tactics/Strategy skills come into play. Each move the player plays, there's a possibility he will blunder or make a good move. A high Tactics skill increases the odds of the player making a good move, while a high Strategy skill reduces the likelihood of blunders. To illustrate these dynamics, I've created the following diagram: Master of Chess Create Player Screen
  • On every turn, red and green surfaces are calculated based on given players characteristics and a random point on the line is selected.
  • After spot is selected, based on the position it ends up, variance is calculated. Blunder would mean huge variance, good move would mean very small variance.

Example

If you managed to read thus far, it is probably quite confusing. So let's go through a scenario.

It's White to play and he's pretty bad. This means his red/blunder surface on the graph above is big, and green surface is small. We randomly pick a spot on the line and it falls on the red/blunder surface. ❌

As mentioned, every move that Arasan feeds to AI gets it's own Player's Evaluation value. Landing in the blunder region means that the variance value is high, which in turn results in a considerable discrepancy between the Player's Evaluation (which is Arasan Evaluation + variance) and the real evaluation. Because of this player's character has wrong idea about the given position and he (probably) makes a mistake. Not always though. Even though the variance is huge, just by sheer luck the semi-randomized Player's Evaluation can end up quite close to the real evaluation.

⏱️ - Also, as the player spends time in the given position, Player's evaluation gets closer and closer to the 'objective' Arasan evaluation. I believe this fast convergence is one of the primary issues with the current AI implementation - it ends up making the AI play too accurately even at lower strengths.

Conclusion

I hope it made at least a little bit sense. When I started the game, my mission statement when designing the matches was:

  • Must be winnable for players of any real-life chess strength against any of the in-game opponents
  • Winning should be more challenging if your in-game player is weaker than the opponent.
  • The experience should be considerably different than playing chess online.
  • Above all, it must be fun.

I think this implementation fits the statement quite nicely. It also allows the in-game attributes to affect the overall match quality which had to be there for the game to make sense. I'm not happy with how this is communicated to the player yet, but that's a different discussion.

As I continue to refine and improve the game, your feedback and questions are invaluable. Catch me on Discord: https://discord.gg/HYV8Zz8V2Q. Let's make chess fun for everyone!

Master of Chess Demo massive update - Counting Down to Steam Release

· 3 min read
BRANE
Miloš

Today I've uploaded a new build of Master of Chess demo. If you're interested in testing it, join discord here: https://discord.gg/HYV8Zz8V2Q

This build marks a great point in development: Demo is feature complete.

Is it perfect? No. Is it bug-free? No way. But it's a valid reference point to what the demo will look like when it hits Steam.

Master of Chess Create Player Screen

The Latest and Greatest: What's New in the Demo?

  • Create your player feature is integrated completely. Feel free to start up the demo and create your own player.
  • Match preview screen got a complete overwrite. The placeholder UI is now replaced with a full overview of both players strengths and winning percentages.
  • 'Game crashes randomly' bug fixed! (or so I hope, I can't reproduce it any more!) It seems to be related to the way async code was handled in Godot and in the newest version 4.1 I had to switch the way async code is handled and even clear out some of the async logic.
  • As mentioned, game is now migrated to beta version of Godot 4.1. We're running it bleeding edge as far as Godot is concerned. I'm really happy that Godot will hit stable 4.1 in the approximately same time as my game starts seeking stability too.
  • A linux build! I decided to have a linux build because a) people asked for it, b) I hoped it would give me more insights into some game-crashing bugs.
  • Numerous little bug fixes and tidy ups. I plan to write this up in a more professional manner in the future so I can list those out easily.

A Few Dragons Still to Slay: Current Issues

  • Chess AI Improvements: Chess AI received a lot of comments, with some finding it too challenging and others finding it not challenging enough. This feedback isn't contradictory; it points to the inconsistencies in the AI, which I'm aware of. Over the next week (and even month), refining the AI will be a major focus of my work.
  • Enhancing User Interface: The user experience on the match review screen isn't the best. Navigating through a completed match should be a breeze, and I agree that there's room for improvement. I'm committed to making this experience better. Some UX issues, bugs still exist on the main match screen too. These need to be addressed.
  • AI Responsiveness Issues: Some of you have encountered a problem where the AI stops making moves. This was an issue I tackled in early builds, but it seems to have reappeared. It's time I dive into it and ensure it's permanently fixed.

What's next?

As mentioned, the Demo is feature complete and all that's left is to polish it up. If I could get the AI to be decent enough in the next week and add some Quality of Life improvements then all would be ready for a Steam release of the Demo in early July.

I'm so excited!

Master of Chess trailer's Phenomenal Response

· 2 min read
BRANE
Miloš

What's happening with the game?

Last weekend I posted a short video announcement about Master of Chess Demo. It blew up on reddit, tripling amount of people on discord and doubling the wishlist count!

Join discord here: https://discord.gg/HYV8Zz8V2Q as it had a big revamp by two community masters to which I'm extremely thankful: @Taxtibe and @Zokaper

Master of Chess screens

With all the new people that arrived there's been a lot more bugs reported, a lot more discussions about features and the look/feel of the game. At times I was overwhelmed but mostly I was extremely happy.

I'm happy because I'm finally sure: I'm not crazy. This game has real appeal to people who love chess as much as I do and I'm right in trying my best to deliver an awesome chess simulation game.

Enough with the pep talk. What's going on with the game?

  • Full focus is on fixing bugs and adding some UX niceties.
  • I'm testing and figuring out the issues of the demo on Steam (it's still crashing fairly often)
  • I'm updating to version 4.1 of Godot engine because it might resolve some of the bugs (and hopefully not introduce new bugs)
  • I'm adding the Create your player screen and ditching the precreated campaigns

What's the plan for the future

  • Stabilize the demo (eradicate crashes)
  • Fix more bugs
  • Release a new demo build on itch.io next week
  • Prepare a linux build (I am hoping this will give me more insight into why the game crashes, I'm still not sure!)

This gamedev journey was and continues to be a great ride! Cheers!

Master of Chess Demo v0.0.5 is here!

· 2 min read
BRANE
Miloš

If you're interested in testing it out, join here: https://discord.gg/HYV8Zz8V2Q

Hey @everyone, it's been two weeks since MoC demo has had its first public testing. I want to thank everyone for the amazing feedback and especially @Dieu#2536 for some very constructive ideas! The demo is getting more polished with each iteration. Let me know how good it is and if you find any issues with it!

I'm in the process of getting the demo approved on Steam! It should be there soon and I believe it's going to be available in the first half of June.

New feature: Tournament overview screen

Gameplay improvements:

  1. When energy is under 20% the player no longer gives out his opinion on moves. @Dieu#2536
  2. Character does not lose energy when he isn't calculating @Dieu#2536

Usability fixes:

  1. Displaying ranks and files on the board @Qu11k#2305
  2. Icons are no longer blurry @Zokaper#7964
  3. Chess pieces are no longer blurry @Zokaper#7964
  4. Chess avatars a little bit more consolidated @Zokaper#7964
  5. Energy icons/animations improved
  6. After match is simulated a more intuitive text is displayed @Taxtibe#5548
  7. Skip tactic functionality

Bug fixes:

  1. Premature resignation no longer happens @robs#1932
  2. Board does not flip any more (I am not sure I covered all the cases but I can't reproduce any more) @Dieu#2536
  3. Opponents stops playing from nowhere @Dieu#2536

And bunch more less noticable stuff and issues.

MoC - Progress Log 4

· 2 min read
BRANE
Miloš

Demo of my game is still hidden from the public eye but some awesome folks tried it. If you want to test early builds then checkout discord: https://discord.gg/HYV8Zz8V2Q

So the demo is out and being played by strangers for the first time. It's really hard to get that out of the way as you don't want to scare people away by giving them too raw experience.

I'm happy that people really had fun and deemed it worthy to spend time not only playing but also providing valuable feedback. A lot of great ideas were generated in the first playthrough and this really gives me new motivation to continue making the best chess game out there!

I appreciate people giving feedback (the good and the bad!) so I decided to create a small public page where all the bugs reported can be seen and progress on them can be monitored. (this was also a suggestion from Discord :) )

https://www.imbrane.com/master-of-chess/tasks

What next?

  • I've decided to ditch selectable campaigns for inital release of the game. It's just going to be your custom chess prodigy. Enter: Player creation screen:

Master of Chess create player

  • I've compiled Godot Engine from source in an attempt to catch and eradicate a game breaking bug that has sneaked in the game. It's very hard to diagnose what's wrong so I can fix it.
  • When the bug is fixed, I'll start readying the build for Steam
  • Release demo on Steam! I'd love to do it as soon as possible, I hope by the end of May, but it is going to be tricky if this bug keeps bothering me.

Until next time!

Compiling dotnet/mono godot from source

· 2 min read
BRANE
Miloš

During development of Master of Chess I encountered some game crashing bugs. No errors in the console. Nothing.

This meant it was time to compile Godot from source and get all the info from the debug build of Godot.

What I had to do?

  1. Install Python 3.6+ (I already had python 3.10)
  2. Install SCons (it's a build tool used by Godot)
  3. Clone the Godot repo
  4. Checkout the last stable version of godot with git checkout 4.0.2-stable
  5. run python -m SCons platform=windows debug_symbols=yes module_mono_enabled=yes to build the editor with additional logging and dotnet module enabled (dotnet==mono for legacy reasons)
  6. run ./modules/mono/build_scripts/build_assemblies.py --godot-output-dir ./bin --push-nupkgs-local ~/MyLocalNugetSource to glue stuff (don't ask what that means - see 'www.godot...')

If you don't have any weird issues (like I had), this should take about an hour tops (most of it waiting for step 5 to finish).

I had issues with 'dotnet sdk 6.0 not found' (because I didn't run step 6, initially). I had issues with finding Godot.Sdk nuget package (which I fixed by going back to 4.0.2-stable instead of being on the latest main branch).

This all took me about a day, which is a lot, but I gained some valuable knowledge and it will hopefully help me fix/report these crashes Master of Chess is having.

Posting to save someone time (and to make it easier for me in the future)

Cheers!

What is Master of Chess?

· 3 min read
BRANE
Miloš

What would a Football Manager game look like for chess?

I started making this game with that question in mind. It looked simple enough in the beginning.

Football Manager ⚽Master of Chess 👑
You manage your football team 👨‍👩‍👧‍👦You manage your player 🙍‍♂️
You win leagues, cups and promotions🏆You win tournaments, get titles, and rise the ELO ratings ladder🔝

But the real attraction for managerial games comes from adjusting game mechanics for optimal gains. In FM you bring new players, adjust your tactics, develop young talents and you enjoy seeing them succeed and flourish under your expert guidance. What would equivalent of that be in Master of Chess?

You develop your in-game player skills in MoC, and your opening repertoire becomes richer as time passes. This is good but isn't deep enough to keep the player engaged. That's why I decided for a more hands-on approach.

Master of Chess match

You play the moves on the board, but your in-game character 'validates' them. The better the character is the more precise he is in his calculation.

In order to design proper match experience in the game I decided for following restrictions.

All the matches in Master of Chess:

  • Must be winnable for players of any real-life chess strength against any of the in-game opponents
  • Must be harder to win if your in-game character is weaker than opponent
  • Must be considerably different to playing chess online
  • Must be fun

What affects match outcome

  • Moves the player choses
  • Player attributes (strategy, tactics and endgames)
  • Play intensity of the player in the match
  • Openings that are chosen (how familiar each of the players is with it)
  • Element of luck/randomness like in any chess match

What is play intensity?

  • It is an in-match setting that can be adjusted
  • If intensity is high, character calculation speed and precision increases
  • But energy depletes faster if the intensity is greater
  • When energy is low blunder possibility rises (precision degrades considerably)

These are the main pillars of the chess match experience.

On top of this the game then builds tournaments, opening repertoire development, getting chess titles, solving chess puzzles for faster improvement, getting prize money, having chess coaches and bunch of random events that happen throughout the game. You guide your player character through the chess world.

I think it's cool, and I enjoy developing it. Next week I plan to open up a demo to all the folks in Discord. If you're interested, join here: https://discord.gg/HYV8Zz8V2Q

MoC - Progress Log 3

· 3 min read
BRANE
Miloš

If you have questions about the game or you want more info, you can join the discord: https://discord.gg/HYV8Zz8V2Q

More than a month since last progress log. What was I up to?

Tactics/Chess Puzzles Mechanic

Master of Chess tactics

With time my game is moving away from its managerial roots and focusing more on the simulation part. It seems that with every game design decision I make the player gets more hands-on approach.

That's why it seemed very fitting to introduce the mechanics of solving chess puzzles in order to get more Progress Points to improve your player. It is different to solving chess puzzles on lichess or any other chess site.

In the game, you use the 'Select one of the 4 possible moves' mechanic that is closely related to 'Candidate moves' mechanic of the chess matches in the game.

Redesigns

Last progress log was all about how I added tutorial for the match. Now I know that was a stupid decision.

I basically redesigned the whole match experience and I'm now working on redesigning it even more. It is all connected to that notion of giving the player more of hands-on experience if he wishes so.

Master of Chess match

This is a big change in the way matches work. So I had to redo the tutorial all over again and I'll probably have to do it couple of times more! The whole tutorial system is now visually connected to the look of the puzzles window.

Master of Chess tutorial

Playtests

I've had other people than me play the game. It's very exciting! I worked on something for months not knowing if anyone will enjoy it (myself included).

It now seems there's a great probability someone will have fun with it! I got lots of feedback and I hope to squash most of the issues before I open the test builds of the demo for everyone. I plan to do it on itch.io initially and expand to Steam later when I make the game more stable. My guess is that will happen in first part of May.

What's next?

As mentioned, I am basically addressing issues that were found during playtests, some were obvious mistakes, some I am still not sure how to solve. They are mostly related to the way chess matches are played. Then the only remaining things to solve are some usability issues and it's ready for public demo!