About this blog
Open Source development, and other ramblings
Entries in this blog
I've released v0.13 of my Open Source RPG, Erebus, for Windows, Linux, Android: http://erebusrpg.sourceforge.net/ (also see my initial post for this project at https://www.gamedev.net/blog/1224/entry-2256244-erebus-rpg-for-windows-linux-symbian-and-android/ ).
Version 0.13 is now available. This version introduces various improvements to the rules: each character now has their own special skills, which helps distinguish the different characters from each other. Multiple Attacks has now been implemented (players can get extra attacks either through a Potion of Rage, or with some weapons depending on special skills; the Minotaur has 2 attacks). A new ranged weapon, sling, has been added. And combat with enemies that can only be harmed by magical weapons is now conducted via the Mind statistic, rather than Fighting Prowess - such combat is now entirely psychic, and this helps balance the game, making the Mind statistic more important. A troll has been added (to the 3rd quest), which has the ability to regenerate!
Random dungeon generation has had some improvements made.
Graphical improvements have been made: female graphics are now available for some characters; the graphical effect of spell casting is improved; new graphics for dagger; new graphics for Goblin Champion, Orc Champion, Hobgoblin and Shadow. The engine now supports NPCs having differently sized graphics (used for Troll and Minotaur - we no longer have a stupidly small Minotaur!) (Graphics from 3rd party Free sources, see the homepage for details.)
See the history for a full list of changes: http://erebusrpg.sourceforge.net/erebus.html#history
Behind the scenes, I've also made significant improvements to the testing. Erebus has always had some unit testing, but originally for things like path finding. Later I added tests to make sure that loading quests and save games worked okay. But now I've added tests to do major testing of the rules, as well as various mechanics of the game - e.g., ensuring that doors can be unlocked with the right key, or that iff you complete an NPC's quest, you get the expected reward. As the amount of gameplay increases, it becomes more important to automate this.
A bug that I got hit by recently (fixed in v0.12) was where saved games from the 2nd quest couldn't be loaded under certain circumstances - unfortunately this wasn't the case with the initial setup, but only when the player encountered the poisonous fog, making it hard to reproduce (the bug wasn't there originally, but unfortunately got introduced during some refactoring). I'm not testing every possible state, but more tests reduce the likelihood of this happening (and this particular case is now being tested!)
There are still only three quests, but I am making good progress on a 4th, larger, quest!
I've just released v0.8 of Erebus, my Open Source Role-Playing Game, onto Google Play for Android smartphones/tablets:
Android 2.3.3 or later is required. A resolution of at least 800x480 is recommended. Note that it requires the Ministro II libraries (for Qt). If you don't have these, you should be taken to the app page automatically when you first run Erebus.
I've only been able to test it on one real device (Samsung Galaxy Nexus), so please let me know if there are any problems!
I was going to test out Google's new "alpha/beta testing" functionality for Android applications, but it doesn't seem to work so well at the moment (the Optimization Tips gets confused if you have a beta APK but no production APK; it's unclear how to publish a beta APK without also publishing the production APK - and if you move a beta APK to production, you can never deactivate or remove it; it's unclear how the "30 day" window for potentially getting into the "Top New" lists is counted for alpha/beta testing...)
I fear the Android version has some way to go to match the over 87,000 downloads for Symbian on Nokia Store, but we shall see!
My current project is Erebus, a real-time RPG. You can download version 0.6 for Windows, Linux and Symbian (Linux must be compiled from source; Android is also supported from source, but I haven't released a binary to Google Play yet.)
I plan to have a series of quests rather than just one single big quest. Generating quests/content is one of the most time-consuming aspects, so doing a series of shorter quests helps breaks the task down. Currently there are three quests, but more will be added in time. Version 0.6 also introduces the ability to play a randomly generated dungeon.
It shares some ideas with roguelikes (randomly generated levels, option for permanent death, optional keyboard controls, and of course the whole idea of a single player hack-n-slash dungeon crawl), however I didn't want to restrict the game to an axis-aligned tile-based world, or to being turn-based. Passageways/rooms are defined as convex polygons, and scenery can be any size or location. Quests are defined in external XML files.
I'm using Qt to develop Erebus. This is the official API for Symbian which I wanted to support (after seeing the potential for lots of downloads on my other apps like Wifi Remote Play), but also allows easy support for many other platforms including Windows, Linux and Android (via necessitas). Whilst usually thought of as a GUI API, Qt is a complete application framework, providing all of the low level APIs useful for games like windowing/input/networking that you'd get in libraries like SDL, as well as higher level support for 2D graphics. I ended up using it for the UI too, which greatly simplified development.
Erebus is Open Source, released under the GPL v3 or later. Almost all of the game art comes from 3rd party Free sources (with particular help from Open Game Art and Flare.)
Older versions have been reviewed - v0.5 at Free Gamer, and v0.3 for Symbian on All About Symbian. It's always a bit nerve-wracking for me to see someone writing about my work, but the coverage is good, and any constructive criticism helps improve the game.
The Symbian downloads have now passed 57,000, with mostly 5/5 reviews, and an average rating of 4/5 (to the nearest integer - Nokia Store doesn't show the fraction). (It was also an interesting lesson to me to not get too down from random negative ratings - after an inital 5/5, the next two in a row were 1/5 with comments like "boring", leaving me rather depressed - thankfully the response after that has been different!)
Also see the main Erebus blog.
I see Google Play now requires you to use Google+ to leave reviews/ratings. Google+ requires you to use your full name. (This change for Google Play happened November 2012, I only just came across this myself though.)
At first there may seem some good arguments for saying people should put their name next to a review. But even if I'm not bothered by using my real name, a problem is that it means linking Google+ with the account on your phone. Many people, myself included, use a special Google account just for our Android phones, to reduce the risk of information sharing or snooping - but now to leave a review, we'd have to link it to our real names. What if Google start to apply this policy gradually to other services? Not only does this mean more services requiring a real name, but it also means users having to link up Google accounts that they had previously kept separate (since you're also supposed to only have one Google+ account).
As a developer, I know it's annoying to get the occasional bad review or rating for seemingly dumb reasons, but I'm not convinced a real name policy would prevent this - such reviews are sincere even if misguided, not malicious, and it's perfectly someone's right to give a 1 star review, so why would they be more deterred than anyone else? It's already possible to flag spam reviews. On the flip side, it's pleasing to get good reviews, and it would sadden me if people are deterred from doing so, due to the Google+ policy.
Reasons for wanting to use a pseudonym might be users of an app for say, a gay or BDSM website, who want to give feedback. There isn't just the idea of avoiding real names, but also that people who use a pseudonym on a website, that pseudonym would be their "common name" for that app. An actual case involved a Second Life user who signed up with their SL username - it would surely be better that they leave a review of SL apps with their SL username. The mistake by Google is assuming people have one "common name", when people typically have different pseudonyms in different circles - ironically using a "real name" can end up being less identifiable in some cirlces! Others may simply be deterred from leaving reviews because they can't be bothered to sign up to another service.
It doesn't help that Google's enforcement of "real names" on Google+ has been appalling - whilst claiming they only mean someone's commonly used, not necessary legal, name, in practice people have been required to use only their legal name even where they have an alternative common name, as well as having problems because their legal names were unusual. ( http://gawker.com/5824622/names-banned-by-google-plus , http://infotrope.net/2011/07/22/ive-been-suspended-from-google-plus/ , http://en.wikipedia.org/wiki/Nymwars )
This also smacks of "let's desperately try to force people to use our failing social network" - moves like this make me less want to (as someone depressed by Facebook, I was looking forward to a Google alternative that might have a chance of challenging Facebook).
It's no great loss - I and others simply won't leave ratings. But as an Android user and developer, I think that isn't a good thing.
(It also seems odd that I can publish an application without publishing my real name, but I need to publish my real name just to leave a rating...)
One of the games I've been working on recently is Conquests, an open source 4X Civilization-style game, for Windows and Linux. Features:
- Ability to create your own maps, as well as play on supplied or randomly generated maps.
- Scriptable AI, using Lua.
- Significant portion of the game setup can be modded, via the Lua scripts.
- Choice of 2D or 3D viewing modes. Supports zooming in/out. Hardware accelerated.
- Help tooltips on all GUI buttons; in-game reference guide.
- Whilst borrowing much from Civilization 1-3, I've tried to make a game that focuses on the fun aspects rather than the tedious.
- Efficient air and naval transport and combat - the player can select where to attack or transport units to immediately.
- No pollution! No senate or war weariness! No city disorder!
- Rather than simply having a generic "city production", cities also need to obtain elements in order to build things: Wood, Stone, Bronze, Iron, Gunpowder, Oil.
- Any foot soldier can build roads, rather than having to have specific worker units. Foot soldiers can also attack enemy units or cities directly by sea. Thus there is an advantage for building a mixed army of foot units and strong units, rather than just the latter.
It's the first non-casual game I've completed. Yes, it's yet another Civilization game borrowing a lot of ideas from the series, but it's a style of game I've always wanted to write, and I hope I've put my own slant on the gameplay and features And since I'm still learning, I wanted to go for something I knew I'd enjoy playing - as opposed to an idea that sounds more original, but runs the risk of turning out unplayable after months of programming (which is often what happened to my earlier unfinished projects...).
The game uses my own game engine, Vision. I worked on Conquest on and off from around May 2009 to January 2012, though this doesn't include time spent on Vision before that period.
The game uses graphics, music and sound effect taken from Free 3rd party sources, except for some graphics which are procedurally generated.