OpenApoc is planned as an open source remake of the original XCOM: Apocalypse game.

Further down the line, it will hopefully get additional changes such as higher resolution and mod support.

At this early juncture, there's nothing for players to use, but if you want to get involved, there's plans for language packs, and when something gets released, it'll need testing.

Hopefully you stay around for the ride, and we can do for Apoc what OpenXCOM did for UFO: Enemy Unknown

Exciting Links:
Official Source Code (github)
OpenApoc's Facebook page

  • It's been a while since the last video status update, but things are still progressing!

    So check this out:

    I tried to do a bit of a voice over description of what's going on. Please bear in mind, I'm a coder not a voice-over artist!

    Anyway, a brief summary:

    • Intro video!
    • Saved Games! (Including a framework for mods!)
    • Build base modules!
    • Build new bases!
    • Destroy base modules!
    • Research stuff!
    • Equip vehicles!
    • Move vehicles!
    • UFOPaedia stats!

    Many thanks to the following for helping make all this possible:
    SupSuper (BaseScape, lots of other coding stuff)
    Sfalexrog (Android support!)
    Skin36 (Lots of reverse-engineering goodness)
    JonnyH (Myself)

    Please let me know if the voice-over is a good idea, a bad idea, could be improved etc.

  • I hope everyone had a good Christmas and new year!


    While eating too much was my primary goal (which I clearly succeeeded at), we managed to get some more stuff done on OpenApoc too! The primary stuff being 'proper' vehicle equipment working. Previously, we just 'faked' it, but now all the vehicle stats are correctly calculated, and the equipment screen is fully functional!


    See it in action:



  • It's been a while since my last update, so I thought I'd do a quick update about a video showing off what we have currently:

    Watch it! Be amazed! Don't hate on me for never updating the blog (Please!)


    A few highlights:

    - Explosions!
    - Buildings disappearing (not falling down yet though....)
    - Strategy maps!
    - Bases!
    - Different vehicles!
    - Stuff landing and taking off!
    - Stuff going fast!
    - UFOPaedia!
    - Music! Weird click-y noises!
    - Options!


  • Forms Introduction

    OpenApoc has a simple UI library called Forms. Not very original, but hopefully functional enough. I could (and maybe should) have used a pre-existing UI library for Allegro, but I didn't, so here we go.

    Forms is a hierarchical UI library, meaning controls can be nested within controls, and thus if you disable or hide a control, and controls nested within it will disappear too. Forms is also designed to be keyboard friendly, so you should be able to navigate using Tab and Shift+Tab.

    We'll break this down into four sections:

    1. Available Forms Components
    2. Component Properties Reference
    3. Designing Forms In Code and XML
    4. Using Forms In OpenApoc


    Part 1 : Available Forms Components

    The following components are available for designing UI

    Control Name Description
    Control This is the base control. Every other control inherits from this one.
    Form Form is a special implementation of Control, and should always been the class you start your UI with
    CheckBox Simple checkbox - On/Off. Keyboard toggled with Space
    Graphic An implementation of Control that renders it's background with an image
    GraphicButton A clickable button (Keyboard click with Space), but the button image(s) are loaded from resources
    HScrollBar Slider/Scrollbar. Use either for value selection or scrolling Forms and Lists
    Label A simple control that displays text
    List Organises all child controls into a line, with scrolling support
    TextButton A clickable button like GraphicButton, except it has a standard image and draws text on top.
    TextEdit User input control - Should accept any key. Stores value as a string
    VScrollBar Vertical version of HScrollBar


    Part 2 coming soon...

  • So, I've been meaning to do this for a while, but I've finally got the time to write up a quick post on recent developements in OpenApoc! Hopefully this is the first of a regular feature...

    First: A caveat. OpenApoc is at a very early stage - a lot of the frameworks behind the scenes are still being designed and built - hopefully the rate at which we can implement the 'game' itself will speed up as we get these behind-the-scene structures in shape.

    So with a progress report, we have to have something to progress from, so I'll start this with not-so-recent developments. So, currently implemented features (as of a couple of weeks ago, or so. I'm not very good with dates, clearly). We had got to the point where we have decoded ~90% of the image files used in Apocalypse, and could emulate the UI to show the main menu and start a new game.

    We also have implemented enough of the city to read the apocalypse city map files and render them (at any resolution - no longer are you limited to 640x480!).The renderer should be quite fast and efficient, using OpenGL 3.0 acceleration, which should hopefully work on any (relatively modern) system.

    We also have some prototype code for vehicles, with somewhat simple pathfinding around the city.

    A decent representation of what this looks like can be seen in this video:

    Finally, that brings us up to date (mostly) - so onwards to:

    Recent developments

    • Full unicode support in the font renderer and string handling

    We load the font files directly from the Apocalypse resource files, and they contain a number of glyphs outside the basic ASCII range. Our old renderer indexed these as bytes, which wasn't correct for anything outside this range, at best causing weird artifacts (at worst crashing). We finally moved to a full-unicode text pipeline, and allowed fonts to define any unicode glyph. Due to us using the Apocalypse font files, we're currently restricted to what glyphs they contain, which is rather limited. A rather dull change, but a big backend cleanup, and required for any non-english characters, which I'm sure some people will appreciate. It is also easy to add new glyphs to these fonts in the future, leaving the door open to translating to more languages.

    Here is a screenshot of the main menu using our french translation (thanks to 5thAvenue!). It might not look like much, but those accented letters caused me a world of pain!

    main menu in french

    • Day/Night palette swap

    This is kind of a cheat - all the work had already been done for palette swaps in the renderer backend. Just nothing was using it yet! So I hacked a quick test (the 1,2,3 keys in the cityscape) to swap the palette, and it actually worked!

    Cityscape dat/evening/night palette swaps

    There have been a number of behind-the-scenes changes recently too, which aren't that interesting to show, so I won't bother (Unless I do a horrendously nerdy implementation deep-dive post later, of course).

    Put all together, you get this:

    Hopefully the first of many progress reports!

    Signing off,