May 2013 blog archive

This page contains all the blog posts from may 2013. To read the most recent blog posts, click here.

26/05 - TS2 maps

Technospire II now features 33 maps. Two additional difficulty settings allow to modify the maps somewhat to add some replay value.

The player character doesn't gain experience and levels, instead, statpoints can be collected from defeated ships to upgrade various passive and activated abilities. Each of those abilities also improve the ship the player uses to explore the levels of the Technospire - i.e. upgrading combat abilities also increases the attack strength and critical hit chance of the ship, support abilities also increase hitpoints and armor and warfare abilities also increase energy stock and resistance.
There are 6 passive and 6 active abilities, and having these abilities also boost the stats of the player ship, one can make a character that only uses passive or only active abilities. Personally, when it comes to (A)RPGs, i tend to prefer having passives over active abilities.

As said above, upgrading requires statpoints, which are rewarded from defeating enemy ships. Playing a map for the first time guarantees that one of the ships on that map will drop a datacube (which rewards a statpoint). Playing that map again results in a 50% chance of a ship dropping a datacube on defeat. This is where the additional difficulty settings come in, which are unlocked upon completing a map, activating a difficulty setting boosts this datacube droprate.

Up next is balancing. The 33 maps have been tested by themselves at the lowest difficulty level, but the further the player advances in the Technopsire, the more difficult the NPCs and traps become. This increase in difficulty needs to be tested and tweaked as needed. The plan is to provide a proper challenge without having to replay lower maps too many times to gather additional datacubes.

19/05 - TS2 content

Most of the missing non-gameplay elements have been added during the past week. Right now, i'm working on the set of maps that will come with the game at release. For this i'm using the FTSA editor i've built before i started on TS2. Here is a screenshot of a map nearing completion in the editor : click here.

At this point, it's unlikely that the editor will be released alonside TS2. While the editor works, it's far from being user friendly. I can work with it since i've made the thing, but it needs a fair bit of work before it's somewhat presentable. Right now it can only work on one map at a time, so i have complete a map and transfer it to TS2 before i can start on the next.
The main reason however, is the lack of database interaction for both the editor and the game. There's no point in releasing a level editor if the maps you create with it can't be transfered to the game. The campaign and challenge editors in HDX were part of the game, which made it easy to test them as the editors would simply use the gameplay code already present in the game. Since FTSA is seperate from TS2, there is no way to test a map since it has none of the gameplay mechanics from TS2 coded into it. But all of this is stuff for later, right now the focus is on completing the content for TS2 and getting started on the Flash port in the -preferably- not so distant future.

Next to TS2, i'm still doing a bit of (non-programming) work on HD SQ, focussing on setting up the combat system. There are a few things i want to explore that aren't really possible in traditional HD games, such as formations and ship-roles. While ships have roles in HDX, generally smaller fighters are often phased out for stronger combat ships when facing more difficult opponents for instance. So i want to have a system where small ships remain useful for a fleet, even when facing more challenging opponents. If certain ship roles are then placed in certain locations to maximize their effect, another dimension has been added to deck/fleet building.

12/05 - TS2 progress

Taking a break from working on Java (using LibGDX) project to do a AS3 (i.e. Flash) one shows the differences between the two languages. Working in flash appears to be faster, but this is probably only because i have more experience with the language and code editor (Flashdevelop) than with Java and its IDE (Eclipse).

The core framework (which is basically the game loop with basic links to input, rendering and gameplay updates) for my flash games hasn't changed much since Ultranought. I have a basic flash project that contains only this framework and whenever i start on a new game i only have to copy that project, adjust some settings and i can start adding in render and gameplay code right away. LibGDX provides a template with a basic gameloop as well, so technically you can focus on coding the game right away as well.
Since i want to make my games compatible with PC, Mac and Linux (both web and standalone) as well as Android, i basically have to create both a Java and Flash version for these games. Flash takes care of the webversions (PC, Mac, Linux) and can be easily made into a standalone, using Adobe AIR (but this doesn't work for linux). The adobe AIR version, with some small adjustments, can also work on Android. So technically i can target all platforms with just one version of the game. The problem is performance. Despite being a mostly static game, HDX is my most complex game graphically, mainly due to the different layers the card images are made up off, but also because of the relatively large amount of variable information that has to be displayed on screen in real-time. Making a hi-res version of HDX in flash or AIR, simply wouldn't work for slower/older computers, even if i optimize the render code even more. Flash does offer a way to render graphics on the graphic card instead of calculating them on the CPU of a computer, which provides a huge boost in performance. The problem is that this is not compatible with all websites by default and on top of that, the version of the flash player that has this functionality doesn't exist on Linux.
Java+LibGDX on the other hand, has much better rendering performance, but it doesn't offer webversions.

So the general plan is to make flash+AIR versions of smaller games that don't need a hi-res version or aren't too complex, graphically. Java versions will then be made for larger or more complex games, as well as a smaller flash version for websites.
Technically, TS2 falls in the first category, but it will serve as a test case to see what the major differences are between working in Java and in AS3 and to have an idea of the amount of work involved in porting a Java game to AS3. So far, the general structure and workflow of a game doesn't differ too much between the two - it's mostly small technical things that differ.

It's not unlikely that it might still take a fair bit of work before TS2 is completed. The gameplay is done, as is most of the non-gameplay code, except for savegames, audio and visual effects. The content will take a bit of work as well, but the big unknown is the time it will take to transfer the game to Flash. Gameplay code will transfer without problems and can be done automatically for the most part, input code only needs some minor adjustments, render code will be the tricky one and possibly will have to be done manually for the most part. I did set everyting up so that the Java version of the game is twice the size of the flash version when in 4:3 mode : Java version offers 1440x1080 and 1536x960 (optimal resolutions, but the game will scale to any resolution theoretically), while the flash version will be 720x540.

05/05 - HD SQ vs TS2

The upgrade system for HD SQ has been completed and put through basic tests. Without actual gameplay, i don't know anything about how upgrading various ships affects general balance. To be able to have actual fights against an AI, i'd need to add more cards, their abilities and all mechanics related to combat and abilities. All of these things together form the core the game, but it would take a lot of time to complete all this.

I've set up a list of all the things HD SQ needs before it can be ready for release (either alpha or beta) and did the same for Technospire II (TS2).
TS2 currently has all the gameplay mechanics required to play through any map i can make with the map editor. But, this is the only thing TS2 has - launching the game puts you directly on the one and only map the game has right now. There is no main menu, no way to spend statpoints to customize the player character, no way to select levels, and the game still need plenty of levels. Except for these levels, these things don't take that much time to create. Another important thing to note is that TS2 is being written in Java, since i want to release a flash version simultaneously with the android version, the entire game needs to be ported over.
HD SQ, on the other hand, needs a fair bit more work. While the cards from HDX will be used, all their stats need to be adjusted and most abilities will be changed to fit into the combat system that will be used in HD SQ. The computer opponent will need a way to generate fitting challenges across a wide range of difficulties. Contrary to TS2, balancing will be much more complex as well.

TS2 looks more interesting to complete first. It needs less work to complete, and since it's written in Java, it'll serve as a testcase for future games that target both mobiles and desktops. HD SQ is being written in AS3 (i.e. flash) and will work on android, but depending on my experience with TS2, i might start over in Java. The main advantage of having a Java version is better performance on android and at larger resolutions and it offers a standalone version for Linux (which can't be done with AS3 and adobe AIR). At one point in the future i'd really like to make a hi-res version of a traditional HD game, but i don't know yet if HD SQ would benefit a lot from having a hi-res version. If i do want a Java version of HD SQ, i would have to start in Java first as it's much faster to port from Java to AS3 than vice versa.

So, for the foreseeable future, i'll focus on TS2.