November 2013 blog archive

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

24/11 - Ultranought 2 = Hydranought

Last friday, the follow-up to Ultranought, called Hydranought, was released on the NULLL site. As the title might suggest, the game centers around the Mith'ri'aeil this time, who have captured a Rivi'i Ultranought and transformed into a fearsome biomechanical monster.
The core idea of Ultranought was left intact : players still get to launch massive fleets of ships and face opponents who do the same. The main difference is that in-battle customization has been replaced by a system of ships with abilities, combined with an increase in number of available ships and a more detailed skill system that gives players more control over which aspects of their tactics or setups they wish to improve.
In the earlier (and easier) levels of the game, it often simply comes down to launching more ships than your opponent, but as the opponents grow stronger, it's more important to launch the correct ships to counter those of the opponent.

Together with the Flash release on the NULLL site, the java version for desktops and android have been released as well. The flash version is exclusive to the NULLL site for one week, from next weekend onwards i'll start uploading it to other flash game portals.
All download locations have been compiled on this page on the NULLL site :

I'll keep monitoring for bug reports for a while, but i'll be getting back into HD3 real soon as well. It's still going to be a long while before there will be a release (alpha, beta or otherwise) for HD3 and i have no real plans to make a smaller game between now and the HD3 release. There's a few other games i would like to finish, but these are all rather large projects and i don't want to delay HD3 for the amount of time it would take to make one of those games.
It also depends on how well HD3 development progresses. Usually, in larger projects there are occasional slow-downs and then i like to work on something completely else for a few days or even a week.

The next big step for HD3 would be the quick fight setup panel, this is where players can set up a single duel versus an AI. As in previous versions of HD, there will be many game modes and settings to choose from. I don't have a final list of all the game modes for HD3 yet, but for the time being the focus will be on the default simple duel anyway. Once the game can handle a complete battle, the core is ready and more stuff can be added on top of that.

17/11 - Finalizing the editor

In the past week the focus was on several remaining mechanics for the deck editor. While the deck editor is not capable of saving decks yet and the card popup still can't render ability texts for cards, all other aspects have been added.
The most recent additions are the deckname edit and deckstring panel as well as the card occurances panel that comes with the card popup. The detailed card info panel that also comes with the popup is only partially finished, since it also relies on ability related mechanics. With these elements ready, i've started work on the general mechanics that are needed to store and handle card abilities. I have a first version of these mechanics ready to be implemented and tested, but first i'll prepare the Ultranought follow-up for release.

On the top UI bar in the deck editor (see this screenshot), the name of the deck is displayed on a button. Clicking this button brings up a panel that, by default, allows to copy the deckstring of the deck in the edit panel to the clipboard or allows to import a deckstring from the clipboard.

Currently this is what the panel looks like (the '0123456789…' text is there as a placeholder, but this is where the deckstring will end up being displayed) : Click to see image.
The entire copy/import system is working on PC, but there's a problem on Android : system-clipboard access on Android is a fair bit more complex, and i simply haven't managed to get it to work yet. There is a local clipboard that works, but this means that everything you copy to the clipboard in the Android version of the game is not available to other apps, only the game. I'm leaving things as they are currently as i've already spent a lot of time trying to make it work and i want to work on more important stuff first. A small change compared to how this worked in previous versions of HD : if you import a deckstring and you don't have all the cards, a popup will tell you which cards (and how many of these) you are missing.
Clicking the 'edit name' button in this panel replaces the deckstring info and related buttons by a small on-screen keyboard which allows you to edit the name of the deck. In previous versions of HD, one could use their keyboard to input text. In flash it's very simple to set up a system to accept and control keyboard input - if i want to do this in Java, i would have to write my own keyboard processor. Since the game only needs text input in two locations right now, it's much faster to set up an on-screen keyboard (this means you have to click buttons on the screen to input text, instead of using an actual keyboard). For the Android version i need an on-screen keyboard anyway, so for the time being, the PC version will simply use this input method as well.

The card occurances panel can be called up when you click the small button with the deck icon under the card popup. This panel shows a list of all decks that contain the current card as well as the number of copies of this card in each of those decks.
Click to see a screenshot.

The detailed card info panel, which is also called up from a button under the card popup, has several subscreens : passives, abilities and backstory. The screen also provides a link to the card page on the NULLL wiki. The passives subscreen shows a list of all passive abilities the card has, with a detailed explanation. Most passives on the regular card popup will show as a single word and while most of these will be straightforward or easy to remember, it's good to have easy access to a full explanation of what a passive does. The abilities subpanel does the same thing, but for all non-passive abilities. Finally the backstory panel will be used to show lore and history about the card - initially this will be mainly use for the legends in the game, but over time i hope to provide a small bit of background info on every card.
The panel itself is ready, but it doesn't render any text yet for both ability panels, as this relies on the ability processors, which haven't been added to the game yet.

I'll be taking a short break from HD3 to prepare the Ultranought follow-up for release. If everything goes as planned, the game will be available on the NULLL site and from Google Play from next friday onwards.

10/11 - Card popup

The card popup in HD3 looks and works differently compared to other versions of HD. The biggest change is that players now have to click cards to get the full card popup. In previous versions of HD, all one had to do to get the popup, was mouse over a card. This change may seem like it's a step back in user-friendliness, but there are some advantages as well. On top of that, this change is needed for the game to function at all on system that has touch-based input (tablets, touch-screen PCs, etc).

First off, below are links to 3 full-sized screenshots showing the cardpopup. One thing to note is that the game still only has the Vector card image, and that ability related stuff isn't ready yet, so the cardpopup can't render ability texts for cards yet.

As the screenshots show, popups now come with extra buttons. The difference between the 3 screenshots above is the style of the buttons below the popup (large, medium, minimal), which can be set to the player's preferences.
First of all, there are arrows to the left and right of the popup, allowing you to scroll through cards. Which cards you'll be able to see this way depends on what screen you're currently on. In the deck edit screen, if you click a card in the deck panel, the popup will show up in the bottom half of the screen, and you'll be able to scroll through all the cards in the deck (you can still click any card in the deck panel to make the popup show that card's info right away). In the combat screen, if you were to click a card in your hand, you'll be able to scroll through all cards in your hand - if you clicked a ship in play instead, you'll be able to scroll through all ships owned by the same player.

Under the popup there are 4 buttons, the two small ones with a deck and info icons will be available for all cards. The deck button will bring up a list of all decks that contain this cards, while the info button will show detailed ability info and backstory (if any) for the card.
Right now, i'm not sure if the deck button will stay for the deck edit screen, it'll have more use in the trader screen. This button also won't show on the combat screen as it has no real purpose there. The info button on the other hand will probably show with every popup in the game.
The two other buttons might not always be present, they depend on the state of the deck and cardstock and the number of copies of the current card in either the deck or cardstock. The popup will always try to show you two buttons : one to remove a single copy of the card (or add it, if you clicked a card in the stock panel) and another button to remove all copies of the card (in case you clicked a card in the deck panel, this second button will obviously only allow valid amounts of cards to be added to a deck).
On the combat screen, there would be different buttons here : a card in your hand would have a 'play', 'launch' or 'deploy' button if you have enough energy to play it. A card in play with an activatable ability might have an 'activate' button. If there's an ability active that requires a target, there would be a 'target' button for cards that are valid targets for the active ability.

A few things still remain to be done on the deck edit screen : a panel to change the deck's name or import/export deckstrings and the screens that come with the 'info' and 'deck' buttons on the card popup themselves still need to be added as well. Then there's everything related to the new ability system : this goes from how cards store their abilities to how the popup must render ability texts.
I'll probably continue working on the deck edit screen for another week and hopefully that will be enough to get the name and deckstring panel as well as the info and deck button screens/panels ready. The ability related stuff will most likely take a bit of preparation and theorizing before i start implementing it, so i'll probably finalize the Ultranought follow-up first and prepare it for release in two or three weeks from now.

Discuss this blog post in this topic on the NULLL forums.

03/11 - Card rarity

This week i completed the stock panel in the deck editor screen and i also got started on the cardpopup. The focus has been on the supporting mechanics for the cardpopup as it's a bit more complex compared to other versions of HD. For the time being i'm using a test image in-game to create and test these mechanics and once everything is working as it should, i'll get started on the actual in-game rendering of the cardpopup itself. I expect i'll have some screenshots to show off next week, so i'll talk about the popup in more detail, then.
In this week's devblog i want to talk about some ideas i have regarding card rarity.

In HDx, there are 3 main rarities : common, elite and legend. There's also a 'unique' rarity which has only been used for special reward cards or storyline cards. The 'unique' rarity will be removed and the cards themselves will most likely all be turned into elites.

I'll be adding a new rarity class to HD3 : uncommon, which sits between common and elite. This is where powerful commons will end up, such as Spark and Thogrom Bomber, but also all the dual-color structures. These used to be elite in HDs as i wanted dual-color cards to be a bit more rare, but this made them too hard to get. In HD3 they were common, so they lost a bit of their 'special' status. Making them uncommon seems to be the best compromise. The list of cards that will end up in the uncommon tier isn't final yet, but for now it only includes commons.
While uncommon cards will be more rare than commons, they won't be too hard to get a hold off. Rarity in HD3 will play a big role with the card trader, next to seperating cards into rough overal powerlevels.

Adding the uncommon rarity tier to HD3 is certain, the changes below for the legendary tier are not 100% sure yet.

In HD1, if a legend was in play, no player could play another copy of the same legend. Players asked for a system similar to MTG, where bringing a legend into play would destroy that legend and all copies of it, if there was already a copy of this legend in play. I've never been a big fan of this system and not only do i want to go back to the HD1 system, i also want to make it even more strict.
Even though HD is a cardgame, it's also a science-fiction game. MTG is also a cardgame, but it takes place in a magical/fantasy setting. From the point of view of a fantasy setting it's easier to explain how a certain creature entering the battlefield can cause a copy of that creature and the new creature to both be destroyed. The creatures are summoned from somewhere and if you try to summon something that can only be summoned once and which already has been summoned… things go wrong. This explanation doesn't work in a science-fiction setting.

In HD, the player controls a base, capable of launching ships. These ships don't come from a different plane of existance, they're in the same reality as the player. A certain legendary ship, piloted by an equally legendary captain can only exist once. As long as this legendary ship is not in play, it's whereabouts is unknown : it could be in any player's hands or decks, it might not even be part of any deck at all. But once this ship enters play under command of a certain player, this changes : the ship has been located in reality and is affiliated with the player who launched it from his or her base. It wouldn't make sense if the other player would even be able to attempt to launch this ship, and it would make even less sense that doing so would cause both copies of this ship to be destroyed.
If such a ship were to be destroyed in battle, it's no longer in play. The player who originally launched it might be able to launch it again as there might be more copies of this card in this player's deck. In scifi terms : the commander of the base might have been able to salvage and repair the ship to make ready for another launch into battle. No problem there. Currently in HD, if the other player also had this ship in his or her deck, that player could launch it now without penalty. This is strange as we have a ship with a certain backstory and reputation that was previously aligned with one player, suddenly becoming aligned with that player's opponent. If a certain player launches such a ship, one would expect this player to be the only one that may do so.

So here's what i'm considering : when a legend is in play, no player may launch a copy of that legend. On top of that, the first player to launch a legend, gets that legend bound to him for the remainder of the battle. This means that even if that legend leaves player, no other player may launch it. Only the player who's first to launch a certain legend will be the one allowed to play that card for the remainder of a battle.
To balance this more restrictive mechanic i do plan to change the current legends :

  • First of all, they must all sound like legends. Example : we have 'Seraphine, the enslaved', a CC hive queen with a name and a certain backstory. There is also 'Battle Queen', which is the generic term for this creature - every CC hive has a queen, this one happens to be one of the 'battle' variation, a more agressive one, but beyond that there's nothing unique about it. Under this new system, Seraphine is proper legend, but Battle queen might have to be downgraded to elite, or i could turn that card into a proper legend as well.
  • These cards should be strong, but not in the way that having them on the board guarantees your victory. I rather give these cards unique abilities that would invite players to build decks around them. When it comes to overall strength, i'd place them on the same level as elites. If legends are to be 'enablers' of tactics, it would make sense that there are other cards that would help or benefit from legends. Chyriax' disciple could get a bonus every turn, as long as Chyriax is in play and allied. Seraphine's herald could do something while Seraphine is not in play, but is in it's owners hand or deck, and so on.
  • There should be more legends, to lower the odds of players finding themselves unable to play their legends because their opponent already played the same card. These don't always have to be battleship sized, they could be fighters, cruisers, etc.
  • In games with more than 2 players, players may set up teams. Players within a team can't attack each other, but beyond that, i haven't figured out any other benefits yet (a shared energy pool looks like something worth looking into, or even allowing allies to launch ships in any slot owned by an ally instead of just their own slots). For legends, instead of binding them to the player that launched them, they could be bound to the team that launched it instead.
  • Binding of legends could be turned into a mechanic that may be subject to abilities, for instance there could be cards that can unbind a certain legend from a player, allowing other players to play that legend. It's a very niche idea at the moment, but it's worth considering and can be extended - example : your opponent has played a legend and thus it's now bound to that player. You have the same legend and want to undo the bind between that player and this legend. Instead of there being a niche action that undoes this bind, it would be interesting if you could use the legend card itself, for instance sacrificing it and paying its card cost to make that legend 'unbound' again. The next player to play this legend will see it bound to him now. This is just an example, but the main idea is that binding itself would get a counter.

Discuss this blog post in this topic on the NULLL forums.