December 2014 blog archive

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

28/12 - 2014, looking back

As was more or less expected, work on HD3 took up most of my time this year. There's still a fair bit of work to be done on the game, before it can go into beta, but things are looking good. I work without any form of shedule, so i can't really predict when the beta will be ready. It seems to take about 2-3 weeks, depending on the complexity of new abilities, to add in a full set of cards, and 5 more of those need to be done (the CC set is 2/3rds complete). But the more sets that are in the game, the less work is needed on new ones, as cards share abilities. Next to the cards, there are 3 large mechanics that i'd like to see finished before beta as well : pvp arenas, drafting, and mercenaries. Finally, a bunch of smaller updates and improvements are also needed. All this together makes it unlikely that the beta will be ready before summer.
It needs to be said that with 'beta', i actually mean 'release', but since the game will always be in a state of being incomplete, it's probably more correct to call it beta. There are many gameplay modes, new cards, new features that i've had on my list of ideas for ages, and only a fraction of those have been implemented, or will be implemented by the time the game goes into beta. I prefer to release the game earlier, with plenty of content, but without all those other ideas. If i were to wait until everything is implemented, the game might be in alpha for 5 years or more.

other games
A while ago, i decided to no longer spend time on very small games, and focus on larger titles. This is the main reason why i didn't end up releasing a new game in 2014. While no actual coding has been done on other games, i did work out several ideas in more detail. I'd still like to do a tower defense style game, as well as both a turn-based and an action/shooter RPG. There's also still HD SQ, which i talked about in the past : a turn-based squad battle game, using the ships from HD. This game idea has been split up in a turn-based and realtime version, and i have plenty of ideas for both, but it'll have to wait until HD3 is complete.

HD3 campaign mode
While the cards themselves take up most of the content of the game, so will the campaigns, eventually. The mechanics that will make campaign mode possible are relatively simple, but the actual content (the battles, the opponents players will face, and of course, the storyline) is a different matter. There are different ways to go about this, but the most interesting one to me, is also the one that would take the most time to complete. I could do something similar as i did for HDx, where the campaigns are very short, and only have some basic storyline supporting them. I'd like the campaigns to be closer to the actual Xyth storyline however, and i want the campaigns to be much longer, offering varied opponents and locations. This is something that could take as much time to complete as the rest of the game.
This means HD3 won't have a finished campaign mode at release, perhaps only one race will have a complete campaign, perhaps all races only have a tiny starting campaign. I mention this now since i'm considering using the same campaigns for other games as well (i.e. the same storyline, the same number of chapters and locations). If i were to spend a lot of time on setting this up, it makes sense that this work can benefit multiple games at once. It also means that, once HD3 has gone into release and no longer needs full-time care and support, i can start on other games alongside doing work on the campaign mode. Whenever a part of the campaigns is complete, HD3 would get an update, and so would any other game that has the same campaign set.
Related to this are events, and those could be set up similarly : a single event could be available in different games at the same time. The story would be the same, but each game would use its own unique gameplay mechanics to bring the event to its players.
All of this is stuff that's still far away, but i've already spent quite some time trying to figure out how to tackle these things.

Xyth storyline
Early 2014 i started working on what i call 'Xyth Era 1', a part of the Xyth storyline that occurs before the bulk of the story that i've always referred to as '4th Moon of Xyth'. This was supposed to be a short story, but the first draft ended up being 207.000 words long (or some 620 pages in common print formats). I've since then cleaned up this first draft, which is now about 2/3rds done, but which also increased the word count to 255.000 words, and some of the largest chapters are yet to be done. This is obviously no longer a short story. The original '4th Moon of Xyth' will then become 'Xyth Era 2', and 'Aeon' will become 'Xyth Era 3', both will keep their original titles as subtitle, however.
I have no idea if i'm a good writer at all, but working on Era 1 has been very enjoyable and rewarding, so i'll definately continue it. Once complete, i'll put the entire text (or perhaps chapter per chapter, spread over time), on the website. While Era 1 has a medieval time setting, the stories for the campaigns and events in HD3 (and possible future games) will be based on Era 2, and possible Era 3, but they might also be completely new things, since the Eras don't focus on all races in HD equally.

What's the plan for 2015? I don't make plans, but it's safe to assume that i'll continue work on both HD3 and Xyth Era 1. I expect HD3 to go into beta somewhere in the second half of 2015, if i can continue working on it at the same pace. Xyth Era 1 will probably need more time, it's also a project that i generally only work on during the week-ends (when i'm not working on HD3), but perhaps a few chapters will get released.

21/12 - planning next patches

The most recent update brought a number of balance changes to the custom card generator. Originally, the plan was to also update unpredictable mode under V 3.02, but about 5 weeks have passed since the update with the XY cards, so i prefer to work on adding in more cards first. Alternating adding in cardsets and working on other content is still the general plan, to make sure that both things are finished by the time the game can go into beta.
The changes to unpredictable mode includes finding a solution to the cardrace problem, so that the game no longer lets players draw dual color cards in single color decks for instance, and support for the custom card generator, which is already capable of creating cards that are compatible with this game mode.

More changes are likely to come to the generator itself, as well. Currently, the deckmod 'basic ships' (which removes all abilities from ship cards) is allowed to be picked when the 'custom cards' deckmod is also present. Thus the custom card generator only influences the attack and defense of ships, and any abilities it adds to these cards will be removed again by the 'basic ships' deckmod. The problem here is that the generator itself doesn't know that this is happening, so technically it doesn't need to generate abilities for these cards. From the point of view of performance this doesn't really matter, but the generator is capable of changing the stats (i.e. attack and defense) of cards if they have received certain abilities. A ship that receives the 'cerberus' passive will see its attack lowered, and this happens even when the 'basic ships' deckmod removes that ability again. So there's a need to the generator to be able to skip this balancing step in some cases.

Another idea for the card generator is that it keeps the original abilities from the source cards, but scales them according to the selected difficulty. Thus, a vector would keep all its abilities, but they might get stronger, and the card would also see its attack and defense scaled. Technically this would be as simple as skipping the part of the custom card generator that picks abilities, and going straight to the part that chooses the strengths of the (existing) abilities. The hardcoded card set however, contains a number of cards with combo abilities (abilities that only work when other, specific abilities are also present on the card). The best example are the 'engineer' ships, who have an acti that changes their auto ability. While this acti is set up such that it will grant the auto ability should it not be present, the custom card generator will never add this acti to a card, and thus the generator also has no code to be able to select a proper value or strength (if needed) for such abilities.

For the next couple weeks, the focus is on adding in the CC card set.

14/12 - balancing custom cards

The biggest thing missing from the HDx custom card generator was balance. The game would pick a number of random skills and give them a random value from a certain range. This was good for the unpredictability and variation in generated cards, however.
Balancing is a big part of the custom generator in HD3.

For each card,the generator prepares a pool of abilities. There are different pools, seperated by the subtypes of the cards. Energy structures have their own pool of abilities that contains mainly energy related abilities, while offensive structures will have a pool with mainly damage dealing abilities. Between card subtypes there will be some overlap, mainly in general purpose abilities. Both energy and offensive structures, for instance, can use the shield passive or can have a play ability that increases base HP.
For ships, there's even more detail in these pools : instead of seperating per subtype (fighters, cruisers, etc), ships are first split up per role (carriers, supports, tanks, combat ships, warfare, energy). Some of these subtypes are then seperated per subtype. Example : the group of combat ships is the largest, so this group also has the most diversity. Here most of the damage and attack related abilities can be found, including the 'fast' passive. This particular passive is quite common on fighter class ships, but extremely rare on battleships, at the same time, battleships are more likely to have self-repair abilities for instance. These differences between classes is achieved by creating different ability pools.
When the generator is operating in random generation mode, ability pool generation is different, and mimics how it was done in HDx, i.e. fully random. Here, a battleship is just as likely to receive the 'fast' passive as a fighter class ship is.

Once an ability pool is created, the generator decides which ability classes the card will have. For now, generated cards can only have one ability per class. This is mainly done to make things simpler as there are more abilities within the same ability class that do not work together, than there are across different classes. It's much easier to filter out abilities that shouldn't be on cards this way.

After a card has been generated, there might still be a need to make sure a card isn't too powerful. Example : if a card has been given the cerberus passive, its attack strength will be lowered. If a card has received the assemble passive, it will have a lower card cost. There are probably going to be more such rules that need to be added, as more abilities are added to the game.

07/12 - card generator

The most recent HD3 update added a custom card generator to the game, as well as a deckmod which turns all the cards in a deck into custom cards with random abilities.

The custom card generator in HD3 creates cards based on 4 elements : the source card, the difficulty level, the seed of a random number generator and the generation mode.

The generator doesn't make cards from scratch, it uses the source cards and keeps some things from it intact : the name, cardtype and subtype, the base stats, and the image. The image gets flipped horizontally, and for ships, the attack and defense get scaled based on the difficulty level.

Generation mode mainly influences which abilities are available. In balanced and unpredictable modes, the abilities are set up in pools, where each card subtype basically has its own pool (making sure that energy structures mainly get energy related abilities for instance). The difference between balanced and unpredictable is that the latter will filter out a small number of abilities that don't work too well in unpredictable mode (like card draws or discards). The 3rd mode that the generator can operate in, is the random mode, which makes all abilities available, regardless of card subtype, similar to how the custom card generator in HDx worked.

Deciding how many abilities, and which abilities end up on a card, is done randomly, through a random number generator that's controlled by a seed. This seed is a number that makes sure that this number generator produces the same set of semi-random numbers everytime it is run for this particular seed. This allows the card generator to recreate cards again. This helps when tracking down problems or bugs. If a certain custom card contains a bug, i don't have to force the generator to create thousands of cards and hope that it randomly creates the one that was broken. Instead, i force the generator to use the same seed and it will generate the same card again. This also allows the existance of the 'seeded' option in the custom cards deckmod, which makes sure that multiple copies of the same card in the source deck also result in identical custom cards.
Once abilities have been chosen, the difficulty level is used to determine the strength of abilities.

So the 4 elements that the generator needs to create cards (source card, level, seed, mode) end up defining what card is created. Right now the seed has a range of 90000 (but it can technically support up to 4294967296 different seed values). The level range is 0 to 200, there are currently 3 seed modes (balanced, unpredictable, random), and HD3 will eventually contain about 500 different cards that can serve as source. So for every card that comes with the game, the generator can theorectically create 4294967296 * 201 * 3 different custom cards. Due to the fact that the range of values on abilities and the different number of abilities are both relatively small, there's a good chance that in this huge number of different custom cards, there will be identical cards, but still, it's safe to assume that the number of different cards will be in the many thousands.