It has been roughly three month since the last update thus I think a status update is warranted. Without further ado let us move on to the interesting part of this update.
I am pleased to announce that the development team has doubled since the last update. In June I mentioned that Forward had left the team and that I was considering looking for people to help out with the programming but fortunately I did not have to. People who keep up to date with what is posted at the forum already knows who the two new developers are. Xalfen joined the team back in July and has been introduced to the project and what we have done so far. Dron on the other hand joined not long ago and is yet to be introduced to the project but will be shortly. Since we are now four we have to move our project to a new host which we will be looking to do as soon as possible; we are actually looking at different alternatives as we speak, both free and paid hosts.
Now let us go into some details about the progress of the actual game. We have finalized the first version of the database and expect no more significant changes for the first version of the game; if however something important has been overlooked we will do the necessary changes.
The code to handle practice and non-practice related player development is close to implemented. One of the major things left to implement is handling of natural regression. Another thing that the player development simulator does not handle is events that affect player attributes. The code is there to handle it but no events are present yet in the simulator. Events I am talking about could be for example a fighter fighting in games which will affect his fighting tendency/ability, games and injuries. Finally the logic for attribute changes will need a lot of tweaking and this is a process that I anticipate will take some time to get satisfactory; the current logic works but was mostly thrown together quickly for testing purposes only.
Another important thing that change over time for a player is his body. Me and jatahati had a discussion awhile back on how to properly implement this and for the height growth part I believe we have come up with a pretty good solution. When determining the starting height of created players, teenagers or adults, we use normal distribution (bell curve). In order to calculate the height according to the mentioned method we need two parameters, the mean (the peak of the curve) and the variance (width of the distribution). The player creator also supports individual parameters for each country if that ever becomes desirable. One can do a study of a collection of players and calculate these parameters but since I currently have no interest in doing so nor have I been able to find one on the internet I will be using values that appear to generate adequate results. I have been able to find studies of the general population but hockey players tend to be a bit taller than the average. If anyone know of any study of hockey players' height (teenagers and/or adults) where I can find out these parameters do not hesitate to contact me. I know some of you are statistics nerds so I am not giving up hope.

After doing some research I have come to the conclusion that humans do not grow any taller after approximately the age of 20. I also found a height growth chart between the ages of 4 to 20 so what I did was extract the part between age 14 and 20 and used the least squares method to fit a third degree polynomial to the extracted part of the curve. What I ended up with is a curve that approximates the chart pretty well. Every player who is yet to be 20-21 years of age will grow taller according to this curve but in order to not get the same adult height for all players who have the same height when they are for example 15 I had to introduce a deviation factor. A player's height will be updated on a monthly basis so after a month has passed a height increment will be calculated; this increment will use the deviation factor to determine the actual increment which will be added to a players height. Both these values will weigh equally much towards the end result which means we could end up with an increment anywhere between 0 or double the initial increment. Using this algorithm I have done some tests with the following results:
[table][th]Initial age[/th][th]Deviation[/th][th]Height (15 years old)[/th][th]Min height (adult)[/th][th]Max height (adult)[/th]
[tr][td]15[/td][td]No[/td][td]180 cm[/td][td]189 cm[/td][td]189 cm[/td][/tr]
[tr][td]15[/td][td]Yes[/td][td]180 cm[/td][td]185 cm[/td][td]193 cm[/td][/tr][/table]
The data in the table above are based on 1 000 000 players and show that the current deviation factor gives an adult height in the range of +/- 4 cm from the perfect curve (no deviation). The deviation factor is currently determined by the default random generator in C# and I am yet to test normal distribution for this part but I will (have to save something for the next update). The interval will still be the same but the distribution within this interval will be different.
I have not given much thought on how players gain weight yet thus no implementation attempts have been made but I plan on doing this next. But a player's muscle mass (strength) has to be considered somehow. I hope to have figured something out in time for the next update. Any input on this is welcome!
I will finish this update by showing you some screenshots of the player development simulator. Please keep in mind that the missing parts mentioned above such as games, injuries, natural regression and player weight changes do not affect player development yet. Once they do, how good a player becomes in the end may be affected. Mental attributes are not improved like they should yet either. Note, the GUI has nothing to do with the actual game.
In order to shorten the post I will link to the screenshots.
Starting attributes for center Mark Johnson
Peak attributes
Practice schedule
Starting attributes for goalkeeper Johan Svensson
Peak attributes
Practice schedule
Starting attributes for defenceman Tomas Straka
Peak attributes (notice he can now play right defence too)
If you want to use attributes in the interval of 1-125 instead of 1-25 and different attributes colors you can
Practice schedule (position practice set to right defence)
I hope you found this post interesting, see you next time.