Springie the AutoHost - Page 7

Springie the AutoHost

Various things about Spring that do not fit in any of the other forums listed below, including forum rules.

Moderator: Moderators

Post Reply
fLaMbEuR2
Posts: 1
Joined: 02 Dec 2006, 13:18

Post by fLaMbEuR2 »

Hi, is hole punching implementable ? I don't want to open ports on my firewall since I'm not the only one on the network...

Thanks in advance.
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

You only need one (any) UDP port, and hole punching or not, you will take that port anyway :) So forward it, it wont restrict anyone.
So if you can, open 1 port. Hole punching is down todo list and won't be implemented quickly.
Soni
Posts: 2
Joined: 01 Jul 2006, 12:07

Post by Soni »

Is your host possibly down?
Can't seem to grab the zip.
Edit: All good now, ty.
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

===============================
SPRINGIE 0.85b
===============================

- !endvote command added - cancels current poll
- added !addbox and !clearbox commands to manually manage boxes
- added unit disabling
- GUI now contains "current battle" dialog which allows you to modify battle settings (details, map, disabled units) directly from menu
- presets implemented, presets can be defined in Springie settings. Presets can change some of the battle details or disabled units and can be voted for or listed on server.
- !listpresets, !preset, !presetdetail, !votepreset commands added to list, view and apply presets
- !cbalance added - works just like balance but attempts to group clanmates together

minor tweaks and bugfixes:
==========================
- fixed GUI default map selection bug
- springie now reports AMD "virtual" CPU speeds rather than real MHz (So Athlon 2500+ will report 2500 MHz instead of it's real 1830MHz)
- voting improved - it will now end automatically if remaining undecided votes are not enough to win
- added seperated options to minimize and hide spring
- default hosting priority now set to normal
- it's now possible to disable automatic maplink display (option in settings)
- unknown sync kicker disabled (no more need for it, lobby server is fixed now)
- it was possible to !start game when server was empty (and cause spring crash), this is now fixed
- fixed long lasting throttling bug (springie sometimes refused to run a command)
- !springie command now displays time intervals instead of GMT time

=============
Current todo:

- banning
- central statistics
- demo uploading
- mod downloading
- hole punching
User avatar
Neddie
Community Lead
Posts: 9406
Joined: 10 Apr 2006, 05:05

Post by Neddie »

Looking good...
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

- Fixed minor bug with presets.

Presets disabling units are supposed to be additive (you can first apply preset disabling nukes and then preset disabling weasels to have both nukes and weasels disabled). But lobby server doesn't work as expected so it didn't work until this update.
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

===============================
SPRINGIE 0.86b
===============================

- banning added (!ban, !unban, !listbans) - banning has optional timelimit and reasons. Bannes users are tracked and their IP and name changes are monitored (=it's hard to come back once you get banned)
- mapcycle added ("game" section of settings). You can specify list of maps and when game ends Springie automatically changes map to next one from this list.


minor tweaks and bugfixes:
==========================
- fixed unit disabling preset bug (actually workaround lobby server bug) - applying multiple presets with disabled units didnt work properly
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

Code: Select all

FormMain.Designer.cs(385,13): error CS0234: The type or namespace name `SplitContainer' does not exist in the namespace `System.Windows.Forms'. Are you missing an assembly reference?
[...]
FormMain.Designer.cs(393,13): error CS0234: The type or namespace name `StatusStrip' does not exist in the namespace `System.Windows.Forms'. Are you missing an assembly reference?
FormMain.Designer.cs(394,13): error CS0234: The type or namespace name `ToolStripStatusLabel' does not exist in the namespace `System.Windows.Forms'. Are you missing an assembly reference?
[...]
Compilation failed: 13 error(s), 0 warnings
make: *** [springie.exe] Fout 1
These Windows.Forms things seem missing on mono, any chance you can replace those? Could be very useful if I could autohost on linux now win<->linux syncs and automatically grab backtraces on crashes or run replays through valgrind if idle.
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

===============================
SPRINGIE 0.87b
===============================

- springie now has optional central server stats gathering (setup it in "main" section)
- springie now has optional gargamel mode (for smurf reporting - needs stats enabled)
- !stats and !smurfs commands added (those are executed on central servers, so parameters can change, use !stats and !smurfs without parameters to obtain more help)
- springie is now using .kickbynum to properly kick players from game
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

Tobi:

I can get rid of StatusStrip, but I have no idea how to get rid of SplitContainer - it's central part of GUI.
Split container makes two panels on form with divider and you can "slide" diveder to adjust sizes of those two panels.

I could make a special version for you that would run without GUI (well it's actually very easy to disable it, it doesn't need GUI to run, code is strictly separated..
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

This is structure of the central database that is being filled by Springie now (just to get you an idea what kind of data we can get from it).

Code: Select all

CREATE TABLE `Autohosts` (
  `playerId` int(11) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY  (`playerId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


CREATE TABLE `Games` (
  `id` int(11) NOT NULL auto_increment,
  `playerId` int(11) NOT NULL,
  `title` varchar(255) NOT NULL,
  `mapId` int(11) NOT NULL,
  `modId` int(11) NOT NULL,
  `start` int(11) NOT NULL,
  `duration` int(11) NOT NULL,
  `players` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ;


CREATE TABLE `Games2players` (
  `gameId` int(11) NOT NULL,
  `playerId` int(11) NOT NULL,
  `spectator` tinyint(1) NOT NULL,
  `victoryTeam` tinyint(1) NOT NULL,
  `aliveTillEnd` tinyint(1) NOT NULL,
  `dropTime` int(11) NOT NULL,
  `leaveTime` int(11) NOT NULL,
  `side` varchar(20) NOT NULL,
  `loseTime` int(11) NOT NULL,
  `allyNumber` int(11) NOT NULL,
  PRIMARY KEY  (`gameId`,`playerId`),
  KEY `side` (`side`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


CREATE TABLE `Maps` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;


CREATE TABLE `Mods` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;


CREATE TABLE `Players` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `lastSeen` int(11) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM AUTO_INCREMENT=703 DEFAULT CHARSET=utf8 AUTO_INCREMENT=703 ;


CREATE TABLE `Players2ip` (
  `playerId` int(11) NOT NULL,
  `ip` int(11) NOT NULL,
  PRIMARY KEY  (`playerId`,`ip`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
[/code]
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

Hmm thats interesting, could you record sync errors too?

And I guess I'll just make a GUI-less version myself then :-)
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

Yeah, I could (if it is in game log) and I could also auto upload desynced games somewhere ;) Preferably some FTP storage.

GUI-less version should be easy - just remove all the forms and move Main.Start() from Form1.Load to Program.Main
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

SPRINGIE 0.88b
===============================

- spring window hiding is now more reliable
- new icons added - systray icon now looks just like game icon in TAS to reflect game status (empty, players in , game running)
- fixed GUI crossthreading bug that caused some random errors with try tooltip and status bar texts
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

===============================
SPRINGIE 0.89b
===============================

- fixed player status GUI bug introduced in 0.88b
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

===============================
SPRINGIE 0.90b
===============================

- stats didn't register players who disconnected before game start (fixed)

Please change stats site settings of your springie to "http://unknown-files.net/stats/" !! (It's in main section of settings)

Also note that for !smurfs command to work, at least one springie must run with gargamel on (it's in main config too).
User avatar
Neddie
Community Lead
Posts: 9406
Joined: 10 Apr 2006, 05:05

Post by Neddie »

What is the function of these stats features?
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

Well it gathers information about games .. who played, for how long, what were allies, what map, what mod, who won, who left, who dropped etc..

Some very basic info can be accessed using !stats command, but it needs website to display gathered data in more accesible way. (So that you could for example filter out just 1v1 games of certain mod, or find people with best win % on certain map and such).
Mealstrom is probably going to take care about that site I hope :)
tombom
Posts: 1933
Joined: 18 Dec 2005, 20:21

Post by tombom »

neddiedrow wrote:What is the function of these stats features?
To show us how boring the map choices are.
[10:17:41] <[Bot]Nanonano> == Globally most popular maps ==
[10:17:41] <[Bot]Nanonano> 1. Small Supreme Battlefield.smf (17 games, for total 9 hours 6 minutes - average game took 32 minutes and had 5 players)
[10:17:41] <[Bot]Nanonano> 2. Altored_Divide.smf (9 games, for total 5 hours 0 minutes - average game took 33 minutes and had 8 players)
[10:17:41] <[Bot]Nanonano> 3. SpeedMetal.smf (2 games, for total 2 hours 25 minutes - average game took 1 hours 12 minutes and had 2 players)
[10:17:41] <[Bot]Nanonano> 4. SmallDivide.smf (9 games, for total 1 hours 54 minutes - average game took 12 minutes and had 2 players)
[10:17:41] <[Bot]Nanonano> 5. Comet Catcher Redux.smf (3 games, for total 56 minutes - average game took 18 minutes and had 2 players)

:(
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

I hope that it will soon be possible to tell springie to run in "ranked" mode - run 1v1 autohost which will auto submit results to ladder ;)
Post Reply

Return to “General Discussion”