Version 0.0.51! Neutral units! Merchant! Trade your elements and topdeck your best combos!


Hey everyone!

After about 2 months of hard work, and a ton of new addings to both game server and client, a new version of Chyss launches today!

This update adds the concept of neutral units, and the first neutral unit type (merchant), fixes many bugs, changes the way objectives randomly appear on board,

I started working on v0.0.51 mid august.
My first thought was that the game needed more "context": different random situations being added to the game and giving players a way to win by benefitting from the context.
Objectives, added on previous version, were a first step towards adding context to Chyss games: giving a way to move or attack multiple times during the same turn, giving bonus mana creates a strong advantage that cannot be ignored and entices players to choose between a good situation on board and a sacrifice to reach objectives. The more context exists, the more layers it adds to the simple 1vs1 fight.

Following the concept, I had the idea of adding neutral units, that would randomly pop on the board, have their own behaviour and react to player actions. They would add even more "context", and create new ways of playing. Would you better attack your opponent frontline, or reach a neutral unit to make it help you? Which builds would better benefit from neutral, as opposed to focusing on pure offense or stats?

Also, I felt some random moving and appearing units would create fun situations that stay in mind.



So first of all the concept of neutral units had to be added in code.
On client, neutral units would need their own visual cues (yellow color on board, different description color), friendly units would also need to be able to attack them like they're enemies, in order to let the player choose to attack neutrals sometimes)
On server, new javascript Classes had to be created to hold neutral units, neutral behaviour, and more specific classes like the merchant etc.
Listener code from previous version (allowing for Rust Defender to teleport back home when hitting last tile, to draw 2 when Murreen Warlord kills a unit etc.) had to be improved and refactored to allow neutral unit interaction.

Then the concept of a merchant had to be added, both on client and server.
On client, all user interface of the shop, allowing to buy or sell elements (cards) to the merchant, was made. It made me create cool window and textbox classes, all different (button? hover tooltip? toggle? which font?) so those Game Maker objects had to allow big flexibility while staying simple to write down. During this time I was prototyping interface with a fake dataset, created to show both units and spells in the shop. I had to test every button and toggle and stuff like this. 
When everything was good client-side I focused on the server part:
- Merchant had to randomly spawn.
- She would have a stock, composed of a random set of spells and units, mixed together. That stock would be created merging 2 data: a NEW source, the game database (via API), and an "exclude list" removing some items from potential selection. This allows 2 things: first, to exclude nonsense like selling a Leader or Merchant to players (:D), and to create different kinds of merchants in the future, selling different precise types of elements.
- She would have a buy showcase, picking elements from her stock and offering them to buy.
- She would receive items in her stock if a player sells some, allowing to buy it again later (one player can buy what the other player sold).
- She would leave the board after a random amount of turns, or if her whole stock would be depleted.
- Players would interact as soon as they move something close to them, would it be a classic move, a Take, or a summon nearby.
- A tile close to multiple merchants would open each shop, one after another, and if there are objective tiles they would also trigger before/after opening shops.
- Players would be able to attack her, making her angry. After that she would run away to another tile in the opposite direction of attacker.

Maybe it can be interesting for people so here is how it works:



That was a lot of work! If you need more details about that, feel free to DM me on Twitter.

Other than the merchant, I changed how objective tiles appear. Now the big spheres are called Orbs, while mana tile still has its base name (also a reference from Duelyst which is one of the biggest inspirations).
On previous version, which was the first attempt at this, 6 orbs would appear at game start, and after all six would be taken, new ones would pop. This was a very "work in progress" way of doing objectives, because after 5 of 6 orbs would be picked, a player could block the other one and just let that orb there, blocking any orb from appearing again the whole game.
Now, orbs will constantly pop, but the appearance rate depends on how much orbs are currently on the board. This makes it a lot more organic, and random, without it being very unbalanced. Sometimes you have 2 orbs on board, sometimes you have more, if players don't pick them, they will keep appearing until there are 5, 6, or 7 orbs, then it stays like this.
It makes a player turn closer to a puzzle, where they have to find the best way to benefit from some orbs, with that extra random aspect of an orb popping right when it's your turn and maybe changing what you planned while it was your opponents turn. Decision making is more important but also more forgiving. You'll love that extra attack orb popping at the last minute right in front of your units!
Also, both objective tiles and neutral units only pop on the 3 middle columns of the board, giving a very real reason to control the middle of the map.

After playing some games with friends on v0.0.51 before releasing it, we all felt it was like a different game than previous version, both because of what the merchant allows (selling elements you don't care about and getting extra mana on your turn, buying extra elements and stacking units or effects, making her block your opponent by being in the way) and because of how often there's a way to get objectives and perform many actions during the same turn. So this is a success!
Next development will focus on player accounts, ranking points (ELO) and an ingame tutorial!

Changelog
- Many fixes to many parts of the game, from user interface to game crashing

- New UI feature: Press TAB to toggle seeing all units stats or hovered unit stats.

- New mechanic: Neutral units!
Neutral units randomly appear on the center of the board. They won't appear if there's no room. They don't appear on top of objective tiles, but may walk on those and consume them.

- New neutral : Merchant Apprentice!
Appears, gets a random bag of 10 elements, and stays for 8-16 turns (or until her stock is depleted by players).
Triggers a shop when players bring a unit on a nearby tile to them. Won't trigger the shop if the merchant herself is moving to another tile, only from player actions.
Shop allows to buy/sell elements for mana: bought elements are sent either to player hand (if hand isn't full) or topdecked (if hand is full), sold elements are sent to merchants stock, letting her sell them again next time the shop is opened. Cannot sell items you bought right at this moment.
A shop icon is displayed on a unit if matching player is currently inside a shop interface.
A player can check their opponents mana count to know if they bought or sold something in shops.
Cannot be targeted by spells.
Can be attacked, will run away from the unit that attacked her, may move to objective tiles and consume them when running away.

- Attack refreshing tile and move refreshing tiles : Name changed to Attack Orb and Movement Orb
- Changed the way objective tiles appear on the board to be more balanced.

Version 0.0.51 is out! Try it now!
Join our Discord to find players and try the game!


Files

chyss-prealpha.0.0.51.zip 225 MB
Oct 01, 2022

Get Chyss

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.