8/26/2013 5:55 PM
This will be my pinned thread to report on my status. 

1. Sack information was currently strewn throughout the code, I've created a stand alone sack checker that will allow for modifications to the concept and the numbers to happen independently of the flow of the rest of the process. It will only use the pieces of information (like pass pressure, etc) that pertain to sacks. 

2. Similar structures have been set up for injuries and penalties. These will also create an independent system that will only affect the plays depending on the likelihood of them happening.

3. Passing - Passing is currently been parsed, simplified and organized. This was a major undertaking as the passing logic in the game is by far the most complicated. Well, it was. These simplifications will allow for easier adjustments of inputs and allow for less random results, which allow for more deterministic outcome. This means that instead of saying that random results happen, I'll be able to inform the users that a certain result will happen only a certain percentage of the time in that situation.

4. Rushing - I've begun parsing the rushing into it's own category as well. This code is not as complicated, but still very verbose. I'm halfway through the steps for rushing and looking to finish that up in the next couple of days. 

5. Debugging - I've taken a cursory glance at the Tight end issue, and as I get to the "fixing bugs/modifying inputs" section of this process these issues will be handled in a much more timely manner, for now, the structure of the game has taken my priority. 

8/29/2013 11:48 AM
August 29th.

1. Rushing Rushing Rushing - Deep diving into the structures of the rushing. Currently each step of rushing has certain components: Blocking, Tackling Attempts, Tackling results, and Play results.  I've simplified Blocking and am finishing up the tackle attempts. This includes creating the line factors and values associated with breaking tackles and avoiding tackles as well as defensive benefits of having a better rush blocking scheme. 

9/3/2013 10:26 AM
September 3rd.

1. Rushing - Having been through rushing, one of the issues I'm having with play calling is the complexity involved in each decision. Besides the coding issue of the complexity in the code, there is also a lot of complexity used in the calculations involved with each decision. Most of the structures needed to simplify the code for rushing are in place now. This weekend I started looking into creating a simpler process (starting with rushing) by taking out some of the probabilistic determinations and replacing them with a more static approach. Ex: We talked about this for passing earlier, but it was mentioned that having the pass block win or lost each play based on probability isn't really a necessary. Instead, I'm looking to make this a static likelihood based on the players in the unit, and adjusting the rest of the play accordingly. Essentially there would be little difference in the final results (unless they are differences that better the results), but make it a more deterministic and easier to adjust to account for a more realistic outcome. 

2. Passing - I'll be going through a similar approach with passing as we get into this week. The hope is that many of the decisions will be able reusable to some extent. 
9/10/2013 10:02 AM
1. Rushing - I've now completed most of the rushing process and made it pretty simple. I've taken out some additional complexity, and I'm testing rushing against some various standards that were in place before. I'm also adding fumbling back in today. I took it out, and made it a separate component that can be controlled by the likelihood of the event based on the results of the attributes of the tackler(s) and the attributes of the ball carrier. 

2. Receiving - Receiving has always been a subset of rushing essentially. When the receiver catches the ball, he is then considered a rusher. This is great conceptually and it allows for reuse of some code, but the implementation created a bit of a nest of code that was unnecessary. I've split receiving out into a separate category from rushing, and also created an input file that will allow me to control the Yards after catch numbers and the tackling. 

These changes are rather large, and as I prep the release this week, I'm asking for a complete check into what you see. I'm looking for any numbers that don't pass inspection, including interceptions, rushing yards, yards after catch, time of possession/number of plays run, targeting locations, etc. I've modified thousands of lines of code and removed thousands more. I've added my own structures as well, so there will be a couple of bugs, but for the most part the system outputs (numbers wise, not PBP) are similar to the previous model. This is just to ensure that the processing is similar and that the numbers I'm going to tweak are by design and not by erroneous code. 

9/13/2013 10:34 AM
This next update has some significant changes, so I'm debating the right time to release these changes. Since we are at the end of the season, I might wait till early next week to set this thing out there. 

I found the issue with the Tight Ends. Turns out the location distribution settings were incorrect in setup. I've fixed this bug and this will remedy a few of the weird things that we have been seeing. It fixes the tight end/running back issue of not getting any passes. It also fixes the issues with where the passes are being thrown. The current logic will try to hit a destination, and if that is not possible it will throw a very short pass behind the line of scrimmage. It's a fail safe to keep the game running. This is why some of the receivers were being targeted at a location and then moved to very short. This will fix that bug as well. 

I'm also fixing up some of the output for the Play by Play. The detailed information that gets displayed in debug play by play is just a summary, and remember, this will not be available when the beta is moved to alpha. 

Also, I "fixed" the starters issue. I've been debating some strategies on starters and I'd like to start a new subject on this category to get some feed back from the people using this metric. This starter issue is resolved.....but there is still a possibility of the guy on the first play not getting a start. I'll explain in more detail on a new thread. 

9/16/2013 4:51 PM
Released new version today.

NOTE: There are going to be some things that I didn't account for, but there are plenty of new things to keep an eye on. Currently the Debug Play By Play will not explain much, I took out a bunch of it, and am currently going through and replacing it. 

Passing and Rushing are both completely different flows. They run much of the same concepts, but the structures are completely different. The testing that I have done on this will not account for every play, so you may notice some weirdness. I'll start a thread, let me know if you see anything weird. 

Besides Play by Play, I'm also working on getting fumbling in. It wasn't in an appropriate state for this release, so currently there is no fumbling. Hopefully later this week will be a release with both of those things. 

I've added to my task list with the list from katz. Here are those suggestions, and the current progress and priority. In addition, I have a separate list of things that need to be adjusted too. Still a bunch of work, but in these next two weeks I'm looking to settle this thing down in to a stable condition that achieves most of our realistic expectations.  

TE not catching passes HIGH FIXED
WR getting short, medium and long passes at the line of scrimmage HIGH FIXED
WR catching passes behind the line of scrimmage when they aren't supposed to run a route there HIGH FIXED
Player pass distribution (RB - FB, WR) HIGH FIXED
FBs don't catch passes either.
DB all over the field... HIGH FIXED
Starters not getting credit for starts MEDIUM FIXED - REWRITING FLOW
QB getting more tired than they should  MEDIUM TWEAKING NUMBERS
QB throwing two passes per play MEDIUM WORKING ON Play By Play
Wrong players blitzing MEDIUM TODO
Large (>10%) offensive line advantages not providing enough effect for run ave or pass blocking results (sacks) MEDIUM TODO
Correctly guessing run/pass has far too much importance on play results. MEDIUM TODO - TWEAKING NUMBERS
No one missing extra points LOW  
No INT returned for TD's LOW  
Phantom field goal after game over on box score LOW  
Blocked kicks? LOW  
Not able to have more control over defensive settings (% choice - but end result is either all pass or all run) LOW  
Stamina/fatigue needs review - not enough impact as yet between high and low stamina players. LOW  
9/19/2013 2:59 PM
I'll be trying to do a release today or tomorrow for the fixes to tackling, and then I'll work some this weekend and early next week to try to get an early version of my new play by play released as well. Ok, on with the details. 

Tackling was improperly set up. When testing the application I was focusing on offensive statistics and making sure the right information was being called and I broke tackling. After further investigation, tackling was not set up properly and was referenced at various places throughout the code. I've moved all of the tackling results to the final results data, and hooked up all of the necessary statistics. 

PBP - I've spent the last few days focusing on PBP. I'm pulling out all of the text strings that are scattered through the code, and creating a factory that will allow me to easily pull the strings when I need them. Besides that, the PBP will soon be based on the results of the play, and not evaluated till after the play is complete. The distinction here is that much of the play by play code was distributed throughout the various other sections of the game, clogging up logic and complicating the flow. This will be separated out into it's own class and simplify the flow of the game and the debugging of the play.

Next Up: Once play by play is done, I'll be looking to modify the advantages of play call and game planning. Play calling in particular is kind of a tough subject for some, and it stands to reason that it's difficult to randomize play calls without user input, but allow them to have significant impact. I'll be looking to manage that impact across the game, rather than by the play. For example, if you are calling run all the time, and the other team is calling pass all the time, the individual plays should show some increase in the offense, but the real advantage will be across an entire game.

In addition to play calling, game planning, or formation has been seen to have significant results as well, maybe too significant. I'll be running through some tests to see what kind of results we see from game planning mismatch, and I'll be looking to normalize those over the next couple of weeks as well. Getting the flow of the game to a more appropriate level.

NOTE: One last thing, it was brought to my attention last week that the testing base has felt neglected by WhatIfSports. I have felt this to be a disservice to you as your contributions have significantly influenced the game. Thus, I've been talking with management and they agree that your help has been important and we'll be working on some lists of those that have helped through this process.  When the beta version is finally released, I will try to give "credits" where credit is due. If I haven't said it enough, thanks for all of your help, I really feel like this last month your help has been needed in progressing the game. Of course, this next month is going to be the most critical, so stick with me. Now I'm at a point where I'm more comfortable with the structures in the game, and I'm looking to adjust the numbers and influence to make this thing a real powerhouse. I can't do that without all of you. Thanks, and I look forward to a very fun month. 

9/25/2013 3:58 PM
New release was put out last night. Sorry for the late notice, I was hoping to get some of the play by play information in there. Looks like I won't be able to get another release out till tomorrow hopefully. Anyway, the latest release has some adjustments to the timing of plays as well as the bringing tackling back. I restructured the tackling system. Before it was processed as part of the steps of each play, I've pulled the information out and added that to the result information. The result information now is self contained and will be easier to process all of the results of the play, for stats and for play by play.

Next Release: 1-2 days
PBP: I've finished up rushing. The current play by play uses a resource manager to correctly process and store keys and tokens. Then on display it replaces those with the necessary strings. Unfortunately, the Extended Play by Play did not use a similar protocol, and instead placed the strings within the code. I've taken the strings out and stored them in a resource manager so that individual strings are much easier to manipulate. NOTE: As the play by play becomes more available please feel free to point out any grammar errors or other confusing text within the strings. I'm working on passing right now. Currently there is some expanded play by play for passing, but I'm working on moving it to the reusable resource structure. Unfortunately, the Database will still store the strings the same way for now, as this storing has taken a bit of a lower priority right now. This means nothing to the UI or the users, just that there is unnecessary waste within our database. 

In addition, for the next couple of days, I'm going to leave the Key at the end of each of the strings so you can see what caused that to print out. Also it will help me with any suggestions on the text. Here is an example of what that would look like
As we get closer, I'll reintroduce multiple strings for the same event, but for now I'm keeping it simple. It will be a little boring to read, but it will be easier to follow. 

9/27/2013 9:55 PM
I finished up (preliminary) changes to the Extended play by play. I've included the KEYS in there, so if you see something you don't like, please include the KEY in your message about errant PBP as well, that will help me investigate. I'll open a new thread for it now. I'm looking for any misinformation, KEYS that show no strings, or generally confusing phrases that could be cleaned up. Feel free to offer any suggestions on wording, I can't guarantee that they will all go in, but if you are so inclined I will read them. The expanded play by play should fix many of the issues we were seeing before with duplicate information because it's a brand new system. I've rebuild the play by play from the ground up. I used many similar strings, but the rest of the system is brand new. That means that there will be some bugs (I found 4 last night that I fixed before I pushed the new release.) 

Besides the PBP, the number of plays has been modified and fixed. It will now run around 145 plays per game given a standard configuration. Of course this is an average, and depending on the play calling this number could change. 

Next update: We are getting down to it now. I'm feeling much more comfortable with the structures of the system, and how things are laid out. The next step is to play and tweak some of the numbers. Run some tests and verify that the numbers are what we expect. This week I'm going to concentrate on passing efficiency, line discrepancies, the number of defenders on a receiver (I've seen what would appear to be an abnormal number of 3 defenders covering receivers.), sacks, interceptions, adding fumbles back in and testing those too. Also, I'll be investigating the overall influence that the play call chosen influences the play. I'll try to post some numbers on here when the results come in.

Now is the fun part. We are getting close to a product with which I'm happy. Just need to make sure that all of the numbers can be explained and make sure all of the details are correct. Thanks again everyone.  

10/5/2013 3:02 PM
HEADS UP! This is the first release of the week that will have some serious changes to the numbers in the game.  

I'm continuing a series of tests this week that verify and alter the results as necessary. I've run some on play calling so far, and I'm looking into the influence of offense and defensive line. I've made some tweaks to be more dependent on the lines and less on the play call, but I think I can take it a little further.  After that, I'll look into the weight of attributes for the defensive backs, fatigue, and then general scoring rules. 

I've moved the passing results to a more stable calculation. and the same with the rushing. I've made the blitzer have a bigger role on sacked plays and I've decreased some of the discrepancies on defensive play calling for passing. I think I can do more with this in passing, but I'm going to look into rushing now for a bit. 

Other notables for this week. I've fixed up most of the play by play issues, I took out the keys. I've also eliminated the starter button, and will explore getting rid of the promise to starters in the recruiting (which will essentially make the idea of starters moot, though it will still mark the starters. ) I should post this on the thread that just opened up too, but the new logic for determining starters is as follows. 
1. Get the most used formation from the offense. This determines how many players from each position will start. 
2. The players that play in the most plays in those positions will be marked as a starter. 

MONDAY and TUESDAY - Tweaks and Testing for OL, DBs and Rushing.
WEDNESDAY and THURSDAY - Fumbles, Injuries and Penalties. Any additional testing that I can get in. 
FRIDAY - Some final tweaks to put the game in to a stable condition. 

Obviously after friday I'll continue to tweak the system to match up the numbers, but most of the major systems and functions will be in the game by Friday. Along with most of my major changes to any of the results. Once all of that is complete, I'll focus on the smaller bugs in the system, and fix any more as they come up. 

10/12/2013 2:03 PM
Penalties and fumbles. 
I've reintroduced Penalties and fumbles. Also, I redid interceptions to be handled much like the new fumbles system. This allows me easily modify the number of fumbles that happen over the course of an average game. As for penalties, it's a brand new system. Currently it will only write what happens on the play on non dead ball fouls if the penalty is declined. Otherwise it will just mention the penalty. This is to avoid any confusion on the play and the penalty. If I can work out some logic that would have the two interact, I may be able to add some of that information back in so that you know if you lucked out (defensive penalty on a sack) or if you would have had a good play. The decline logic is in there, and is the same as it was before. Penalties occur at a rate that is similar to what the average over the course of last college football season, with the standard deviation allowing a difference in results based on the overall formation IQ of the team, and the odds of a specific penalties are based on the formation IQ of the players. 

Next update: I've been investigating the pass/run defense call. Last week I looked into passing, and I discovered that there was a slight difference but none that would really affect the outcome significantly. This week I started testing running. Turns out that over 4000 plays the average difference between calling pass d and calling run d against the run is around 1.6x. Meaning if a team would average 4.0 yards a carry when the d calls a runs, it would average close to 7 yards a carry when the d would call a pass. That is not right. That's a huge problem. I've been able to tear down the calculation for that, and it turns out that the chance of attempting a tackle is very off kilter. I've rewritten the algorithm for calculating attempted chance for a run using the defense call much more conservatively. I'm testing some numbers the next couple of days, but on monday, I'll put out a release that allows that chance to decrease just about 10% on the play depending on the call. This means that instead of 4.0 ypc you would see about a 4.3 ypc. This reduces the actually affect per play, but allows you to see the difference in total yards across the entire game. Meaning, if you go up against a team that always runs, and you call all run defense, you'll actually be better off than if you called all pass defense.

10/22/2013 11:25 AM (edited)
Seasons have rolled over, you can recruit if you are interested in the process, but the simulator has officially been turned off. This means that no more official or exhibition games will be played. You will be able to use the Test Game until we turn off the webpage which will be sometime later this week. 
10/24/2013 9:34 AM
Update: For those of you still reading my status updates, I have some important stuff that I uncovered this week.  

Turns out that the reason for the all deep plays being successful was not an issue with the numbers, but rather the system was broken. It allowed for deep passes to be thrown in the first or second step of the play a large percentage of the time. This created an anomaly where for deep passes the QB was able to get a throw off just as many times as for short passes, and while the percentage of completions were correct, the opportunities to throw were highly exaggerated. This allowed a much higher yards per playCall/deep pass than any of the other passing structures. I redid the system to allow for more a realistic feel to deep passes. The average gain per yard is higher with deep passes now, but you are more likely to get sacked. This allows for a reasonable distribution of yards per play call across all of the pass distances. This means that for a team with similar attributes for the LB's and DB's that a more balanced throw distribution is effective.

Also, I fixed most of the bugs that were still left in the system 

Here is the list of things that I have completed and a list of ones that I'm still working on - 

Starters not  getting credit for starts - FIXED
Tacklers not being assigned correctly - FIXED 
Wrong players blitzing (thanks deen) - Don't know about this but blitzers seem to disappear from the play - FIXED, if there is a sack, blitzers are more likely to get the credit. 
Large (>10%) offensive line advantages not providing enough effect for run ave or pass blocking results (sacks) - FIXED, Sacks are now more dependent on two factors, strength of the DL over the OL and the length that the play continues (example, a deep pass will be sacked more often than a medium pass)
Correctly guessing run/pass has far too much importance on play results. - This has been greatly reduced. There was a structural problem with how we were using this when counting rushing. Passing and rushing are both fixed on this.
PBP glitch of pass defended and intercepted at the same time - FIXED - display issue

Still to come : 
Have not evaluated injuries - Injuries are a larger beast than I expected, I'm testing them now, but I'm planning on thoroughly testing these before I roll them out. Then after testing, I'm going to roll them out at a very low rate of occurrence till I'm comfortable with how they are operating and no one is getting injured incorrectly. 
The other bugs on my list will be knocked off as the season progresses. 


Terms of Use Customer Support Privacy Statement

Popular on WhatIfSports site: Baseball Simulation | College Basketball Game | College Football Game | Online Baseball Game | Hockey Simulation | NFL Picks | College Football Picks | Sports Games

© 1999- WhatIfSports.com, Inc. All rights reserved. WhatIfSports is a trademark of WhatIfSports.com, Inc. SimLeague, SimMatchup and iSimNow are trademarks or registered trademarks of Electronic Arts, Inc. Used under license. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.