zaterdag 11 augustus 2018

#5 - Testing the attributes

Since my last update, i have implemented most of the attributes in Cycling - The board game.

Quick recap: the game is about getting to the finish line first. Each turn, each player rolls a dice (D6) and moves the amount of squares. The odds of the dice are rigged based on the player's strength (higher strength = better odds). Next to the dice roll the player can gain bonuses to move additional squares. These bonuses are based on their attributes (which can range from 1 - 20).

Now that i have implemented them, i have to check if they add fun to the game. Fun is of course hard to measure, but what i am aiming for mostly is balance between the different elements. For example, if one attribute is much more important than others, the others are irrelevant.

To test them, i left my computer running for a night and simulate over 600 different races with different AI players (with every time different attributes and strength). I now had a lot of data points to analyse with.

I decided to use a multiple regression analysis, where i analysed the impact of the strength and all the different attributes on the outcome of the race. This led to the following results:

R-squared: 
0.43

Coefficient of different attributes
Strength -4,59
Climbing -3,60
SoloRiding -3,06
GroupTechnique -3,04
Flair -1,57
Sprinting -0,93
Restoration -0,84
Starting Position -0,73
Determination -0,51
Composure -0,36
Luck 0,12

Conclusions

  • This stuff really makes me feel like a nerd, which is nice ;-)
  • The R squared means that more than half of the results are not explained by this model
  • The fact that all attributes are negative is correct (the higher the attribute, the lower your total final time)
  • The attribute luck has a different sign, which basically means that a lower attribute is better (although the coefficient is very small, so technically it means that it is not relevant)
  • Strength is more important than all the different attributes
  • Climbing, solo riding and group technique are most important
  • Composure and determination hardly matter at all

I am somewhat happy with these outcomes, but find it difficult to determine my final goal here. I think it is not a good idea to have all attributes at (roughly) the same value, since then it won't matter which one you improve at all. 

On the other hand, an extremely large difference between attributes, means that your strategy should be to simply focus on the best attributes, which is also technically not really fun.

For now, my next move will be to make the lowest three attributes somewhat more influential so that they matter more. When that is done, i am just going to continue playtesting manually and get a feeling for how the game is running. At that point i will also upload a new version, so i can (hopefully) get some feedback on the game itself. 

In the meantime, please feel free to try out the game yourself (link) or even better, let me know what your ideas would be to further balance the game.

Thank you once again for reading!

vrijdag 3 augustus 2018

#4 - The First attributes

After a rather busy week, i finally had some time left over to do some coding again. I decided to continue on the Attribute system in the Cycling Manager game (see earlier blog posts). After some work i have now added the following attributes:


  • Climbing (gives a chance of a 1-2 bonus to add to a 1-6 diceroll when starting your turn on a hill or mountain) 
  • Soloriding (gives a chance of a 1-2 bonus to add to a 1-6 diceroll when starting your turn solo) 
  • Group Technique (gives a chance of a 1-2 bonus to add to a 1-6 diceroll when starting your turn in a group of 3 or more players) 
  • Sprinting (gives you an entirely new dice to throw when sprinting to the finish line) 
  • Restoration (gives you a better odd of restoring energy between races) 
  • Flair (gives you a chance to move an extra square when you move energy)
So far, the code is reasonably manageable, however the results do not feel perfect yet. For some reason the bonuses can seem overpowered and i also feel that i have not yet struck a good balance between tactics and luck. 

I think the only solution is to add another part to the game where you can influence your attributes. Currently the attributes of all the players in the team are fixed, which means that you make the most important decision at the start of the game (which players do i choose) and then just see what happens (with minimal tactical influence in using or restoring energy). 

Stuff to think about! 

My next step will be to add the remaining attributes and then upload this version of the game. 

Hopefully i will receive some feedback and get a great new idea to continue with the game. 

Thank you for reading! PS. If you are interested in the game, you can download it on gamejolt (link).

maandag 23 juli 2018

#3 - Implementing an attribute system


As mentioned in my earlier blog I have chosen to implement an attribute system in my game Cycling the board game.

The goal in this game is to cross the finish line first. This is determined (basically) by rolling a dice (d6) each turn and moving the amount of squares. Each player has a slightly different dice, based on the player’s skill, where players with a higher skill have better dice (e.g. better odds to throw a high number).

When the dice is rolled, bonuses to the dice roll are applied based on the player’s attributes and the game world. For example, if the player is on a mountain square and has a high value for attribute Climbing, he could get some bonus points this turn to add to his dice and move further.

This is the first time I have implemented such a system and I am happy to hear any feedback from you how this could be done better.

To implement this system, I took the following steps:

  1. Added a new enum AttributeTypes with a list of all (12) attributes
  2. Create a new Class “Attribute”.  This Class consists of an AttributeType (one of the twelve) and an int to store the value (1-20) for this attribute.
  3. Added a new Class “AttributeManager” and added an instance of this class to each player. This Class consists of a list of all Attributes for the player and contains functionality to check for bonuses based on the attributes and the game world.


The system works pretty well, but somehow doesn’t feel right, maybe because it is too complex, maybe because it is just the first time I am doing this. I also wonder how this would be done in a more complex game like Football Manager for example.

Thank You for reading and please let me know your thoughts on the subject in the comments!

PS. I have not implemented the actual functionality to use the attributes to add bonus points to the dice, that will be the subject of my next blog probably.

zondag 22 juli 2018

#2 - From traits to attributes

Since the big yearly professional cycling race (Le Tour de France) is being held at this moment, I wanted to work on my own Cycling Game. The first version of this game was launched about three weeks ago (link), but it still didn't feel finished.

The main reason is that there was not too much difference in the players. All players had just one strength value (determining their race strength) and two different traits (like being better in the mountains or when riding solo).

I wanted to try and change this by removing the traits and the single attribute and adding 14 new attributes. As of right now i have added the attributes mentioned below to the game. They don't actually do anything, that is the topic for the next update.

  • Climbing,
  • Composure,
  • Condition,
  • Descending,
  • Determination,
  • Flair,
  • GroupTechnique,
  • Luck,
  • Restoration,
  • SoloRiding,
  • Sprinting,
  • Stability,
  • Strength,
  • Tactics.

My next goal is to remove the traits (that is going to be a big change, since they are used almost everywhere in the code) and then start to add functionality to the different traits and see how the game will feel afterwards.

I will keep you posted!

dinsdag 17 juli 2018

#1 - Welcome!

Finally, the barebones first version of my personal blog on game development is online. So far, I have only listed the games I have started working on, please feel free to have a look at them and let me know what you think.

In the coming weeks I will try to post regularly on the subjects I am struggling with as I am improving the games I have made so far and as I think about new topics for new games.

Enjoy!