Monday, April 21, 2014

Gridiron Solitaire 102: Heading toward 1.3

All right, it's been a long haul, but I'm finally getting closer to reaching 1.3. I'm guessing it's another three weeks until it's ready, but man, so many things have changed for the better.

I'm in a phase now where I'm focusing on three main issues:
1. Adding more "big images" to support the new presentation style.
This is Fredrik's focus right now, and as he adds images, I just drop them into the game. The code is set up to add images very easily now, and every time one gets added, the presentation improves.

Plus, one of the testers suggested a while back that I needed to show a huddle of cards pre-play, then animate their move into slot position after the user selected a play button. I liked this idea the first time I heard it, but I didn't do it because of the animation. Even a 1.5 second animation would add almost two minutes to a single game, and it's always (always) a priority to never add anything that slows the game down.

Last week, though, I realized I could do it without any added time at all. There's just going to be a huddle image when the play buttons come up, and as soon as the user selects a play, that image disappears and the cards show in their normal play position. It adds zero time, but it's surprising how much it increases the atmosphere of the game. Fredrik's working on finalizing the huddle image (right now I'm using a placeholder image), and I can't wait to see how it looks.

2. Revising CPU AI in the offseason.
With a more accurate emphasis on special teams and their role in the game, I need to modify how the CPU evaluates their offseason needs. Previously, it was simple. I evaluated whether a team was considered successful or unsuccessful--based on wins--with three tiers: successful, unsuccessful, and "gray". So, for example, 11 wins or above would be considered successful. 4 wins or below would be considered unsuccessful. In-between, it was determined by a weighted dice roll. So if you had 5 wins, you were likely to be considered unsuccessful, but it wasn't a 100% chance.

Successful teams spent their first two points improving their two best run/pass ratings (strong teams retain their strengths). Unsuccessful teams focused on their two worst run/pass ratings (taking a new approach).

That wasn't terrible, but it certainly was limited, and now the CPU needs to place more importance on the Special Teams rating, so I'm going to think about how it should work over the next few days and put a new system in place. I'm guessing that it's probably going to be a two-step process: first, evaluate the team style (run focus, pass focus, offense focus, defend run focus, defend pass focus, defensive focus, overall balanced). Having team styles creates a more logical chain of needs--for example, a team with a defensive focus is not going to spend a bunch of money trying to improve their passing rating, because passing takes less time off the clock. They would instead pursue a ball-control, running offense that would take as much pressure off the defense as possible, and they'd also want their special teams to be as good as possible. That's a more nuanced team strategy than "improve the best two ratings". So each team style is going to have a relatively fixed tier of needs, although I'm going to add probabilities instead of having 100% certainly.

3. Bug fixes.
There are a few rare bugs that aren't gamebreakers, but would fall into the "fit and finish" category. I want to eliminate all of them, so I'm trying to squeeze that into 1.3 as well.

Wait, there's a #4.

4. Difficulty tuning.
This could be a real sticking point, trying to adjust the different difficulty levels in response to the new yardage system and some of the gameplay additions (sacks, kickoffs, revised punt logic). Veteran level is fairly well-tuned, but I need to look at Rookie and Champ and see if I can scale the difficulty appropriately.

A month ago, I thought I was never going to get to this point. The game had been taken apart, I wasn't comfortable with how it was playing, and I was frustrated. Now, though, it's playing well again, the new presentation system is much more dynamic, and I can see the release point being reached.

This has also made me realize that it's important to always be able to see "there" from "here". Big changes are fine, but there always has to be a visible there.

Site Meter