Clash Coding Standards
We have been discussing a lot recently coding standards for the project, and what the correct architecture we should use is. There have also been discussions about how much memory we can afford for which models, and how the guys in charge of the models interact with people programming the models. What I would like to do is use this thread to hash out agreements on these various issues. For instance, I will put up some information on how many of which type of objects we expect so designers and programmers can make crude estimates of memory usage and clock usage. F_Smith is making some persuasive arguments about how the code should be laid out, using the government model as a testbed. So hopefully he will give us a description here of what he thinks the coding standards for the project should be. Other things that generally relate to coding progress, like how we can attract more programmers are also welcome here. If they get out of hand, we can just subdivide topics, but for now I think starting this all in one place is a good idea so we can have one-stop shopping
Since we have also discussed some of these topics before, I'm going to provide several links to some old threads that I think are relevant. If anyone else has an old thread they would like to nominate, please let me know. Hopefully, once we have discussed things a bit we can come up with some real coding standards documents and put them up on the web page.
Links to previous threads:
Coding organization for Clash started August 22, 1999.
Clash Coding is a discussion of how to more effectively use the programmers in the project. Richard Bruns suggests doing the coding so that many model specifics can be input by non-programmers. This ties in with the efforts that F_Smith and Garth are pursuing in their respective coding areas.
Ooa/ood where we talk about object-oriented design as it relates to the tech model, but the comments are a general usefulness.
And also check out the Coding Model page on the Clash Web page for some more threads.
Max Numbers of Game Objects
(My) expectations for the numbers in the game of a variety of objects. I'm going to state effective maximums here, so we keep things a little conservative. The main reason for that is that our super-duper AI will require both a fair amount of memory (Much more than the industry standard) and clock cycles. So if we use the maximum estimate for everything and come in under budget, it means there will still be a fair amount of memory and clocks for the AI.
I suggest a memory budget for pure objects of something like 10 MB. In addition to this we will have graphics that are permanently in memory, graphics that are transient, and other stuff. One issue that has to do with memory usage is how we run the game for Multiplayer. I like to hear peoples thoughts on that either here, or in the long-dormant Multiplayer Coding/Issues.
(This is just a very incomplete list to start off the discussions -- current Java class names are shown in parentheses)
General:
500 civilizations (Civ.java) -- many will be passive and not have the full AI, perhaps 100 full-fledged civs
2000 provinces (Province)
64k map squares (BaseMapSquare) including ocean and unpopulated land. If we put an aerial layer above for future type stuff, then it would be double this.
20k land map squares (MapSquare)
10k populated land map squares (PopSquare)
Military:
100 task forces per civ (TF.Java)
500 units per civ (Unit)
Well, I need to break to do some other stuff. I will get back to this soon.
We have been discussing a lot recently coding standards for the project, and what the correct architecture we should use is. There have also been discussions about how much memory we can afford for which models, and how the guys in charge of the models interact with people programming the models. What I would like to do is use this thread to hash out agreements on these various issues. For instance, I will put up some information on how many of which type of objects we expect so designers and programmers can make crude estimates of memory usage and clock usage. F_Smith is making some persuasive arguments about how the code should be laid out, using the government model as a testbed. So hopefully he will give us a description here of what he thinks the coding standards for the project should be. Other things that generally relate to coding progress, like how we can attract more programmers are also welcome here. If they get out of hand, we can just subdivide topics, but for now I think starting this all in one place is a good idea so we can have one-stop shopping
Since we have also discussed some of these topics before, I'm going to provide several links to some old threads that I think are relevant. If anyone else has an old thread they would like to nominate, please let me know. Hopefully, once we have discussed things a bit we can come up with some real coding standards documents and put them up on the web page.
Links to previous threads:
Coding organization for Clash started August 22, 1999.
Clash Coding is a discussion of how to more effectively use the programmers in the project. Richard Bruns suggests doing the coding so that many model specifics can be input by non-programmers. This ties in with the efforts that F_Smith and Garth are pursuing in their respective coding areas.
Ooa/ood where we talk about object-oriented design as it relates to the tech model, but the comments are a general usefulness.
And also check out the Coding Model page on the Clash Web page for some more threads.
Max Numbers of Game Objects
(My) expectations for the numbers in the game of a variety of objects. I'm going to state effective maximums here, so we keep things a little conservative. The main reason for that is that our super-duper AI will require both a fair amount of memory (Much more than the industry standard) and clock cycles. So if we use the maximum estimate for everything and come in under budget, it means there will still be a fair amount of memory and clocks for the AI.
I suggest a memory budget for pure objects of something like 10 MB. In addition to this we will have graphics that are permanently in memory, graphics that are transient, and other stuff. One issue that has to do with memory usage is how we run the game for Multiplayer. I like to hear peoples thoughts on that either here, or in the long-dormant Multiplayer Coding/Issues.
(This is just a very incomplete list to start off the discussions -- current Java class names are shown in parentheses)
General:
500 civilizations (Civ.java) -- many will be passive and not have the full AI, perhaps 100 full-fledged civs
2000 provinces (Province)
64k map squares (BaseMapSquare) including ocean and unpopulated land. If we put an aerial layer above for future type stuff, then it would be double this.
20k land map squares (MapSquare)
10k populated land map squares (PopSquare)
Military:
100 task forces per civ (TF.Java)
500 units per civ (Unit)
Well, I need to break to do some other stuff. I will get back to this soon.
Comment