Announcement

Collapse
No announcement yet.

Programming: Architectural Design

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Programming: Architectural Design

    Hello all programmers!

    Just wondering if you have any main architectural styles or guidelines thought out at this point? I read the plans on the website, but I can't claim having any revelation on *why* certain structure is used. Furthermore, there was no division between client side and server side components, though as an inexperienced programmer I wouldn't know if this is important.

    My layman's vision for the architecture would be some sort of publisher-subscriber system where the components would subscribe to receive the events they're interested in and themselves publish events. This would allow the best upgradeablity for the game, since you could start out with a relatively simple prototype and add complex entities like religions, companies, characters and whatever the designers might come up with in the future with minimal or no changes to the existing components. Any sense in this?

    (The current model, if I have understood correctly, is that you have an Event Manager object where all the events of a turn are stored; then other objects query events from EM. The way I see it, this leads to massive polling by other components and needless to say, in a game of this complexity there would be a stunning number of events each turn.)

    I'm interested in this topic since I someday would like to contribute to the programming of the game, and since I'm definitely not a hack I'd like the general architecture to be as easily modifiable as possible. Please don't hesitate to bash my ideas; that's the best way to learn!

    [This message has been edited by Leland (edited December 31, 2000).]

  • #2
    Well Leland, I'm not a programmer too, but if you want some more insight into the structure used to program GGS I would recommand that you subscripe to our newsletter. It's where all the 'quick messages and news updates' are send that are not important or not to be seen by public

    Comment


    • #3
      How do I subscribe??

      Comment


      • #4
        Thanks. I just subscribed. Ignore the email I sent you.

        Comment


        • #5
          Hello Leland!

          I must say I am a fan of your comments and questions, since they seem to me much like mine at the time

          I dont even remember what was the stuff about Event Manager all about ... it was six months ago!

          But I am glad someone actually read the thing
          I am quite proud of the time we invested to form a good architecture at the begining of the project - and I think there are some good results of it too.

          The thing is - multiplayer coding is a little universe for itself and I dont have enough knowledge or expirience to do it. Coding was started by DanW, and since he left the project work on that left with him.

          The policy we have now is to concentrate on things we can do, and do them good.


          Damn, now I have to read all that again

          Comment


          • #6
            quote:

            Originally posted by VetLegion on 01-02-2001 04:29 PM
            I must say I am a fan of your comments and questions,
            **zip**


            Yeah! You're posts are great, keep up the good work.


            Comment


            • #7
              Hi Leland! You can subsribe to the list at http://sourceforge.net/projects/civ3/ in the lists section. I don't remember do you need to subscribe to sourceforge first, but possibly not. Refine your questions there, and we will try to answer them there so that designers don't need to get confused by programming things; the mailing list is the main forum for programming things.

              But about your question, we will indeed use an Event Manager, but as you proposed, we will have a system where all components ask the manager to send a note on certain events; then when that event occurs, the component is notified. But enough of this, let's continue on the list! Hope you can get subsribed ok! If problems, ask here for assistance.

              Comment

              Working...
              X