- Joined
- Mar 17, 2007
- Messages
- 9,306
I've been following CivOne in the Civ1 forum here since not too long after it started. The two things that really stood out are that it is open source (and has been since early on), and that while development is definitely bursty, as expected from a side project, SWY (the author) has continued to come back and make updates to it, even when real life has interceded for several months. The latter has led to its impressive progress. At first it was pretty barebones, but as I understand it (as someone who never played Civ1 back in the day), it now replicates Civ1 pretty faithfully, from a functional and graphics perspective. AI, I'm not sure about, but it's nonetheless impressive.
I agree that part of the appeal is being able to keep the style and reuse existing work. I could see using Civ4's engine potentially working well for an epic game without limitations, but indeed you'd lose a lot by not being able to re-use graphics or import existing scenarios, particularly any with maps. From a programming perspective, it's a less interesting problem than writing a Civ III-ish game from scratch (although writing a program that translated Civ3 rules into Civ4 mods could be interesting). But I've wondered how much could be done simply with XML files. There are some mechanics such as bombardment that differ in Civ3 from the Civ4 default (though there are Civ4 mods that introduce many of them, including that one), but I suspect you could get a lot of the way there simply by using a few existing Civ4 Python mods as a base for some functionality, and then editing/writing a lot of XML files and using a few custom graphics for cases where, e.g. Civ4 doesn't have a unit built in that maps nicely to a Civ3 one.
Also, good point on copyright vs trademark. IANAL either, and sometimes get those confused. Although I'm not the only one. My employer has also been confused over patents versus trademarks. You don't patent games, either, but that hasn't stopped management from thinking that maybe they should try the equivalent with the non-game software we write.
I agree that non-developers can definitely contribute. For testing, attention to detail can be a great asset, and not all developers have enough of that. And in a side project, even those who do likely don't have the time to test as much as they really should (speaking from experience on that one). The other roles WildWeazel mentions are also valuable.
Writers in particular are underappreciated. The glory may not be in writing, but I've come across too many projects with hardly-existant documentation, and if there's an alternative with good documentation, nine times out of ten I'll choose the one with good documentation.
User experience feedback can also be useful. Sometimes developers focus too much on a small area and forget to make it easy to use, perhaps because since they wrote it, they already know how it works and don't realize it isn't intuitive to others; sometimes designers make something overcomplicated. I saved a small part of a project at work from one of the latter last week. The intuitive way to do something was not working, and there was a proposed solution adding some new UI elements and code. But by thinking about what the user was really trying to do, I realized that a couple small changes to the existing code would allow the intuitive way to work as expected. But when you're in the weeds, it's easy to forget to take a step back and think about how the software would naturally be used, and to go with what comes to mind first instead. And I've done that myself more times than I can count - I've introduced a number of editor changes over the past year or two after realizing I'd made it difficult to do things that should be easy - sometimes myself, sometimes after someone pointed it out. So that's another sub-area of testing that is useful and often underappreciated in open-source projects. A great project will have both the detailed testing that will catch bugs, and the higher level, more user experienced focused testing.
@Nathiri I'm also biased, but also recommend having some programming knowledge. Even if you never write a lot, having an awareness of what can be done can be useful. As an example, one of my friends is a doctor, but when he was in med school the administration made some changes to their calendar program (which is important as a med student, as your schedule changes a lot) that were pretty inconvenient. The other students grumbled about it, but because he'd learned a bit about programming, he realized that it might be possible to write a program to process the clunky calendar their new system had, and convert it into something more annoying. He didn't have the expertise to write it himself, but told me about the problem, and I came over one afternoon and together we were able to work around the problem with a quick, if somewhat dirty, program.
Though I can sympathize with not wanting to do it as a career. Indeed, I think I'd enjoy it more as a hobby than as a career, though I've become better at it due to it being a career. But there are a lot of potential careers where I suspect I'd enjoy them more as a hobby than as a full-time job. Teaching, for example. I really enjoy the opportunities I get to teach people, whether how to use software or how to write software, in my job. But would I enjoy it as much if I were teaching courses, often over the same material, semester after semester? Probably not.
I agree that part of the appeal is being able to keep the style and reuse existing work. I could see using Civ4's engine potentially working well for an epic game without limitations, but indeed you'd lose a lot by not being able to re-use graphics or import existing scenarios, particularly any with maps. From a programming perspective, it's a less interesting problem than writing a Civ III-ish game from scratch (although writing a program that translated Civ3 rules into Civ4 mods could be interesting). But I've wondered how much could be done simply with XML files. There are some mechanics such as bombardment that differ in Civ3 from the Civ4 default (though there are Civ4 mods that introduce many of them, including that one), but I suspect you could get a lot of the way there simply by using a few existing Civ4 Python mods as a base for some functionality, and then editing/writing a lot of XML files and using a few custom graphics for cases where, e.g. Civ4 doesn't have a unit built in that maps nicely to a Civ3 one.
Also, good point on copyright vs trademark. IANAL either, and sometimes get those confused. Although I'm not the only one. My employer has also been confused over patents versus trademarks. You don't patent games, either, but that hasn't stopped management from thinking that maybe they should try the equivalent with the non-game software we write.
I agree that non-developers can definitely contribute. For testing, attention to detail can be a great asset, and not all developers have enough of that. And in a side project, even those who do likely don't have the time to test as much as they really should (speaking from experience on that one). The other roles WildWeazel mentions are also valuable.
Writers in particular are underappreciated. The glory may not be in writing, but I've come across too many projects with hardly-existant documentation, and if there's an alternative with good documentation, nine times out of ten I'll choose the one with good documentation.
User experience feedback can also be useful. Sometimes developers focus too much on a small area and forget to make it easy to use, perhaps because since they wrote it, they already know how it works and don't realize it isn't intuitive to others; sometimes designers make something overcomplicated. I saved a small part of a project at work from one of the latter last week. The intuitive way to do something was not working, and there was a proposed solution adding some new UI elements and code. But by thinking about what the user was really trying to do, I realized that a couple small changes to the existing code would allow the intuitive way to work as expected. But when you're in the weeds, it's easy to forget to take a step back and think about how the software would naturally be used, and to go with what comes to mind first instead. And I've done that myself more times than I can count - I've introduced a number of editor changes over the past year or two after realizing I'd made it difficult to do things that should be easy - sometimes myself, sometimes after someone pointed it out. So that's another sub-area of testing that is useful and often underappreciated in open-source projects. A great project will have both the detailed testing that will catch bugs, and the higher level, more user experienced focused testing.
@Nathiri I'm also biased, but also recommend having some programming knowledge. Even if you never write a lot, having an awareness of what can be done can be useful. As an example, one of my friends is a doctor, but when he was in med school the administration made some changes to their calendar program (which is important as a med student, as your schedule changes a lot) that were pretty inconvenient. The other students grumbled about it, but because he'd learned a bit about programming, he realized that it might be possible to write a program to process the clunky calendar their new system had, and convert it into something more annoying. He didn't have the expertise to write it himself, but told me about the problem, and I came over one afternoon and together we were able to work around the problem with a quick, if somewhat dirty, program.
Though I can sympathize with not wanting to do it as a career. Indeed, I think I'd enjoy it more as a hobby than as a career, though I've become better at it due to it being a career. But there are a lot of potential careers where I suspect I'd enjoy them more as a hobby than as a full-time job. Teaching, for example. I really enjoy the opportunities I get to teach people, whether how to use software or how to write software, in my job. But would I enjoy it as much if I were teaching courses, often over the same material, semester after semester? Probably not.