The start of the Fixture Engine

What is a Fixture Engine?

The Fixture Engine, as one may expect, is the heart of any Sports Game. It’s responsible for calculating the result of any fixture and producing the stats of the players involved.  It has to be accurate and it has to be enjoyable.

Choosing what type of Engine

It was clear from the start that any type of 3D engine was not possible for a variety of reasons. Even so, I still felt the Fixture Engine was one of the the most important parts of Football GM.

For a sports game simulator there are two main ideas for this engine:

  • A Statistical Engine
  • A Engine based on the player’s actions/movements. – which can then been displayed to the user (in Football GM‘s case in 2D).

The Statistical Engine, as the name may suggest, is based on real life Statistics. For example the real life average for a RB in a certain game situation against a certain defence might be 3.5yds. Extrapolating this over the entire game, and an entire season produces a very realistic statistical result.

There are however drawbacks to this method, significantly the user is just told the result of the play, there is no way for them to “see” the play as it develops (you could show a predefined diagram of the play result, but that’s not the same).

The other method is to create an engine which calculates the movements/actions of every player on the field in such a way that we get results which are realistic. It’s a lot harder to tune this type of engine to get statics which are realistic, but I feel the benefit to the user are enormous – for one the player’s position on the field can be shown to the user at any time.

I decided that for the user the attraction to see the play develop was too much to ignore, and so – unfortunately – the statistical only engine was not an option.

The Start of the Engine

Having decided upon the type of engine would be used, the first thing to do was create the basics: Define the constructs of the field (e.g how long/wide it is) and make the player’s move around in a realistic manner. For this I created a simple 40 yard dash test. Using the player’s attributes (detailed in an earlier post) I got to the stage where players would run the 40 recording the same times as one would expect in real life for that player.

40 Yard Dash Test - Jan/Feb 2013

40 Yard Dash Test – Jan/Feb 2013

40 Yard Dash Test - Jan/Feb 2013

40 Yard Dash Test – Jan/Feb 2013

From there I could gradually expand what players could do. Running in a straight line became running back and forth, or players chasing each other. Ball physics were created so when a player kicked/passed the ball it would travel realistically. Player’s actions would expand, so they could get into a huddle, wait until everyone is in the huddle, talk for a while then walk into the chosen formation.

40 Yard Dash Test - Feb 2013

40 Yard Dash Test – Feb 2013

Around June 2013 the engine was in a stage where it played a (very, very) rudimentary game of football. However, as can be seen it was still a way off being complete at this stage.

And the engine as of September 2013:

Match Engine September 2013

Fixture Engine September 2013

Feel free to leave your questions and comments!

Advertisements

One thought on “The start of the Fixture Engine

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s