A little history

OpenXcom is old. It might not look it, after all, it’s only been around for like… 4-5 years? I didn’t remember to write down the exact date (protip: write down the date of all your projects in case they become smash hits). But boy, has technology progressed in those few years. When I started, there was no SDL2. No C++11. No GitHub. Managed pointers were a mere illusion (or I probably just didn’t know about them). A lot has changed in game development, to the point our codebase can look positively arcane to newcomers. I don’t blame you. Every decision at its time made perfect sense, but after a while you start questioning what 5-years-ago you was doing.

So a lot of people ask, how did it all begin? How did we get this far? How does a project like this just happen?

Well it all started back in 2009. I was still a university freshmen, and while coursework keeps you busy for a lot of time, it also keeps you stuck with nothing to do for a lot of time. I needed something to do. Something I could do in Comp Sci lab computers which had nothing but development tools. I needed a programming project. So I picked X-COM.

Now I know what you’re thinking. Picking X-COM as a “hobby programming project” seems like a crazy foolish thing to do, specially for a guy who’s only previous finished project was a Tetris clone. But I didn’t have in my head crazy dreams of fame and success, I just wanted something to do. I was a big fan of the series, I had dabbled in that kind of stuff before with Project Xenocide and X-COM 86, and at the time most remakes were either dead or dying.

So I dug around the UFOpaedia, read some SDL tutorials, and got to work. Given the impressive amount of info available on the game internals, I decided that’s what my focus would be. A vanilla approach. Making an OpenXcom that others could build on. Given the popularity of OpenXX projects, the constantly coming and going remakes, and the community’s chant of “it’s just not like the original!”, I was surprised nobody tried that before.

But unlike most of these sort of projects, I had no access to the original source and no interest in reverse-engineering it. So I had to start from scratch. Now a lot of people probably imagine for something as ambitious as X-COM, I would have to spend a whole lot of time building all these massive systems and engine I was totally gonna need. No. If that’s how you start projects, no matter how big or how small, you’re just making a whole lot of work for yourself that you’ll probably never need and just burn out faster.

So I started simple, step by step. Just writing code, plain simple flat code that works and solves your problems. As it grows and you can see the big picture, you start organizing it into functions and classes . Build it as you need it. Keep it nice and tight. OpenXcom spent a lot of time being little more than a main() for testing stuff that I needed (later evolving into TestState). Getting stuff on the screen, loading resources, making helper objects and UI controls, that sort of stuff. This is one of the earliest screenshots of the project (note the incorrect text rendering):

Progress was slow as time passed on, but I carried on. Later in 2010 I set up a Sourceforge (it was what all the cool kids are doing!) so I could easily work on it from multiple locations. However I still kept the project completely to myself, not discussing it anywhere. I didn’t wanna start up hype too early in case I eventually hit a deadend and couldn’t finish it. However soon after, Michal, expert X-COM detective, discovered my little adventure. He tracked down my nickname on the XCOMUFO Forums and contacted me regarding making the project public. At the time he was helping out another recent remake, UFO: The Two Sides. I wasn’t ready for the spotlight just yet, but later in May 2010, he and NineX helped me set up this website and OpenXcom was online.

In this period, other remakes came and went. Xenonauts showed promise. X-Com Reloaded was similar to ours but later died. Eventually Project Xenocide and UFO: TTS did as well. And then there were rumors of an XCOM FPS. Tension was high. Probably one of the earliest hurdles was implementing the famous X-COM Geoscape. The globe was a thing of wonder but nobody really knew its secrets, and early prototypes were unsuccessful. However, with the help of the community and months of development, everything eventually fit into place. It’s probably one of the oldest+complex parts of OpenXcom. Near the end of 2010, the first version was out.

However something was missing. The other half of the equation. The Battlescape. There couldn’t be an X-COM without it, however it was nowhere to be seen in the early stages of development. I shied away from it since real-time simulation stuff wasn’t forté and I didn’t really know how to begin. But a miracle happened, and Daiky joined the scene with his Battlescape prototype, turning the one-man project into a duo. We split things between us (me focusing on the Geo and him focusing on the Battle) and with our expertise combined, development carried on.

By 2012 we were half-way in, with the game having most core systems done with the help of various contributors, in particular Volutar that had cracked open the original EXE and shed some light on the mysteries that remained. However at this point university was ramping up and I was feeling pretty burned out, and Daiky later had to leave the project in 2013 due to real-life commitments. Things could’ve turned grim.

Enter Warboy. Making his debut with a modded version of OpenXcom, he ended up contributing many missing vanilla features and becoming part of the team. What he lacked in skill he more than made up in sheer commitment, founding the whole “modding” scene for OpenXcom, and played a major part in pushing it to the finish line, which was finally reached in 2014. In all this time the OpenXcom team has kept growing, learning, changing, but OpenXcom still stands.

TL;DR: For those that don’t care for words, here’s a shiny development video instead:

24 thoughts on “A little history

  1. pkrcel

    Awesome video….been able to catch my avatar there even !!!

    Props for a hel of a job well done team…this is simply marvellous.

  2. kkmic

    It’s nice to learn the history of a project in which you can feel the souls and hearts of it’s developers.

    Cheers to the whole team, past and current.

  3. Daiky

    Oh no, we created… a monster! 🙂
    Love that video, it reminds me of the worker units in Starcraft with their lasers and moving back and forth.

  4. Infini

    It’s a lot of free time, without being paid, I know. I translate sometimes MODs, and, well, it needs a lot of concentration. At the end of the day, well, I’m tired.

    You did a great job, really.
    OpenXcom is my best game, followed by Civ4.

    Thank you. Thank you.

  5. IvanDogovich

    Congratulations SupSuper, Warboy, Daiky, and all of the other amazing contributors to this awesome project! As a late arrival and immense benefactor of your work, I’m in awe of the commitment and tremendous vision and collaboration that each of you have provided! Thanks so much!
    Cheers, Ivan 😀

  6. StarMox

    Congrats DEVS on a wonderful project and a great achievement! Also late arrival and long time xcom fan here. Keep up the great work!

    StarMox

  7. Piter432

    Forgot about question: Are you, SupSuper or Warboy looking now for new person to invite him or her to join into OpenXcom team (admins or whatever :P)? Just asking 😛

  8. nullzero

    Obrigado. Merci. Thank you.

    Congratulations for you three and all the community for reaching a well achieved 1.0 vanilla+ release and maintaining a now booming modding community without compromising the 1.0 primary objective.

    Bravo!

  9. alienfood

    I love nerdy software development retrospectives!

    The most important indicator of a successful open-source project is that people glom onto it. OpenXcom has always had these things:
    – close enough to the original vanilla game
    – just simple enough architecture to be understandable that is just complex enough to do get the job done
    – just enough chance of completion with just enough objective evidence of progress to provide motivation
    – a tight leadership team that did not allow too many whacky ideas.

    BTW What tool did you use to generate the video?

  10. teilazar

    Sorry for my English, I’m Spanish. Impressive project. Congratulations on the great work and those five years of hard work, dedicated to the development of this little wonder.

  11. Xraeer

    Congrats OXC!!!

    Am I am so proud that i saw my name flash there a couple of times. Really is the one came that i keep coming back to and playing and playing, it just never ends.

    XCOM the best OXC even better.

  12. kafros

    Ah, so much I stuff could write in this very post. I’ll try to keep it short, although I may post assorted thoughts (please bear with me!)

    I recall when SupSuper (since 2003) and I (since 2004) worked so much on Project Xenocide on so many fronts: Code, Creative Text, NSIS scripting, even the custom website CMS. A project that progressed much and showed such promise, but unfortunately changed processes and game engines a lot more than any project should, and which eventually died.

    And around that time, openxcom came along. You delivered in 4 years what many couldn’t in 7. Of course, previous experience and current technologies helped a lot (you cannot compare github to the xcomufo site/forums), but COMMITMENT and INCREMENTAL, PRACTICAL TARGETS was what made the difference! And, indeed, “staying vanilla”.

    UFO2000 also deserves some praise and hopefully it will be salvaged sometime.

    I’m sincerely happy about OpenXCom and what was achieved in this project! Kudos to all the team and especially SupSuper for putting the initial seed.

    PX, UFO2K and OpenXCom are a fine example of what open source projects are and how they work. After reading a book like http://producingoss.com/, I believe you’d also agree.

    One last thing: Don’t be intimidated about what you don’t know or how much work you believe is required to achieve your project. Find an idea you love, keep realistic targets, and JUST WORK ON IT. The small seed may actually blossom into something beautiful, however long it may take.

  13. HueponiK

    Saw myself in video for 5 seconds. That will be great story for my grandchildren. Now I have something to be proud of!

  14. mushi

    inspiring story, great project, wonderful result

    you guys will not find hard to get a job

    bravo from portugal

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.