Architecture: quality attributes and driving factors #403
Replies: 1 comment 3 replies
-
All right, so that all sounds well and good, but I count 7 items in the first section (not counting Portability as it's "free"), and 5 in the "less essential but still relevant"; "Performance" and "Online multiplayer capability" are also ones that could require significant effort. To me that seems like a lot of things to be considering for a project with the amount of resources we have. If I put my project executive hat on, I'd be asking, "Okay, but if you had 3 essential and 3 less essential but still relevant, what would they be?" I also notice that a lot of the "essential" ones focus on flexibility of various sorts. While we do want to have extensibility and mod compatibility, I think we should be intentional about making a game, not a game builder. We should try to make it extensible in directions we anticipate it realistically being extended, but the "new mechanics being added by advanced user modification" is one that has me wondering, "is this really realistic, especially given our team size? What are some examples, both in goals and in that being done in actual games, and for the latter what was the development team size?" A large part of the concern is are we ever going to get a playable game if we have too wide of ambitions up front, hence my "lots of scope implied here" thoughts. It's a balance because a playable game with a crummy architecture is never going to evolve much, but a beautiful architecture for a game that isn't playable is going to make it hard to attract enough interest to get to that playable game. (Yes, I am the "let's try to do fewer things at a time" person...) |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
This is the first of a series of big-picture technical discussions about the scope, architecture, and data modeling of C7. About a year later than I had wanted to get started on these topics, but better late than never. Please do not take these posts as authoritative or final. I'm writing up all of this here to get your feedback.
First I want to discuss the driving factors of the architecture. These are the quality attributes and certain high-level functional requirements.
There are many quality attributes, and they often require tradeoffs. Not all are relevant or essential for a given system, nor would it be possible to fully satisfy all of them. Part of systems architecture is balancing the competing demands of these attributes, and so a good architecture requires that you know which attributes are essential. Of the common quality attributes, I consider these most important for C7:
And these are attributes that seem less essential but still relevant:
Other factors which influence the architecture include:
That's a lot, but I'm sure I've overlooked some. In general, these seem to fall into two broad categories: things that improve on the implementation of Civ3 for the modern player, and things that provide greater mod and development capability. Let's discuss more about what these attributes should look like and how they map to concrete design and implementation decisions.
Beta Was this translation helpful? Give feedback.
All reactions