Alien Swarm: Getting a better in-game timer?


#1

Alien Swarm has its own in-game time counter, that it uses for its achievements and that we’ve used to time ILs with. It’s pretty robust, handles the game’s stimpacks (which slow timescale to .45) properly, it’s never shown any inaccuracies. Problem is, it only displays seconds, and we’ve tied several ILs already because of this.

I don’t really want to switch to RTA for a variety of reasons. I don’t think tied WRs are a problem.

But, is there an easy way to get a more accurate in-game timer for this game? Could we just mod the timer it has to display decimals? I’d rather not resort to a separate timer like the livesplit plugins or whatever, because it’d be pretty difficult to guarantee its accuracy. But some sort of solid decimal in-game timer for this game would probably make everyone happier.


#2

Well, anything is doable but I don’t really know anyone who is that good with c++ that he would be able to do it other than YaLTeR but he is mostly busy. It might happen at some point if alien swarm reaches that big of a popularity but there is no much activity with it now on sourceruns. Maybe others have some idea but I am not sure if there is anything. You can maybe write a simple app which watches the memory adress which contains whether the game is paused but you would have to know how to program for that.


#3

If there’s a timer there you could probably find where it’s located and make it output more than seconds.


#4

A cursory glance revealed that you need to modify the format strings in the MissionStatsPanel::InitFrom function in missionstatspanel.cpp. But that’s not enough, because the server always sends one of the times as an integer over the network. Check asw_gamerules.cpp to see for yourself. That particular time has a resolution of 1s and no more precise. Lots of refactoring need to be done.


#5

I have no experience with tinkering with Source at all. Sounds like the answer is ‘no easy solution’ in that case. Thanks for the input.