May 2015 blog archive

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

31/05 - boost generation

A large chunk of the code required for the combat boosts system has already been added to HD3. The focus is currently on getting the basics of boosts in and on a random boost generator.

Since boosts are objects that generate global auras, everything that's related to making these boosts working during combat has already been added as it's all very similar to the global auras that are created when environments are added to the game. The main difference is that boosts are seperate objects that players can collect. The collecting and managing of these items isn't in yet, as this is a fairly complex thing which will be worked one once everything else regarding boosts is done.

Boost are generated by the custom card generator, very much in the same way global aura actions are created, yet there are a few differences. When the generator creates an action, it never does so in a vacuum - that action is always part of a deck. As such, this action must make sense being in that deck. The deck generator decides the races and the tactic of the deck, or the player gets to choose these things. In turn, if this concerns a deck with custom cards, the cards that the deck generator has selected will serve as the base for new, custom cards. In other words, the card generator itself doesn't get to choose which card (what race, card type, subtype) gets created, it only decides the abilities and stats of cards. To make sure that a global aura action has a use in the deck, it can't be too restrictive, and that's why most such global auras simply have no restrictions at all. On top of that, a number of possible restrictions are simply never considered. While this is for the benefit of the deck, it does result in the generator only being capable of creating a relatively limited number of different global auras (but still thousands).
Combat boosts don't need to fit in anywhere, since it will be up to the player to decide what deck they'll be combined with. This results in the generator being capable of making many more different boost global auras.

Boost generation itself starts off with nothing more than a single random number (currently limited between 10000 and 99999 for easier logging of possible errors). With that number, the generator can decide the races, the trigger, up to two restrictions matching that trigger, and one or two effects. Even with the current set of triggers, restrictions and effects, which is still rather small, this can already result many thousands of different boosts.
With so many different possibilities, there will of course be boosts that are very powerful, while others are rather weak. There is a rarity system in place that roughly splits up boosts in 3 classes : common, uncommon and elite. It became clear that this wasn't enough to sort boosts properly, so i moved to a score system. Balancing powerful boosts is done in two ways : first they get a high score, and second, the number of times that a boost can trigger during combat will be limited. The score system still needs to be worked on, but the general idea is similar to the old boost system : the sum of the scores of the maximum 3 boosts players can select for a battle will be capped to a certain value, which goes up as the player levels up. So selecting 3 very powerful boosts won't be possible right away.

The next alpha update will allow to test boosts, even though there's no way to collect or select them. For the time being, the game will simply generate 3 random boosts for the player and 6 for the AI for each battle. Due to the variation in boosts, there's little chance that all of these will actually benefit the decks of the players, but the point of this setup is to test the mechanics and the interactions between various cards and boosts.
From that point onwards, i'll work on setting up a screen where players can select boosts. The collecting part itself is more complex since it involves difficulty, droprates, etc, so i might simply add a temporary function in game that generates a bunch of random boosts for players to test. Another aspect about boosts is that these can be modified. The details about this also still have to be worked out however. Finally, there's a bunch of triggers and effects that still need to be added.

Below are some examples of boosts. The number next to the boost name is the number that the generator needs to create this particular boost. I'm making this number visible in the alpha so that problematic boosts can be reported more easily, simply by their number. The default number of activations is 25 - so boosts with fewer than 25 activations are those that are considered too powerful by the generator, and have their activation count lowered to balance them out. The images boosts have are tied to the boost's role, their race, trigger and sometimes also their restrictions. There are a few cases where boosts are created that trigger on cards that don't exist yet (example : TM industrials), but luckily the score system will detect such boosts and give them a score of zero, so if such a boost ever gets created in the final system, i can simply have the game check the score and have it make another one.


13010 is an example a boost with 0 score, simply because there aren't any Xyloxi titans in the game (yet).
39045 shows that restrictions can target a single ship, and that multiple different abilities (yet similar) can work together to give those ships worthy improvement. Clearly this boost would be better if it had no restriction and just affected any ship, but then it would have a very high score and probably trigger only a couple times during a duel.
78077 combines a relatively powerful ability with race and card subtype restrictions. TM battleships are rare, so this aura is allowed to trigger 22 times. This is the kind of boost one can build a deck around.
96647 is considered a powerful boost because the restriction isn't very strict (most XY decks will have 10+ XY energy structures), and it combines that with two abilities.

24/05 - combat boosts

The HD3 alpha with the new environment system is out, and contains 11 environments as a start. I have ideas for many more that can be added in the future, if the current set proves interesting enough as a gameplay element. The list of current environments is located on this wiki page.

Next, i'll work on a new combat boost system, which will also replace deckmods. The original boosts system had several limitations, though in large part it will be similar to the new system. A big problem with the old setup was that boosts had to be crafted from components that players had to collect. A boost that provided a bonus to cards of a certain race and subtype, needed 3 components. This same boost could then be upgraded by spending even more components. These boosts were single-use, so that's a fair bit of work and collecting that goes into creating just one of these things.
Every possible effect a boost could give required a component with that effect, on top of that there were 9 racial restriction components and then somewhere around 15 card subtype or base components. Even with a modest set of effects, players will eventually end up with a large set of components. While this number would be much lower than the number of cards a player can collect, these various components can be combined in thousands of different ways, and this would create problems for savegame storage in a database. The only solution was to put a limit in place on the number of boosts and components players could collect. The problem here is that you then have a system that encourages players to try out tons of different combinations, but at the same time severly limits players in doing exactly that.
Finally, not only did collecting and crafting, and then applying boosts to a battle take quite a bit of time, these boosts weren't very powerful. And while the system could create quite some different boosts, there were a number of effects that simply weren't possible.

The new system does away with the original boost format. There will still be some crafting/modification options available, but in the end the boosts that players have access to will be mostly randomly generated. At the same time, these will be more powerful and more diverse. Instead of making boosts simply a way of increasing the power of a deck, i rather also see these becoming elements that entire decks can be built around.
As with environments, the new boosts will use global auras, which means the basics of this system are already in place. Applying boosts to a game will take a bit more work than setting up the environments system, so it's likely that i spread this over two patches so that the basics can be tested before the more complex stuff is added. How exactly things will be split over two patches (if at all) still needs to be decided.

The general idea of the new boost system is that players, upon winning a duel, have a chance of either receiving a boost or a token. Players will only be able to have a relatively small number of boosts in stock at once, and unwanted ones can be recycled into tokens. Tokens can then be used to generate boosts, and eventually they should also provide some crafting options. From the collected boosts, up to 3 can be made active, and those will show up on the combat screen. Boosts will have a limited number of uses, which determines how many times they can be applied to duels before they dissapear.

17/05 - environments V2

Over the past week i've been working on the new environments system. Somewhere during the UI overhaul, i removed the environments button from the battle setup screen. That was a temporary measure since at that point it was already clear that the new system would no longer have both environments and deck mods, but there would only be a single type of modifier. Originally i was going to call this new modifier 'deck mods' again, but it made more sense to label these as 'environments' due to how they work.
This means that deck mods can no longer be selected on the battle setup screen. The replacement of the combat boosts system will take over the role of deck mods, so their general idea isn't completely gone.

In HDX, deck mods were intended to give player more control over the difficulty of the duel. Players could choose to add deck mods to the deck of the AI to make the AI more challenging, or add deck mods to their own deck to make a duel easier. This came with card droprate boosts and penalties to balance things out.
Environments applied an affect to the board as a whole, affect both players equally. A similar effect could be achieved by giving both players the same deck mods.

For HD3, i don't want it to be too easy for players to load up on deck mods and make a duel against an AI trivial. The upcoming replacements of the deck mods will result in more randomness in deck mods, but at the same time there will be more varied and powerful mods available. The difficulty settings for the AI might involve the AI getting some kind of deck mods at higher difficulty levels as well.
Environments in HD3 will also be more varied, and i've left out the low-power ones from HDX, so that the initial set of available environments provide very different and impactful changes to the game board.

The biggest change to environments is mechanically : these are no longer seperate, hidden entities, but now they've become global auras, and they'll have a place on the board. One advantage is that the active environments are always visible, and it'll be made clear when they trigger. Since these are global auras, identical to the single one that every player can have, the AI can include these in the simulations it makes. Just like a human player will be able to look at environments and incorporate them in their tactics, so will the AI be able to gauge their effect on the board.
Using global auras keeps things simple, as these have already been implemented for the most part. In HDX and before, each environments and every deck mod basically had its own seperate system, but thanks to global auras, environments as well as the upcoming boost/mod system now all use the same game mechanic. On top of that, global auras can be extremely varied. There will be different triggers (when a new turn or round starts, when a player launches a ship), various restrictions based on the trigger (a launched ship must be a certain race, or subtype), and of course many effects that occur when the trigger goes off. The first set of environments come with a few simple ones that apply passives to newly played ships, but there are also environments that can launch ships. These new elements from which global auras are built up don't have to be restricted to environments. The custom card generator is also capable of generating random global auras, and most of the effects of the environment auras will be added to the custom card generator.

10/05 - HD3 alpha part II

Last week i put out a small update, with a couple minor fixes and additions, which basically completes the first part of the alpha. The focus of this part was the core cardset. Along the road, a number of other things got added (unpredictable mode, flagships, a first combat boost test).

The next part of the alpha will contain a number of upgrades to existing systems (deckmods and environments), but also completely new things. What exactly will get added, and in what order is not decided yet. Some of the new mechanics rely on others for instance, and this isn't always clear until i start working on them.
The first thing i will look into however, has already been decided : more global aura related stuff. Firstly, i'll set up the replacement system for deckmods and environments, and then i'll start working on a new combat boost system.

Beyond that, i currently only have a rough idea of what else will go in part II of the alpha, and these things are all considered mandatory before the game can go into beta :

  • savegames, battle presets + remote backup
  • accounts for multiplayer + basics of arenas
  • basics of mercenaries and a related game mode
  • flagship rebalance, image browser, allies and the role flagship's play there

There's plenty more than this that still needs happen, but the stuff below isn't as urgent, and can probably wait until beta :

  • game-in-progress saving
  • drafting game mode
  • sounds, music, visual effects, tutorial
  • basics of the exploration system

Both alpha part II and beta contain elements that come with a lot of content (arenas, mercenaries, exploration). For all 3 the plan is to get the basics in and make sure they work as intended and that they can support lots of upcoming content. Example : the idea for mercenaries is that every non-legend ship card gets a matching mercenary. Obviously that's going to be plenty of different cards. Arenas are planned to come in varying durations and formats, and can have all sorts of restrictions or arena-wide AI boosts active. Exploration is still far away, and i'm still to decide which route i'll take here - i have several different ideas, but neither of them are exactly small and simple to implement.

On top of all this, new cards and abilities will be added to the game. Actual cards will have to wait, but many of the upcoming updates will require special abilities, which will in turn be added to the ability pool for the custom card generator. I have an ever-growing list of card and ability ideas, and HD fans have been coming up with plenty as well, so there won't be a shortage of ideas for new cards.

03/05 - AR card set

I decided to add in the AR card set before starting on new game mechanics. On one hand it's good to have this big chunk of game content finally complete, but the two game elements i'd like to work on next, have a lot in common. So it'll be more efficient to both of those closely after each other, rather than doing one part, then add some cards, and only then do the second part.
These two game mechanics both deal with global auras (deckmods will become global auras, and the old combat boost system will also be replaced by a system that uses global auras), and it's not unlikely that custom global auras will become more diverse once these new mechanics are in. I'll go into more detail about these in the near future, as not everything is set in stone just yet.

The AR card set is relatively small, but still introduces some 25 new abilities to the game. Testing will take a bit longer for two reasons : some of the new abilities have only ever existed on AR cards, and some of the existing abilities have never been on AR cards. Both the AI and ability handlers for many such abilities might need to be updated, now that custom cards exist that combine non-AR abilities with AR cards (and AR abilities with non-AR cards). In most cases there won't be any problems, but when it comes to abilities that deal with energy in any way, special attention is needed, for the simple reason that there's no seperate energy stock for random energy. The AI will often look at the state of its energy stocks to decide if a certain energy related ability it can play or activate, is truly useful to it. Not all such existing abilities might be compatible with AR cards, and thus need to be updated (as i rather avoid banning certain abilities from appearing on AR cards at all).