What a Month…

canadawomengoldI apologize in advance to my American friends… this will contain a bit of Canadian Gold talk…

So it’s not quite been a month but here we are with our first post since UHS went “Dark”.  I can’t lie…  my focus has pretty much been on taking my son out of kindergarten to watch the Men’s and Women’s ice hockey games.  The games against the USA were especially important…  the Americans had solid (if not, better!) teams than we did…  but somehow we pulled out wins.  The most important (and touching) of the two was the Women’s Gold Medal victory.

Being down 2-0 against the US with a mere 4 minutes left to go…  I started to question if the ladies could pull it off…  I kept telling my son, they have to score a goal NOW…  Very soon, otherwise they would simply run out of time.  Scoring a goal with 10 seconds left would be pretty much useless.  Sure enough fortune smiled upon us as our first goal went in off an American player.  That was the spark we needed.

Then… I gasped in HORROR as I witnessed the lineswoman look behind her and then skate directly into our defenseman…  the puck careened down the ice to the empty net… I thought for sure it was in.  Fortune once again smiled down on us…  Off the post.  Can you imagine what would have happened if that went in?  The game would have been done.  That Lineswoman would have been killed -if she lived here and we were Colombia.sochipost

The tying goal and winner were at least decent skilled goals…  although I was upset that no penalty shot was called I think the power play worked far better for us.

The ladies had me in tears (and to some extent the men, too)…  I was invested in both teams emotionally…  I jumped at each missed opportunity, swore at the refs for bad or missed calls (Japan’s goal on Russia anyone??) and my heart sank anytime the other team scored on us.  In the end we got it done.  We dug in and pulled out victories.  I keep hearing the saying “Canadian hockey players have heart.”  Of this I have no doubt.

On the UHS Front
I’ve been busy applying quite a few hotfixes, 29 in total as of this writing, from between February 9 to February 23.  For the most part I’d like to think that we’re pretty much clear of anything major…  but, as always, if anything comes up, I’ll get on it as soon as humanly possible.

The next build will be coming out this weekend… very likely around the late night Saturday / early morning Sunday time frame.  You can stay tuned to our Facebook or Twitter feed to find out when we’re looking at UHS being back up.

This build will contain quite a few new things and some UI enhancements to make things a little easier to manage.  If you have a look at our Development fourm you’ll see quite a few items marked as “Done. Will be released with next  build.”  If you see anything that you want us to get a move on, please comment on those topics…  if there’s something you want or need that isn’t already in UHS or in the development forum, please feel free to start a new topic.

UHS Goes Dark

Full_Moon_Rising_DSC_0024This coming October will mark UHS’s 10th anniversary (9th of it being available for testing).  Since then we have come a LONG LONG way from being just a simple page of links.  We have put in a TON of effort into figuring this thing out and making sure that by the end of the day we’ve got a pretty solid simulator.  Going live with UHS Dark is a huge milestone for us.  This is version 4 of our site which took over a year to get done.  The project started out simply enough: replace deprecated mysql functions.  That was all well and good…  but it eventually became more complicated.

As I began replacing the deprecated functions I noticed that the code was pretty inefficient.  There were multiple calls to the DB for (sometimes) the same information.  There was code doing extra work where I could have just used a simple built-in php function.  As I began to optimize the code, I sat back and thought…  this would be a GREAT time to give the whole damn site an overhaul.  My own health issues factored into the decision to do the overhaul as well as why it took so damn long.  I knew that the first thing I wanted to do was to make sure that UHS would be able to continue functioning long after my departure.  I used to have to manually create databases, approve leagues, delete leagues and so on…  It wasn’t a quick process.

That has all changed.

Now that League creation and management is completely automated I can focus on my health and churning out some new developments for the simulator (we will NEVER, EVER be done).

So, you’ll see that I use the term “we” and “I” interchangeably.  This is because over the years, a TON of people have helped us test and development the simulator.  Besides myself the main contributor is Jon Lau.  He laid the foundation for the new Retirement logic, Re-rate logic, AutoGM logic and even the built-in messenger.  I owe Jon a debt of gratitude.  Besides Jon, these individuals (and leagues) have really helped us move along our development path (modifying existing code and adding new tools) as well as helped us work out technical issues: Michael Aldred, Trevor Cook, Greg Diduszko, Melvin James, David Longhurst, Nick McLaughlin, Marco Viegas, The-James Hockey League and MANNHL…  I’m sure I’ve missed someone, for that I apologize…  but consider this: if you have used UHS in the past or are using it now…  you’ve helped us… for that, I thank you.

So…  what has changed?  Well…  the whole damn UI is completely new.  Basically I mapped out all of the UHS v3 and ported the code over to Dark.  Once there I either completely gutted the page / tool or made just minor tweaks when I thought the code was good already.  There are so many changes I really can’t list them all.  I will, however, let you review the Build Notes for this release.  I will say that new developments are probably going to be at a minimum until I feel we are fairly stable.  If you see anything wonky, please contact me through the technical issues forum or open a support ticket.  Thank you all again for your support and interest in UHS.


BUILD 6000 – February 8 2014
This is the release of the fourth version of UHS… or better known as UHS Dark. v1 was a simple gathering of links. v2 was VERY similar to the UHS you’re used to… white background, fairly simplistic display. v3 had a ton of CSS additions in order to streamline everything as well as my attempt to get into subscriptions. And now… here we are.

Why Build 6000? Not sure. It’s probably a LOT more as every single piece of logic was reviewed and streamlined. I’ve learned a lot in my nearly 10 years of programming UHS and I’m sure I have a ton more to learn. I’ve made a crap-ton of mistakes and have learned from them (Demographics anyone??)… hopefully the number of mistakes in the future will be far less than the ones we’ve had in the past.

Why Dark? Well… I do most of programming on my computer in the basement. SOMETIMES I sit here in the dark with only the light from the window shining in… so while I can see… it’s pretty dark in here. I came to realize the UHS v3 site was hard on the eyes when there was no room lighting… I also freely admit that being a World of Warcraft fanatic I’ve been using Wowhead.com a ton over the years… and it’s dark-themed design influenced me greatly.

How Did This Start? It began with the attempting to upgrade all the php/mysql functions that were about to be deprecated. All those mysql_query functions had to be replaced and so as I went about it through the pages, I found myself optimizing the code. For instance I’d routinely make 2-3 calls to the DB for the various data when I really only needed to do it once. When I started optimizing I realized this would probably be a great time to go over everything with a fine-tooth comb and make sure the fundamental programming was solid.

I started with the re-design for the Forums. That was released pretty early on. Yes… I know the search functionality is gone… I do have plans to restore it (eventually).

With my own health issues, I knew I wanted to get a version of UHS where if anything happened I could step away and not have to worry. I used to have to manually create / approve new leagues, execute maintenance scripts, remove stagnant leagues and so on… I have an arrangement with a long-time UHS-supporter and UHS-developer Jon Lau that if anything were to happen to me (ie. my untimely death), he’d help maintain things. While my health issues have not gone away I finally do have answers (partly) to what’s wrong with me. My diagnosis sucks but at least I know I’m not going to be dying any time soon.

So… I was thinking about listing the work that I did here like I would for a regular build release but to be honest this is a bottom-up rebuild of everything. Even the sim engine has had code optimization so it will run faster. I think it would be easier to go over the changes that have been made… some things were cut and other things added.

Banner – instead of a big honking “Ultimate Hockey Simulator”, I thought it might be nice to see some random hockey images to changes things up a bit. Of course I’ve kept the UHS “cog” (which is really just a free clip art cog) because I feel that over UHS is a simulator that works. It’s not flashy or fancy. It’s what folks need and it’s free.

Free UHS – So while the simulator is free, I’ve move around some of the banners and put up a few new ones. It’s really the only way I’m going to even try and make a little something from this. As always, if you are interested in buying ad-space, please contact me directly… SERIOUS INQUIRIES ONLY.

Home Pages – You now have a Team home page where you can see the stuff that’s been happening for your team. The old GM Home page was sort of split up into the League home page and Team home page. You’ll find your recent activities, last games, roster status, injuries & suspensions and upcoming games on the Team page. On the League page you’ll find the latest Activity in the league as well as notifications for your team.

League – Under the league drop-down you’ll find Activity, Entry Draft (along with Prospects and the Picks you have), Free Agency, Rules and Stats Central.

Team – Under the team drop-down you’ll find pretty much anything that relates directly to your team: Finances (as well as finance controls), Game Roster, Personnel, Scouting, and Trade Central. I’ll also point out that the Personnel section has its own home page… you’ll find a summary of your team by player type and be able to Manage your Coach, protect your players, retire jerseys and purchase Makeweights (if applicable).

Coach Rerates – previously only one attribute would have a chance to get rerated. Now all attributes will have a 25% chance to change which means coaches will evolve far more than they used to and be more of a factor in the game.

Coach Free Agency – Coach Free Agency is now going to mimic Player Free Agency. You make a bid and hope you’re the highest bidder at the end of the bid period.

Coach Salaries – Due to a bug, coach salaries were never being applied to the salary cap despite the league setting being set that way. Coach salaries are now factored in to league salary cap and min if the COM has chosen to enable that setting. Regardless of the setting teams will now have to start paying their coaches.

More Salary Stuff – Speaking of a league salary cap… COM’s can now set the league’s salary minimum. This is the minimum amount of money you want a team in your league to be spending on salaries. Additionally, the COM can also set the minimum percentage of a new salary that a team needs to re-offer to a player. The default is 75% of their previous salary. Finally, a COM can set the maximum number of years left in the player’s contract to allow a new contract offer. The default is 1 year.

Rookie Qualification – The logic to determine which player is a rookie is now following the NHL guildlines: 25 years old or younger and having played at least 25% of the pro team’s regular season games this season.

Old Formatting – You’ll probably find a few things here and there that may be using some of the old css schemes. That’s okay… eventually we’ll get ‘er changed. This took over a year to complete and while I wanted to make sure things looked good, there were a few times I had to sacrifice making things look perfect over making sure things were still functional enough to be included with the launch.

Injuries – Only one player on your team can get injured in a game. Previously there was no limit so sometimes this would play havoc with the sim engine as there would not be enough players left to ice a team (rare – but it happened occasionally). The number of games a player is injured is now going to be completely random. The player’s Injury attribute will only affect whether the player gets injured or not. Additionally, career-ending injuries will ignore the age of the player… previously only players that were 31 or older could sustain a career-ending injury.

New Players – Newly created players will have a minimum injury rating of 6 and a minimum injury rating of 4. This is being done as junior leagues were seeing a crap-ton of injuries and penalties. Makeweight players attributes will now range from 1 to 5 instead of 1 to 3. This is being done so Makeweights have more of an impact on the team instead of some guy that’s probably going to be injured anyway.

Scoring – The base scoring percentage has been increased from 7% to 9%. This is due to us FINALLY finding and fixing the bug that gave away teams an unfair advantage. The bug would basically allow a player skating from center ice to suddenly appear deep in the home team’s zone, resulting in far more shots on net. Because this bug was so hard to find, we put in an artificial modifier to give home teams a bonus 5% chance to shoot AND score. We’ve removed that bonus now. The only advantage a home team has is a bonus 5% chance to win face-offs. Since the bug has been fixed scoring went down, so we’ve bumped it up to 9%. We might go as high as 10% in a later build or put in a COM control.

Auto-GM – The Auto-GM logic has been touched up with some extra logic from Jon Lau. It’s more robust now when dealing with trades coming in from human controlled teams as there were certain things you could do to go nab great players from the AutoGM (ala NHL94).

Stats – The Player & Goalie League Stats have been expanded to show more categories. Teams now have a League stats to show things like the Power Play and Penalty Killing, etc.

Did Not Make the Cut – There were a few things that did not make the cut for the re-design: The league setup wizard (by default leagues are set up with NHL anyway); Ad-Hoc games (the little puck icon) is gone; Manual Suspensions are also gone, COMs will now choose whether suspensions are handed out automatically or if there is a game penalty called on the play; WebTemplate control is not included in this release of the sim as we’re going to do some re-work on the template and the controls as well.


The Final Countdown

The_Final_Countdown_singleThe countdown has started.  UHS as you see it now will cease to be this coming weekend.

I’m planning on taking UHS offline early Saturday morning (February 8th 2014) at around 1am (read; very late Friday night) so that the new version of UHS can be deployed.  I’m expecting there to be about an hour or two of downtime… maybe more…  but overall the goal is that UHS should be up and running when everyone wakes up on Saturday morning.  We’ll be posting a final warning before we take the system down and will let you all know how things are going as we progress.  Once the system is available we’ll give everyone an all clear.

There are going to be a TON of changes and I’m sure it’ll take come getting used to the new layout / design.  On the other hand I think you’ll appreciate UHS being a LOT easier on the eyes now.