April 2015 blog archive

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

26/04 - RD card set

The RD card set update will arrive soon. All cards and their abilities have already been added, and everything is currently being put through testing. At this rate, the new alpha should be out in the first half of next week.

This final racial set took a lot less time to implement as it introduces only some 25 new abilities. Other sets started off at well over 40 abilities, and gradually dropped down. There are only a couple changes to the RD cards compared to HDX, and they are mainly numerical changes for balance reasons. A couple cards did receive new or updated abilities :

  • Chaos Demon is now a 2/30 card with randomstrike 2, and has an acti that gives it between 1 and 2 attack and defense for a cost of 5.
  • Techno Demon will cloak a random ship or structure in owner's hand when it enters play.
  • Gravimetric Channeler now grants 5 base mitigation for one turn and increases base HP based on the number of opposing ships.
  • Ytrilia Open Gate has been turned into a global aura that triggers when RD structures are played, and that gives the ship in front of the played structure 2 shield.

The Artifact/Relic set is smaller and will probably only add about 10-15 new abilities. The next big gameplay element i'm planning to work on is the deckmods/environments overhaul, which is likely going to involve a lot of work. It's possible that i might do the AR set instead first, just to get the cards out of the way.

19/04 - UI overhaul complete

The upcoming HD3 alpha update will contain the last changes that are part of the UI overhaul.

In this update, two elements have been moved over to the new UI system (card popups and dialog boxes), and there are also a number of smaller performance related changes.

The changes to the cardpopup are minimal. Visually, only the style of the buttons has changed, and there's no longer support for multiple button styles. The new buttons are similar to the second of the 3 available styles under the old system, so they're not as tall as the default.
Mechanically, there's only one change : the card portrait is now rendered seperately from the card popup. On desktops this makes no different to the performance of the card popup, outside of the flagship editor screen. While editing a flagship, players are more likely to be changing the abilities of their flagship, and each change results in a different card popup, but the image of the flagship remains the same, thus it doesn't need to be drawn again. This matters mainly for flagship images that have been colorized, as this is a pixel operation, and thus relatively slow. For android, this change brings with it a general improvement as the card images on android are smaller than those on desktop, and thus the card popup must scale up the portrait. This used to be a pixel operation, but now this is done by the GFX card, which can do this much faster.

Dialog boxes have been updated as well, and the changes here are purely visual. All parts of a dialog box have simply been replaced by the new graphics.

A few more tests are needed, then this update will be released. Next, i'll start on the RD card set. From then on, the focus will be on a number of gameplay elements (the graphics updates were needed to make the implementation of these elements easier), and in turn, these gameplay updates are a requirement to start looking into a way to save duels in progress.

12/04 - Combat screen

With the Technomancer patch out, i've started working on UI stuff again. The first part of the graphics overhaul updated all the regular UI elements on all screens, except the combat screen. The combat screen is a fair bit more complex, and it also needed some changes in light of the upcoming deckmods and boosts overhauls.

At this point, the conversion of all imagery to the new system is complete, and everything is being put through testing. I might still change the layout a small bit here and there, and the update rate of different images needs to be fine tuned as well.
What made this screen complex isn't the amount of images that can be on the screen, but the fact that these update at different rates. Example : when you launch a ship, that ship card is generally expected to stay in play for a relatively long time, thus the image of that card is static. In fact this image only changes in a very few rare cases (a cloaked ship that gets uncloaked, a ship that gains or loses an activatable ability), outside of a new card being played in the same slot. The attack and defense values are however rendered seperately from the image since these numbers are expected to change much more frequently than the card image. Rendering the entire card image, and uploading it again to the graphics card/chip, everytime the attack or defense of that card updates would surely slow down the game.

Under the original system for this screen, there were 3 things that updated at different rates : all card images in play, all attack/defense values of ships in play, all texts (energy panels, HP bars, the turn progress panel). This system worked well, but there was still room for improvement. The values in the energy panels update quite often, so it might be better to give them their own texture, seperate from HP bars and the progress panel. Having all ships, structures and global auras in the same image meant that this image had to be uploaded everytime a player played a new card.
Currently, things have been split up in 7 groups of images : the HP bars + hand/deck card counts, the base stats for all players, the turn progress panel, the values for the energy panels, the attack/defense values, all card images for the player, all card image for the AI. There are other elements such as the cards the player has in hand, or the popup texts, but those are updated instantly.
When an image is changed, the game doesn't upload this to the graphics card right away, instead it remembers that a certain image has been updated. Under the old system, with only 3 things part of this delayed update setup, the maximum delay between an image updating, and the change appearing on the screen is 1/20th of a second. This delay isn't visible. Under the new system, with 7 seperate elements, the delay is now approx 1/9th of a second, and this is visible in some cases. This is what i'm currently working on, trying to figure out if there are things here that can updated at the same time, so that the delay can be reduced.

Why does this delayed update system exist at all? It's a matter of spreading out things that take a lot of time for the game to do. If images were uploaded to the graphics card the moment they changed, the game would slow down significantly. Example : the opponent has 7 ships in play, and you play an action that deals damage to all of them. This means 7 defense values have to be updated. If every change is uploaded instantly, the moment this action is played, the game would upload the attack/defense values 7 times in a row. What happens instead, is that the game updates the attack/defense image 7 times in a row, but it doesn't upload it at all - in stead it remembers that an upload is needed. Every so often (every 1/60th of a second) the game checks if something needs to be uploaded. Since there are 7 groups of images, and the game will only upload one image per check (for performance reasons), the maximum delay between the image changing and it getting uploaded, is 7/60th of a second (or approx 1/9th as mentioned before).

Finally, here is a screenshot of what the combat screen looks like currently : http://nulll-void.com/games/gps/15/combat_screen_v2.jpg

Once the remaining tests are complete, i'll release a new alpha.

05/04 - TM card set

The abilities of the TM card set are currently being tested, and once these tests are done, a new HD3 alpha can be released.

Here is an overview of some the things that have changed :

  • Ethereal Fighter : becomes an unblockable, ethereal ship.
  • Echo Image : when this card enters play, it spawns an ethereal copy of itself in a random open slot (the copy has the att/def of the original ship, but only has the new 'ethereal' passive as ability).
  • Technowall : no longer blocks half of all damage to base, instead this provides 7 base mitigation.
  • Technoseer : when this ship enters play, it removes the 'cloaked' passive from all opposing ships. This card also has an acti that allows it to apply the 'cloaked' passive to the ship in owner's hand with the lowest cost.
  • Mind Wipe : opponent discards 3 random cards.
  • Mind Hack : all cards in opponent's hand their major card cost is increased by 1.

A number of new mechanics are thus introduced with this card set :
Ethereal : the original idea for this passive was that it would make the ship unable to block during combat. During testing, this turned out to be too much of a drawback to the owner of the card, especially if that card was also unblockable. This passive made both Ethereal Fighter and Echo Image rather dangerous cards to use. I've changed this passive so that now, during combat, ships with this ability will only take half of the damage from their blocker, and the rest is passed on to their base.
Cloaked : this is a tricky one. Cards with this ability have all their stats and abilities hidden from the opponent. There's very little point to give this ability to any card in the normal card set. If one or two cards have this ability, players can easily guess what their opponent has played, and thus the cloaked passive doesn't really add much. It becomes more interesting when you can apply this passive to cards at will, and this is what the new Technoseer card can do (though without giving player full control of what card gets the ability). The usefulness of cloaked is very limited however, due to how the AI handles this. If a player's opponent has a card that's cloaked, all the data from this card, before it gets down on the screen, is hidden. Looking at the computer screen is the only way for a player to get info from a card, so cloaked works perfect in that regard. The stats of the card haven't changed however, and the AI doesn't look at a computer screen to get the data from a card, it looks straight at the card, and thus bypasses the cloaked passive. The AI is not capable of making guesses as to what the card could be, in the way a human player could, so i simulated that effect by forcing the AI to apply a random modifier to the scores of cloaked cards owned by an opponent, basically making the AI's calculations around such cards less accurate. This ability, in the current state of the game, has thus little use, but once PvP arenas are in (where players make decks that will be challenged by other players), cloak has more use. In game modes with custom cards, cloak works really well of course.
Base Mitigation : any damage above this value will be capped to this value. Base resistance is applied first. Thus, a technowall in play will cause opposing ships with 9 attack to do 7 damage to your base. If you have 1 base resist, that same ship will do 8 damage, and then that value gets capped at 7. From 2 resist onwards, 7 mitigation basically has no effect anymore on ships with 9 attack. If there are multiple sources of mitigation in play for a certain player, the source with the lowest mitigation value will stick. Having multiple technowalls in play thus brings no additional benefit.

Below is a screenshot, taken during testing. The AI has a cloaked ship in play, the result of a Technoseer that had been in play several turns earlier. If you were to click this image to bring up its card popup, the only ability that would show is 'cloaked'. The top right corner of the screen reveals what this card is however : the opponent's base has 7 mitigation, and only one card can provide this : a technowall. Click for screenshot : http://nulll-void.com/games/gps/15/testing_TM_cards.jpg

Testing will continue for at least 1 more day. Some of the newly added abilities are more complex that others, and thus need to be put through more combat situations before i'm confident everything is okay.