Announcement

Collapse
No announcement yet.

Back to basics

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

  • Back to basics

    I have been lurking on these boards for some time. Unfortunately I have little knowledge of C++. I am a database programmer and have considerable experience in systems analysis and design.

    It seems to me that very little is going to be achieved here without some good old 'top down design, bottom up refinement'.The project needs to be broken down into broad categories, each in turn broken into smaller groupings and so on until the point is reached where further analysis becomes meaningless.

    For example (and being ultra simplistic) :

    1. Map
    2. Ages
    2.1 Stone Age
    2.2 Iron Age
    3. Buildings
    3.1 Cultural
    3.11 Stone Age
    3.111 Temple
    3.12 Iron Age
    3.2 Economic
    3.3 Military
    3.4 Building AI
    4. Units

    Once the basic structure is in place each level of the design can be 'refined'. Then and only then does it make sense to start any coding.

    There are alternative design paradigms. My favourite is 'prototyping'. This is where the basic structure is created without trying to dot all the i's and cross all the t's. Functionality is added bit by bit. The advantage of this paradigm is that the user gets a working program very early in the development process and meaningful user feedback is possible right from the start. (I digress)

    Now comes the really, really hard part.

    The game already exists. This means that the design already exists. It would be foolish (impossible?) to make changes which do not fall into the overall design of the game.

    So to the point of this post. It seems to me that the very first thing that needs to be done is to unravel Activision's design of CTP2. Produce a design document. Make public the design document. Discuss the design. Get it as accurate as possible. Not the design that you want but the design as it actually is. Then it is possible to start the 'refinement'process.

  • #2
    AAAAAAAAAAAAAAAAAAAAAARRRRRRRRRRRRRRGGGGGGGGGGGGG


    Just lost a big reply... I just hit the damn back button on my damn mouse. I guess I'll try again later, when I'm less angry.

    /me tries to think nice, peaceful thoughts

    Comment


    • #3
      interesting point
      Allways vote banana, its high in potassium!

      Comment


      • #4
        Originally posted by MrBaggins
        AAAAAAAAAAAAAAAAAAAAAARRRRRRRRRRRRRRGGGGGGGGGGGGG


        Just lost a big reply... I just hit the damn back button on my damn mouse. I guess I'll try again later, when I'm less angry.

        * MrBaggins tries to think nice, peaceful thoughts

        Ah yes the wonderful lost post/might comeout as a dbl post thingy
        Bitter experience has got me into a good habit, if i'm going to do a long post i always now type it in notepad/wordpad first - then poly can do its worst and i know i wont be getting too mad

        As for the subject of Lou's, you are probably right, but i think more actual stuff is being done than is being posted about. For example Mr.Baggins(who is being very industrious ), posted a quick update a little while ago and there were many things already implemented that i wasn't fully aware of.

        At the momment i guess the programers are having a play/fiddle/look at the code and seeing what they can and cannot do.
        The priority is for the time being being focused on getting rid of as many gameplay bugs as possible and getting succesfull compiles of the changed code.

        All the design stuff that is being discussed i think is just a fairly informal chat on the various parts of CTP2 that might/could/would/should need looking at to change at a later date. I'm sure when all this stuff has been talked about to death, someone will compile a more cohesive post with access to all the past discussions on the various topics(Locutus?).

        I imagine it will be some time before actual gameplay/design changes will be made to the code in any large amounts. CTP2 was a bit broken when it came out(MP especially).

        But dont be a stranger Lou, add your thoughts to the discussions as all points of views are needed and welcome, as to how to improve the actual game.

        There is an opportunity to create the best 4x historical(or not) tbs ever - it looks like the mainstream game producers have given up on this most loved format(well maybe bar Civ4/5/6 etc.....), so CTP2 is nearly our only hope
        'The very basis of the liberal idea – the belief of individual freedom is what causes the chaos' - William Kristol, son of the founder of neo-conservitivism, talking about neo-con ideology and its agenda for you.info here. prove me wrong.

        Bush's Republican=Neo-con for all intent and purpose. be afraid.

        Comment


        • #5
          Interesting... I'm a DBA for a financials Data WH. We use Oracle and SQL Server (for some reporting.)

          What do you work with, primarily?

          Our first issue is that this is a non-commercial project. No-ones getting paid to do anything. Things are being done on a volunteer basis. While everyone seems to be on the same page, that doesn't mean that everyone is on the same page in terms of having to do "x,y and z". Tasks aren't being handed out... you do want you want to, and can do.

          To me, documenting the existing system is counterinituitive. Things are object oriented, rather than being simply hierachical. Context is different and more important... and typical old documenting methods don't work.

          Some of the code is very straightforward and obvious, and other parts are obfuscated. You only have a clear understanding after working with them, and gaining experience.

          My thoughts as to an efficient way of assisting in understanding the code, which may be very complicated to explain concisely, would be to have a thread, (or threads) that we used to ask and answer coding issues.

          E.G.

          Does anyone know where "X" is handled?
          How can I do "X"?

          or even general coding questions like

          I'm getting this odd error "X", how might I solve it?
          Whats the best way to model "X" data/structure?

          ===

          As for new stuff, I agree that it should be designed before its implemented. I've been doing this already in an unofficial capacity... limited designs on paper, docs in new code, posts about usage and implementation.

          As for designing new systems... I completely agree... the DESIGN threads are part of this. Someone has to take each popular, sensible idea, if and when we're ready for it, and make an open IMPLEMENTING: thread, where discussion can occur on how we do "X".

          We should also have a chat, about the project, at some point soon, I guess... coders especially welcome, although we'll have to sort out a common time.

          Comment


          • #6
            But the issue is very important. There are potentially many people making changes in one area or another. Whether they be merely bugs or fixing some perceived inadequacy. How can you be certain that what one person does is not being undone by another? In order to make 'safe' changes the structure of CTP needs to be clearly understood.

            Thus, if someone is making some changes to, say, the buildings in CTP, then a glance at the design will make it clear which areas of the code will be impacted. This then makes it possible to delegate tasks knowing that there will not be overlap. Or at very least you will know where the overlap will occur.

            If the code is object oriented that's not a problem either. It merely requires a different type of documentation. Entity-relationships, data flows, whatever. Clearly what is done must reflect as accurately as possible what is actually there.

            I am (was) in business for myself writing custom software for medium to large organisations. Universities, coal mines, utility companies and the like. I settled on Microsft Visual Foxpro some time ago. This is also an object oriented language. My projects were almost always unique and very varied; filling gaps that could not be done by more 'standard' applications.

            Nowadays I mostly play games

            Trouble is most games are way too shallow for me. I am hoping your efforts will result in something a good deal better than Civ3, which lasted about 8 hours on my HD.

            About the only way I think I could usefully contribute is in the form of testing. I have downloaded the playtest and looked at the changes that have been made. Very few of these impact on the way I play the game. When something more substantial appears I will most certainly give you some feedback.

            Comment


            • #7
              Change management hasn't been a significant issue up til now. We manage alterations, by incremental fixes of files, which we keep track of. Within the files, you have comments listing whats been already done, and the actual changes themselves are denoted by #if !defined(ACTIVISION_ORIGINAL) preprocessor directives, and/or comments (which will be from us, since existing comments have been stripped.)

              I just don't see this as any issue at this point. Its certainly not been practically displayed in any way.

              As for OOD... there are more than 600 classes in the project, thats a horrific degree of complexity to map blind, and define relationships for. There's a high degree of interdependence, also, limiting our ability to define discrete sections.

              I certainly wouldn't volunteer to handle a fully method compliant documentation process.

              I can find anything I want with the flexible search tool in Visual Studio, thats been perfectly fine in finding and resolving all instances of whatever reference in particular.
              Last edited by MrBaggins; February 13, 2004, 00:31.

              Comment

              Working...
              X