Announcement

Collapse
No announcement yet.

Object Builder: Bug Reports

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

  • [this message was posted simultaneously with F_Smith's last post]

    F_Smith:

    By now I'm doubting my skills to communicate in english... I feel I've been saying the same things over and over again. Here I go again...

    It's not a matter of model ownership. I don't feel you're turning your back to "our" model or that you're creating "your own" model. Even if the latter is true, I don't mind seeing other attempts to create a govt model.

    It's not that I consider you my working bee expecting no inniciative or ideas from you. The more ideas you have, whether for coding or for design, the better this project will be. I honestly think so. However, simply implementing your ideas without analysis is an approach I don't like.

    It's not either that I feel "our" model can't be changed. I'm sure there're things we can change for the better.

    It's not either that I don't like testing. I feel it's very very valuable. It's IMO a good way to find out what things must be changed.

    I have experience coding (I used to code in basic and pascal some years ago), so I know what you're going through and I know how these things go.


    So, What's what really bothers me? It seems to me that you give EXTREMELY little value to equations. I feel your concept of a model and mine are very different. My perception is you see a model mainly as a set of elements/objects with attributes, where methods (equations) are just a couple of multiplications and sums of attribute values. For me the equations are Everything. For me a model is nothing but defining a correct set of equations. Equations define how all info must be treated and processed in order to achieve an interesting outcome. It's them that determine if you'll have a fun or boring game. They're IMO the only real value a model has and I feel you don't value equations like this. Maybe it's like a "coder's desease" where mind focuses on objects and forgets about procedures or treats these as if they were simple objects. The discussion in the govt model thread about scalability of classes is maybe a symptom of this disease. Assuming we can have lots of classes just because code allows lots of objects shows how little importance equations have in your mind.

    There's a lot (and I mean a LOT) of thinking behind procedures (equations) in the govt model. I and Axi spent lots of hours thinking these equations you find in the govt model. So, when you go and say "I'm not going to code 'your' procedure, but this other one I came up with last night", then it's impossible to not be offended! Unless you're a genius (myabe you are, I don't know), it's very hard to believe you invented procedures during a weekend that are better than those that took us, Axi and me, several weeks to develop. If you (or anybody) are going to challenge several days of work and a lot of effort, then AT LEAST I want arguments showing me why the procedures we developed are wrong. Otherwise you're just insulting my inteligence.

    I know you never intended to be insulting or offensive, but you've to realize your coding style (which says "let's change whatever 'feels' wrong without thinking too much what we're doing") overlooks my effort and I can't help feeling offended. This feeling must not be confused with an opposition to change the model. I'm willing to change Anything in it. I don't "own" the model. It belongs to us all. But I can't see how the model is arbitrarily changed without any arguments with new systems based, again, in no arguments showing why they're better.

    You can still say "the code is 90% what you planned", as you usually do, but I don't share this opinion. Changing the "negotiation procedure" is a major change in the model. And I wonder why it was changed without any testing! You say "let's test and see", but before any tests you're already doing other stuff! Then you say "let's code both systems". Yes, of course we can at the same time test several different implementations to see what's better, but are we going to code whatever alternative method that comes to mind? Sure not... it'd be a waste of time. We should only test systems having a relative good chance of success. This means we should at least have a general idea of what we'll do. But in this "doing-by-improvisation" style, we are like sailing to wherever the wind wants to take us to. There's no way to know if what you're doing is a total failure or a fantastic idea. What scares me the most, however, is the beast-based analysis improvistion will lead us to. The capability to analyze an implementation and all what it can provide and all what it does wrong will be strongly reduced if we can only base our opinions on beast's windows and their cool messages instead of looking at equations. We'll see things like "people have started a revolution!" and we'll say "oh, that's cool", and then conclude it's fun, but will we know if the message has sense? will we know if that will happen at the right moments? I'm affraid we'll be approving many things in the beast because they proved to work nicely in a couple of scenarios in it, but without realizing the same system can be a total failure in other circumstances. I need to know what's happening behind stage. I don't want to work just looking at the cover.

    But you go. Continue with improvistion in whatever aspect you think is useful. I don't want to be the guy who destroys the innovation. All I ask is for you to give us all the equations (procedures) you're using instead of the ones provided in the govt model. In this way I'll be able to critizice your implementation in a way you never did with mine!


    So, to sum up, I'm against any arbitrary change to the model having no arguments and without explaining what is better in an alternative implementation. I won't participate in that game. Don't insult me changing things without discussing them only to have what YOU think is better with no arguments at all, and then asking me for feedback... Maybe I'm too uptight, but, well, sorry. God bless argumented analysis!
    You can do it, tho. You (and all the rest who feel tempted to create a govt model without saying why it's better than the model Axi and I developed) can go ahead, just without my help. I'm sure this is understandable. On the other side, I'm all ears to those who are willing to critizice the "current" (?) govt model. I'm all ears too for those who believe other entirely new govt model must be developed based on what's wrong with the "current" one.

    A final thought: I know you all (with the exception of Axi and maybe Mark) don't really know the govt model. I know you don't know what procedures can and cannot do in terms of gameplay. I know it's boring to read the very long govt model document and even those who do it, I know it takes some time to really understand it. The same thing happens to me when I look at other models. I'm willing to write an "explanation post" dicussing pros and cons of the model for those who are really interested in the model and want to do some serious criticism.

    P.S.: I'll check the beast when in a better mood. Just please don't stop doing your stuff because of me, F_Smith. I'm just one in this team and Clash is greater than me. I don't want to see you saying (again) that you're planning to leave the project. I wouldn't like to be blamed for that. It's better having a coder than an uptight, equations-lover model developer like me!
    [This message has been edited by roquijad (edited August 21, 2000).]

    Comment


    • I think I can understand both roquijad and F_Smith. Rodrigo's comments in the post above are very close to what I would have said about the tech model a month ago. (And I think I did say something similar a while back.) There is a lot of thought and planning that goes into the model equations, and it does frustrate the model lead when all of that work is tossed aside by the coder for inexplicable reasons.

      But as I learn about Java and Object Oriented structures, I see that most of what F_Smith says is correct. In Java, objects are everything and everything is an object. The equations are of secondary importance and are coded last. It is the object hierarchy and definitions are the most important things and are coded first. Java is built around this design approach that is non-intutive for most people.

      So the model lead is upset that the coder is ignoring the core of the model and the coder is annoyed that the model leads are obsessed with things that are of secondary importance in the code.

      There are two alternatives for resolving this clash of thought patterns:

      1) Abandon Java and switch to a procedural programming language like the one I, and presumably Rodrigo, are accustomed to.

      2) Create models using an Object Oriented design system.

      I think we would all agree that option 1 is not a good plan. So, the model leaders will have to design systems that work with Java's OO structure.

      This would require time and effort to accomplish. Model leads would have to learn a new system of doing things, and the coders would have to teach them and do more work with the models. But I think that in the end everyone would benefit. The coder could easily create the code based on the model, and the model leader would know that the model will be implemented exactly as designed. And something needs to be changed, the model leader rather than the programmer should be able to change it.

      Comment


      • Just a few comments to get myself in trouble before I go to work .

        For purposes of full disclosure, I think I come down more on the equation modeling than the object modeling side of things for game design. Although I think I can see each side of the issue at least somewhat. For actually building the code, and making sure its flexible, obviously an object approach is better. Neither approach guarantees the result will be fun. For that we need playtesting.

        For things that take a long time to code I think its clearly better to have significant discussions before the coding. Otherwise huge amounts of coding time (currently our most scarce resource) can be lost.

        However, for an optional way of handling things that is easy to code, it is IMO more productive to just try it. So long as a switch is put in to allow the option to be used or not at tester discretion.

        There are many things in the gray area between the 'mostly talk/model' and 'mostly code' extremes, and judgement needs to be used. But bear in mind that one of the criticisms I have heard numerous times from different people about the Clash project is that we spend too much time talking. I am not sure the criticism is legitimate, but every potential member we scare off because they think we never Do anything is one more resource lost to the project. So coding up alternate ideas is one way of Doing rather than talking.

        It looks to me as though, at least now, F_Smith is programming the complete proposed govt model, and then putting in switches for his ideas. I think this is a great model for how to investigate a lot of the 'design space' effectively.

        I agree with Richard that we should move towards more thinking about objects in the models. But I personally think most of our models are inhererntly at some level already object-based since they try to mimic actions and reactions of groups of people or whatever in the real world.

        So personally I think it is not too difficult to assign objects for coding purposes to any of the models. YMMV
        Project Lead for The Clash of Civilizations
        A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
        Check it out at the Clash Web Site and Forum right here at Apolyton!

        Comment


        • Rodrigo:

          I understand your frustration. When I started learning Java, I was slinging Cobol for a living. It was a major adjustment.

          But OO modeling is the next step up from 'procedural' or 'equations-based' modelling. OO modeling is *far* more powerful.

          No one will never be able to build a game like this procedurally. Procedures/equations by themselves are just too limited.

          * * *

          Richard:

          Whoah. That's the best summation I've seen on the topic, I think.

          Good post, man.

          * * *

          Mark:

          The only problem with modelling in equations then converting to OO for coding is all the power and flexibility the OO could have given us that we'd chose not to use.

          And if the model will have to be converted to an OO model anyway, for coding, the programmer ends up redoing the model anyway . . .

          Comment


          • Rodrigo:

            One example might explain better than I can otherwise.

            It's a system everyone is pretty familiar with.

            In modeling a 'military' system -- which is more important, the equations or the objects?

            If you were to create a combat system, first you'd define 'men', 'weapons', 'armor', etc. Not just as variables, but as 'objects'. The actual combat equations themselves would be the last thing you'd need to worry about.

            Interesting way of looking at it in that thought, too -- an OO design is very much like a very complex equation in which the variables can themselves hold (encapsulate) other variables and equations.
            [This message has been edited by F_Smith (edited August 22, 2000).]

            Comment


            • First of all I've to say I'm impressed by F_Smith's "serenity". Although I HAD to state what I thought, I was worried my comments would start again the frustration on him encouraging to abandon the project. I'm glad to see him in a more tolerant attitude regarding this kind of discussions. Now I'm the one who appears as intolerant!

              I don't share any of the comments above by Mark, F_Smith and Richard about the relative importance of equations and objects. But I don't see the point in insisting on the subject. Let's just call it an unbridgable disagreement and forget about it.

              I had said all what I think, so there's nothing more I want to add. I guess I can trust F_Smith will be a little more "kind" with me in the future when it comes to procedures and equations. In return I can be a little more tolerant with his style of changing things without much analysis. All for the sake of the project's development.

              Someway or another I and F_Smith will have both to learn to work with the other. I know there's a willingness to do it from both sides, so the rest of the team can be sure we'll move on someway or another. A couple of fights in the the process are simply part of it!

              Comment


              • Well I haveto say I don't care how or what ideology is used to make the coding work. Equations or objects or whatnot. As long as it does what I/we want in the end (taking into consideration things that we find out just won't work well once coded).

                I do haveto say though that there are things that seem to work fine without equations and would likely fail once we put them in, and vise versa.

                Any model could be fitted with with objects, even if they are vague. It is on of the few inherant natures of that design i can tell from what you explain of it. I just want you to remember what you're coding is without the equations that although might be secondary is coding, are very important none-the-less, reguardless of whether they need to be changed or not.

                As for testing, not tonight, not enough time. Maybe tomorrow, but probably not. Thurs would be the first best night since i can sleep later than 5:30.
                Which Love Hina Girl Are You?
                Mitsumi Otohime
                Oh dear! Are you even sure you answered the questions correctly?) Underneath your confused exterior, you hold fast to your certainties and seek to find the truth about the things you don't know. While you may not be brimming with confidence and energy, you are content with who you are and accepting of both your faults and the faults of others. But while those around you love you deep down, they may find your nonchalance somewhat infuriating. Try to put a bit more thought into what you are doing, and be more aware of your surroundings.

                Comment


                • Some comments on what I saw in the beast:

                  1) PrivateProperty is missing in ideologies.

                  2) Can you round to the closest integer the negotiated values for slavery, ethnic discrimination and religious discr.?

                  3) About the options for govt system:
                  default: is this the system in the govt model?
                  politics: yours?

                  everything else looks alright.

                  Comment


                  • Rodrigo:

                    1) Oops. Private Property is now there.

                    2) Sure. They're all being rounded down right now (just casting them to an int). Is that sufficient our would you like me to change it?

                    3) Yes. 'Default' is your system, the one that the game plays unless you go select another option. The 'negotiated' policies. You can run a turn (or a hundred) changing a few of the 'directly negotiated policies' like slavery to see it in action. Also, 'tax rate' is at the will of the ruler, as you requested.

                    "Politics" is the other system. It's only about 20% coded right now, just taxes, slavery, one other.

                    P.S. -- The next test case will be to add a new ideology to a civ and watch it gain popularity and spread! Another day, or two . . .

                    Comment


                    • F_Smith:
                      A very simple thing to implement: Each available ideology should have a 0-100% variable named "Knowledge Level".

                      When each class processes how attractive an ideology is, KL should multiply the final attractiveness value, so even if the ideology exists, if it's not well known and understood by population, its attractiveness decreases.

                      Comment


                      • why stop at 100? are you saying that we can't improve on any ideologies? or is it simply that ideologies can't be used until they equal 100...if its the latter ok.
                        Which Love Hina Girl Are You?
                        Mitsumi Otohime
                        Oh dear! Are you even sure you answered the questions correctly?) Underneath your confused exterior, you hold fast to your certainties and seek to find the truth about the things you don't know. While you may not be brimming with confidence and energy, you are content with who you are and accepting of both your faults and the faults of others. But while those around you love you deep down, they may find your nonchalance somewhat infuriating. Try to put a bit more thought into what you are doing, and be more aware of your surroundings.

                        Comment


                        • I believe Rodrigo means '100% known'.

                          As in the ideology is well known to all.

                          It should have been there. It's in the new one I'll upload in a day or so.

                          The code right now starts all ideologies out at '10%' known, and increases them 5% a year to a max 100. It isn't a 'slider', tho, just a label showing the value. I didn't think it should be a 'set-able' value. Should it be?

                          I have also built the code in which people 'select' from among the Ideologies. It's very rough, but another day or two of debugging and you'll be able to watch an ideology sweep thru a civ and change a govt.

                          I'll be finishing up this next version this weekend, without a doubt. In order to 'pay me back' for watching the kids while she went out of town, my wife is taking the kids to her parents for the weekend -- I'm going to be loose! I plan to watch a bunch of (American) Football Sunday -- it's opening day of the season -- and pray the Cowboys can cash in on all that speed. But at night, I'll likely be doing what I like to do best, slinging code. So the beast should take another good step forward.
                          [This message has been edited by F_Smith (edited August 31, 2000).]

                          Comment


                          • Hi F_Smith:

                            I just checked out the Beast, but got kinda lost since you've included a lot of great stuff since my last visit. I'm sure I could've figured it out, but it would have taken a lot of bumbling around. When you get it to the next test version could you update the test cases? I found that approach very helpful.

                            Also, your posting a newer version of the source would be helpful to me.

                            Thanks!
                            Project Lead for The Clash of Civilizations
                            A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
                            Check it out at the Clash Web Site and Forum right here at Apolyton!

                            Comment


                            • Mark:

                              Sorry, yes, next test case is imminent.

                              I ended up wasting all of Sunday on football.

                              Darn Cowboys . . .

                              By Wed I should have the next test case up.

                              The code is still only 95% debugged, too. The turn logic is still a bit buggy.

                              Comment


                              • F_Smith's interpretation of "Knowledge Level" is correct. It doesn't make sense making higher than 100%, except for some tricky things.

                                KL is, as you assume, not "set-able" for the player during play. It should rise slowly automatically depending on several factors. I don't have yet any procedure for that, so I think your simplified "add 5% each turn" will work perfectly for now.

                                It'd be helpful if you tell us what to test in the beast, F_Smith. I assume you're still dealing with the turn-logic for ideologies, so let us know when there's something to test there.

                                Comment

                                Working...
                                X