(12-22-2011, 07:32 PM)asy7um Wrote: Can you describe the problems you got with the EU servers that "suck all"? Why can't people with 0.5 client play on a git server? Explain please.

The last Git-Server i was connected to don't let me move in general, i could only rotate. Other servers dont let me jump or I have trouble with weaponswitching. Then there seem to be differences with rampjumps. Little edges let me fly high like i would use a jetpack. I think there is more but i dont know all things anymore.

(12-22-2011, 04:08 PM)Feonica Wrote: Pickups are not attractive to outsiders and are not a solution to keeping a regular playerbase, that is what needs to be worked on. We need a minimum of 400 new people. 200 for EU, and 200 for the US.

Not that I disagree with you, but how did you determine that number?

I figure 200 is more than enough to fill EU servers

200 for US would be fine also.

I'm not really setting a number based on anything except it being a start to rising the game from the grave.

We somehow manage to get close to this number, hopefully from there our work would be complete and word of mouth would add the other numbers to the game.

I'd be interested to see everyone elses thoughts on how we can bring the numbers up.

We would also need about 100 people for Australia to get them kickstarted, those servers are more of a graveyard than the US or EU servers. But there are less of them.

Something to consider... a lot of players only join servers that aren't empty. So... just join a server and people will come. I play alone on the UDF5 server for about 10 minutes before someone joins, and then within several maps the server is full.

So, don't just open the server browser, sigh, then close the game! Just join a server!

(02-28-2012, 07:51 PM)aport Wrote: Something to consider... a lot of players only join servers that aren't empty. So... just join a server and people will come. I play alone on the UDF5 server for about 10 minutes before someone joins, and then within several maps the server is full.

So, don't just open the server browser, sigh, then close the game! Just join a server!

Works best with servers that are connected to irc channels.People on irc will see that u joined the server and will follow.If they dont just go on with other other stuff and keep an eye on the irc channel.If someone joins u on the server there will be an message and u can get back ingame.

This forum thread is for discussion of the pickup bot (XonPickup) for the #xonotic.pickup channel in QuakeNet.

As some of you know, I started improving the bot some time ago and implemented a couple of new features (code is linked in my sig). I want to explain some of the features here, but also invite you to discuss those features, suggest new ones or point out problem you encountered.

XonPickup overview

The pickup bot is written in Python and is based on the Twisted library for all the IRC and DB stuff. It makes use of Python's OOP features and is very modular in structure. This means that it is quite easy to create a new module which serves some specific purpose.

The XonPickup bot is just a normal IRC users who sits in #xonotic.pickup, but listens to any commands from the other users. You can either highlight the bot in a message to issue a command (e.g. "XonPickup: who") or prepend the command with an exclamation mark ("!who"). Most commands can also be issued in a query (private message), but not all of them. Note that some commands are only available to channel operators; if you feel something needs to be changed, talk to one of them! To get a list of all available commands, use !commands; to get a description of a specific command, use !help <command>.

XonStat Interface

The XonStat interface is a fork of the original pickup module (the one that manages the pickup games). It was extended to allow IRC users to register with their corresponding XonStat account. This makes it possible for other people to quickly check someone's XonStat data (like elo or rank). Furthermore, the bot now takes the elo scores into account to suggest teams once a pickup game is ready.

I talked about the algorithm that it uses to pick players for each team here. Basically it tries to divide the players in the pickpool (only those who have an elo value for the gametype in request) into two groups so that both teams have nearly the same combined elo score. The remaining players (without elo) are then randomly added to the teams. The captain-picking works in a similar way - one player is randomly selected, then another one with similar elo is picked as captain for the other team. This should both provide a good distribution among players who get picked as captains, and at the same time ensure a balanced selection.

The bot uses an internal DB to manage the registered users. It will keep track of nickchanges as long as the bot is in the channel, but of course it can't do anything about people changing their nick offline. For that reason, it is possible to register the same XonStat account from more than one IRC nick, e.g. if you're using different nicks regularly. (If this feature is abused, it might be necessary to limit registrations to authed accounts only!)

TODO:

Make the bot remember pickup games which are coming-up over restarts. Currently pickup games are lost if the bot is restarted for some reason.

Commonly used commands:

!pickups - Lists all available gametypes for pickup, e.g. tdm, 3v3ca, 5v5ctf and so on.

!who - Show players who have added up for pickup games.

!add [game(s)] - Add up for a pickup game, i.e. announce that you're wanting to play a pickup game soon. You have to specify a game to add up to, e.g. tdm, 3v3ca, 5v5ctf, duel and so on.

!remove [game(s)] - Remove yourself from a pickup game. If no arguments are provided, this command removes you from all games you have added up to.

!renew - Renew your pickup games. You're required to renew your add-up within some time interval (currently one hour), to keep people from essentially leaving the channel (afk'ing) and not being available once a pickup game starts.

!promote [game(s)] - Show a public message promoting the given pickup game. This feature is supposed to gather enough players to start a pickup game, e.g. if just one or two players are missing.

!register <xonstat-id> - Register your IRC nick with the given XonStat account. The id is the number you see in the URL of your XonStat profile. A public message will be displayed if you successfully register.

!info <nick> - Show XonStat info about some registered player. This command uses an IRC nick to look up the XonStat info.

!listplayers - List all users that have registered so far.

!whois <xonstat-id> - Show all IRC users that have registered to the given XonStat account (remember that more than one user can register to the same account).

Gameserver Interface

This module aims at providing some server-querying features. Servers can be registered and then are available for queries directly in the IRC channel. Like the XonStat interface, this module uses an internal DB to manage all registered servers. However in this case, only admins can register a new server - so if you feel some server is missing, just ask an admin!

The module provides commands to query a registered server (e.g. check status, number of current players, which game is currently going on etc.). It also allows to retrieve a list of servers which match given criteria (e.g. active servers, or empty servers), and to search for a specific player on all registered servers. The last feature might come in handy if some player is "missing" in IRC, e.g. for a pickup game. Of course, the search can only look for the in-game nick the player is currently using. Finally, the "pickserver" feature is intended to select a server for a pickup game once the game is about to be started. It picks an empty server which matches the selected criteria (e.g. to find a XPM server).

The module uses short-names for all servers, like "dccplain" for DCC's Plain Delight. Note that the server queries use the external program Quakestat, and can take a couple of seconds to complete - so DON'T re-run a command just because you don't get an instant reply! The module also uses some caching (currently with a lifetime of 60 seconds), to speed up concurring queries.

TODO:

Query available gamemodes from the server. This should be possible via rcon, in which case the bot would need restricted access to some commands (like querying maps, querying available votes and so on).

Find a server near a given location. Currently you can only search for a server in a specific country (say, DE), but then no servers in neighboring countries will be shown (e.g. in NL).

Automatically pick a server once a pickup game is ready. For this to get implemented, everything else needs to work completely flawless first. Currently, a list of empty servers with the required amount of free slots is shown; however there are problems with votable servers where e.g. a duel was running, which show up with only two slots although they have more to offer.

Commonly used commands:

!addserver <name> <ip> - Register a new server with given name and IP. If successful, a public message will be displayed.

!server <name> [cmsg] - Retrieve info for the given server, e.g. hostname, status, number of players, current game, and location (GeoIP-based). If you supply a second argument ("cmsg"), the reply will be a public channel message (useful if you want to suggest a server for a pickup game).

!playerstatus <name> [cmsg] - List all players currently active on the given server.

!serverip <name> [cmsg] - Show the given server's IP address to connect to.

!activeservers - Show all registered servers which currently have players.

!emptyservers - Show all registered servers which are currently empty.

!pickserver [slots] [mod] [location] - Show all empty(!) servers which match the given criteria. You can specify a mimimum number of slots; a mod which has to run on the server (Xonotic, XPM, MinstaGib, Overkill, ...); and a location. It is possible to use multiple mods and locations by separating them with commas.

!findplayer <nick> - Look through all registered servers and search for the given nick. The search is case-insensitive and searches for sub-strings, too. It also skips any color codes in the nick.

I'll try and keep this post up-to-date when I add or change any of XonPickup's features.

Quote:so DON'T re-run a command just because you don't get an instant reply!

Maybe put this in the title of the pickup channel?

I think I'll just use some timer for these commands, so that people can't run them more than, say, once per 5 seconds.

EDIT: That's implemented now, so you can't run two query commands within 5 seconds (this applies globally to all users). However, it's still possible to run commands twice and then receive two replies; but thanks to caching this doesn't result in any additional server queries (it's just annoying for the user who re-runs the command ).

I don't know IRC seems like the wrong thing, yes lots of people use it but mention it to most kids and they have no clue IRC even exists. On top of that having to keep yet another window open and always checking it just to play is a no no for casual players.

The only thing that will bring in players is advertising, who cares if the release is not 1.0 when you have only a hand full of people that know about your game.

Who's hindering you from just playing the game then? Also, if people fail to open the Quakenet webchat page in their browser and add up for some game after asking in the channel how that stuff works, they probably can't handle pickup games either...

Anyway, I get your point of course. But from what I know this problem is already being worked on; there will be some "offline" application ("xonlobby") which manages starting instances of the game, including a server browser and an interface to #xonotic.pickup

(06-07-2013, 02:01 AM)end user Wrote: I don't know IRC seems like the wrong thing, yes lots of people use it but mention it to most kids and they have no clue IRC even exists. On top of that having to keep yet another window open and always checking it just to play is a no no for casual players.

The only thing that will bring in players is advertising, who cares if the release is not 1.0 when you have only a hand full of people that know about your game.

Don't put up barriers and unnecessary steps to game play.

Using IRC with a bot to organize matches are a old method of match making. And people don't really need to even download their own irc client, it's just to click the link on the front page.

It's not like those triple-A titles that has match making in-game, but having it through IRC makes the game more social too IMO, since you have to communicate with other players to start a game, instead of just automatically do everything.