<?xml version="1.0"?><!-- generator="bbPress" -->

<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
>

<channel>
<title>Ace of Spades Game Forums &#187; Tag: reverse-engineering protocol network - Recent Posts</title>
<link>http://forumarchive.spadille.net/</link>
<description>Ace of Spades Game Forums &#187; Tag: reverse-engineering protocol network - Recent Posts</description>
<language>en</language>
<pubDate>Mon, 04 May 2026 19:08:14 +0000</pubDate>

<item>
<title>alexthecreeper on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990&amp;page=2#post-20864</link>
<pubDate>Fri, 03 Jun 2011 09:39:54 +0000</pubDate>
<dc:creator>alexthecreeper</dc:creator>
<guid isPermaLink="false">20864@http://forumarchive.spadille.net/</guid>
<description><p>i managed to get it to work &#62;:)<br />
but it crashes alot &#62;.&#62;
</p></description>
</item>
<item>
<title>alexthecreeper on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990&amp;page=2#post-18959</link>
<pubDate>Tue, 31 May 2011 10:45:57 +0000</pubDate>
<dc:creator>alexthecreeper</dc:creator>
<guid isPermaLink="false">18959@http://forumarchive.spadille.net/</guid>
<description><p>im am now learning how to use this :P
</p></description>
</item>
<item>
<title>mat^2 on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-17242</link>
<pubDate>Sat, 28 May 2011 13:33:46 +0000</pubDate>
<dc:creator>mat^2</dc:creator>
<guid isPermaLink="false">17242@http://forumarchive.spadille.net/</guid>
<description><p>Win32 builds available!
</p></description>
</item>
<item>
<title>mat^2 on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-17237</link>
<pubDate>Sat, 28 May 2011 13:17:30 +0000</pubDate>
<dc:creator>mat^2</dc:creator>
<guid isPermaLink="false">17237@http://forumarchive.spadille.net/</guid>
<description><p>someonesomewhere: Sounds like a possible solution to the problem, even though there's still the minor problem of floodfilling the falling blocks, I suppose. By the way, I just got a reply from Ken Silverman, the man behind the VOXLAP engine: <a href="http://paste.pocoo.org/show/S9H5mKY011TWPaRNSA25/" rel="nofollow">http://paste.pocoo.org/show/S9H5mKY011TWPaRNSA25/</a><br />
As I mentioned earlier, we should actually be working on the VXL structure, since we can check the RLE-compressed Z-columns/spans efficiently. I'll try and whip something up soon :)
</p></description>
</item>
<item>
<title>someonesomewhere on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-17223</link>
<pubDate>Sat, 28 May 2011 12:04:20 +0000</pubDate>
<dc:creator>someonesomewhere</dc:creator>
<guid isPermaLink="false">17223@http://forumarchive.spadille.net/</guid>
<description><p>As noted in the other thread, I'd be tempted to store the entire map (well the solid nodes anyway - you can disregard the empty/internal ones I think) as a graph and then just look for disconnected vertices or disconnected groups/components of the graph.  There are algorithms for this sort of thing already.  Once you've found a disconnected component, remove it from the graph.</p>
<p>Not really thought about it much but "brute forcing" the paths to ground sounds a bit inefficient.  Worst case scenario is I have a map filled with blocks apart from the bottom-most three layers with two columns, one at 0,0 and the other at 512,512.  If I take out the column at 0,0, will it search through every single block in the map until it gets to 512,512?  Gut says its a bit sucky :)
</p></description>
</item>
<item>
<title>mat^2 on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-17045</link>
<pubDate>Sat, 28 May 2011 07:00:15 +0000</pubDate>
<dc:creator>mat^2</dc:creator>
<guid isPermaLink="false">17045@http://forumarchive.spadille.net/</guid>
<description><p>Triplefox: Interesting idea, it seems (even though I haven't fully grasped it yet). I should probably make load_c.cpp work on the VXL structure, and not the 'unpacked', gigantic array so we can use this method in the future (as far as I've understood, that's necessary). In any case, it would be great if you joined #AoS@QuakeNet so we could possibly implement the idea :-)
</p></description>
</item>
<item>
<title>Triplefox on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-17000</link>
<pubDate>Sat, 28 May 2011 06:17:14 +0000</pubDate>
<dc:creator>Triplefox</dc:creator>
<guid isPermaLink="false">17000@http://forumarchive.spadille.net/</guid>
<description><p>The RLE used in the VXL format suggests one possibility for improvement. We should start by caching the surface blocks along each Z column. That will allow us to start searching the top and bottom surfaces of a shape immediately, rather than expanding through the middle.</p>
<p>Subsequently, when we expand we should treat inner blocks differently. After thinking about the problem a long while, I'm pretty sure that inner blocks are only useful if they immediately expand to other surface blocks. i.e. we don't expand from an inner block to another inner block. And the only reason we need to use inner blocks at all, and can't simply stay along the surface, is because of corners; the pathological case is a diamond shape. We have to have the inner corner to know that the surfaces are connected.</p>
<p>Edit: I forgot to mention: the inner-to-surface trick only works if we use the Z cache to expand across the inside of the shape. Otherwise hermetically sealed caves will exhibit an "onion peeling" effect because they'll finish traversal without ever touching the ground.
</p></description>
</item>
<item>
<title>mat^2 on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-16972</link>
<pubDate>Sat, 28 May 2011 04:51:44 +0000</pubDate>
<dc:creator>mat^2</dc:creator>
<guid isPermaLink="false">16972@http://forumarchive.spadille.net/</guid>
<description><p>Szuwar: I don't think you get the protocol completely :) Basically, the *client* sends the PositionData, not the server (the protocol is very client-sided, yeah). It wouldn't take that long to finish the client, but it's not a priority. You're free to contribute if you want to, though :)</p>
<p>What I need help with the most is the floating block code - the current algorithm is a bit slow in corner cases (eg. in BridgeWars when people destroy the fundament of the bridge). hompy has been excellent in providing help on this, but if anyone wants to contribute, please have a look (the relevant function is 'check_node'): <a href="http://code.google.com/p/pyspades/source/browse/pyspades/load_c.cpp#116" rel="nofollow">http://code.google.com/p/pyspades/source/browse/pyspades/load_c.cpp#116</a>
</p></description>
</item>
<item>
<title>Szuwar on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-16800</link>
<pubDate>Fri, 27 May 2011 16:26:42 +0000</pubDate>
<dc:creator>Szuwar</dc:creator>
<guid isPermaLink="false">16800@http://forumarchive.spadille.net/</guid>
<description><p>I actually thought about writing some kind of a zombie-bot. The movement seems to work pretty good but I can't retrieve any information about zombie position. There is probably lack of something in my code as it get information about player who's connected by standard aos client but nothing about zombie (only PlayerData, CreatePlayer and ChatMessage). Anyway good luck with your server as it brings us a lot of possibilities.
</p></description>
</item>
<item>
<title>mat^2 on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-16770</link>
<pubDate>Fri, 27 May 2011 14:34:29 +0000</pubDate>
<dc:creator>mat^2</dc:creator>
<guid isPermaLink="false">16770@http://forumarchive.spadille.net/</guid>
<description><p>Szuwar: I don't like supporting old Python versions (it's not fun writing a compat.py), and if you've got control over your server, it shouldn't be a problem anyway. I just use the stdlib json module, by the way, which is probably simplejson.</p>
<p>The client is merely there for testing purposes. Unless a really good reason comes up for finishing it, it's not going to be hacked much on. It does support fetching the map from servers already and it can join the game - basically, the packet loaders/writers are there already, they just aren't used. I suppose it would be cool with an alternative client, but it'll be work ;)
</p></description>
</item>
<item>
<title>alexthecreeper on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-16691</link>
<pubDate>Fri, 27 May 2011 08:51:26 +0000</pubDate>
<dc:creator>alexthecreeper</dc:creator>
<guid isPermaLink="false">16691@http://forumarchive.spadille.net/</guid>
<description><p>want &#62;:)
</p></description>
</item>
<item>
<title>Szuwar on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-16661</link>
<pubDate>Fri, 27 May 2011 07:19:49 +0000</pubDate>
<dc:creator>Szuwar</dc:creator>
<guid isPermaLink="false">16661@http://forumarchive.spadille.net/</guid>
<description><p>matpow2, there is a small problem if you're using python below version 2.6 (in my case 2.5.2). After installing json module (from Ubuntu 8.04 repository) it has no method called 'load'. Switching to simplejson seems to work. </p>
<p>Also are you going to develop a bit more your client?
</p></description>
</item>
<item>
<title>mat^2 on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-16615</link>
<pubDate>Fri, 27 May 2011 03:17:15 +0000</pubDate>
<dc:creator>mat^2</dc:creator>
<guid isPermaLink="false">16615@http://forumarchive.spadille.net/</guid>
<description><p>I just added SSH, by the way.</p>
<p>:-)
</p></description>
</item>
<item>
<title>ivanTT on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-16609</link>
<pubDate>Fri, 27 May 2011 02:36:32 +0000</pubDate>
<dc:creator>ivanTT</dc:creator>
<guid isPermaLink="false">16609@http://forumarchive.spadille.net/</guid>
<description><p>matpow2 wow!!! very good!!!<br />
* togglebuild - Toggles building/destroying blocks on the server<br />
* togglekill - Toggles killing/shooting players on the server<br />
* toggleteamkill - Toggles friendly fire</p>
<p>this features allowed add more game modes and phases!!!!
</p></description>
</item>
<item>
<title>mat^2 on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-16587</link>
<pubDate>Fri, 27 May 2011 00:50:27 +0000</pubDate>
<dc:creator>mat^2</dc:creator>
<guid isPermaLink="false">16587@http://forumarchive.spadille.net/</guid>
<description><p>There are log files, yeah. I'll also do SSH very soon.</p>
<p>I might make a new topic, now that the 'WIP protocol implementation' title is quite misleading - pyspades is a very stable server, and it uses a lot less CPU than the original implementation, and in combination with the open-source, extendable nature of it, it's way ahead of Ben's work. It already has a lot of configuration options and in-game administrator commands, so people should seriously start considering switching to pyspades IMHO.</p>
<p>Current commands include:<br />
* login - Login as administrator<br />
* pm - PM another user<br />
* kick - Kick another user<br />
* votekick - Extended votekick (with updates on progress)<br />
* ban - Ban a user<br />
* mute - Mute a user<br />
* unmute - Unmute a user<br />
* kill - Kill a user<br />
* heal - Heal a user<br />
* lock - Lock a team (so nobody can join it)<br />
* unlock - Unlock a team<br />
* setbalance - 0 for no balancing, 1 for 1 extra player on a team, 2 for 2 extra players, etc.<br />
* rules - Sends the rules of the server<br />
* togglebuild - Toggles building/destroying blocks on the server<br />
* togglekill - Toggles killing/shooting players on the server<br />
* toggleteamkill - Toggles friendly fire</p>
<p>Upcoming features include:<br />
* SSH<br />
* Map metadata (so map makers can make blocks indestructable, etc.)<br />
* A binary build for win32 (for the people that don't want to get dependencies and compile)<br />
* A lot of other stuff that I can't recall ;-)</p>
<p>pyspades has been tested on Linux, Win32/64, FreeBSD and OS X so far, but should work on any appropriate platform with Python, Twisted and a compiler available.
</p></description>
</item>
<item>
<title>Jackster on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-16579</link>
<pubDate>Fri, 27 May 2011 00:31:07 +0000</pubDate>
<dc:creator>Jackster</dc:creator>
<guid isPermaLink="false">16579@http://forumarchive.spadille.net/</guid>
<description><p>10se1ucgo  So we now have remote control of the server?</p>
<p>Or you thinking RCON is ingame admin?
</p></description>
</item>
<item>
<title>impewpew on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-16574</link>
<pubDate>Fri, 27 May 2011 00:26:06 +0000</pubDate>
<dc:creator>impewpew</dc:creator>
<guid isPermaLink="false">16574@http://forumarchive.spadille.net/</guid>
<description><p>Keep up the good work!
</p></description>
</item>
<item>
<title>KwF_10se1ucgo_x on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-16523</link>
<pubDate>Thu, 26 May 2011 21:34:41 +0000</pubDate>
<dc:creator>KwF_10se1ucgo_x</dc:creator>
<guid isPermaLink="false">16523@http://forumarchive.spadille.net/</guid>
<description><p>he did. The command is /login. Lawl please read :P He didnt add logs though i beleive
</p></description>
</item>
<item>
<title>Jackster on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-16514</link>
<pubDate>Thu, 26 May 2011 21:26:54 +0000</pubDate>
<dc:creator>Jackster</dc:creator>
<guid isPermaLink="false">16514@http://forumarchive.spadille.net/</guid>
<description><p>Can you add rcon and log files?
</p></description>
</item>
<item>
<title>alexthecreeper on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-16509</link>
<pubDate>Thu, 26 May 2011 21:22:47 +0000</pubDate>
<dc:creator>alexthecreeper</dc:creator>
<guid isPermaLink="false">16509@http://forumarchive.spadille.net/</guid>
<description><p>bump
</p></description>
</item>
<item>
<title>mat^2 on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-15135</link>
<pubDate>Tue, 24 May 2011 06:31:03 +0000</pubDate>
<dc:creator>mat^2</dc:creator>
<guid isPermaLink="false">15135@http://forumarchive.spadille.net/</guid>
<description><p>Just a heads-up: The server seems to be complete. I've added some admin features like login/kick/kill/say, and the server can be configured a lot more than the normal server can. I'll make a binary package for win32 once I've implemented compression (which is a minor issue at the moment - it just means more traffic).</p>
<p>In any case, make sure to check it out! I'll fill the wiki when the time seems appropriate.
</p></description>
</item>
<item>
<title>mat^2 on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-11874</link>
<pubDate>Mon, 16 May 2011 09:56:32 +0000</pubDate>
<dc:creator>mat^2</dc:creator>
<guid isPermaLink="false">11874@http://forumarchive.spadille.net/</guid>
<description><p>I will do whatever I can to prevent cheating. The source *is* open-source and GPL, so if you have cheating troubles, you will be able to fix it yourself :) Of course, Ben isn't supposed to have pyspades in mind when developing on his project - I'll have to reverse-engineer new stuff he implements (unless he wants to tell me about it, which would be great, Ben!). Doing the custom implementation now is only a good idea - Ben will probably not do major changes to the protocol, so I'll only have to spot the small protocol changes he introduces.
</p></description>
</item>
<item>
<title>someonesomewhere on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-11831</link>
<pubDate>Mon, 16 May 2011 04:11:26 +0000</pubDate>
<dc:creator>someonesomewhere</dc:creator>
<guid isPermaLink="false">11831@http://forumarchive.spadille.net/</guid>
<description><p>Awesome this is great stuff.</p>
<p>I was wondering if/how you plan to do any server-side anti cheat type stuff and generally keep-pace with the development of the game?  I really really like the idea of a "better" server but am concerned its going to get fragmented - afterall fragmentation is what killed infiniminer.
</p></description>
</item>
<item>
<title>mat^2 on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-11809</link>
<pubDate>Mon, 16 May 2011 01:41:18 +0000</pubDate>
<dc:creator>mat^2</dc:creator>
<guid isPermaLink="false">11809@http://forumarchive.spadille.net/</guid>
<description><p>I've done a lot of progress on this. I've got nearly the whole network protocol reverse-engineered down (pretty much all server-&#62;client packets, missing some client-&#62;server packets still), and my custom client can retrieve maps from servers perfectly. I hope to have a 'demo' ready soon (that is, if I manage to progress so well further on) :-)
</p></description>
</item>
<item>
<title>mat^2 on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-10669</link>
<pubDate>Fri, 13 May 2011 19:19:55 +0000</pubDate>
<dc:creator>mat^2</dc:creator>
<guid isPermaLink="false">10669@http://forumarchive.spadille.net/</guid>
<description><p>I did, and it's been a week or so (seeing as he released an update just today, he either doesn't check his mail often or he's ignoring me completely).</p>
<p>I'm tired of very closed developers (I've done a complete server implementation before of a game, pySndo, where the author didn't want to maintain the game anymore, and didn't want me to do it either), so if Ben would become social around the community, that would only help.
</p></description>
</item>
<item>
<title>Green_Beret on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-10664</link>
<pubDate>Fri, 13 May 2011 19:05:38 +0000</pubDate>
<dc:creator>Green_Beret</dc:creator>
<guid isPermaLink="false">10664@http://forumarchive.spadille.net/</guid>
<description><p>I'd suggest you to email Ben since I don't think he checks the "Off-Topic"-section very often.
</p></description>
</item>
<item>
<title>mat^2 on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-10650</link>
<pubDate>Fri, 13 May 2011 18:34:36 +0000</pubDate>
<dc:creator>mat^2</dc:creator>
<guid isPermaLink="false">10650@http://forumarchive.spadille.net/</guid>
<description><p>Auto map reset and changing the map without disconnecting players is probably not possible (I don't think the client can do it), but the other features are definitely possible once the server has been implemented ;)
</p></description>
</item>
<item>
<title>izzy on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-10647</link>
<pubDate>Fri, 13 May 2011 18:31:14 +0000</pubDate>
<dc:creator>izzy</dc:creator>
<guid isPermaLink="false">10647@http://forumarchive.spadille.net/</guid>
<description><p>looking forward to this</p>
<p>native Linux support is very much needed</p>
<p>are these features possible?</p>
<p>- auto reconnect to master server<br />
- in-game text output to console (chat, kills, captures, etc.)<br />
- console say command<br />
- auto map reset<br />
- motd and rotational announcements<br />
- basic rcon for in-game admin messages, kick/ban, etc.<br />
- change map without disconnecting players
</p></description>
</item>
<item>
<title>Priok on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-10645</link>
<pubDate>Fri, 13 May 2011 18:25:32 +0000</pubDate>
<dc:creator>Priok</dc:creator>
<guid isPermaLink="false">10645@http://forumarchive.spadille.net/</guid>
<description><p>it sounds pretty cool, I love this python brogramming language. good job with the cross platforming
</p></description>
</item>
<item>
<title>mat^2 on "pyspades - WIP protocol implementation"</title>
<link>http://forumarchive.spadille.net/topic.php?id=990#post-10643</link>
<pubDate>Fri, 13 May 2011 18:21:02 +0000</pubDate>
<dc:creator>mat^2</dc:creator>
<guid isPermaLink="false">10643@http://forumarchive.spadille.net/</guid>
<description><p>There's no EULA stating that I can't reverse-engineer it for interoperability, and I'm doing this for the whole community, so I can't see why it wouldn't be a very good idea. ;)</p>
<p>Ben has never disapproved work like this, so I'm not quite sure why you would think otherwise.
</p></description>
</item>

</channel>
</rss>
