Also, we'll never get the code (Hell, I tried to
buy it) because I suspect that it's fairly obvious that - with an obviously difficult to coordinate effort - we could, collectively, build a game that would be a direct threat to the Civ franchise - And (shudder, horrors!) probably release it as freeware.
Just my 2 cents (or, if you prefer, the $100,000 I was willing to offer for the code.)
So It Goes,
z
Eh, that certainly makes it look a lot less likely. $100,000 is quite a bit considering that as I understand it, the terms would have been pretty favorable for Firaxis. And there's a good chance that would have covered any inherent costs to them in the process (though not necessarily all obligations with third parties). So yeah... in light of that, the chance of them doing it
gratis seems quite unlikely.
Oz, whenever you bring up AI I always wonder if we could coax anything definitive out of Soren Johnson - or if he would even be able to talk now that he's left Firaxis.
Soren is the one who wrote the Civ3 AI, right? I remember from the manual - I think it was the Civ3 one, but it could have been in the history-of-the-series section of the Civ4 one - that just one person wrote the Civ3 AI, but I'm not sure if it was Soren. He might indeed have some interesting information. I have wondered whether one person was really adequate - while there's obvious deficiencies, it doesn't seem too bad in light of it being a one person effort. I'm also curious how many people have worked on the Civ4 and Civ5 AIs.
You know...even if we got the code ... who has the time to work on it? I'm a retired .net programmer ... and when I worked ... I had a few projects where we inherited some old code and a client wanted it enhanced with better features. It would take several programmers months working full time every day to finish all the changes.
Also, we don't know what language civ3 was programmed in? I'd be willing to work on it if it was .net but something tells me it isn't.
What I was going to say... one time the client wanted so many enhancements and features that we decided to just re-write the whole application from scratch. It's easier to re-write an application than to spend weeks trying to decipher and reverse engineer someone else's code.
That's a very good point... I'm not sure who would be able to work on it enough to make significant changes, and the likelihood of that happening is probably lower now than, say, in 2009. I think we would see certain long-known annoyances and limitations lifted for good, and more cleanly than has been done currently, such as the city limit, the sub bug, and maybe the 32-civ limit. However, larger changes such as a significant improvement to the AI or new layers of the game would require a much larger effort, and I'm not sure how realistic that would be. I know that for me, realistically, it's not very likely, just because there are other things I also like to do in my free time, and I have a day job. I do recall Steph mentioning recently that he'd be back right away if the Civ3 code became available, though, and it may attract others, too. So I don't think it's impossible to see big changes, but it would indeed require a significant effort.
Civ3 was written in C++. This is known mostly via some screenshots of the Firaxis development that Firaxis shared, but also by the general structure of the code. Civ3 actually predates the .NET framework by a few months.
I think there's a decent chance it would be worth starting with Firaxis's code if it were available. It really depends on how well it's written and documented, though. If it's a mess, it might be easier to start from scratch, but considering that hasn't happened (or at least, hasn't gotten very far when it has), my guess is Firaxis's base would be quite useful.
While we are talking about this subject, I wish that everyone who makes utilities would make it open source. I'd love to see the .net code behind Steph's editor.
Steph is obviously a terrific programmer but sometimes 2 eyes are better than 1 at discovering something that can be done. And I've always wanted to see
the code behind the editor to see how it works.
I've considered this intermittently with my editor, which is written in Java (since that was my most proficient language at the time, and actually still is, though I've both become more familiar with some, including C#, since then, and become less familiar with others I haven't used in several years). But there are several factors that have made this not a priority, including:
- Natural hesitancy, since I'm not an open-source purist and would want a reason more than making it open source for the sake of making it open source.
- Not having any outstanding offers of help from CFC members for improving the code. If I'm still going to be the only one working on it, I already have the code...
- Wanting to keep options open in terms of being able to use the code for my own, non-related projects. This has become less of a concern since then, but does mean that if I ever release the code, it will not be under a GNU-type license. The editor itself does use some code from one of my other, much-less-extensive side projects, so it's not entirely baseless that I might want to use parts of it elsewhere in the future.
- Wanting to do some code quality improvements before releasing it. The code isn't always the best quality, in part because I was less experienced when beginning, and in part due to waffling back and forth between code styles for a bit early on. Although I may be being overly demanding of myself in this regard.
- The fact that I'm still working on it occasionally. If I were not working on it at all, and didn't plan to anymore, I do think it would make sense to make it open source so that someone could pick it up at a later time if they wished to do so. However, at the present time, I'm still updating it occasionally, and it doesn't look like anyone else would be doing so anyway.
If I do release code, it's likely to start with the core components for reading the BIQ, and only afterwards expand to the entire editor. I have shared the core components with one other CFC member thus far, but his project was in a different language so it was really mostly for his reference in areas where the existing BIQ documentation isn't always accurate.
But this could change, or be accelerated, with sufficient interest, particularly if it were demonstrated that someone really did want to seriously look at/review the code, create a new utility using it as a base, or add a new module to the editor. Right now, when I work on the editor, it seems like the best use of my limited time is actually working on it (or related Civ3 projects).
Looking back, I think it probably would have made sense to inquire more about collaborating with Steph rather than recreating the wheel. There are some benefits to having re-created the wheel, like the cross-platform support. But two of the biggest factors I did re-create the wheel were that I didn't know C# at the time (which seems kind of silly looking back, now that I've worked with C# and realize it basically
is Microsoft's equivalent of Java), and that in part I wanted to see if I could actually do a project of that scale, which at the time was a lot more ambitious than anything I'd embarked on by myself, and wound up being a much larger project as well.
But it wouldn't surprise me if more could have been made available with less effort had the collaboration route been chosen, even with the initial disadvantage that I wouldn't have known C# at the start. Whether Steph would have been willing to go along with it, I'm not sure, and I could certainly understand being skeptical - both the language barrier and my relative inexperience (and lack of anything significant to demonstrate) at the time contributing. Of course it's also a question of whether it would have gotten off the ground (beyond what Steph had already done) - even as it was, my editor may have fizzled out before its release had it not been for a timely utility request by Lee Dailey about a month after I'd started (and before I'd posted anything on CFC about it) that corresponded very well with what I'd already done and was a much more reachable milestone than having a mostly-complete editor ready.
For the re-creating route, some of the biggest barriers include technical skills (different people knowing different languages), and a project getting far enough off the runway to attract interest from additional people in the first place. And it's hard (and thus far, impossible) to organize a concerted effort without that demonstrated progress to start with. It's be great if someone said, "Hey, let's start a Civ-type game project in C#!", but people will naturally be skeptical about joining until they can show something that proves why their project might work. And I think the threshold really is something that is at least somewhat playable - either a rudimentary AI, or some degree of multiplayer. I think the people who got the farthest are JimmyH, whose project looked promising but stalled due to lack of time, and Steph, whose Civ-like game I'm less familiar with, but from the sounds of it could have wound up being good. And as far as I know, neither of these reached the plateau of playability which might allow really being able to grow from their own momentum, rather than solely due to additional efforts by their founders.