The first Development Diary is a writeup on Historical Play in FHM from one of the researchers.
First, by way of introduction, my name is Jeff Riddolls. I’ve been working on Franchise Hockey Manager since shorly after the game was first announced; before that I spent several years working as researcher (among other things) on the NHL Eastside Hockey Manager team, and I’ve been playing various computer and board hockey games going back 30+ years. I’ve been doing a variety of different things for FHM, but my pet project is the historical game. I’ve been playing OOTP Baseball’s historical mode for many years, and, like a lot of you, I’ve always wanted a hockey version. And now here’s our chance.
I realize that there are a number of different ways OOTP’s historical game can be played – using fictional teams or players, modifiying league structures, and so on. But this preview will just focus on FHM’s basic, vanilla version – historical leagues with historical players. I don’t know at this point how many other options will be available; that’s probably dependent on time and available ease of coding, so that will likely be addressed by Sebastian in more detail at some later point.
That said, let’s start with the basics: the game will let you pick a season and play from there – if you want to start in 1955, you get the teams and rosters that actually existed then. Every year, the new rookies will be added, and depending on your preferences, you can have them either show up on their historical teams or be available for drafting and signing. Hate that your team traded away a future Hall of Famer for a guy that broke down a couple of years later? Now you can avoid the mistake. Were they ruined by year after year of incompetent drafting? Well, do it yourself and see if you can make better picks. Been waiting four-plus decades for a cup? Go win one yourself.
The Player Ratings
Obviously, the nature of baseball statistics makes it easier to create an accurate picture of players just using the numbers. Hitters will hit precisely the right number of homers, pitchers will walk the right number of guys, fielders will make the right amount of errors. With hockey, we’re not so lucky – often all that’s available, particularly for older seasons, is a handful of basic counting stats like goals and assists. There’s really no way to make workable player ratings from those, and you’re left with the immense task of manually rating each player. Not an attractive option for a small, volunteer research team, and it gets vastly more daunting if it has to be done for every season a player was active. What to do, then?
We came up with a couple of answers. First, to ease the task of entering all the ratings manually, there’s the template system: break down players into various types (for example, offense-oriented wingers who tend to shoot more than they pass and don’t take a lot of penalties, tough stay-at-home defencemen, and so on – we came up with about 50 different ones) and then build a fully-rated database entry – the template – for an “average NHLer” of each type. Then, every real player gets assigned one of those templates and four simple “target” ratings – offensive, defensive, mental, and physical. If the target is above-average, for example, the ratings the player gets in that group are raised from the average level in the template; below-average and they go down. (Additionally, any specific attribute ratings that are entered for a player override the template numbers.) So by selecting a template and entering four numbers, I get a reasonably accurate depiction of a player without having to enter 30-40 individual attributes.
The second answer deals with the need to enter ratings for a player’s whole career. It was inspired by a similar system in OOTP’s boxing game, Title Bout Championship Boxing (check them out just a couple of forums down from us on this board.) Every player gets five career dates entered – start, pre-prime, prime, post-prime, and end. Those dates are used to further tune the ratings in the templates, so if a player starts the game in a season right before his prime, his ratings will be lowered a little to reflect that.
Now, will these systems give you the kind of statistical results that OOTP does, where the numbers can match real life almost perfectly? No, there’s just too much abstraction involved, and there are some things that just can’t be handled accurately like major mid-career changes in a guy’s playing style. But I think this will get us very close, certainly enough to give you an accurate picture of what a player was like and how he fit into the context of his team and league. We’ve given the template system a test run by using it to help calibrate the ratings guidelines for the current leagues (it can be used for active players as well), and if I showed you the ratings it was producing, you’d have difficulty telling that they hadn’t all been entered manually.
And, as I mentioned before, the templates can be overridden by entering specific ratings. That’ll be an ongoing process that makes the historical database more and more accurate as time goes by. To make an analogy, think of a player’s ratings in this first version as a simple pencil-sketch portrait of the player, something that over the years will get refined and coloured so it ultimately becomes a nearly photo-realistic rendition.
The earliest year available will be 1947-48. I know a lot of people were hoping to be able to start a lot earlier, but with the major rule changes the game was undergoing up until the mid-forties, it just poses too much of a challenge to adapt the game engine to them in the first version of FHM. Next time around, we’ll work on getting the game able to handle things like forward passes being illegal, minor penalty shots, and so on, and we can go back further. 1947 is actually a few years past the point where the rules had settled into a recognizably modern form, but starting there also gets us clear of the odd effects wartime replacement players would have on the database.
Unlike OOTP, the historical database will not be in a physically separate file. Everything is in one database. That complicates things slightly with currently active players, but we’ve figured out some ways to make that work. I don’t want to get into too much detail about the nuts and bolts of how the database works, but it makes some interesting things possible for the historical game – a few months ago, I would’ve laughed at the possibility of incorporating non-major leagues, but the way the database handles league structures and rules, that just might be possible in the far future, coding complications and research material permitting.
Right now, the bare bones (all players and their career records) are in place, and I’m in the process of doing the ratings. Another major difference from OOTP: players will not have “missing” seasons. If a guy’s career consisted of a single game in the 1955 playoffs and then 15 more seasons as a journeyman minor leaguer, when you start a game in 1965 he’ll still show up as property of the team he belonged to then. That will avoid the typical OOTP problem of a lack of players in early seasons of the historical game; you should always start with at least half a farm team or so of surplus players. Time permitting, I’ll also try to include significant players who never made it to the show (although I’m not going to do totally ahistorical things like making Soviet players available in the pre-Gorbachev years. If someone wants to edit them in, they can.)
The existence of the WHA presents a bit of a complication for us. If you’ve ever tried to make the Federal League’s two seasons work in OOTP, you know the game struggles with handling a league that suddenly appears mid-game and then shuts down a few seasons later. And the fact that the WHA had teams fold, sometimes in mid-season, makes for even more problems. So, our plans are a bit tentative at this point. Ideally, we’d like to have it work just as it did in real life, but if that proves impossible, there’s a backup plan that will have the league’s presence in the 70’s abstracted in a way that will affect the pool of players available to the NHL.
I’ve never been a fan of the way minor leagues worked in OOTP’s historical mode. Rather than try to make them work here, the minors will just be abstracted as a “reserve list” where teams can place a limited number of players not on their active roster. In a later version, maybe we can make this a little more realistic, but this is how it’ll work for now.
Stats in Different Eras
One of the nice things about the game engine is its adaptability to different levels of scoring and penalties. So the 1980’s can look like the real 1980’s in the game, with 100-point seasons being commonplace and a sub-3.00 GAA outstanding.
Well, that’s the basics of it. Nothing vastly complex, but it should give us the essence of what we want: a hockey game with a real history-based mode. If anyone has questions, we’ll answer them as best we can. I know that, in the interests of keeping this short and accessible to everyone, I’ve glossed over a bunch of specific issues OOTP historical players will be wondering about. And, of course, please keep in mind that the game is still a work in progress and very much subject to change, so anything I’ve described here might turn out a bit differently in the final version.