Adjustment in plugin design

Originally, I was very much against this, but over the past couple of years, I think this may in fact be a better approach long term.

MatchMod is going to be split into a couple of different plugins when the function may make sense to have external as it may benefit other plugins. As a quick example.

The Advanced Ready up function of MatchMod, I am going to port externally to it’s own plugin and expose Natives to other plugins to call to initiate a ready up and define the rules of how it is going to handle things easily.

Other aspects I am planning to separate is the STV Recording features, scoring routines and announcer, and possibly the config file/map detection routines.

I have not completely decided what aspects will be separated out which ones are integrated in, but the core plugin will simply process a match from first half, to second half, to overtime and close itself out.

The road to v2

I have decided to hold off on a release until version 2.00, there are a couple things going on here that relate to this decision. I wanted to address this before the next release.

Code clean-up, The code base is a bit of a mess at the moment, I was not consistent in how I address variables, the structure of the code doesn’t really lend it self to easy edits and difficulty in tracking exactly where a particular feature showed up especially in the scoring routines.

I also have been asked recently about a few different scoring options people want to try that really are not possible as the code-base sits right now.

Lastly, I wanted to add features in for the backend piece, allowing teams to register on sites and reserve servers and select their sides and so forth. Since I did not want to run the backend, this feature will likely be based of a fairly portable service that can be quickly adapted to other features.

Also, I did want to add stat tracking to the mix internally as well as maintain the lengthy log the mod currently uses. Again, allowing live-stats to a website relatively quickly. We’ll see how this aspect goes.

I also always wanted to look at Berni’s map detection routine a bit more and see if there were better ways to detect. Right now it mainly uses the map’s file name, a few maps out there don’t use the proper prefixes and so forth, so I am toying with the idea of expanding this to use maps internal entities that TF2 is using to determine the rules at play. Not sure if this is realistic, but we will see.

Branding is something I have been wanting to do for a while, as opposed to everything saying [MatchMod] I wanted to give the ability to modify that particular string.

Lastly, I have been asked to port the mod to other games, not certain if I am going to do those aspects, but want the code base to have the option.

That’s the current status. If you have any suggestions, please let me know.

 

Moving into the new site

I am porting the MatchMod.Net site from a stand-alone blog to the instaGib.org multisite setup. This is mainly so I can easier maintain both sites. Still getting everything sorted out, once I get the base set of downloads back on the site the domain will get switched over to here and the old site retired. Please let me know any comments or feedback.

Finally finding some time again

Work always goes crazy at the end of the year. In typical fashion, the clients wanted to spend every last dime they had of their budgets by the end of the year. So my employer decided to happily accept the money and projects and informed me I was working way more then I should. I do have a vivid memory of my boss asking why I had almost 60 hours in one week (~54 of it was billable hours to a client). But alas, I do enjoy the work and am rather happy having a paycheck this day in age. So I cannot complain to much.

What I can complain about however, it the inability to get the next version of MatchMod out the door. Truth be told, there are not a whole lot more features to add in at this point, but there are some really annoying bugs I need to work out.

  • Attack/Defend scoring is wonky in the second half

What I need to do is get some lobbies together and play Attack/Defend maps. The issue is something in the events that the server are out of whack. In a nutshell, here is how TF2 notifies you of Attack/Defend.

The game uses an event system, simply put, when something happens, say a flag gets tocuhed, or a checkpoint is chanign hands and so forth, the game send events to all the clients to they can interprest the event and display it to you visially, a hud element or something along those lines. For the purpose of MatchMod, it literraly sits there and listens to the events and performs work on its own, sometimes I stop events from occuring (the F4 menu when Ready-Up is on), or modify there behavior slightly.

The match sequence itself actually hinges off some of the events, mostly the beginning of the rounds, end of the rounds and the match start. But attack/defend was a little strange. It was slightly different formatted events, on top of the fact attack defend can exist as single stage (GravelPit) or multistage (Dusbowl) so I could not account the end of a round was the end of the entire round like in a push style map, so I had to dig into the events in a bit more detail.

The explanation gets really ugly, but here is what happens in the short version

  • The Match sequence is tracked internally to the mod (Pre-match/first half/halftime/etc). This is represented as a number. 0 meaning no match and the mod does nothing, and if that internal flag increments, it lets the mod know where things are. This aspect generally works.
  • For Attack/Defend, I am hooking into the event that actually displays the Score panel on your client, but only if the previously mentioned match is in certain states (only the first half, second half or overtime).
  • The event lets me know if it was a completed round or simply a mini-round (1st stage of dustbowl). I am looking for the completed round and also the event that triggers the teams to swap.
  • I use the team swap to determine where the match is within the first half, since the game basically happens twice.

The first half works without any issues, in testing the second half works fine, it is when a second game is started I think is where things get wonky. I think the issue lies in TF2 is tracking the teams on its own, so on occasion the teams when a round begins are internally swapped and I might not be catching the correct event, or something is getting out of sequence in the balancing act I am doing. I will have to pull the event output from a couple of matches and see if I can sort out the exact scenario that is occuring. This entails creating new plugin solely to output the events and look at a bunch of numbers. That or enable cheats, dump events to the logs, disable cheats, have players join, play game, download MASSIVE log file and read.

In a nutshell, I haven’t abandoned this mod by any stretch, but have not had a few hours to sit and dig into this for quite some time. Will try to get this done in a few weeks, besides that bug the new release is done and has been done. The config files are complete, except for the white-lists since they are releasing more and more weapons then I care to think about and sort out. We’ll see what I can get through this weekend.

 

Slight Delay

I was hoping to get the update out this weekend, but the CvP event (which was running MatchMod 1.1.9) I saw an issue with the scoring for Attack/Defend and Stopwatch maps. I am looking into it before release to see if I can figure out the sequence that occurred. Hopefully will be able to look at it later today but we will see.

Upcoming changes

I am significantly closer to the next release. Just a quick heads up on a few things.

A few new Commands will be in play

  • sm_6v6
  • sm_9v9
  • sm_pug

Functionally, they work just like the Scrim command does today, but reference specific config libraries. This is to allow server operators/teams to quickly get their game type up and moving quickly.

The sm_scrim command will undergo a change, it will now utilize the matchmod_league CVAR to determine what config set it uses as opposed to directly pointing to a specific config set.

sm_match will remain unchanged

sm_matchmod_begin is likely going to be removed as it rarely ever gets used in favor of the above options.

Configuration sets

Truth be told, my time is rapidly getting more and more scarce, so I am reducing the config sets I formally will include and work on actively unless specifically requested. These include the following:

  • Pick-up Game – Standard PuG format with little to no weapon restrictions. Good for experimentation as the 50 jillion weapons keep coming out. Will work for either 6v6 or 9v9 scenarios but honor system is at play
  • 6v6 – This is going to be a typical 6v6 setup based off the ESEA rules/weapon banlist
  • 9v9 – Typical Highlander setup I am probably going to model after the Highlander rules/banlists used by UGC

The goal here is mainly to reduce the workload, the League config framework and the match server configs will still be maintained also.

If you have any requests, please add me on steam or PM me over on CommFt/Alliedmodders and we can go from there.

Logging extensions

As previously mentioned, the complete expansion of the logs is in there and work with tf2logs.com. No Automatic uploads are in there, so that process will still be manual. I may add 1 extra line to the top of the log to make it easy to determine the map in question.

Need feedback!

I am asking formally, what do you all think of the configs allowing for the replay system to be firing, last time I tested it looks like they got the bugs worked out between STV and the replay system so this might be viable now. I am curious if people generally get more from the replays then the STVs in general.

 

 

Forums taken offline

The forums were not really working out in a sense of they just weren’t designed for how I was trying to use them, I have chosen to remove the forums for now and added a basic Bug Tracking software that will allow you to submit a bug into the system and have it tracked. Still not sure how this will work out, but I have a strong inclination that it will be more in-line with hwat I was trying to accomplish.

Upcoming…

I do have the next release in the works, I will add the rest of the logging for the TF2logs site, this will include item pickups and who is being healed stats. Again your match logs will be quite a bit larger as a result of it.  Also looking at regression testing a lot of the old features to ensure they are still working as expected.

I have had little time to look at the STV upload features, It kinda works, but not really worked in properly with the rest of the mod. Also I wanted to modify some of the commands to better allow both 6v6 and 9v9 scrims easily, so there will likely be a couple new commands.

As always, send me feedback on the forums