by date
Plan for Joshua Ritter
Plan for Joshua Ritter
| Name: | Prairie Games | ![]() |
|---|---|---|
| Date Posted: | Dec 31, 2002 | |
| Rating: | 4.0 out of 5 | |
| Public: | NO | |
| Comments: | YES | |
| RSS Feed: | or Subscribe with . | |
| Profile Page: | View profile page for Prairie Games |
Blog post
ActionRPG Launcher
I've been hard at work on the dynamic content management system, a.k.a. The ActionRPG Launcher.
I decided to go with FTP servers as this will allow the game's/framework's data/code to be mirrored on fast and existing servers. The management system uses a manifest of files, paths, and md5 checksums generated for the repository. The client scans it's own local files at launch and compares them against the repository digest. Only missing and modified files are replaced... whee!
The whole thing, including the respository generation code, GUI, and client fits into 18k of Python source. This is all you need, you can download/patch all the games content given just this one file. At 18k, you could even EMAIL the installer :) Of course, baseline/CD installs can also be used.
The Launcher can patch itself... in this case it tells the user that it must restart... it exits... and you simply runs the (new) script again... whewp!
Once you are all patched up... the Patch button turns into a Launch button and it's time to fire up your server (World/Region), or if you aren't the administrative type... simply launch the client and play... :)
I also recently added dynamic zone allocation to the Region Server... this means that Zones are served on demand. Nothing like logging into a world, selecting a character, and watching the region kick off the zone he is in from across the room... then being passed to that very Zone from the World...
I am starting to taste it... I already smelled it a few hours ago... time for a shower...
Anyway, here's a screen.. note that this is downloading from an FTP Server at actionrpg.servegame.com and installing into c:\actionrpg It's really no different than installing off a cd using InstallShield now is it? We've all been lied to, we don't need their plastic :)

... and does it run on Linux? Of course silly:

-Josh
ActionRPG Revolutionary
I decided to go with FTP servers as this will allow the game's/framework's data/code to be mirrored on fast and existing servers. The management system uses a manifest of files, paths, and md5 checksums generated for the repository. The client scans it's own local files at launch and compares them against the repository digest. Only missing and modified files are replaced... whee!
The whole thing, including the respository generation code, GUI, and client fits into 18k of Python source. This is all you need, you can download/patch all the games content given just this one file. At 18k, you could even EMAIL the installer :) Of course, baseline/CD installs can also be used.
The Launcher can patch itself... in this case it tells the user that it must restart... it exits... and you simply runs the (new) script again... whewp!
Once you are all patched up... the Patch button turns into a Launch button and it's time to fire up your server (World/Region), or if you aren't the administrative type... simply launch the client and play... :)
I also recently added dynamic zone allocation to the Region Server... this means that Zones are served on demand. Nothing like logging into a world, selecting a character, and watching the region kick off the zone he is in from across the room... then being passed to that very Zone from the World...
I am starting to taste it... I already smelled it a few hours ago... time for a shower...
Anyway, here's a screen.. note that this is downloading from an FTP Server at actionrpg.servegame.com and installing into c:\actionrpg It's really no different than installing off a cd using InstallShield now is it? We've all been lied to, we don't need their plastic :)

... and does it run on Linux? Of course silly:

-Josh
ActionRPG Revolutionary
Recent Blog Posts
| List: | 03/29/08 - TGEA 1.7 Build System and Embedded Python 03/14/08 - MegaTerrains - TGEA Update 01/18/08 - Minions of Mirth: Undead Wars Expansion 01/04/08 - Physics Overhaul - Video 12/26/07 - Web Integration - Video 12/21/07 - New MMO Client - Trees - Day/Night Video 12/18/07 - Minions of Mirth - 1.26 - Holiday Edition! 11/28/07 - TGB/TGEA integration first pass |
|---|
Submit your own resources!| Wendell Brown (Dec 31, 2002 at 13:09 GMT) |
| John Quigley (Dec 31, 2002 at 17:05 GMT) |
www.icculus.org/loki_setup/
Is the gui done with python's tkinter module or with something else?
| Prairie Games (Dec 31, 2002 at 18:54 GMT) |
@John: Patching does save some bandwidth, though at the price of having to store revisions. I've watched users/admins suffer thru incremental patching.. I prefer clean updates of new/changed/modified files.
I thought hard on using CVS (or Subversion) as a backend for the repository stuff (for incremental patching)... though I ended up with FTP as it is a FAR more common server type. FTP doesn't necessarily mean Anonymous FTP, want to charge/restrict access to the content? Authenticate a user/password....
If bandwidth becomes a real issue, I will need to incorporate some kind of .zip file logic for large files into the launcher/repository. Though, if large files are changing a lot, this could be viewed as a problem with the system that uses them and not the patcher. ie. seperate out the stuff that is changing so much into a smaller file.
Something that isn't visible here is the plan for using a Debian styled system of: stable,testing, and unstable branches. Most people would play on stable which implies slowly changing... with a few (mostly developers) playing on testing... and probably only key developers on unstable. These branches are available as an option in the launcher and stored to seperate directories... so if you wanted to see what is new on testing... you could without screwing up your stable game :)
It uses tkinter for the GUI, so you don't need any external stuff... just vanilla python...
-J
Edited on Dec 31, 2002 20:35 GMT
| Yacine Salmi (Dec 31, 2002 at 19:45 GMT) |
| Ben Garney (Jan 01, 2003 at 00:15 GMT) |
What I mean by this is: the client<->server link is FTP, but how do you plan to manage the content in the repository?
(Nice work)
Edited on Jan 01, 2003 00:15 GMT
| Prairie Games (Jan 01, 2003 at 00:59 GMT) |
-J
| Luc Jordan (Jan 02, 2003 at 16:28 GMT) |
Quote:
I am starting to taste it... I already smelled it a few hours ago... time for a shower...
First of all, that is disgusting. :)
Second of all -- you are the MAN. Isn't he the man? He's SO the man. DAMN.
| Mike Stoddart (Jan 04, 2003 at 01:31 GMT) |
| Jarrod Roberson (Jan 14, 2003 at 02:03 GMT) |
Reason I am asking, is I am planning on using rsync to do just this exact same thing for my project.
You must be a member and be logged in to either append comments or rate this resource.



4.0 out of 5


