Deprecated: Assigning the return value of new by reference is deprecated in /customers/paneng.com/paneng.com/httpd.www/somehockeysim/wp-settings.php on line 472 Deprecated: Assigning the return value of new by reference is deprecated in /customers/paneng.com/paneng.com/httpd.www/somehockeysim/wp-settings.php on line 487 Deprecated: Assigning the return value of new by reference is deprecated in /customers/paneng.com/paneng.com/httpd.www/somehockeysim/wp-settings.php on line 494 Deprecated: Assigning the return value of new by reference is deprecated in /customers/paneng.com/paneng.com/httpd.www/somehockeysim/wp-settings.php on line 530 Deprecated: Assigning the return value of new by reference is deprecated in /customers/paneng.com/paneng.com/httpd.www/somehockeysim/wp-includes/cache.php on line 103 Deprecated: Assigning the return value of new by reference is deprecated in /customers/paneng.com/paneng.com/httpd.www/somehockeysim/wp-includes/query.php on line 21 Deprecated: Assigning the return value of new by reference is deprecated in /customers/paneng.com/paneng.com/httpd.www/somehockeysim/wp-includes/theme.php on line 623 Some Hockey Sim

Site menu:

Site search

Categories

 

May 2012
M T W T F S S
« Oct    
 123456
78910111213
14151617181920
21222324252627
28293031  



Going public

So I’ve decided to post a link to this blog in a few places. Big step. If you’re arriving here from the outside, please read the Features & FAQ section to understand where I’m at.

As of now, I give no promises about release date or anything else. Please understand and accept this. Also, I have a pretty rigid feature set and I have my own ideas about where I want to go with this game. Of course I will listen to suggestions though.

Development Update

Just like the about page says, I’ve been developing hockey sims since 1997. This latest installment has been a work in progress since about July 2007, with a long hiatus between November that year and May 2008. However, at this point in time, I’ve come further than any previous attempt, and here’s a run down of the current project situation:

  • Flexible League Structure - 70% (only handles even amount teams)
  • Simulation Engine - 85% (Minor tweaks missing)
  • Standings/League Leaders - 100%
  • Player Generation - 95%
  • Schedule Generator - 90% see first item, I’d like to change this
  • GUI - 50%
  • Multiplayer Stuff - 60%
  • Setting lineups & Tactics (80%)
  • Minor Leagues (15%)

Not to mention non existing features that are planned…

  • Playoffs (High)
  • Salary negotiations (Medium)
  • Coaches (High)
  • Trade AI (Low)
  • Roster AI (Low)
  • Statsbased league setup (Medium)
  • HTML Output (High)
  • Season to season transition (High)

As you can see, lots of things aren’t ready yet. The indicator within parenthesis is my priority rating for each of these items. You might wonder why AI is so low, but that’s because my current priority is to have a multiplayer sim or a “God Mode” sim at first. This might disappoint some of you, but right now that’s how I feel I’ll be able to get something out there in a reasonable time.

Development Tools

Some Hockey Sim is developed using C#. For those of you who don’t know much about programming, this is one of the “dot net” programming languages part of Microsoft’s Visual Studio suite. Unfortunately, dot net is still not platform independent, though I know that there are attempts at bringing the framework to Linux, not sure about Mac.

This means that, unless you run some sort of Windows-emulation, Mac and Linux users are unfortunately not going to be able to run the game.

From a programmer’s point of view, however, I must say I absolutely love C#. The language is so much tighter than the old Visual Basic that I used exclusively up until about 2 years ago when I first decided to really get into C#. Unlike VB, however, C# wasn’t being used in my company at the time, so I set out to learn by myself. Best way to learn is to actually code, so I found a few fun projects to learn with, among other things an adaptation of a pen and paper “junior” hockey game.

Another great thing about C# is that you can use code that you initially develop for Windows in web-solution. So who knows, maybe there will be an Online version of Some Hockey Sim at some point :).

Player Traits

A starting note, this post describes an undeveloped thought, though pretty detailed. That means I have a plan that’s not coded yet, and therefore not tested to see if it creates unbalanced statistics.

I got the idea about traits primarily from an online soccer league named XpertEleven. Some of you may have heard of Hat Trick, and while they might have the same feature, I wouldn’t know, so the inspiration is from XpertEleven.

In XpertEleven, players are only given one rating.. 1-10, so to give their players a little more “personality”, I assum, they’ve added traits such as “Goal Thief”, “Injury Prone”, “Smack Talker”, “Natural Leader” etc.

Even though a 90 Scoring might indicate a sniper in SHS, I felt that I at least wanted to test the idea of a “Sniper”-trait. As for Injury prone, this is something I’ve always preferred to an “injury” rating between 1-100. The same goes for some interesting things such as “Irritating” (Sean Avery), “Fighter” rather than a Fight Willingness and/or a Fight skill. Also, Leadership as a trait appeals to me more than a rating.

So.. I’m enlisting anyone who reads this blog to help me come up with traits and a small description of how they could be used.

Here are a few I’ve come up with:

Sniper

Players with this ability/trait have a natural ability to spot an opening. When approaching a goalie, the world almost slows down, and they feel like they have all the time in the world to select where to shoot. While a 90-scorer will have a very accurate shot, a 50-scorer with the sniper trait might not beat the former in an accuracy contest, he might still outscore him come game-time.

Injury Prone

An acquired trait. This player plays a very physical game, seriously affecting his body’s ability to regenerate after injuries. Because of this, he runs a higher risk of getting injured. While a player might start without the trait, there’s always a chance of gaining this would he get injured during a game.

Hard Hitter

This player dishes out harder hits than regular players, which have a tendency to increase the chance of an injury for the target.

Born Leader

Having guys like this on the team will help everyone, especially the younger players, and especially in situations when the team is faltering. Unfortunately, having leaders’ whos’ personalities clash might cause disturbances in the locker room.

Pest

A player who’s got the trait “Pest” is someone you love to have on your team, but hate playing against. In situations where he’s called for a penalty, there’s a chance he’ll talk someone in to come with him. Someone from the other team that is. Sometimes, he might even get an opposing player to “lose it”, and without getting a 2-minute rest himself, gives his team a power play opportunity.

Coaches

Coaches are an important part of hockey. From a simulator’s point of view, they can both be a frustrating part as well as a big help. I know some simulators see themselves as the coach, while others prefer to “just be the manager”. For SHS, I’ve decided that you’re not the coach, you are the manager, but you still have the chance to influence the manager’s decisions.

When it comes to lines and tactics, for example, you can always ask for the coach’s opinion, but you’re free to set these yourself. But a coach doesn’t just set lines and tactics, he also influences the players, and finally, he’s also the one who’s blamed when a team doesn’t win.. at least partially.

The question I’ve asked myself during all these years, however, is “How will two coaches differ”. The easy answer is of course through ratings. But how do ratings make coaches create different lines for example? Is it a matter of how they rate a player? or is it more about how they want to play?

I don’t particulary like having coaches rated 1-100 in x skills. To me, coaches in the NHL/AHL/CHL are all good coaches, they just don’t share the same philosophies. Is Hitchcock a remarkably better coach than Maurice, for example? Is Tortorella better than Kevin Stevens?  Not really, they just have different ideas on how to combine lines, play hockey and how to talk to their players.

I can see Experience as a potential rating, but I don’t think coaches are better or worse at evaluating talent at the NHL-level.

So how would we apply this to a simulator.

I’d say we need to first categorize areas where a coach needs a “personality” description.

Hockey Philosophy (Offensive, Neutral, Defensive)
Roster Philosophy (Younger players, Veterans, Mix)
Discipline (Hard, Neutral, Low)
Motivator (Good, Neutral, Poor)

I’m not sure what else might be used, but the idea is (except for motivator it seems), to not have a bad to good scale, but rather traits that are both good and bad depending on a situation. For example, a coach with hard discipline might push his players to extreme stamina sessions, developing their stamina related skills more than hockey skills. This might also affect players who’s Work Ethic is low negatively. A low discipline coach might be the opposite, stamina is not a prioritized rating during his players’ development, but low work ethic players might shine during his tenure.

I think you see the point.

Remains to see how these traits might have coaches construct different lineups using the same rosters.

Player Ratings

As mentioned before, we’ve gone with a ratings-setup that sort of complicates things for the historical gamer, since not all ratings can be derived from statistics.

While Scoring and Passing to certain extents are easy to get from goals and assists, you can’t really say that Player X is a fighter just because he’s got lots of PIM.. or that Player Y is the greatest defensive player in the league just because he led the league in plus minus. So most ratings are very subjective in hockey, whereas in baseball you have statistics that give you almost everything you need to recreate a game.

We’ve also opted to add things such as “Play for Winner”, “Loyalty”, etc. A guy with high Play for Winner might actually underperform because he’s playing on a lousy team, since his morale will go down and thereby affecting his ratings. Naturally, morale will be an optional feature, but you see the point.

Goalies are extremely difficult to give ratings to. Win/Loss record is close to useless if you want to statistically replay games, and while only marginally less so, GAA won’t help you much either. Save percentage is the only rating that’s close to giving you a “quality” of a goalie, but even that statistic can be questioned if need be (a good defense in front of a goalie can reduce the amount DANGEROUS shots, but the total amount of shots faced would be the same from team to team).

Inspired by EA’s NHL-series, we’ve given goalies ratings in “Glove”, “Blocker”, “Stick”, “Kick”, “Fivehole”, “Rebounds”, “Endurance”, and “Lateral Movement”. But try nailing those skills based on statistics.

As mentioned, skaters are somewhat easier, at least for a couple of categories, but again, Defense is a hard skill to rate based on stats.

Skaters are rated in the following categories: “Faceoff”, “Scoring”, “Passing”, “Puckcontrol”, “Positioning”, “Defense”, “Intensity”, “Courage”, “Skating”, “Endurance”, “Aggressiveness”, “Strength”.

What I’m contemplating further is adding certain characteristics, such as “Injury Prone” (Injury is currently a hidden rating for all players), “Sharpshooter”, “Talker” etc. Rather than being a rating between 1-100, these characteristics will have the same effect on a situation regardless of who’s in such a situation. A Sharpshooter rated 40 in scoring, might get a +5 bonus anyway when shooting, just as someone rated 80 in scoring. A “Talker” might be better at drawing penalties as well as getting someone to follow him to the box. You see what I’m getting at. This isn’t implemented yet though.

Customization

While several people prefer to simulate NHL-clones, others appreciate the ability to completely customize their leagues. Be it various league-sizes, teamnames or just using a different start-year than the year the sim was created.

I’ve gone from being a stern “real life imitation” to wanting to create my own worlds in sports games. One of my dreams with this simulator is to start in 1910 and create a completely fictional alternative to NHL.. a sort of alternate reality where the players we know of today never existed. At the same time, one of the things I really enjoyed with FHL was to have updated rosters during off-seasons and at trade deadlines and just quicksim a season to see what might happen.

Not until recently have I fully appreciated being able to import a league from, lets say 1974, and “run with it”, i.e. take the NHL from there. This is something I really want to try out.

To be able to this, I have to have a customizable league structure and I need to be able to edit team names, so those two items are obviously high on my list of “musts”.

Customization also helps build a community around a game. Logos, League-files, rosters etc, are a must to have an active and contributing community. For SHS, the first step was to create a “Quick Start” file setup.

The Quick Start file holds lots of information about a “world”, as I call it, such as a list of all team names and their affiliates, names of conferences and divisions etc etc.

Best of all, Quick Starts are fully editable and you can easily create your own.

Playerfiles are a bit trickier. While I would love to have everyone being able to create leaguefiles, I’ve gone down a path where key ratings are supposed to be hidden, especially potential. Therefore, I’m looking for ways to come  up with a “Pre-League” player file, where anyone can modify and create ratings based on a particular year or whatever, and then give a player one potential rating.. sort of overall potential. When starting up a new game then, this rating will be used to fill out the individual potential ratings, but we would be seeing some other things that might vary from time to time.

We’ll see though.. because I would love to see a vibrant community with lots of user created content.

If you have any ideas in the area, let me know through comments.

Rich Multiplayer Experience

When I ran my own FHL-league, all I had for my GMs to “experience” the game was a box-score. No play by play, nothing. Goals, Assists, Points, +/-, PIM, Shots and Hits. That’s it. Sometimes we had a fight at the bottom of the box-score as well. A friend of mine had a play-by-play “viewer” though, and then I saw FOF’s Solevision in his latest game and was sold.

This is nothing against FHL, because I stand by my view that when it came it was pure awesomeness. Sean Bates created a more modern version of Bethesda’s Hockey League Simulator and Wynn Fenwick kept it alive.

However, times change, ideas are spawned and new things become old things.

What FHL did that was great, however, was the interaction between GMs and Commissioner. The HTML-reports were vast and the import/export of lineups was excellent.

What I aim to do is to re-create what FHL did, as well as add features such as a “Game Viewer”. The Game Viewer replays a game, with commentary and an updated scoreboard throughout the game. Now, don’t get to excited. We’re talking commentary here. Like the first few Championship Manager games. I do not have a 2D engine in there.

The Commissioner will still simulate the games on his end, based on the tactical imports from his GMs of course, but the game will not only generate a box-score and some statistical outputs, there will also be a “Viewer”-file created. This file is uploaded to the leaguesite along with the gamefile which GMs will download to their computers, where they can “re-play” the game as if watching it on TV or listening to it on the radio. In my opinion, stats only get you so far, especially in a game like hockey, where players who are invisible in the stats-columns often contribute anyway.

Furthermore, built into the application is an FTP-function, so that the Commissioner doesn’t have to have a separate FTP-program. When he’s simmed his games, all he has to do is press “Upload”, and all the relevant files will be uploaded to his site. The same thing works for GMs. When they’ve modified their rosters, promoted/demoted players, set their tactics, all they have to do is press “Export”, and a file is created and uploaded to the league site for the commissioner to download (also from within the game of course). Users of OOTP will of course only say “so what?”, but this is something just about all other Multiplayer Text Sims lack today. Great addition.

While I do encourage a messageboard for all leagues, I also have an idea of letting GMs communicate within the game, either through “pms”, and/or through trade-suggestions as well as writing news-articles for their teams. Again, this stuff will be uploaded to the server when pressing “Export”.

Replay vs Fictional

When designing the simulation engine, it’s only (so far) been tested with fictional players. We’ve created a player generator and run season after season. This means we haven’t tried re-creating an NHL-roster of any sort, and therefore, I cannot say with absolute certainty that if a Sidney Crosby was created, that he would perform exactly like the Penguins #87.

Creating a fun and immersive text sim is a challenge, as the goal has always been to have a “career”-sim. Players should develop based on your decisions as a GM, and if Mario Lemieux never gets cancer, seeing him crush just about every record there ever was would be a lot of fun. However, to be able to create such a scenario, we’ve had to add elements to a player that might affect their ratings, but at the same time might spoil the “reality” aspect for Replay-gamers.

It has always been the ambition to come up with roster sets for past seasons which are partially based on statistics, but because of all my extra elements, these players might perform differently from world to world.

To make a text-sim comparison.. closer to FOF’s historical rosters than OOTPs. Hockey simply doesn’t have enough statistics to absolutely correctly re-create a player.

What is certain, however, is that there will be at least some flexibility in league sizes. At the moment there are certain restrictions in the code, making it impossible to have uneven league sizes, but as of now, the idea is to have a certain set of “Quick Start” structures that a user can choose from when creating a new world (league).

Player Development

One of the most enjoyable features for in a text sim is drafting young players and watching them evolve into stars. Heck, even drafting a consensus number one pick, who turns out to be a bust, is a fun, because it feels more realistic this way. Look at Alexandre Daigle, Pavel Brendl, Patrik Stefan to mention a few.  Even more fun is to draft a Henrik Zetterberg or Daniel Alfredsson in the late rounds and have him turn out a superstar.

Therefore, player development is a very important feature of a text sim.

Without telling you too much, I will mention that all players have a current rating and a potential rating for each individual skill. The current rating goes up and down based on the circumstances of a player’s career, but they will only “rise” up to the potential rating, which is hidden.

Circumstances that affect a player’s current rating include things such as experience (ice time), surrounding leadership figures (mentors, coaches), injuries (speed skater broke his leg? sorry, skating will take a hit). These things affect the actual rise and fall of a rating towards a potential.

While we’re talking about Player development, and not rating fluctuation, I have to mention the fact that fatigue and morale (if used) will also affect the “on ice” version of these ratings, but it won’t affect the actual number that represents the rating. This number is only modified by the above factors.

For now, the potential rating is hidden in all ways but one. As a GM, you will see an overall rating in “stars”. One star means this guy is minor league material, five stars means he’s a superstar. So from a GM perspective, you will see both the current individual ratings in numbers, as well as a potential rating in the form of stars.

When on the ice, players do have a chance of playing up to their potential as well, this is why it’s sometimes just as efficient playing a young guy with ratings in the 30s but high potential, as it is playing an older player with ratings in his 40s but low potential.