BZFlag ToDo List
Table of Contents
- 1 Server Administration
- 2 Source Code
- 2.1 Fix bzadmin so if a player leaves it bitches if you are sending a PM to them
- 2.2 Cleanup and release CTFkillall plugin
- 2.3 BUGFIX BZFlag client goes NR on /viewreports
- 2.4 Plugin Support
- 2.5 BUGFIX Player joins twice
- 2.6 Add -utc switch to bzfs
- 2.7 LogDetail Plugin
- 2.8 Overseer Plugin
- 2.9 Fix this BZFlag segfault
- 2.10 Clobber this bug
- 2.11 Generate doxygen docs for bzflag
- 2.12 RpmStats Plugin
- 2.13 webadmin plugin segfaults the server on shutdown
- 2.14 Work on BZFlag source code to develop C++ Skills
- 2.15 bzflag: mixin anti cheat class for bzflag server
- 3 PlanetMofo Support
1 Server Administration
1.1 SOMEDAY Move Test servers to bzflag3.norang.ca WAITING
- State "TODO"
1.1.1 TODO Fix Map links to all servers NEXT
Test servers work but not permanent servers
1.1.2 CANCELLED Create cacheout files for new maps and ship to webserver CANCELLED
-
State "CANCELLED"
Not worth the effort. With the fastmap plugin coming in v3.0 we probably don't need this - CANCELLED What server do we want cacheout files on? CANCELLED
1.1.3 CANCELLED Add cacheout files to server configuration CANCELLED
- State "CANCELLED"
1.1.4 DONE Create new test servers on bzflag3.norang.ca
- DONE Determine how many servers we need
1.1.5 DONE Stop test servers on bzflag.norang.ca
1.1.6 DONE Move server configs to bzflag3.norang.ca
1.1.7 DONE Allow map uploads to bzflag3.norang.ca
1.1.8 DONE Mark all bzflag.norang.ca servers as disabled
1.1.9 DONE Start test servers on bzflag3.norang.ca
1.1.10 DONE Save map from upload
-
State "DONE"
It's a hack but it works
1.1.11 DONE Allow map uploads to test servers
- State "DONE"
1.1.12 DONE Figure out what's wrong with bzflag3:5180
1.2 DONE Test thiefControl plugin on trunk for 3.0 release
- State "DONE" from "STARTED"
- State "STARTED" from "TODO"
- State "TODO"
1.2.1 DONE Load thiefControl plugin on trunk server
- State "DONE" from "STARTED"
- State "STARTED" from "TODO"
1.2.2 DONE Request another player for testing
- State "DONE" from "STARTED"
- State "STARTED" from "TODO"
1.3 bzflag trunk servers for plugin testing
Donny's host ports 10000-10009
1.4 WAITING Change IP for bzflag3.norang.ca WAITING
-
State "WAITING" from "STARTED"
For joe to get new hardware -
Note taken on
Date is - State "TODO" from "WAITING"
-
State "WAITING"
For date from joevano
1.4.1 DONE Reduce TTL to 300s in bind configurations
1.4.2 TODO Stop servers NEXT
1.4.3 TODO Update IP in pm.com firewall rules
1.4.4 TODO Update IP in bind configurations
1.4.5 TODO Update SSH key known_hosts info
1.4.6 TODO Update registry info
1.4.7 TODO Restart servers
1.4.8 DONE Reduce TTL on DNS records
- State "DONE" from "STARTED"
2 Source Code
2.1 TODO Fix bzadmin so if a player leaves it bitches if you are sending a PM to them
- State "TODO"
Currently it sends it to ALL which is bad
2.1.1 TODO Determine where this change needs to happen NEXT
2.2 SOMEDAY Cleanup and release CTFkillall plugin WAITING
2.2.1 TODO Clean up code NEXT
2.3 SOMEDAY BUGFIX BZFlag client goes NR on /viewreports WAITING
- State "TODO"
2.3.1 TODO Design a better way to send lots of data to the client NEXT
Don't blow the send queue
report file on bzflag2.norang.ca:4423
Same problem with our huge banlist - too much data and server drops player
2006-12-10T03:38:08Z MSG-COMMAND 7:Thumper viewreports 2006-12-10T03:38:08Z WARNING: Network message being sent is too long! (message is 131, cutoff at 128) 2006-12-10T03:38:08Z WARNING: Network message being sent is too long! (message is 139, cutoff at 128) . . . 2006-12-10T03:38:08Z WARNING: Network message being sent is too long! (message is 135, cutoff at 128) 2006-12-10T03:38:08Z Player Thumper [0] drop, unresponsive with 16391 bytes queued 2006-12-10T03:38:08Z WARNING: Network message being sent is too long! (message is 144, cutoff at 128) 2006-12-10T03:38:08Z Player Thumper [0] drop, unresponsive with 16463 bytes queued . . . 2006-12-10T03:38:08Z Player Thumper [0] drop, unresponsive with 16412 bytes queued 2006-12-10T03:38:08Z Player Thumper [0] drop, unresponsive with 16451 bytes queued 2006-12-10T03:38:08Z PLAYER-PART 7:Thumper #0 BZid:896 send queue too big 2006-12-10T03:38:08Z PLAYERS (0) 2006-12-10T03:38:08Z Player Thumper [0] removed at 2006-12-09 22:38:08: send queue too big
2.4 SOMEDAY Plugin Support WAITING
- State "TODO"
2.4.1 TODO bzfs error check: non-existent plugins NEXT
2.4.2 TODO bzfs error check: plugin registration for unknown event
2.4.3 DONE Propagate –enable-debug to plugin builds
- State "DONE"
2.5 SOMEDAY BUGFIX Player joins twice WAITING
- State "TODO"
2.5.1 TODO Review this error scenario NEXT
Dodge_This joined twice on lasermania 2006-11-05 02:03:50 and :51 as Red then Blue. He thought he was blue, spawned on blue side of the map but Blue players saw him as red and died as TKs when shooting him.
Think Different talked about this error message when joining shortly after: "server error when adding player, player already added" This comes from file:~/git/bzflag/bzflag-svn/bzflag/src/bzflag/playing.cxx
if (player[i]) {
// we're not in synch with server -> help! not a good sign, but not fatal.
printError ("Server error when adding player, player already added");
std::cerr << "WARNING: player already exists at location with id "
<< i << std::endl;
return NULL;
}
According to delusional:
the same effect can be produced by players canceling a map download with the escape key.
Delusional can reproduce this - just wail on the return key when you connect and it joins more than once.
I got player slot 47… on LouMan's king of the hill
2.6 DONE Add -utc switch to bzfs
- State "DONE" from "TODO"
- State "TODO"
Makes -ts timestamps output UTC instead of localtime
file:~/git/bzflag/bzflag-svn/bzflag/src/common/bzfio.cxx::52
Change localtime to gmtime based on switch option
2.6.1 DONE Add -utc switch
- State "DONE" from "STARTED"
- State "STARTED" from "TODO"
2.6.2 DONE Add code to modify debug output using UTC
- State "DONE" from "TODO"
2.7 TODO LogDetail Plugin
- State "TODO"
2.7.1 TODO Fix bzid when player is ghosted
2006-09-27T00:10:39Z PLAYER-PART 11:donny_baker #6 BZid:3680 Ghost 2006-09-27T00:10:39Z PLAYER-JOIN 11:donny_baker #10 BZid: PURPLE IP:67.185.228.175 VERIFIED GLOBALUSER ADMIN
2.7.2 CANCELLED Add client id string to player info CANCELLED
- State "CANCELLED"
PlayerInfo.getClientVersion()
2.7.3 TODO Add configuration file for selecting what to log NEXT
2.7.4 DONE Replace cout with bzdebugmessage
2.7.5 DONE Add bzbb id to playerjoin data
2.7.6 DONE Add Players
PLAYERS (5) [+]3:420(11:choke1.OSX/) [+]9:Bad Sushi() [+]8:frogster(7:drexton) [+]10:spatialgur(15:spatialguru.com) [+]4:klkl(10:im 6yr old)
2.7.7 CANCELLED Add SERVER-HOSTPORT to logDetail
clOptions->publicizedAddress.c_str()
And this is useful why? We need to know which server and port it is before we can start storing logs - so lets just dump this idea.
2.7.8 DONE Add SERVER-MAPNAME to logDetail
clOptions->publicizedTitle.c_str()
2.7.9 CANCELLED Add SERVER-HOSTPORT to logDetail
clOptions->publicizedAddress.c_str()
And this is useful why? We need to know which server and port it is before we can start storing logs - so lets just dump this idea.
2.7.10 DONE Add MSG-FILTERED and filtered text
2.7.11 DONE Update SVN HEAD code so it's up to date
2.7.12 TODO Allow plugin to create log files directly
2.7.13 TODO bzflag - add player join events when players are rejected so we can see the bans in effect
2.8 TODO Overseer Plugin
2.8.1 CANCELLED Overseer: handle registered players CANCELLED
-
State "CANCELLED"
We added requireidentify so you can't teamkill when impersonating a registered player
- Add idbans for registered players
- Allow registered players to rejoin
2.8.2 DONE Let it run without a callsign ban file
- State "DONE"
- State "STARTED"
2.8.3 SOMEDAY Overseer: Add commands WAITING
- TODO Add /overseer list command NEXT
-
/overseer list [all|blacklist|Tkers]
- Displays the list
-
/overseer list [all|blacklist|Tkers]
- TODO Add /overseer save command
-
/overseer save
- Save the blacklist to disk
-
/overseer save
- TODO Add /overseer remove command
- /overseer remove #3
- TODO Add /overseer add command
- /overseer add callsign|"call sign"
- TODO overseer - add /reload command to dump and reload callsigns
-
/overseer reload
- Dump and reload the blacklist from disk
-
/overseer reload
- Rereads the callsign file
-
/overseer reload
- TODO Add /overseer stats command
- Show number of bans by callsign
- Show number of TKs with limit
- Show number of warnings issued
2.8.4 TODO Track TKs by IP
- Changing your callsign and reconnecting won't help
- Multiple players from same IP could be an issue
2.8.5 DONE Put expiration times on callsign bans
- State "DONE"
- State "STARTED"
- persistent servers will reban forever otherwise
2.8.6 DONE Overseer config to ignore TKs
- State "DONE"
- State "STARTED"
- Olympic server needs that
2.8.7 DONE Deal with cheaters
- State "DONE"
- State "STARTED"
Cheaters join and then /register immediately as of Dec 2008
Here's what we're going to do
- Mark players that join and then /register in the same second as cheaters
- When someone types 'cheat' in chat we kickban all cheaters
- If you TK and you're marked as a cheater we kickban immediately
- When someone issues a poll ban command we kickban all cheaters
- If a player triggers the chat filter and is a cheater we kickban
- DONE Mark cheaters
- State "DONE"
- State "STARTED"
- cheater flag
- DONE Kick and ban all cheaters on 'cheat' text
- State "DONE"
- State "STARTED"
- DONE Kick and ban cheater when they team kill
- State "DONE"
- State "STARTED"
- DONE Kick and ban all cheaters on a poll ban command
- State "DONE"
- State "STARTED"
- DONE Kick and ban cheater when they trigger the chat filter
- State "DONE"
- State "STARTED"
- DONE Test it
- State "DONE"
- State "STARTED"
2.8.8 DONE Reissue ban for TKs with the TK message
- State "DONE"
- State "STARTED"
2.8.9 TODO Issue message to TKer
- Make message configurable
- Make message optional (blank msg = don't send)
2.8.10 TODO Auto save recordings of cheaters
2.8.11 TODO Remove min debug setting and restore previous value
2.8.12 DONE Load overseer on the olympic map
2.8.13 DONE Ban players that multi-join clients on the same IP
- DONE Add a configurable player join limit in same second
3? - DONE Check on player join for number of players from same IP in same second
- DONE Ban if too many players
2.8.14 PROJDONE Create bzflag plugin to remove problem players
- State "DONE"
- State "PROJ"
SrVPofFieldOperations - 3day ban on IP when player joins
- DONE Pick a name for this plugin
- State "DONE"
Possible names:
- deliquent
- penaltybox
- adds 3 day IP bans on players that TK 6 times with no good kills regardless of rejoins
-
bans players on join by callsign for 3 days if their callsign matches some list
- sk3letron
- srvpoffieldoperations
- nightmare
- plastictank
- christopher reeves wheelchair
- crw
- professor chaos
- coogle
- rottencrotch
- uses 'Thumper' as the banner (configurable)
- ban length (3d) configurable
- DONE Outline the design
- State "DONE"
2.8.15 DONE BZFlag cheat analysis
- DONE Check if poll counts non-registered players
2.8.16 TODO Server cheat prevention changes
- [] Reversing with OO while sealed
- [] Instant respawn
- [] Drop bad flags like regular flags
2.8.17 CANCELLED Make fast joins just kick with a bot message - no ban CANCELLED
2.8.18 DONE Announce who is banned as a broadcast
- State "DONE" from "STARTED"
- State "STARTED" from "TODO"
2.8.19 TODO Redesign overseer to use more classes
- Player class
- Interator for players
- kick and ban functions
- kickIP function
2.8.20 DONE Fix overseer plugin ban reason text
2.9 CANCELLED Fix this BZFlag segfault CANCELLED
-
State "CANCELLED" from "TODO"
Done.
<gnus:INBOX.BZFlag#20090223040137.063DD19C058@WRIT080154.bowen.lcl>
2.10 CANCELLED Clobber this bug CANCELLED
-
State "CANCELLED" from "TODO"
Done
<gnus:INBOX.BZFlag#20090304080557.2317419C05F@WRIT080154.bowen.lcl>
2.11 TODO Generate doxygen docs for bzflag NEXT
2.12 DONE RpmStats Plugin
2.12.1 DONE Add subscription to stats at regular intervals
2.13 TODO webadmin plugin segfaults the server on shutdown NEXT
2.14 TODO Work on BZFlag source code to develop C++ Skills NEXT
2.15 CANCELLED bzflag: mixin anti cheat class for bzflag server CANCELLED
Basically does similar stuff to the Overseer plugin - monitoring data and dumping clients that trigger stuff
3 PlanetMofo Support
3.1 TODO PM.COM - bzfs server access to logs via website NEXT
- State "TODO"
-
State "SOMEDAY"
Will this ever be ready? -
State "WAITING"
On completion of dev.bzflag.norang.ca website code
3.1.1 CANCELLED Get PM server logs using ts for logging CANCELLED
bzfs -ts is enough. Plugin was fixed to output timestamps some time ago.
3.2 CANCELLED Setup nightly trunk builds with plugin install on pm.com CANCELLED
- State "CANCELLED" from "SOMEDAY"
3.2.1 CANCELLED Set up trunk git repository CANCELLED
- State "CANCELLED" from "TODO"
3.2.2 CANCELLED Copy trunk build script CANCELLED
- State "CANCELLED" from "TODO"
3.2.3 CANCELLED Setup trunk bzfs and plugin install CANCELLED
- State "CANCELLED" from "TODO"
3.3 TODO Make the pm.com tor block keep counters NEXT
Don't delete and recreate rules for the same node
This way we can get counter data to see if it's useful or not
3.4 TODO noteamCTF Plugin
-
Note taken on
delusional wants this for 3.0
3.4.1 DONE Create a test map
Delusional is doing this
http://planetmofo.pastebin.com/f5a247016
3.4.2 TODO Spec out design details NEXT
-
use map named zones for spawn points
- figure out if that works
- use a SR flag and a huge radius to kill other players
-
do we need a ctf game at all or bases?
- isn't just a track with a SR flag at the finish sufficient?
- need to kill all players together at the end to start the next race
- players spawn at next spawn zone as races progress
3.4.3 IRC conversation details
17:47 <@delusional> i want to talk to you about something else... i've already asked everyone else... 17:47 <@delusional> it's a new plugn... trepan said it's "trivial" 17:48 <+Thumper_> ok... I'll need more details than that :) 17:48 <+Thumper_> the sample plugin is trivial... 17:48 <@delusional> you know how currently obstacle course maps can have players all over the place.... it's sometimes like a race against yourself? 17:49 <@delusional> well, i wanted to split that up into lots of smaller races... with a steamroller flag as the goal, and _srRadiusMult set to super huge. 17:49 <+Thumper_> ok 17:49 <@delusional> so the first to the flag gets a nice satisfying crunch sound 17:50 <@delusional> all it really need to do, is spawn everyone in the same place... and after the goal is reached, switch to the next spawnpoint in the list 17:51 <+Thumper_> so they are all on the same part of the course? 17:51 <+Thumper_> racing for the same flag? 17:51 <@delusional> then we can either kill the winner, or add teleporters 17:51 <+Thumper_> or they are all over the map racing for different flags? 17:51 <@delusional> yeah, exactly, lots of short races. 17:51 <@delusional> one flag per race 17:51 <@delusional> all players on the same section 17:52 <+Thumper_> ok so you can force wehre players spawn I think 17:52 <+Thumper_> but how do you make everyone spawn at once so the race is fair? 17:52 <+Thumper_> ie. no leads 17:52 <@delusional> yeah, it can be done.. if not in 2.0, definitely in 3.0 17:52 <@delusional> but im pretty sure 2.0 17:53 <@delusional> might have to have a worldweapon at the start of every race. 17:53 <+Thumper_> we use a big SW on the olympic map to stop leads 17:53 <@delusional> but if they all die at the same time... it's they're fault if they spawn late. 17:54 <+Thumper_> I suppose 17:54 <@delusional> it's the winner who we gotta kill 17:55 <+Thumper_> so we notice the flag grab - that shouldn't be a problem 17:57 <@delusional> i've been thinking about this for a couple weeks, it plays kinds like HTF.... the only thing i can think that might be nice to have is the abolity to turn shooting on and off. 17:58 <@delusional> with shorter races... you might be able to allow shooting. 17:58 <+Thumper_> if it's just a race w/o shooting just set max shots = 0 17:58 <+Thumper_> it's not changeable at runtime in 2.0 currently 17:59 <@delusional> each section of the map could have a completely different character.... interesting for mappers 17:59 <@delusional> nice for collaboration.
3.5 DONE Try to set up a dry-run upgrade cron job to planet mofo
<gnus:INBOX.Logs#200904141040.n3EAe8Gf003256@cups.intra.norang.ca>
Date: 2009-07-27 17:38:49 EDT