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!