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)
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:
- Buildings disappearing (not falling down yet though....)
- Strategy maps!
- Different vehicles!
- Stuff landing and taking off!
- Stuff going fast!
- Music! Weird click-y noises!
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:
- Available Forms Components
- Component Properties Reference
- Designing Forms In Code and XML
- 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:
- 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!
- 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!
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!