Sunday, January 26, 2014

Status update

The project is advancing, but a bit behind schedule. New ETA for Kickstarter keys is late February. New screenshots will be up next week!

I apologize for the lack of updates on the blog and G+. Posting to my twitter every 1-2 days usually.

Thursday, December 5, 2013

MiniCiv Kickstarter is now live!

MiniCiv's Kickstarter campaign is now live! Please check it out, it's only 2 weeks long!

There's also a Google+ discussion thread here:

Monday, December 2, 2013

Preparing for Kickstarter


So if you missed my twitter updates, this happened last night:

Pretty bad luck (the touchscreen stopped working completely), and I can't afford to replace it either, so I'm doing a Kickstarter to raise money for a new tablet. I'm not sure how long it takes the KS people to approve it, but once's it's live I'll post a link.

I'm only trying to raise a small amount of money, and the campaign will run for just 14 days, so please help out! You'll receive a key for the beta version which will also unlock the final version.

I've started a discussion about the KS on Google+, link below:

Sunday, December 1, 2013

BETA development has begun!

I'll try to post smaller updates and progress screenshots every day on Twitter.

You don't have to do anything to get the early beta once it's released, if you have the alpha version installed it will automatically update and you'll see the usual update notification on your device.

I'm not sure on the timeframe, but early January is my goal.

Saturday, November 2, 2013


Since most people are probably not following me on Twitter, here's what's been happening with MiniCiv:
- development resumes Nov 29, the day of my last exam and start of the summer break! (Australian summer break anyway)
- in the meantime I've been doing a bit of work on the updater software, server-side
- I disabled comments on the blog, since Blogger's comment system isn't all that great. There's plenty of better ways to contact me: email, the game's Google+ community and Twitter. All these links are on the right hand side area of the blog.

See you guys soon!

Saturday, August 24, 2013

MiniCiv Google+ Community

I've created a G+ community for discussing the game, feature requests, bug reports etc., because the blog's comment system isn't really powerful enough for the task. Basically, anything MiniCiv related goes, so post as you like! :)

Link is also on the right hand side panel on the blog.

Wednesday, August 7, 2013


I'm in bed with a nasty cold and since I'm not writing any code, here's some updates/stuff I've been thinking about:

0. I have a Twitter account now. It's the quickest way to contact me for small questions/suggestions/chat, I check it very often. My iPhone 5 has such shit reception, it's now basically a dedicated Twitter device.

1. 80% of all users who downloaded the Alpha (just passed 10,000 downloads) run Android ICS (4.0) or later, and 90% of the users who have kept the game installed run ICS or later.

Since the game won't be finished until next year anyway, I really want to drop 2.3 support and require at least ICS, (API level 15 instead of 10) in order to fix some really annoying problems that have been eating too much time from actual development. This should hopefully stop more of the people installing the game on devices it's not really intended for.

2. The alpha version will be identical to the beta for the first few updates, until I'm sure everything is running fine, then the alpha will be discontinued and only the paid beta will be updated. This is because the game is going through a complete rewrite to C++ (no more libgdx either) and a new engine, so I'm expecting some zero-day crashes, just like the first week of the alpha experienced.

The alpha won't actually be deleted from the store, it will just be changed to render the new terrain in the background (with a framerate counter), and have a permanent message in the center of the screen saying the alpha is over + a link to the beta on Google Play.

3. Beta will only be a few dollars at first, (and a separate app) and will gradually increase in price as the game nears completion, a la Minecraft. The final game will be the same actual app on Google Play, so if you buy the beta you get access to the final game.

4. Most of the money at first will be used to buy more devices; not just for testing purposes, but also for tools. I can't get my hands on the Tegra dev tools, but the Adreno tools look pretty sweet (particularly the shader tools), and I've already downloaded them.

Both the new Nexus 7 and the Nexus 4 have an Adreno 320. I really want the new N7, but I can put the N4 to much better use because I need to test/develop with smaller screens myself, not just 7". N4 is 4.7", the smallest I'm designing for.

Next up would be the Nexus 10, for it's Mali GPU and that crazy resolution that I already know from alpha feedback it hurts performance. Finally, something with a PowerVR (I think the 8core-flavor SGS4 has one of those) and high resolution, and I will have all the major GPUs to test on.

5. The long term plan is to nail down a multiplayer infrastructure and server-sided scripts (so mods can do cool things in multiplayer), then implement AI as a "stock" mod. Single player will just be a fake local server, so no internet connection required for single player. I think Notch talked about this in an interview, said he should have gone with a unified path instead of doing single player and multplayer separate, apparently that wasted development time.

6. I'm doing a quick video when the map generator is ready, then back to working on the terrain.

That's about it for now!

Monday, July 15, 2013

Beta Roadmap

I've been working on the new terrain engine for the beta, and I'm pretty happy with the transition to my own full C++ engine. I'm actually still using libGDX to set up my context, input processing, and so on, in a cross-platform way, but now I don't have to keep jumping back and forth between Java and C++ to deal with the already complex OpenGL rendering. I only have about a page or two of Java left now.

Anyway, here's a preliminary roadmap of the beta. The alpha had a 1.x version system, the beta is now 0.x and will be a separate app on Google Play, that way, it can go to 1.0 when the game is considered release ready.

v0.1 - new terrain system
v0.2 - scripted, immediate-mode UI system (still undecided on AngelScript vs Lua!)
v0.3 - UI for creating a new game, map size etc. <--- launch early-beta here at very reduced price
v0.4 - cities
v0.5 - settler unit, unit movement and pathfinding, found city
v0.6 - skeletal animations
v0.7 - worker unit, some tile improvements
v0.8 - roads
v0.9 - tech tree system and UI for it
v0.10 - tactical unit (warrior) and basic combat system, UI for it

Some of these patches are so small it would only take a few days to implement (such as the roads patch, since it's practically based on the same tech in my engine used for borders), but I'd like to have small and frequent updates like this to keep me motivated, instead of working on large, infrequent updates like what I'm working on now.

Somewhere around patch 0.9 I will need to find a designer to partner with and continue developing MiniCiv into a real strategy game. I know what I'm good at, and it's programming, not designing video games (let alone a complex strategy game), and if the game will be just pretty graphics with no substance, then to me it failed. So if you're reading this and have some provable experience in video game design (such as working on mods, board games or other indie games), and you live in Adelaide, Australia, then please email me to discuss working on this game and forming a small indie team. If the beta can support it financially, I am prepared to take the time it takes off my university studies to work on the game full-time. I'm also expecting a designer to have at least some skill in either programming/scripting or art, or be proficient at maths.

The basic goal is to create a full-feature 4X terrain-based (not space based) strategy game, but it needs to have it's own take on the genre, it can't just be a Civilization 5 clone. (in which case it won't be worth buying anyway and everyone will just pirate the game. Also, I'll get sued into oblivion. However, the basic 4X mechanics can't be copyrighted, so it's cool to make an original game based on that!)

It will also have to be tuned for a bit faster gameplay so it can feel more fulfilling in shorter sessions this game is meant for*, especially given the limited battery life of mobiles and tablets. *=examples: bus/train commutes, lunch breaks etc. so 30-60 minute sessions for single player. This presents design challenges such as dealing with long turn times in late-game, when the player likely has many units to order around.

That's it for now!

Sunday, June 23, 2013

Update /w good news!

I recovered my keys! This means I can now publish new updates for MiniCiv Alpha. Hooray!

I have no idea how they got on my harddrive again, the only logical explanation is that just the right stars aligned, causing a solar flare that made Eclipse pop my files back into existence. Or something.

Anyway, I've got about another week until my exams are over and then I'll have about 4 or 5 weeks of game dev time!

I've published an 1.1.5 update, but it's actually just the same 1.1.4 with a version number increase. So if you see an update on your phone, sorry to disappoint, there's nothing new yet. I just did this to test if my keys really work again.

I'm planning to add a donate button via IAPs to the alpha, and maybe PayPal. (so you will see a notification saying I've added new permissions for billing, just a heads up!)  More updates will come to the alpha version, and the paid beta won't be released until there's playable content.

That's about it for now, I'll be back in a week when I'm done with my exams!

Wednesday, May 22, 2013

End of the semester at uni

Quick update: the end of my semester and the exams are rapidly approaching, so I'm only able to fit a few hours of work here and there between lectures. My last exam will be in about 4 weeks from today -- after that, vacation time to work on MiniCiv! See you then!

Sunday, May 5, 2013

No more updates until the BETA

It's 7AM, I've been up all night so this will be as short as I can. There will be no more updates to the ALPHA version of the game on Google Play.

Here's what happened. Git fucked up. I didn't make a branch when I should have, and my entire repo got fucked, including all my other branches. So I switched to Mercurial last night. Unfortunately, when I switched to a new workspace in Eclipse, my keystore file disappeared.

As it turns out, you can't publish updates if you lose your keystore file, and there is absolutely no recourse.

I last published an update at about 1AM, then my keystore disappeared. I've searched for it with three different file recovery tools, not a single trace of any *.keystore file. It's not in my old workspace or anywhere on my HDDs.

Words cannot express my frustration or the headache I have right now, but this image of my ashtray might:

It sure would've been fucking nice if the keystore creator tool in Eclipse would have let me know this file is important, at least I don't remember anything about it.


The beta was going to be paid, so it needed a different app anyway. (you can't turn a free app to paid on Google Play, only the other way around)

With the size of patch 1.2 and the alpha-beta schedule, you'll only be missing out on about a month's worth of updates after 1.2 is released. (as a reminder, no gameplay is done until the beta starts)

So it's not the end of the world, you can still check out screenshots and videos of updates on this blog until the beta.

If there's any positive side to this, is that it's better to have learned about keystore files now, because if this happened after releasing a paid app, it would have been a total cluster-fuck.

Now I know, and I'll be making backups of my new keystore file, and also I'll never trust Eclipse with anything ever again.

Sorry everyone. I'll rush to BETA and do playable features sooner.

PS: my git repo is actually fucked, but I've managed to salvage a near-complete version of my code. It's subtly different and I don't know all the parts where it's different, but it shouldn't be too much trouble to fix it up.

Wednesday, May 1, 2013

Two more screenshots

I found some time tonight, and ran an important test. In both the screenshots, the red overlay started as a single quad/rectangle (basically just two triangles) and then was processed by the terrain system. It's extended past the map edge in the 2nd screenshot.

This verifies that the system reliably cuts large triangles into many small triangles. (~30k)

Also, this is basically how farms will be drawn on top of the terrain, except they will be smaller and less brick-like.

In short, patch 1.2 is going well so far.

Tuesday, April 30, 2013

Terrain progress

Some progress on the new terrain system. It doesn't look like much, but it's the first time I've got it to work correctly.

Still a ton of work ahead, but it should be just a bunch of boring code from here. And by "a bunch" I mean my codebase will probably double or triple in size.

By "terrain system", I don't mean actual mountains and hills and such (the actual geometry generation), but the system that renders this geometry and everything that interacts with it. (like civilization borders in this screenshot)

So I've got two tasks: the terrain system, then the terrain generator. Version 1.2 will have a more complete terrain system but only a basic terrain generator. (it's something that requires involvement from an artist)

Fortunately, this system which I'm designing for performance reasons has some cool side effects art-wise. It allows the terrain generator to first define some typical geometry (much like in a heightmap system) which are the actual shapes/geometry of mountains/hills/etc., but then where it starts to be different is that this geometry is never drawn.

Instead, individual flat (2D) patches of a distinct texture/shader combination (for example, grassland or snow) are created by the terrain generator, then sent through a piece of code I've nicknamed, ahem, "the triangle butcher", which basically makes that flat patch follow the shape of the terrain geometry. So for example in this screenshot, the civ borders which used to be flat, now follow the geometry of this pseudo-terrain.

Patches can have any arbitrary shape... again, just like the civ borders.

This is basically a really elaborate and overly-complicated way of doing both texture splatting and texture projection in one go. Why this way? Ignoring the cool art benefits (I can now use many different textures, and multiple shaders for the terrain), it means huge bandwidth savings compared to multi texturing, an absolute requirement for the devices I'm targeting. It's no holy grail of course, it's full of problems that need to be worked out, and performance wise, it introduces overdraw and additional depth testing and alpha blending, which eats back some of that precious bandwidth.

Another advantage is that all maps use common generic textures instead of having any map-specific textures, which makes it much more feasible to rapidly switch between active games, since only the geometry for the 2nd/3rd/etc game need to be kept in memory or loaded from disk. For example, you might have two active games: a single player scenario, and a multiplayer game with long turn times that you switch to occasionally.

In terms of aesthetics, I'm going for a "painted" look now, like in Diablo 3, though not as dark. I don't see the benefit of going for a realistic style (with normal mapping and all that) because of two reasons: the sun light is fixed, and you are mostly zoomed out on a small screen looking at an flat-ish terrain top-down. None of that fancy lighting is really noticeable, yet it is very expensive to calculate. So I think the painted style wins here.

Sunday, April 28, 2013

Progress continues

The project still lives, I just haven't had much time lately due to uni. A video about the new terrain system should be done in the next 1-2 weeks, 3 at most.

Saturday, March 23, 2013


Patch uploaded, and the command is actually called "uiscale" because it will affect all of the UI in the future.

Icon system (v1.1.0)

Huge thanks to Henry Smaal from Netherlands for providing the icon artwork. (including the launcher icon!) He probably spent more time on this patch than I have!

Patch 1.1.1 with the iconscale command due sometime this afternoon, the Play store always has a 1-2 hour delay after I upload.

Wednesday, March 13, 2013

Short update

The feature for 1.1.0 will be map icons, ie: resource and unit icons.

They are a bit more complicated than your typical icons, because they resize as you zoom out so they don't clutter the screen on a small device, so to keep them sharp looking they are partially rendered using vector style graphics.

The system is up and running, there's just some plumbing left to write. The update should hit this weekend.

I'll also add a paid version of the alpha soon that is identical with the free alpha, so there's no reason to buy it except if you want to support the development of the game, specifically: buying more devices to test on. At the very least I should get a phone to test with, since they are quite a bit smaller than my 7" tablet. I'd like to cover all the major GPUs, there's about 6 of them.

Two last notes, there's a 'news' command you can type in the console to see what's new with each 'major' update; and the game just passed 500 downloads! *yay*

Thursday, March 7, 2013

Thank you for testing!

The launch of the alpha went quite well! Thank you to everyone who helped test and reported framerates and issues!

Here are some stats and info:

  • over 300 installs
  • more than 80% have kept it installed
  • no more crashes after 1.0.1
  • missing textures issue fixed in 1.0.2 with no one reporting they still have the problem
  • the game runs well on even some pretty old devices (an incomplete list is available in the app description)
  • it runs fine on Gingerbread, so it will remain supported

There will be a minor update tomorrow that lets you zoom out further using a console command, intended for 10" tablets; and v1.1.x will appear sometime in the next 2 weeks, as I'm simultaneously working on several features.

Sleep time.

Monday, March 4, 2013


Version 1.0.2 has been uploaded and should appear soon on Google Play. Hopefully this fixes the problem with missing textures on some devices. Those missing textures are actually not loaded from memory, but generated in a FBO when the game starts.

I've also reduced the requirements to Gingerbread (Android 2.3) since some of these older devices are actually powerful enough to run the game!

Sunday, March 3, 2013

Borders & Play Store link

The alpha version is up on the Play Store! No special permissions required.

Or just type MiniCiv in the search bar at the store.

Here's the video update as well:

Play Store

I just uploaded the first Alpha version to the Play Store, it said it will take a few hours until it is available, then I'll post a video update with a link.

Borders screenshot & reddit comments

Screenshot of the border system below. Video update tomorrow! I'm using the same tech as the grid to do anti-aliasing in the pixel shader.

I sure picked some ugly colors for the yellow/red one, but meh. Looks weird to have civilization borders but no cities around!

Also,  I posted an important update on Reddit. I'm a bit bummed out about it, but a smaller project is better than one that will never see the light of day.

/edit: bonus screenshot, on my Nexus 7:

Sunday, February 24, 2013

iPhone5/Galaxy SIII mockup

I got an iPhone 5 last week since I needed a contract/plan for work, and was kinda amazed how small it is.

I've never actually seen one before, everyone keeps theirs in these bulky cases or whatevs they're called, so from a distance they look like a normal phone, but the screen is TINY. Tiny as in I'm having trouble tapping on most things. I'm a bit worried the game won't be playable on such a small but popular screen.

So I made this shitty shoop of an iPhone 5 and Galaxy SIII side by side in someones hands. (original image from The camera is zoomed all the way in, which is they way I guess most people will issue orders, and only zoom out to navigate or get a view of the situation.

What do you guys think? (you can leave anon comments) It looks fine to me. For reference, the width of a Nexus 7 is as big as the whole height of an iPhone 5, so big difference there!

Thursday, February 21, 2013

I'm back!

Although I gotto say it's getting hard to go to my job and work on the game. Video on Youtube.

Thursday, February 7, 2013


So I just had massive dental surgery stuff (like 6 teeth in one go), and maybe it's the blood dripping and filling the space between my keys, but I don't feel like working for a while.

On the plus side, it looks wicked cool. Really bright blood and everything.

TL/DR: AFK for a while.