Altitude Game: Forums  

Go Back   Altitude Game: Forums > Altitude Support > News
FAQ Community Calendar

News Read announcements and change logs here.

Reply
 
Thread Tools Display Modes
  #1  
Old 02-03-2010, 11:12 PM
lamster lamster is offline
Administrator
 
Join Date: May 2008
Posts: 1,655
Default Patch: Feb 3rd, new maps, new server features for 3rd parties

================================================== ===============
February 3rd, 2010

New official maps: ball_planepark, tbd_planepark (thanks Mandrad)
New official map: tbd_nuclear (thanks Hartz)
New official map: tbd_focus (thanks Esoteric)
Updated ball_mayhem, ball_mayhem2, ball_core (thanks Maimer)

Added "Map Editor" and "Server Launcher" links to the main menu

Servers:

Added console command assignTeam <player> <team> (team -1 is spectator, 0 is left team, 1 is right team)
Added console command serverMessage <message>

Servers now write significantly more information to a special JSON-formatted log file for easy parsing by third-party tools: ~Altitude/servers/log.txt
Note: don't write your own parser, http://json.org/ provides handy parsing libraries for a wide variety of programming languages

You can now execute console commands on servers while they're running by writing lines to the file ~Altitude/servers/command.txt
Example: change the server running on port 27275's current map to ffa_cave
echo 27275,console,changeMap ffa_cave>> ~Altitude/servers/command.txt

Added support for custom voteable commands (edit ~Altitude/servers/launcher_config.xml to define custom commands)
Example: add a 'startLadder' command that requires 60% yes votes to pass:
Open ~Altitude/servers/launcher_config.xml with a text editor
For each server you'd like to modify, replace the line "<customCommands />" (or add a line just before <consoleCommandPermissions> if you're using an outdated config file) with:
Code:
      <customCommands>
        <CustomCommandDescriptor name="startLadder" votePassPercentage="60" />
      </customCommands>
You can then set up custom code to monitor the log file and respond to the custom command, for example when a line like this appears in ~Altitude/servers/log.txt:
Code:
	{"command":"startLadder","type":"customCommand","time":20428,"port":27275}
	(Note: your script should use a JSON-compliant parser to discover type=customCommand, command=startLadder, port=27275)
You can run custom code to initiate other events, for example show a message, balance teams, start a tournament, and change to a randomly selected map:
Code:
	echo 27275,console,serverMessage Initiating ladder game, leavers will be banned>> ~Altitude/servers/command.txt
	echo 27275,console,balanceTeams>> ~Altitude/servers/command.txt
	echo 27275,console,startTournament>> ~Altitude/servers/command.txt
	echo 27275,console,changeMap tbd_core>> ~Altitude/servers/command.txt
Fixed a few bugs

Last edited by lamster; 02-04-2010 at 03:44 AM.
Reply With Quote
  #2  
Old 02-04-2010, 07:25 AM
nobodyhome nobodyhome is offline
Senior Member
 
Join Date: Apr 2009
Posts: 1,088
Default

a new patch made just for me!

thanks lam. i feel like mikesol.
Reply With Quote
  #3  
Old 02-04-2010, 07:26 AM
Deathblade Deathblade is offline
Senior Member
 
Join Date: Dec 2009
Posts: 129
Default

cool

ilikecookies
Reply With Quote
  #4  
Old 02-04-2010, 07:29 AM
Stormich Stormich is offline
Senior Member
 
Join Date: Apr 2009
Location: Corporate Police State
Posts: 1,151
Default

Thanks for the ladder support! <3
Reply With Quote
  #5  
Old 02-04-2010, 07:38 AM
eth eth is offline
Senior Member
 
Join Date: Jun 2009
Location: Hamar, Norway
Posts: 594
Default

Thanks a lot for the support, much appreciated
Reply With Quote
  #6  
Old 02-04-2010, 07:50 AM
r87 r87 is offline
Member
 
Join Date: Dec 2009
Posts: 88
Default

I assume all those ball maps are what were on non-official 2...those are great updates and new maps.
Reply With Quote
  #7  
Old 02-04-2010, 08:00 AM
nesnl nesnl is offline
Super Moderator
 
Join Date: Jan 2009
Posts: 1,503
Default

Is there a way to control the size of the log.txt or will it continually grow larger and larger? I am looking for a way to get it to roll over like serverlauncher.log.1, etc.
Reply With Quote
  #8  
Old 02-04-2010, 08:21 AM
lamster lamster is offline
Administrator
 
Join Date: May 2008
Posts: 1,655
Default

It currently grows to 4 MB, then rolls over to log_old.txt. I could go back to arbitrary rolling log counts (.1, .2, etc) but it seems like that confuses people.
Reply With Quote
  #9  
Old 02-04-2010, 08:52 AM
nobodyhome nobodyhome is offline
Senior Member
 
Join Date: Apr 2009
Posts: 1,088
Default

We often rerun old logs when we implement new features, so it would be nice to have it numbered (so that log_old.txt doesn't get overwritten) or at least to have it customizable somehow.
Reply With Quote
  #10  
Old 02-04-2010, 10:47 AM
lamster lamster is offline
Administrator
 
Join Date: May 2008
Posts: 1,655
Default

There's a lot more data in the new logs, so you may not want to keep them all around forever. For now, you can periodically check if the file ~Altitude/servers/log_old.txt exists, and if so rename it to log_<lastModifiedTimeInMilliseconds>.txt, that should ensure you'll have an orderly set of permanent logs.
Reply With Quote
  #11  
Old 02-04-2010, 03:13 PM
Triped Triped is offline
Senior Member
 
Join Date: May 2008
Posts: 597
Default

Wow, this is a great patch.
Reply With Quote
  #12  
Old 02-04-2010, 04:23 PM
bong bong is offline
Senior Member
 
Join Date: Jul 2009
Location: In Nipple house, with his sis <3
Posts: 328
Default

sweet! But i dont see the new maps on all official servers. Even official 3 still don't have fallout.

Thx
Reply With Quote
  #13  
Old 02-05-2010, 01:31 AM
Ajuk999 Ajuk999 is offline
Senior Member
 
Join Date: Dec 2009
Location: United States
Posts: 3,823
Send a message via AIM to Ajuk999
Default

I must say that before this update I could't make a server were other IP Addresses (people) could join, but after this Update, I was able to put a concept I had in to reality. I appreciate it Karl and Lam, You guys have made the most exciting game ever! I appreciate it a lot, Good Luck with the Indio Game Challenge, I am sure Altitude will win! I voted 52 times already!
Reply With Quote
  #14  
Old 02-05-2010, 05:16 AM
JDR JDR is offline
Senior Member
 
Join Date: Dec 2009
Location: Blocking TE
Posts: 208
Send a message via AIM to JDR Send a message via Yahoo to JDR
Default

Quote:
Originally Posted by r87 View Post
I assume all those ball maps are what were on non-official 2...those are great updates and new maps.
planepark is the new tree, auto-changeMap
Reply With Quote
  #15  
Old 02-05-2010, 06:23 AM
spc spc is offline
Senior Member
 
Join Date: Oct 2009
Location: CA, USA
Posts: 110
Default

is the link in the main menu for the server launcher supposed to send me to the altitude wiki? isnt it supposed to launch the servers?
Reply With Quote
  #16  
Old 02-06-2010, 07:17 AM
-MH-CaptainVogez -MH-CaptainVogez is offline
Senior Member
 
Join Date: Jul 2009
Location: Australia - the Best place in the world!
Posts: 419
Default

I must say that this is a comprehensive list of critical little things in the game that you have managed to fix up well - Looking forward to being able to test it out when I get back online in the near future!

Kudos
Reply With Quote
  #17  
Old 02-07-2010, 03:52 AM
phong phong is offline
Senior Member
 
Join Date: Jul 2009
Location: Chicago
Posts: 372
Default

Good stuff lam
Reply With Quote
  #18  
Old 02-09-2010, 03:37 PM
phong phong is offline
Senior Member
 
Join Date: Jul 2009
Location: Chicago
Posts: 372
Default

What details currently being output to the log and are they written immediately?
Reply With Quote
  #19  
Old 02-09-2010, 06:47 PM
nobodyhome nobodyhome is offline
Senior Member
 
Join Date: Apr 2009
Posts: 1,088
Default

I too would like to know if the log reports are put out immediately. When I first examined the logs to see, it felt like there was a bit of a delay, not sure if this is true or not.
Reply With Quote
  #20  
Old 02-09-2010, 08:03 PM
lamster lamster is offline
Administrator
 
Join Date: May 2008
Posts: 1,655
Default

I'll post a list of log entry types soon, but you can figure out most important stuff from a glance at the logs (each entry has a type=<string>, for a given type the other parameters generally don't change)

The log is buffered to minimize I/O overhead, but the stream is flushed (all progress immediately written to disk) after a couple special log entry types:
1) tournamentRoundEnd -- to ensure match results are immediately ready at the conclusion of a ladder or tournament round
2) customCommand -- custom console commands exist solely for processing by 3rd-party server scripts, so the log is flushed upon execution to give the script a chance to read and react immediately
Reply With Quote
  #21  
Old 02-09-2010, 08:37 PM
nobodyhome nobodyhome is offline
Senior Member
 
Join Date: Apr 2009
Posts: 1,088
Default

That is a brilliant optimization, and causes no problems to my parser at all. Thanks for the info.
Reply With Quote
  #22  
Old 02-09-2010, 08:59 PM
nobodyhome nobodyhome is offline
Senior Member
 
Join Date: Apr 2009
Posts: 1,088
Default

Actually, thinking about it more, I might want it to flush more often, because in the future there might be an implementation of a "server status" page on the altitude website. These commands might be needed for such an implementation:

1. When people join or leave the server. This is so people can see who's on the ladder servers without actually having to go on altitude and joining the server. This feature is already there through the autobalance mechanism, but it would be a cleaner implementation to switch it over to the JSON logs rather than the debug logs. This feature could be further extended to an app that alerts you with sounds when 8 people are on or when 10 people tell the app that they want to play ladder (IT'S LADDERIN' TIME!) so you don't have to sit in the ladder server and wait.

2. When startTournament happens. This is so I can indicate on the server status page that a ladder game is in progress, and show what the teams are. This also helps for people who want to play--if they see 10 people on but the game has already started, they don't have to join altitude right away.

3. When changeMap happens. This is so I can indicate what the map is during a tourney game on the server status page.


The above are the minimum desirable log items that I would need to be flushed immediately if I were to implement a server status page. Of course these items are already available on the debug logs, but it's cleaner to have it all on the JSON logs, and I don't see why it would cause an excess I/O load on the game if it already flushes this information to debug logs.

Here are other things that would be a nice luxury to have flushed immediately:

1. Bomb hits. This is so I can track remaining base HP on the server status page so people will know how long a game has until it's finished.

2. Pretty much everything else--kills, powerup gets, powerup usage, bomb pickups. This is so I can go crazy with the server status page and display the actual scoreboard on the website, and then log all this stuff in real time so people not in the game can actually see what's happening through a scrolling log of powerup pickups and uses and kills etc. Or to go even crazier I can display graphically where the planes are on an image of the map and have little icons indicating kills, etc, so you can actually see a dinky jerky version of the game in a stop-motion animated way.


I'm not sure how bad on I/O having these things flush immediately would be, but I'd like this to happen if it's not bad.
Reply With Quote
  #23  
Old 02-10-2010, 12:53 AM
lamster lamster is offline
Administrator
 
Join Date: May 2008
Posts: 1,655
Default

I'll flush the logs to disk every 500 milliseconds next patch, should still be pretty friendly on the I/O and should be plenty quick for "play by play" style output (you can always hold the playback a couple seconds behind the actual action and then use the "time" stamp on each JSON entry for exact relative timing between "live" events).
Reply With Quote
  #24  
Old 02-11-2010, 02:24 PM
phong phong is offline
Senior Member
 
Join Date: Jul 2009
Location: Chicago
Posts: 372
Default

I also noticed if I move the log and recreate, the file I renamed it to continues to grow, not log.txt

ie #mv log.txt log.1.txt && touch log.txt

Logs now get dumped to log.1.txt, not log.txt.

Clearing the logs with something like #cp log.txt log.1.txt && >/home/jaredo/altitude/servers/log.txt

Log gets cleared, then all data from the previous log gets dumped back to log.txt.

Also I'm not sure if I like how players are identified in the logs. When a player joines then get assigned a playerID, which is then used throughout. In order to parse I'll have to put something together to constantly check the player ID and see who last logged in and was assigned that ID. Overall a big pita to parse, same withi teamID.

Are teamIDs static? IE team 3 is always red, 4 blue, 5 green etc?

Last edited by phong; 02-11-2010 at 02:55 PM.
Reply With Quote
  #25  
Old 02-11-2010, 07:01 PM
nobodyhome nobodyhome is offline
Senior Member
 
Join Date: Apr 2009
Posts: 1,088
Default

Quote:
Originally Posted by phong View Post
Also I'm not sure if I like how players are identified in the logs. When a player joines then get assigned a playerID, which is then used throughout. In order to parse I'll have to put something together to constantly check the player ID and see who last logged in and was assigned that ID. Overall a big pita to parse, same withi teamID.
Have you tried this?

1. Every time someone joins the server, create a Player object (that contains vaporId, name, or whatever else information you want), and then put it in a "players in server" array with the key being the playerId that it gets assigned to.

2. Every time someone leaves the server, remove said Player object from the array.

3. In the middle of the game, always refer to the player by its player ID. If you need the vaporId of the player, get the player object and then get the vaporId.
Reply With Quote
  #26  
Old 02-12-2010, 09:43 PM
StarkJohan StarkJohan is offline
Junior Member
 
Join Date: Feb 2010
Location: Lund, Sweden
Posts: 9
Default

I'm a noob when it comes to altitude with my 30-something hours of play but this kind of logging is really adding another level of fun to the game for me and as I see it, to the altitude community.
All I've seen so far when it comes to altitude is ranking by KD-ratio and that is a very rough way of calculating the "skill" of a player. So is number of kills, total time of play and so on. I used to run a counterstrike server back in the day and I always loved playing around with the ranking and stats. After testing a couple of ways to rank my players I came to the conclusion that the psychostats (PS) model is my preferred way of performing the tast. At that time PS basically used the ELO model which is a very sophisticated way of comparing competitors based on result. Since then PS has abandoned ELO for a simpler, yet effective algorithm. I think that both algorithms is superior to a simple KD-ratio factor based rank.

What these models use is a "skill" value that ranks individual players. This value is changed with every kill/death. Depending on the killers and victims current skill value the new value is calculated. E.g. if a highly ranked player kills a player with a much lower skill value the difference is small. Should the kill be the other way around the difference is bigger. This makes playing hours less important and who you kill, who kills you, how many times and at what point the main ingredient in the skill recipe. Every new player enters the ranking with a basic skill value to even things out and to avoid negative values.

Ultimately won rounds, bombed targets, defused bombs, blocked bombs and so on would be incorporated in a players skill value. My suggestion is that these events have a static bonus value that is added to the players skill value and divided by playing time but this is probably not the best solution.

Another thing to be aware of is bot kills. One take is to simply not count kills where bots are involved, another to give the bots a basic skill value that is used to calculate the players skill change.

Is there anybody out there already using other models than KD-ratio for ranking? What are your thoughts on ranking? What servers, if any, even bother with ranking? Is there any interest at all in this kind of discussion or implementations? I would love to see what models is already being used by altitude server admins but I haven't been able to find much info (except the NES webpage).

References:
Psychostats: http://www.psychostats.com
ELO: http://en.wikipedia.org/wiki/Elo_rat...ential_variant
NES: http://vihart.com/NEStats

Last edited by StarkJohan; 02-12-2010 at 09:46 PM.
Reply With Quote
  #27  
Old 02-12-2010, 09:50 PM
Pieface Pieface is offline
Super Moderator
 
Join Date: Aug 2009
Posts: 1,265
Default

If you haven't already you should check out the Altitude Ladder thread, as that is by far the biggest ranking system yet attempted for the game. I'm sure they'd welcome any input or feedback you have to offer!
Reply With Quote
  #28  
Old 02-12-2010, 09:52 PM
nobodyhome nobodyhome is offline
Senior Member
 
Join Date: Apr 2009
Posts: 1,088
Default

The altitude ladder (http://altitudegame.com/forums/showthread.php?t=2469), built before this patch was implemented, uses the Elo system (modified to incorporate team-based games) to implement a ranking (and was a big part of why this patch was written).

So far we only incorporate tracking of wins and losses (which was the only thing we could do with the old logging system). With this new patch however, we are planning to incorporate more sophisticated stat tracking in the future.
Reply With Quote
  #29  
Old 02-12-2010, 11:14 PM
StarkJohan StarkJohan is offline
Junior Member
 
Join Date: Feb 2010
Location: Lund, Sweden
Posts: 9
Default

I've noticed the ladder and I'm very interested in your thoughts on how to attack the new logs as the old system is very static. With extended logging virtually any game could be incorporated into the skill value, not only 5v5 matches.

The objective, as I see it, is developing an easy way for server admins to follow and implement the "altitude" gold standard when it comes to ranking. This way rankings can be easily compared and even joined between servers in a "fair" way.

I'll dive deeper into the ladder thread a.s.a.p.
Reply With Quote
  #30  
Old 02-13-2010, 02:30 AM
phong phong is offline
Senior Member
 
Join Date: Jul 2009
Location: Chicago
Posts: 372
Default

I'm just about finished with PALP (PHP Altitude Log Parser), which I'll be making public here shortly and should give all server admins a mysql backend to build frontends on.

Once my own frontend is completed, Ohjeah! servers will be renamed "Premier" with advanced stat tracking. It's taking me longer to implement since I haven't found anyone to help me with testing.

Last edited by phong; 02-13-2010 at 03:26 AM.
Reply With Quote
  #31  
Old 02-13-2010, 09:31 AM
StarkJohan StarkJohan is offline
Junior Member
 
Join Date: Feb 2010
Location: Lund, Sweden
Posts: 9
Default

phong, that is great news. I have no server logs to help you out with testing but I'm looking forward to having a look at your parser. Is it calculating anything or just pushing the data into the db untouched for easier handling?
Reply With Quote
  #32  
Old 02-13-2010, 04:22 PM
phong phong is offline
Senior Member
 
Join Date: Jul 2009
Location: Chicago
Posts: 372
Default

Just to a db, though I'll release a generic front-end for it eventually.
Reply With Quote
  #33  
Old 02-18-2010, 01:17 AM
jetfire jetfire is offline
Junior Member
 
Join Date: Dec 2009
Location: Amazing earth
Posts: 19
Default

planepark and the other new maps and server are amazing i love planepark its one of my favorite maps. It must of took of lot of graphics and detail to put in one map. PLANEPARK+AWESOME.
Reply With Quote
  #34  
Old 02-21-2010, 03:17 AM
phong phong is offline
Senior Member
 
Join Date: Jul 2009
Location: Chicago
Posts: 372
Default

I finally got around to testing out some of the custom commands and tbh the fact that you have to type /custom "command" makes them very limited in their usefulness. If custom commands acted like normal commands (IE /startladder vs. /custom startlader) then it would be good. There would just have to be checks in place to ensure custom comands cannot overwrite/conflict with existing commands.

The other issue is with having these commands hard set in the config, making the votepasspercentage difficult to adjust on the fly. If anything it would be more ideal to just pass non-integrated /commands directly to JSON logs to let parsers do all the work, and create a new console command to call votes and return the results.

Last edited by phong; 02-21-2010 at 03:21 AM.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:04 AM.


Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
2008 Nimbly Games LLC