July 2014 blog archive

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

27/07 - alpha contents

Ever since work began on HD3, i wanted to have some of the major new (single player) elements in the first alpha. Now 2 (of 3) have been implemented :
Flagship : a fully customizable ship that starts off in your opening hand, yet doesn't take up a slot in your hand or deck for regular cards.
Combat boosts : craftable items that provide a small bonus to certain sets of cards in your active deck, for the duration of one duel.

The 3rd element is mercenaries. This idea still needs work before i can begin implementing it, but it also relies on custom card generation, which isn't in the game yet. This is thus not something that can be added quickly. Mercenaries are ship cards with an above-average power level. You can select one at the start of each duel, to have it placed in a random location in your deck. If you end up playing a mercenary during combat, that mercenary can't be selected for a number of battles after that. These mercenaries are random (rare) drops from duels.

Next to these 3 mechanics, there's more stuff planned : a brand new gameplay mode based on drafting, a bunch of indirect pvp stuff (tournaments, events, coop, stuff like that), and support for 4-player games for most gameplay modes.

The general plan with HD3 is to release the core of the game relatively early in the development process, and then have occasional large updates (expansions) that add in new mechanics. Mercenaries is most likely going to be such an expansion, so is the pvp stuff (probably spread over multiple expansions). Support for 4-player games is also a complex thing, so it will be delayed into an expansion, too. Drafting is considered a core part of HD3, so i would really like it to be part of the first beta.
Basically the alpha, when released, will be the same as the beta minus all the testing and a lot of content. Meaning that no large new features are likely going to be added until after release of the beta. Both drafting and mercenaries might be exceptions, it depends on how much time still needs to be spent on all the other stuff that definately needs to be part of the beta.

One thing the alpha doesn't have much off, is content. Right now it only has 1 gameplay mode, 1 race's cardset, 3 deckmods, 3 environments, and only a small set of boost building components. The purpose of the first alpha is to test the mechanics, rather than worry about the balance of the game content.
The plan is that all content needs to be in the game before it can go into beta. This means at least all the cards in HDx (minus those that can't be balanced yet), at least all the easy-to-implement deck mods, environments and game modes. I have plans for game modes that greatly change the way duels are played, these will likely each have their own expansion. I have lots of ideas for boost effects, and most of these are relatively simple to implement, so i guess these will be added in gradually. New cards will have to wait until the current set has been balanced (since there are some card changes compared to the HDx versions of these cards).

A number things still need to be done before the first alpha can be made available. None of these things are large mechanics, though, instead quite some bugfixes, minor things that are still incomplete, a few elements to make the alpha feel more like a game than a technical demo, etc. To able to test flagships and boosts properly, i might have to implement a system that mimics players leveling up. Savegames likely won't be implemented yet, as there isn't much to save yet, but the alpha is set up so that players have all cards, and a large stock of boosts and components.

Once the alpha is out (i don't have an ETA yet, but this might be in august already), i'll probably take a break from working on HD3, to get started on the wiki pages for the game. The alpha doesn't have help pages yet, so these wiki articles will come in handy right away.

20/07 - boosts and combat

Last week i talked about how to craft boosts. In this blogpost, i'll show the next step : using the crafted boosts in combat.

On the opening hand screen, you'll now be able to select up to 4 boosts, assuming the selected game mode allows the use of boosts. The amount might seem low, but this is something that needs to be tested over a large number of games. Boosts aren't intended to make one's deck overpowered, instead they serve to add just that little more one might need to deal with a difficult opponent ( click for screenshot ).

The boosts button opens the boost selector/crafting screen. This screen looks identical to the regular crafting screen, except that it will show you the total CPX cost of the boosts you have selected thus far. This CPX amount can't go higher than the max CPX you can have, as a result of you player level.
It's still possible to recycle or craft boosts in this screen.
As the screenshot above shows, the effects of the selected boosts are applied to cards right away. There's a boost that adds +1 defense to all human fighter class ships, and it shows on the Vector card. The boosts themselves can be clicked to bring up the usual card info popup for them.

During combat, the selected boosts will show to the right of the menu bar. They can be clicked to see their info popup. Later on, i might add boosts that work as actions with no cost, but with a limited number of activations. For such boosts, the info popup will come with an 'activate' button. If you have boosts that trigger on certain events (fi : repair base for every ship that enters play), the small boost image will glow for a moment, whenever it's effect is triggered ( click for screenshot ).

A small set of boost components is available in HD3 now, but i might add a few more before the first alpha goes live. For now, what matters is that all mechanics related to boosts are in the game so that they can be tested.

I have also started work on optimizing several of the slower screens in the game, to improve their performance. This is likely something that will take a few weeks in itself.

13/07 - combat boosts II

Most of the mechanics related to boosts have been implemented.

First of all, there is a browser that looks similar to the deck editor, which allows to craft or recycle boosts. It can be accessed from the deck list screen. click for screenshot

The top panel can only accept a small number (max 12) of boosts or components, and depending on the contents of that panel, players can craft or recycle. The bottom panel shows your collect of boosts and components, there are a number of filter options and settings to change what shows in this panel or how it's presented.

Recycling is the simplest operation of these two options. If the top panel contains only boosts, recycling is possible. The amounts and types of components that you'll get, depend on the boosts that are being recycled. A boost can be made up of 2 to 9 components, and when you recycle, 50% of these components can be recovered. click for screenshot

Crafting can take a mix of components and boosts.
Base boosts only need two components : the base type component and any base ability component. Base boosts can't be upgraded.
Card boosts need three components : the card type component, a matching ability component, and a race component. Card boosts can be upgraded two times.
Example 1 : A fighter subtype component + a human race component + a ship ability component can be combined to create a tier I boost that affects all human fighters.
click for diagram

Example 2 : to create a tier 2 version of the above boost we can choose two upgrade paths : we can choose to add in another race, to create a boosts that affects fighters of two races, or we can choose to add in another subtype, to create a boost that affects two subtypes of one race. To do this, we have 3 options. To explain the options, let's assume we want to make a boost that affect the fighters of two races : human and Ca'anian.
Option 1 : we take an existing boost with an ability that affects human fighters, then we take an existing boost with the same ability, that affects Ca'anian fighters. These two can be combine to create a tier II boost.
Option 2 : we take an existing boost with an ability that affects human fighters, then we add the same ability component, a fighter subtype component and a Ca'anian race component. It also to start with a complete Ca'anian boost and add a human race component, next to the ability and subtype components.
Option 3 : we don't have any boosts to start with, so we'll use components only : 2x the same ability component, 2x the fighter component and 1 of each of the two race components.
In each of these options, 6 components worth of material end up getting used (as each boost itself is made up out of 3 components). In a similar fashion, tier III boosts can be created. A tier III boost based on the one in the example above, can gain another race, so it affects the fighters of 3 races, or it can gain another subtype component so that is affects two ship types of two races. The diagram below illustrates all these examples and options.
click for tier II diagram
click for tier III examples
Note : the tier III boost shows that it affects 3 subtypes, but to keep the number of different ship subtype components down some have been combined. Support and industrials form one subtype component.

Complexity (CPX) is the cost of a boost. In the diagram of the example above, you can see that the ability component that was used had a CPX cost of 8 (race and subtype components have no CPX cost). A tier I boost always has the same CPX cost as the ability it is based upon. A tier II boost has a CPX cost that's 2.5 times the ability CPX cost and a tier III boost will cost 4.5 times the ability CPX cost.

Another thing that might show from the diagram above, is that while the images look crisp in the popup, the smaller portraits in the browser look jagged. The one in the popup is not scaled, while those portraits are. For this i'm using the scaling algorythm that comes with LibGDX. The same problem was already present with the card images, but it's not as pronounced there. With boosts, however this level of quality is not acceptable. I have two options : i can include scaled versions of all the different images that are used to create components and boosts, or i can try to write my own pixel scaling algorythm and hope that it produces better results. Both options have their good and negative side effects. Including images will increase the filesize, as there are currently 4 additional sizes in which boosts appear. Creating my own scaler will take a lot of work and i won't know if it's any good until it has been included. The advantage here is that it could also be used for card images. The drawback is that a scaler that i write will likely be slower than the one that comes with LibGDX, and the boost/component browser is already the slowest screen in the game.
It's possible that neither solution will be implemented the for the alpha, in that case this screen will both look not as good and be very slow. There are a couple other areas in the game that have low performance, so i might try to tackle all of these at once. I don't know yet if i'll do this before or after the first alpha.

06/07 - combat boosts

Combat boosts is the last mechanic that was required as a minimum to start an alpha. This doesn't mean that once boosts are in, the game will go in alpha straight away. I might add a few more things, and there's still a round of bugfixing left to do. A couple of smaller mechanics need to be added as well to make sure the alpha feels like a game more than a technical demo.

Combat boosts (or just boosts for short) is one of the older ideas i had for HD3. Previously i probably refered to these as 'skills' or 'skill gems'. A lot of things have changed since the first version of this idea to what it is now.

Orginally, boosts (then still called skill gems), were craftable objects that players could attach to their decks. These would give a bonus to that deck similar to how a deck mod would, but they would be more restrictive. A deck mod can for instance give +X attack to all ships in your deck, but a similar gem would only give +X attack to certain ship subclasses (only fighters, or only cruisers, for instance), and only if those belonged to certain races. These skill gems could also be upgraded. In the example above, the attack bonus could be increased, or instead of the gem only affecting one subclass of ships, it could affect two, or three, or instead of only affecting ships of one race, it could affect those of two or more races.
To keep things in check, skill gems would have a cost, called complexity (CPX for short). The sum of the CPX cost of all gems tied to a deck could not go over a certain maximum, which is tied to player level (higher level players will have a higher maximum). Upgrading gems would rapidly increase the CPX.

On to the final version of boosts : they're no longer attached to decks, and they've become consumable. The crafting system has been simplified a bit : the bonus or effect they provide can't be upgraded anymore, but there's an increased range of available bonusses/effects instead.

The biggest change is that they're now consumable. After running some quick calculations with some droprates, it became clear that it would be way too easy to max out a full set of boosts for a single deck, making your deck permanently more powerful as a result. Lowering the droprate to fix that would mean that players who just start out will need a fair bit of playtime before they'll be able to craft their first boost, which is no fun either. I treat boosts like something that should only give a small bonus to one's deck, so that your deckbuilding skills and the cards you've collected thus far, still remain the most important factors in the deck's overall strength. Having just one skill gem that gives +2 attack to a large portion of your ships can already drastically alter the powerlevel of your deck.
If they aren't consumable, players can just leave their gems in place for every game they play. If you have consumable boosts instead of permanent gems, you'll have to decide whether or not your next duel would require you to use one or more boosts. Droprate of boost components will be such that it shouldn't be too hard to replenish your collection of boosts. Right now, i'm considering setting it such that you'll be able to craft one regular boost for every three duels that you've won, on average.
A final advantage of boosts being one-use has to do with the strength of the effects they have. A permanent +2 attack to ships in your deck is obviously overpowered. But a one-use +2 is okay - it's still powerful, but at the same time, they'll be more rare than +1 attack or +4 defense for instance, which means you have to weigh carefully when to use such a boost.

The only reason why i originally attached gems to a deck is because they are permanent. So you could collect and craft the perfect set of gems for a specific deck. If you had to dig through your collection of gems at the start of every duel (and since gems are permanent, why not use them with every duel?), it might get boring or annoying really quick. With consumable boosts, this is no longer needed. Instead, on the opening hand, you'll be able to choose one or more (or none) boosts. The sum of the CPX of the chosen boosts still can't be higher than the max CPX you can support as a result of your player level.

The crafting process remains the same. A boost is made up out of 3 components : race, card subtype, ability. The race and subtype determine which cards are affected by the ability of the boost. So if you combine a human race component with a fighter subtype component and add in a +2 defense ability, you'll have a boost that gives all your human fighter ships +2 defense for one duel.
Upgrading allows you to add a race or a subtype, so that a boost can affect more races or more types of cards.

The screen where you do the crafting, browsing and recycling will look very similar to the deck editor. One panel shows your collection of boosts and components and the other panel will allow you to manipulate them (or select them incase you're on the opening hand and ready to start a duel).
The first step in adding this mechanic is to create this screen (almost complete at this time), from there on i can add in a small set of components and boost to start testing all the mechanics : boost rendering (their images are made up out of several layers, making them a bit more complex than card images), popup rendering (clicking a boost or comps shows more info about them, very similar to a card popup, so i don't have to design a completely new kind of popup), crafting and recycling mechanics (due to the many ways how a boost can be created, crafting will likely be a complex thing to code), and finally : applying the effects of boost to the cards in a deck.