Menu

Architecture

badboy
2002-10-15
2003-12-08
  • badboy

    badboy - 2002-10-15

    Here are some major architecture points to go over.  These are some things I've been thinking about as necessary for the "core" container of the game.  This is all pretty much independent of the actual Tradewars game, as you'll see:

    * DROP THE JTA, HELLO JTP

    We'd probably still piece together portions of it, such as the telnet code, but for the most part the framework they provide is not useful for our purposes.  Instead, I'm suggesting the Java Telnet Platform (I know, I know).  Basically we draw together all the non-TW portions of the program and create a platform aimed at MUDers and other text gamers.  At the core of the platform will be a module manager that holds together "modules".  These modules are things like the telnet console, the telnet services, decoders, databases, scripts, etc.  When you want a module, you request it and get an object, whose services you use like any other object (call its functions.)  No "bus" to deal with just to add a menu. 

    *JYTHON: LEARN IT, LOVE IT

    Jython is Python for Java.  http://www.jython.org  I am planning on building in support (as a module) for running Jython modules (scripts) like any other class.  This will allow users to (FINALLY) create their own scripts, and even complex analysis modules, etc.

    *FULL DATABASE BACKING

    Theres a small, in memory database called HyperDB that allows you to have an SQL DB inside your program (all pure Java of course).  This will allow an easier way to do analysis with the data collected from the parser.  Also, down the road, it will facilitate collaboration (Hello MrDon!) between clients to easily share information in real time, etc. 

    *JFlex STAYS, THE COMPLEXITY GOES

    For parsing the input stream, we still need to capture messages as they're coming in, and for that we still need the parser.  If you've looked at the file, its a gigantic void of terrible hacks from which the innocent never return.  However, I still think the idea is sound.  So I'd like to leverage JFlex to do the "hard" stuff (capturing random messages, splitting up "major sections" [port report, planet report, sector report, etc], and let the new ReGex stuff in JDK 1.4 handle the rest.  The regex is easy enough to understand and code, and once you're in a subset of the TW "language", it should be fast enough too.

    Ok, that should be enough to get people going.  Besides that, I have other ideas: P2P connections with teammates, for secure chat, data transfer, cooperative scripting; parsing input as well as output for "super smart" scripts; "emergency control" that can break into any script at any point, get to a main prompt, and get a player to safety, etc.

    DISCUSS!!!  I want to hear ideas, suggestions, critiques of suggestions, etc.  Brainstorm!

    Thanks,
    badboy

     
    • Justin Berka

      Justin Berka - 2002-10-16

      I think first and foremost we need to go ground up, ie architecture, then base stuff (TW scripts, MUD stuff), then luxuries (modules). DB and Jython support sounds really nice, especially the DB stuff. Also, I don't think we should say "We're using JTP and thats it", we need to look at whatever will work the best, even if that means writing some serious netcode. That's all my architecture stuff for now.

       
    • badboy

      badboy - 2002-10-17

      Oh, most definately.  But I think we'd want to work from a standpoint that the stuff we find (or write) molds to us rather than us to it.  By making things modular, we can use older stuff to get started, then rewrite if for speed later on.  The important thing is to get the foundation right to begin with.

       
    • Anonymous

      Anonymous - 2002-10-30

      Wish I had allready taken a Network Programming class.  It sounds like you are going for a very well thought out Object Oriented design.  I don't know enough yet to be able to make any great big implmentation suggestions but I can serve as an obediant code troll.  I am fluent in JAVA.  I should be able to write some nice modules and things.  I have had a Compilers course (2 times ;)  and am fairly good with like Jlex/lex, and have done grammars for yacc, and cup.  I can probably help with the manipulation of input/output.  I also currently taking a PL/SQL programming course and am learning more than a little bit about SQL and such.  Also I have used CVS before so I should be able to remember how to check out code and stuff.  That is all for now.  One suggestion I have is to make the DataBase the best thing we have.  I haven't parsed through any source code yet for the current jTwat DB impllementation but if we are using SQL as the storage medium then we have ALLOT of options.  We can use features like what jTwat allready has (pair find, bubble find, etc.), but also have planet, ship, alien, trader, whatever else we think of as options.  Basically I want to have a deep DataMine toolbox.

       
    • Ryan Glasnapp

      Ryan Glasnapp - 2003-12-05

      I'm for helping but it looks like all messages in this forum have kind of died out. Is this still going on or what?

       
      • badboy

        badboy - 2003-12-05

        Yes yes, its dead for me.  Someone else can take over if they want.  That's the beauty of open source!

         
        • Don Brown

          Don Brown - 2003-12-08

          Sorry to hear that badboy.  Well, after a few years, I'm picking up Tradewars development again and am in the process of writing my own helper initially based of parts of j-twat.  It's not at a release state yet, but you're welcome to take a look: http://sf.net/projects/twdata  I don't have a webpage up yet, so the current status can  usually be found on my weblog: http://www.jroller.com/page/mrdon

          Don

           

Log in to post a comment.