Project Decision Making Process

Should the technical council leadership structure be adopted?


  • Total voters
    1
  • Poll closed .

Quintillus

Archiving Civ3 Content
Moderator
Supporter
Joined
Mar 17, 2007
Messages
8,403
Location
Ohio
This could go in "Assembling the Team", but I think it's important to make it visible, and want to add a poll, so I've broken it out. And rather than have a wall of text, I'll try to break things up into sections to make it a bit more readable.

Observations of the Current State of Things

Spoiler :
We had great momentum in November and the first part of December, and I don't think anyone will argue that the momentum has fallen by the wayside over the past month to month and a half.

IMO, one of the key changes was trying to switch from a "chase shiny things" model to a more structured one. While the motivations were good (ensuring project quality), we may have tried to impose too much structure (notably around code reviews) too quickly. Of course, the holidays provided a distraction too, but at least for me that likely would have been a temporary thing if I were still excited about chasing shiny things.

It's also the case that our de facto project leader has been WildWeazel. He was the one who got this project off the ground, and while there is some standing on the shoulders of giants, organizing the first effort that results in a multi-person coding effort in this direction is enough to make you the leader. Hence, there's been a sense of WildWeazel being the decision-maker, in the same sense that Thunderfall would be considered a/the decision maker at CFC.

However, WildWeazel has not been very active on the boards since coding got started, and more so in the past month. This in itself is not noteworthy; we all have things come up in life that take us away from the forums; I've disappeared for months at a time before.

But projects tend to slow down and stop when they don't have anyone seen as a leader able to make decisions. That's why CFC has other staff, including other admins. If the server goes down or there's some decision that needs to be made and Thunderfall is busy doing real world things, a decision can be made among the other staff.


Observations of Other Projects

Spoiler :
I've lately been reading about the fate of some of the non-CFC Civ fansites, notably Creative Design Group (cdgroup) and WePlayCiv. One of the striking things was the importance of having a few people who could focus on the sites.

In the case of CDGroup, the creator/owner was also a modder, of The Balancer scenario for Civ3. This thread, notably post 18, covers the history. In short, The Balancer's development continued, successfully, twice after the former lead either disappeared or stepped back considerably. In the first case, Elucidus became de facto leader when Monkspider disappeared; in the latter case Elucidus did some design work for the Conquests expansion of The Balancer, but stepped back and let others do most of the implementation, which he says they did an outstanding job with. By contrast, with the CDGroup site, his right-hand man in administration wound up being a bad choice in the end, and with him having stepped back for health reasons and not having someone else of a comparable level also in charge while the former right-hand man went rogue, the site wasn't able to maintain its momentum.

In the case of WePlayCiv, there are some interesting posts by Dale (now of Old World fame) and Buster's Uncle near the end of the first page and especially the first part of the second page of this thread. Buster's Uncle argues that the end of the heydey at WPC was in no small part because there weren't people in the administration making sure the lights stayed on.

Buster's Uncle said:
Well, I'll tell you straight, sir; I think they're walking dead without you. I've been saying so behind your back for quite a while now.

Whatever else you did, there was someone there willing to moderate people, usually before things escalated into crisises. There was someone visibly active and in charge, putting a face on the management. The frogs don't want/need Old King Log and Old King Log. You drew a certain kind of trouble, given your history, and made mistakes, given your temperment, but there was someone there, visible, and taking care of business. Absentee Landlord is not a viable management style.

The main point being that there being a decision-maker (or a group of decision-makers) is more important than the decision maker always making the right decision.

Finally, there are some good posts around this topic at Apolyton here, where the current owner writes,

Ming said:
This site lost it's lead when it didn't cater to the modding crowd... when it was next to impossible to upload and download files. The very heart of the community left, and made CFC what it is today. The owners did nothing to stop people from leaving, never fixed the technical issues. By the time the WPC "group" split, the traffic was way down already

This falls along the same lines as needing to have someone with both the willingness and the ability to fix problems when they come up.

CFC has arguably become the leading Civ fansite because there have always been enough people in the administration (both actual admins and mods) to keep a minimal level of activity at all times. It has waxed and waned - the home page received few news updates other than PolyCast episodes for years in the mid 2010s, for example - but even at the times when Thunderfall has had a minimal (public) presence, things have kept moving.

One could also look at projects such as the Game of the Month project, where leadership has changed over the years, but there have always been a couple admins, who enlist other members to help out by creating maps, and they've been successful over time in no small part because they've been able to react to changing abilities to commit time to the project while maintaining an overall level of momentum.


What Next?

Spoiler :
If we're going to ever make it to the Carthage milestone and beyond, then we need to maximize the chances of creative revivals happening after a lull in activity. Right now, that mainly means maximizing the chances of technical progress.

We're now at a stage where things are getting more complicated. Architectural decisions have to be made. New members need to be integrated. We've already been having debates about quality versus speed. Decisions about direction will have to be made (do we add multiplayer code? should we try to add X before Y?). We'll make mistakes, and will need to be able to correct them.

Meanwhile, members will come and go. This project isn't anyone's main responsibility in life. It will be cut if they need more time for other things, or if it just seems less interesting than other things. An argument could be made that that is the core problem that has doomed previous Civ III compatible/inspired projects - life events happened, the one person involved moved on, and there was no one able to take up the baton. An awareness of that is why this is an open source project, but it's still very possible for an open source project to lose all contributors and go stagnant, and how many such projects get revived in practice?


Proposal: Council Leadership Structure

Spoiler :
In lieu of insider knowledge on how CFC handles this challenge internally, I'll propose that we make a technical council who can vote on technical practices in events where they're needed. This should, in practice, include core contributors. Currently, I would consider these to be WildWeazel, Puppeteer, Flintlock, Caro-Kann, and myself.

On topics that require some form of consensus, each such member could have a vote. The majority decision would be chosen, and I'd set the quorum at two, for now (maybe more later, but my thinking is one person is too few, but if we require too many it could paralyze the decision-making process).

Adding more members to the technical leadership (when is someone a core contributor?) could itself be decided by the existing technical leadership.

Deciding when to release another milestone could also be a technical leadership decision (and eventually project manager/non-technical leadership would need to be involved as well). We had some stated desire to have a second milestone in December and that didn't happen, which to me is another indication that we need to have an ability for a sub-set of the team to make such decisions even if some are unavailable. Maybe the decision would have been "not yet", but as it was we never made a decision.

As of right now, my best idea for how to stage these decisions is a CFC thread with a poll, with votes publicly visible as right now we have no way to limit who votes, so anyone at CFC could in theory vote.


-------------------------

Thoughts? I've hesitated to post this since I don't want it to be taken as usurping WildWeazel's unilateral authority, but after reading more about other Civ-related projects and how they succeeded or didn't, I figured it was better to post this while the forum still had some level of activity.
 
Well said.

On WildWeazel: The project would not have started without him; he's been talking about doing it for years; and he has quite a bit of research, materials, and generally vision in how he wants at least parts of it to proceed. He also appears to have recruited an interested dev or two from outside the spheres the rest of us are operating in? But I'm realizing I don't really know how important it is for him to be the leader and direct his vision versus just getting it to happen. But yeah we're at a point where several devs have spurts of enthusiasm at times when WW is preoccupied with other things...as we all have a lot this past year or more.

On code reviews and style differences as blocker to progress: I still don't have a satisfactory answer to this. I was having fun, but there is a point we need more process and control, and we may or may not have already reached that point. And any lack of processes and control makes onboarding devs not very instructive or inviting for them. (This is also I can now see a problem with ground-up development in a group environment, but I still don't see how we can do top-down with this project.) But as brought up, process and control is something nobody particularly wants to put effort into or be restricted by.

I just had an idea, but this is the wrong thread for it. I'll post it elsewhere.

On a council-style leadership, I would participate, but I think WW has shown more focus and initiative, Qunitillus has shown more long-term consistent code publishing for Civ3 projects, and Flintlock has demonstrated a pretty steady train of content in two languages and two projects, both of which are having immediate interest by others. So I see myself as..."lesser" isn't the right word, but I don't feel like I should be challenging others on style, architecture, and so forth. I'll talk about it a lot, but I don't want to be a blocker to anyone and certainly not insist things go "my way".

All that said, hey, it's open source; if we all disappear or diverge, the efforts to date are readily available for picking up and/or forking.

Editing to add: I'm actually not going to vote on this right now as I'm not sure how Wild Weazel views the project. And it would seem very premature to fork things over a divergence of interests or have a leadership reorg against his wishes, if that were to be the case. It's not clear to me if WW has a bigger plan coming together more slowly than some of our spurious enthusiasms or if what we see today is exactly where we are.
 
Last edited:
I just had an idea, but this is the wrong thread for it. I'll post it elsewhere.

I can't really think of what the "right" place for the idea is, and it's not fully-formed, so I'll just put it here after all. The idea is the possibility of development in isolated modules/libraries and then combining later.

One of my current interests is terrain generation and a non-Civ3 map draw method, a potential "native" map view not dependent on tiled graphics. It makes zero sense to try to do that within C7 in its current quickly-evolving state, so I was going to do it in my own repo in C# libraries usable in non-C7 projects but also presumably portable to a future C7.

I then realized we've kind of already done that as I made the early QueryCiv3 library and ConvertCiv3Media libraries without a C7 project, but they were able to be integrated into a budding C7 and later adapted and improved. A similar thing happened with SimpleGame; that code hasn't made its way into C7 (and probably won't as there is no value to doing so), but it was a good conceptual reference I think.

Perhaps similar modular, divergent, or whatever development could be done for, say, combat rounds, corruption calculations, and so forth and then later either integrated or simply observed and learned from.

I thought it might be one possible path to enable unsynchronized progress to happen on the motivational whims of many devs while avoiding issues of trying to write in a combat system when we don't really have a steady turn loop or data structure for game state.

Of course not all development could go this way; there is a lot of continual evolutionary progress happening in C7 and that shouldn't stop.
 
I agree that I don't want to have a leadership re-org without WildWeazel's approval. I went back and forth on whether I should propose that WildWeazel have extra weight in the proposed leadership structure, and that reflects what you mentioned in paragraph two (assuming he doesn't disappear like MonkSpider did, and if he does I'll be concerned and try to contact him via non-C7 channels).

On "I don't feel like I should be challenging others on style, architecture, and so forth". That's part of why I proposed setting a quorum on decisions at two (if the initial size is five). I don't expect us to all feel qualified to have input on all aspects of the project, and counting abstentions as "no" would make it hard to make decisions.

I could see having more modular/library based areas. I think a key question is whether the area can be integrated through relatively simple interfaces, which was the case for QueryCiv3 and ConvertCiv3Media. And while SimpleGame itself may not have been integrated, the barbarian AI that I added does use the SimpleGame AI paradigms. It's a balance, right? Having libraries/modules can help ensure certain areas are relatively self-contained and easy to understand, but if we break too granular of items out into their own modules/libraries, it may be more work keeping track of them than the benefit of having them separated out provides. So far, I think each of the main modules has been worth having split out.
 
I don't have much to say about this other than I'm fine with it. I'm curious, do you guys have any technical concerns right now that you'd bring up with this hypothetical council? Personally I'd propose dropping the GUIDs in favor of something simpler, specifically serial numbers, which I've mentioned once before.
 
Technical, I think the only one lately has been, "do we merge the animation as it is?", but I think that's resolved. I expect there to be some future ones though, notably around events and networking, and perhaps some more data format ones. We have some ideas around those, but there probably will be a here's-a-proof-of-concept-does-it-look-okay moment.

Right now the process ones are IMO the more pressing ones. Notably finding the balance around reviews for quality versus not stopping momentum (I enrosed Caro-Kann's suggestion in another thread, but there's no way to make it official), and being able to make milestone (or between-milestone) releases.
 
I'm curious, do you guys have any technical concerns right now that you'd bring up with this hypothetical council?

No, this has nothing to do with any particular code or coders. We were all scooting along and committing, and WW wanted to start doing reviews, so I quit merging my own stuff and didn't really feel comfortable (or motivated) to review others' PRs, and the decision-making process, if any, is not clear to me, anyway.

There *are* different coding styles and ideas entering the mix, though, so a process is needed at some point. I didn't think we were there yet, but maybe we are. But we were discussing it which may have been good enough.

As far as GUIDs, WW seemed to have an object model firmly in mind that relied heavily on object GUIDs, but I have yet to understand what that looks like and how fundamental is to various areas of code. In my early code I just designed interfaces of IEquatable<T> and used ints as a stand-in and then stuff a GUID in there later when they exist. Also, it's not clear to me how important this is to him, but when we were tossing about architectural model ideas a few months ago it seemed to be important then.

I guess our blocker is that we have some leadership clarifications and decisions needed, but the developer interest and enthusiasm has outpaced the leader's attention availability for a time.
 
Not very active indeed. First the holidays and after-work training, then that unplanned trip followed by catching up on things, and most recently another foray into online survival gaming. As of now, I'm pretty available again and don't have any upcoming plans. And by the way- even when I'm not actively posting I try to keep an eye on new posts, but I'm always reachable on Discord if you need my input.

As to the question at hand, I'm not sure what structure we need. The only other virtual open-source team I was on answered to a technical non-developer who mostly gave thumbs up/down to ideas and declared the occasional requirement. Given how long I've stuck to communities and ideas here and elsewhere, I'm quite confident that short of being hit by a bus I'm never going to just disappear long term. But my sporadic activity level isn't very good for managing and motivating a team of likewise volunteers. I tend more towards design and process than actual management.

As I've said before this has to be a team effort, and I don't necessarily want to call all the shots either, but as the de facto project leader I should stay more closely involved. I can make some executive decisions if that's what we need right now. There are several open technical questions that I've been thinking about but haven't taken time to write out and push for a resolution. Some of them are architectural, which makes me nervous as our code base gradually gets bigger. (I do have a pretty well laid out system architecture, pending said questions, which I'll come to next.) It feels like we're getting to a critical stage, as the shiny newness is wearing off but it's not yet mature enough to be self-sustaining.

Again, I want to say I'm impressed with how smoothly it has all come together so far, and with little direction from me. I consider the four of us in this thread to be the "owners" of the software, so I'm open to whatever you think is best. Regarding the actual how-to, remember we have that team board on GitHub too, for strictly technical stuff.
 
OK, here comes my hard-ass CTO side:
  1. What is being designed?? — & the answer, “A new Civ 3,” is woefully insufficient -
    • Scope?
    • Features?
    • Functions?
    • Integration of Features & Functions?
      • E.g.,“World map; Map visibility; Prototype mods; Movable units; Place cities; Prototype screen navigation” – Just doesn't cut it:
          • How about integration of Units with Terrain and Map?
          • For that matter, what exactly does “World map” even mean?
          • Prototype mods ???
    • Methodology?
      • Code base & management?
    • Timeline?
      • Dependencies based upon Timeline?
  2. Has any particular rapid development methodology – code base and maintenance included – been agreed upon? (And, I, for one, am not going to sift through every thread for an answer – which, alone, speaks directly to my point.)
    • @Quintillus (frankly) seems to be most on top of this ATM …
    • … For which I am grateful.
  3. Along those lines, I'd like to point out that any and all input from non-techies has, essentially, been shut down!
  4. I humbly suggest having another look at @Flintlock's "C37" thread, as it contains:
    • Feature suggestions.
    • Replies re: feasibilities.
    • Constant & specific contexts, both functional & technical.
    • An ongoing development of, and very well received, product.
Thus endeth the sermon.
 
Last edited:
I think Ozymandias raises a lot of good questions and points. I went back and forth on whether to include that word "technical", but in the end did as that seemed to be the most obvious bottleneck. The developers changed some of their practices, it resulted in a logjam of pull requests, and more than a month later it's not really sorted out. Like WildWeazel, I haven't really managed an open source project with collaborators, and what I've learned about how to manage an in-person team doesn't necessarily translate when you can't count on someone being available five days a week, minus vacations and sick days. But on the technical side, I think it's apparent that there needs to be some ability to jump in and say, "this is good enough, let's merge it", or "this only needs a small change, let's make that change and merge it" rather than let things sit for weeks, months, or possibly forever waiting for the original author to return. At least twice in January, I was considering working on C7, but decided not to because my changes were dependent or semi-dependent on existing PRs that have been open since December, and I know Puppeteer has mentioned being hesitant to add code for similar reasons.

Topic: What is being designed?

Spoiler :
"What is being designed?" - It is true that we've somewhat started running without a destination in mind. Part of the challenge, I think, is figuring out what that destination is. We discussed that general question in early 2021, but never really figured it out, and lost momentum on deciding where to go. We also discussed it in 2016, but with a similar outcome.

I'm reminded that all of the Civilization games have had a lead designer. Soren Johnson for Civ4, Jon Shafer for Civ5, was it Bruce Reynolds for Civ3? I should go check my Civ box. Sid Meier for Civ1, of course. But perhaps the reason was that having a lead designer meant that while they could consult with others to refine their design, there was a person setting the vision and design. We've been trying to design by committee, and with much less dedicated time per person, at that. The lead designer approach does mean that the rest of the team has to buy in to that vision, which is easier when you're paying them to work there. But I'm wondering if part of the problem is we don't have a lead designer.

Spoiler Sidebar on Feature Requests :
Along those lines, I'll note that I haven't been reading the "Feature Requests" thread, in part because it seems too early to be thinking about adding features when we barely have the bare bones working, but also because it's kind of a suggestions box type thing with no one going through and saying, "does this fit our vision and design?" I'm reminded of a large public-facing web application that I was on, which had a feature suggestion feature. On that project, one of the business partners would go through the features requests. I looked through the recently-suggested ones requests myself once out of curiosity, and saw that a lot of them were not feasible (or not feasible anytime soon), but the partner who looked through them regularly would occasionally find one that made a really good suggestion that would add value without requiring huge amounts of work, and would share those with the team. I think a similar role here would be good, but again, this paragraph is mainly a sidebar.


WildWeazel's Civ Proposal document is, IMO, the closest thing we have to a design document and stated vision at this point in time, although I should note that I am not always the best at reading every single post in every thread, especially when there's a lot of activity when I am otherwise busy and I find a whole bunch of posts to catch up to (in "real" work, I actually find it a positive that a lot of design discussions happen during meetings; I'd much rather attend a meeting for half an hour or an hour than read seemingly-endless long documents). But Ozymandias is right that, especially as we move beyond the basics, there isn't enough detail. In a real work project, we might start out with similar high-level designs, but would then dig into more detail, deciding things such as, "What does map visibility mean?" "Does that include fog of war?" "Should it even work the same as in Civ?" "What exactly is prototype screen navigation?" "Do we already have that? We can navigate between a few screens." (Those questions aren't really rhetorical, though this thread isn't the place to discuss them. "What is a world map?", at a deeper level than "displaying Civ tiles", likely also falls in there)


Topic: Who do you think will want to give this puppy a whirl?

Spoiler :
On the topics of Who do you think will want to give this puppy a whirl? and the answer, “A new Civ 3,” is woefully insufficient, I think in part what we're seeing is in part that with our design-by-committee approach, the answer "A new Civ3" that WildWeazel proposed was, in some ways, what could be agreed upon. But those are still good questions. Even to me, A new Civ3 by itself, with nothing new, just fixes to the existing problems, probably wouldn't be something I'd be super excited to play after having already played a lot of Civ3. Playing some Civ6 recently (*prepares to be burned at a stake*), I got to thinking, "wouldn't it be interesting if these districts could be integrated into Civ3?" To encourage more people to give the game a whirl, especially those who aren't still hanging out in the Civ3 forums 20 years after its release, there arguably does need to be something beyond A new Civ 3, but then you get into the lead designer problem.

Or you ignore it and you wind up with whatever hodgepodge of features gets added organically. I would make an argument, as an outsider to the FreeCiv project, that that approach is more or less what FreeCiv did; by contrast I'll note Old World as a 4X game with a clear lead designer (Soren Johnson, an excellent one if ever there was an excellent lead designer). Why would you want to play FreeCiv, when you could play Civ2 instead, or Civ3 instead? Well, it's not really obvious if you aren't involved with the project. I'm sure it does some things better than Civ2, and some things better than Civ3, and doesn't do some things that those do; if it did everything Civ2 did, I doubt we'd see the ToT Patch Project, new scenarios for Civ2, and a lot of people still playing it. Old World, by contrast, has a vision that it can market of a 4X game set in antiquity with more event-driven, character-based gameplay than competing 4X games. FreeCiv - it's kind of like Civ, and it's free.

There seems to be general consensus that C7 should have an isometric map and have the ability to load Civ3 scenarios. But I do like the Who do you think will want to give this puppy a whirl? question, and am thinking that perhaps we should try to set a vision that's not too inherently constrained by the legacy of what Civ3 is. But deciding that by committee could prove difficult.


Topic: Timelines

Spoiler :
I don't even know how to estimate timelines for a project like this, without the consistency of some sort of reliable availability. Apparently some open source project are able to do that somehow; Linux 5.x is a thing. I do wonder though, does this work well when there aren't any paid workers on the open source project? I've also seen projects (RIP former mp3 player) that proclaim, "we're going to do these cool things in version 3!" and gradually people realize how much of a struggle the open source code base they are working with can be, and no one has the dedicated time to resolve the tough questions, and maybe you get a version 2.9.2 that fixes a few things, probably a few months after the prediction for version 3, and then that's it. Forever.

We definitely seem to have that common problem of varying motivation and availability. I know I was fully distracted by another project, with a hard end-of-January deadline, for the last third of January. For a while in November it did seem like maybe we'd have enough reliability to estimate at least some near-term things, but I am less confident of that now.


--------------

I do still need to catch up on Flintlock's C7X (that's what C37 is meant to be, right?) thread. 30 pages = 600 posts, and I was away when the first burst of activity happened. That goes back to the "not great at reading long documents." From what I have heard/read about it, I am wondering to what degree it has perhaps met a good chunk of the desire for "Civ3, but better."
 
I'm reminded that all of the Civilization games have had a lead designer. Soren Johnson for Civ4, Jon Shafer for Civ5, was it Bruce Reynolds for Civ3?

Bruce Reynolds was it for Civ 2, for Civ 3 it was Soren Johnson, too.

Playing some Civ6 recently (*prepares to be burned at a stake*), I got to thinking, "wouldn't it be interesting if these districts could be integrated into Civ3?"

Districts in my eyes are really no good idea. A list about good features that really should be in a "new Civ 3" combined with the reasons for it, could be a very good idea. Most of the features from other games of the Civ series, that I would like for Civ 3 too, are listed in the Flintlock patch thread and a few additionally in pms to Flintlock. One thing that is definitely needed, is making the late game more attractive. A civil war feature as it was in Civ 1 would be nice, the danger of breaking away cities when becoming a very dominating power on the map proportional in number to the expansion of that civ (something that happened with the former Soviet Union). Maintenance costs connected to the single units and not only to the form of government would be nice, too.

I doubt we'd see the ToT Patch Project, new scenarios for Civ2, and a lot of people still playing it.

The modders of the Civ 2 scenario league are creating a lot of wonderful ToTPP scenarios with features that we in Civ 3 can only dream about, but they are limited by not having working animated units and movement sounds for their units and by still only having 7 civs (+barbarians) in a game.
 
At least twice in January, I was considering working on C7, but decided not to because my changes were dependent or semi-dependent on existing PRs that have been open since December, and I know Puppeteer has mentioned being hesitant to add code for similar reasons.
You guys should have mentioned this earlier and with specifics, like what PR you're waiting on exactly and why, so whoever's involved could focus on getting it merged. I hope you weren't waiting on me and my unit animation PR. From my perspective there wasn't much interest in that PR so it slipped out of my mind as I went on to work on other things both inside C7 and unrelated to it. In any case I just went ahead and merged it, finally.

Personally I don't feel like I have been held back by the project's (lack of) organization, just a naturally declining motivation to work on it. Over the past few weeks I've felt more inclined to work on C3X. Recreating Civ 3 is a big job that will take years, and if it's going to get done someone with a real passion for it is going to have to step up. That someone isn't me though I am interested in contributing here and there.
 
Some action items:
  • Break down the Babylon roadmap points into actionable, discrete tasks to be (self) assigned (This should be done for each new milestone, keeping in mind that roadmap was a brainstorming exercise from 2 years ago and should not be taken as The Plan.)
  • Identify dependencies and critical path to the next couple of milestones: what must be done in what order
  • Define criteria for Babylon pre- and final releases (somewhat being done in the Babylon thread)
  • Get priorities and buy-in from non-devs on upcoming game and mod features, and non-functional requirements
  • Start detailed discussions to define mod structure, APIs, and file schemas
  • Nail down a task workflow re: PRs, code review, merging, testing/integration
  • Make a plan for CI stuff: unit/integration testing, docs generation, etc and get devs on board with doing it
  • Quick start document to build & run from source, and how to get involved
  • Onboarding and starter tasks for new contributors (Quintillus had started this)

Priorities for me:
  • Start putting Components and Events in place
  • Assess the code in terms of planned architecture and how to get from here to there
  • Perform brain dumps of the various open questions I'm hung up on
  • Spend time monitoring the PRs and reviewing code
 
Personally I don't feel like I have been held back by the project's (lack of) organization, just a naturally declining motivation to work on it.

... And no correlation between the two?

Recreating Civ 3 is a big job that will take years, and if it's going to get done someone with a real passion for it is going to have to step up. That someone isn't me though I am interested in contributing here and there.

Yes: PASSION! - Which comes from enthusiasm with and from deciding what that PROJECT is! - :hammer:
 
... And no correlation between the two?
There's an indirect correlation at least, in that if everyone else is held back by the lack of organization I'm not likely to continue on my own. It gets pretty lonely working on an open source project with no other developers or even users, so passion is a must in that case.
 
Ironically, from a development standpoint, we seemed to be making the most progress when their was the least organization. But more broadly, I don't think organization is bad, just that when there is too much of it, without a well-understood reason for it, can start to become bureaucracy, which at least for me is a great way to make any development job less enjoyable.

I agree with Flintlock that working on an project without other developers or users gets quite lonely (whether or not it's open source, IMO). It's probably not at all coincidental that the project I've worked on longest - my Civ3 editor - is the one where there are users! Maybe some of the other things I've written had users too, but if so they didn't make themselves visible, so I only revisited them if something was intellectually interesting enough to draw me back, which was rarely the case by itself. All the more reason that I think getting something playable and interesting, drawing in users, is important. Even if it's not very good yet and a lot changes.

Flintlock said:
You guys should have mentioned this earlier and with specifics, like what PR you're waiting on exactly and why, so whoever's involved could focus on getting it merged. I hope you weren't waiting on me and my unit animation PR. From my perspective there wasn't much interest in that PR so it slipped out of my mind as I went on to work on other things both inside C7 and unrelated to it. In any case I just went ahead and merged it, finally.

We probably didn't make that visible enough. The main one I wanted to build on was the popup refactor one by pcen (who is not at CivFanatics), although I had some concerns that if I did more map work, I might cause conflicts for your animation one, and thus more work. But great to hear that it's merged! From my viewpoint it's one of the biggest leaps forward so far.

Bruce Reynolds was it for Civ 2, for Civ 3 it was Soren Johnson, too.

Thanks! I knew I was missing someone, but didn't know it was Soren again. Now it makes sense why he mentioned that he kind of invented borders spreading culture in a recent interview... that was in Civ3 and he was the designer for Civ3.

Districts in my eyes are really no good idea. A list about good features that really should be in a "new Civ 3" combined with the reasons for it, could be a very good idea. Most of the features from other games of the Civ series, that I would like for Civ 3 too, are listed in the Flintlock patch thread and a few additionally in pms to Flintlock. One thing that is definitely needed, is making the late game more attractive. A civil war feature as it was in Civ 1 would be nice, the danger of breaking away cities when becoming a very dominating power on the map proportional in number to the expansion of that civ (something that happened with the former Soviet Union). Maintenance costs connected to the single units and not only to the form of government would be nice, too.

But this kind of illustrates my point about design by committee. Everyone has different ideas. Everyone can list them in a thread. Mentioning any idea is likely to result in someone saying it should be done differently. But if anyone ever wants to actually build something, they're going to have to make some decisions about what to include.

So, one option is someone with the motivation to build something is going to make their cut of it. That is more or less what has happened so far with C7, with WildWeazel making a proposed cut and then trying to get things lifted off the ground, with some success. Another option is someone who might not be the developer proposed a holistic vision - not one idea here, two others there, but a game design - and maybe it gets enough excitement to cause something to happen.

For me, the infinite proposing of ideas and debating them is, at this point, exhausting. Not that I'm entirely uninterested conceptually, but as a community we've been saying for 15 year now, "it would be cool to be able to do X", "a successor should be able to do Y". If we're going to wind up with something more coherent than "whichever features the programmers decided sounded interesting at the time", I think there need to be more comprehensive visions, and fewer individual feature suggestions.

The good news is, there's some precedent for just that sort of coherent design in terms of scenarios :).

The modders of the Civ 2 scenario league are creating a lot of wonderful ToTPP scenarios with features that we in Civ 3 can only dream about, but they are limited by not having working animated units and movement sounds for their units and by still only having 7 civs (+barbarians) in a game.

That does indeed appear to be quite active. The next version of Civ on my to-try list after my current game of VI - II/Test of Time.

Yes: PASSION! - Which comes from enthusiasm with and from deciding what that PROJECT is! - :hammer:

For me it's actually largely driven by having a goal I am excited about. Which might sounds the same, but with a project of this size, smaller sub-goals are actually more important for maintaining passion from a practical standpoint. The overall goal - make a cool game, defined however it is - might provide enough passion to start things, but it is such a large task that the passion will wear off before it's anywhere near done. Which is probably the exact stage of the project we are in right now - we made a lot of progress when there was excitement in November, things slowed down in December, that gave time to realize how much was left, and it's been hard to get the engine started back up.

Even if we do have a brilliant, cohesive, game-level design emerge, I think it will be important to have those smaller milestones and goals. The "Babylon" milestone, despite its flaws, was serving as that goal for me in the part of December when we were still developing at a decent pace.

Of course I'm also that developer who will go to the quarterly meeting about "this is what our quarterly deliverable plans are, and why we think they're the right ones", and if it makes sense, it makes me more excited to work on them. As often as not, it doesn't in the corporate world, but every so often it does, and when it does I'm more motivated. The overall project might sound impossibly large, but delivering Milestone X is doable, will deliver value for the user, and is worth doing!
 
An idea: Without endorsing, in any way, an OO/OODB approach, I'll draw up an Object diagram, placing every game Attribute in an OO Class hierarchy.
  • One idea which immediately came to mind is to have two "Super Classes:"
    • All Game & Scenario-Mod specific Attributes in one SC.
    • All other Classes - crucially including Terrain (with all Tile Type / Attributes) - will be defined in the 2nd SC.
  • Taken together, a Map can be derived these 2 SCs, with the simple "*" being that any Scenario-Mod specific Attributes will need to "override" any standard Terrain Attributes.
  • Likewise, all Game-specific parameters will have been set, in one place, and in one standardized format.
Every other "Thing" in the game can be directly derived from the 2nd SC, e.g.:
  • Any individual Unit Type will belong to a "Sub-Class" of Land, Water, or Air, with each, accordingly, falling under the Unit Class.
This will allow us to identify where every Attribute currently is - and allow us to readily, e.g., decide that "Retreat Probability" should be set by the Unit Class, not the Game "Super-Class."

This (I think) should not only isolate and organize Everything Which Now Exists, but also to allow any individual, on his own, and in his own way, to say, "I'll handle this particular function," according to whatever methodologies (do note the "plural") along with a way to identify what the API (or equivalent) needs to be - and possibly even agree upon one standardized format for these.

Remember: We promised that anything we produce will be 100% plug compatible with every single existing "Thing." Otherwise, no one is going to bother playing it. Full stop.
  • Also, this format should readily allow non-techies to vigorously attend to what they want, beyond - reasonably yet unhelpfully unstructured - "Wish Lists."
I also think/hope that this approach can address the excellent points which @Quintillus mentioned in the post directly before this one.

One again quoting my favorite poet: "Yay, though I have wept and fasted \ Wept and prayed," I have not been able to obtain that wretched source code for us, whether (in order) by classmate connection on the Firaxis Board, a flat out offer of $100,000 (including provisos for organizing a Not-For-Profit corp, with heavy duty non-compete clauses), or personal appeal to Soren. My point, here, is that we might sadly decide that it's simply too much - Which I, for one, would certainly want to understand sooner, rather than later.

- What say ye?
 
I might need a couple more examples in order to provide useful feedback. From the existing example, my understanding is this would allow scenario configuration to configure things like Retreat Probability and (picking another to help tests if I understand it) Zone of Control at either the base unit level ("for all units, this is the default"), the unit "sub-class" (water/land/air), or the unit type level ("3% for Warrior" as an arbitrary example).

Perhaps one of the difficult things to square away is that not all attributes make sense for all types - a building shouldn't have a Retreat Probability, for example. But sometimes there is interaction - in Civ3, Experience Level affects the Retreat Probability. One could argue that maybe Terrain Type should affect it - maybe it makes sense to have a higher Retreat Probability in a Forest than in a Desert, for example.

So, yes, I'm interested, as indeed I think one of the longer-term challenges will be figuring out how to make things enough more configurable to be appealing, without being so abstract that it's a headache to configure a scenario. Civ3 leans more towards the ease-of-configuring than Civ4's power-of-configuring, and I think there's broad agreement that we want some more configuring, but exactly how much and how to implement it? That's the challenge.

And indeed, a more comprehensive look at this could both help add some structure to proposal, and raise useful questions about the practicalities along the way. I wouldn't say the first iteration needs to encompass every game attribute, but I'm curious to see the "Aztec" version :).

100% plug compatible with every existing "Thing". It sounds very sweeping when put that way. But largely true - the only thing I'd call out is that compatible means being able to run Civ3 scenarios, with Civ3 rules, and Civ3 assets (sounds, graphics) - but doesn't imply the same AI. Hopefully similar in some ways, and better in others, but making it identical is not feasible due to the undocumented status of how it behaves in all situations.
 
I might need a couple more examples in order to provide useful feedback. From the existing example, my understanding is this would allow scenario configuration to configure things like Retreat Probability and (picking another to help tests if I understand it) Zone of Control at either the base unit level ("for all units, this is the default"), the unit "sub-class" (water/land/air), or the unit type level ("3% for Warrior" as an arbitrary example).

:goodjob:

Perhaps one of the difficult things to square away is that not all attributes make sense for all types - a building shouldn't have a Retreat Probability, for example.

Improvements/SWs/GWs, Units, Terrain, and Game Rules (and whatever else) would each be its own Class with inheritable Attributes, etc.

So, yes, I'm interested, as indeed I think one of the longer-term challenges will be figuring out how to make things enough more configurable to be appealing, without being so abstract that it's a headache to configure a scenario. Civ3 leans more towards the ease-of-configuring than Civ4's power-of-configuring, and I think there's broad agreement that we want some more configuring, but exactly how much and how to implement it? That's the challenge.

One word: Methodology.

And indeed, a more comprehensive look at this could both help add some structure to proposal, and raise useful questions about the practicalities along the way. I wouldn't say the first iteration needs to encompass every game attribute, but I'm curious to see the "Aztec" version :).

:think: ... :D

100% plug compatible with every existing "Thing" [...] - but doesn't imply the same AI.

:gripe: - VAI - Very Artificial Intelligence (aka. my oft used, "Artificial Idiot.")

Hopefully similar in some ways, and better in others, but making it identical is not ...

... I would absolutely agree, not the point, at all. Very early on, I had mentioned my belief that simple "Rules" (also variable by individual Game parameters) could evoke genuine AI emergent behavior. (Subtext: An Object Model can also be used for describing existing AI behaviors; etc.)
 
Last edited:
Top Bottom