Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411283 Posts in 69325 Topics- by 58380 Members - Latest Member: bob1029

March 29, 2024, 05:25:17 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsHostile Takeover - A Cyberpunk Tactical Deck-Builder
Pages: [1]
Print
Author Topic: Hostile Takeover - A Cyberpunk Tactical Deck-Builder  (Read 1474 times)
WhisperingSpider
Level 0
*


View Profile
« on: April 30, 2019, 08:06:59 AM »



Hey everyone! I've been working on a game called Hostile Takeover. It's a rogue-lite that merges deck-building and tactical turn-based combat in a cyberpunk setting. I just recently released a public demo, and I'd love to hear feedback anyone has.

Demo (Windows Only) - Last Updated 5/31/19
Join the Discord!


Description

Take control of a small team of contractors, hired by mysterious suits for impossible jobs against powerful corporations. Your contractors each have custom cybernetics that allow them to use a host of abilities, represented by cards. These cards are used in turn-based combat for actions such as movement, attacking, defending, and special abilities. Along with combat, you'll encounter events, character upgrades, and black market shops as you explore each corporation. Add and remove cards from character decks to customize each character to your liking!

Features

  • Random-ish levels
    • Hand-made environments and encounters are pieced together through procedural generation to build each unique level. Changing layouts, hazards, and events keep each run fresh, while enemy encounters and combat maps are designed for fun and challenge.
  • Unique character classes
    • Each player character is represented by a different class, and each class has their own unique cards to build a deck from. One may rely on shields to reduce incoming damage, while another may instead disappear, forcing enemies to attack another target.
  • Game-changing cybernetic upgrades
    • Along with adding new cards to character decks, characters can also be modified through cybernetic upgrades that you occasionally come across. Unlike abilities, these upgrades are always active and can greatly change how a character plays. Want to drain the life from your enemies with each attack? That can be arranged, at the cost of never healing through standard means again.
  • It's called power, not mana
    • Using abilities costs power, and the bad news is each round your group's power is reset to zero. The good news is that each ability not only has a power cost, but a recycle value, which can be converted into power when discarded. Do you keep each character balanced and focus your power on the character with the best draws each round? Or do you turn one of your characters into a recycler to fuel their killing machine companion?

Screenshots

Standard Combat


Adding new cards to your deck


Viewing all cards in your deck


Installing an upgrade


Purchasing items at a shop
« Last Edit: June 04, 2019, 10:32:56 AM by WhisperingSpider » Logged
WhisperingSpider
Level 0
*


View Profile
« Reply #1 on: May 20, 2019, 12:21:34 PM »

I've been on a weekly update schedule, pushing out a new build to itch.io every Friday night, but unfortunately I can't say the same for write-ups like this. In the month since release, I've had some great feedback, and the majority of the work done has been to rectify issues from that feedback.

Balance Issues
Obviously this is something that every game will have once it's released to a broader audience. As I expected, most people found the game too difficult. It's supposed to be a difficult game, but not frustratingly so. Rather than focus on tweaking the numbers, though, I instead wanted to tweak the player choices to help with this. The biggest change in balance was to lower both movement speed and range for all enemies. Whereas originally most ranged enemies could and would shoot their target from almost anywhere, their threatened range is now reduced enough that a viable defensive option is to retreat far enough away that they are unable to attack at all. Other numbers like HP, damage, and defenses will be (and have already been) balanced as well, but I think this change will go a lot further to interesting gameplay choices.

Stupid Controls
There's no way around this one - my original control scheme was stupid. To discard a card (which is a major gameplay feature) you originally had to right-click to queue the discard, then left-click to confirm the discard. Except left-click was also the button to queue a card use, and right-click was also the button to cancel a queued card, which made things right confusing. Throughout a single game the player will use or discard dozens if not hundreds of cards, and if that isn't second nature after a few minutes of playing then it's a complete design failure.

I went through a few different versions until I came upon one that feels good - now when discarding you HOLD the button down on the card, with no extra confirmation needed. The default duration is 1 second, and during this time a recycle icon grows to completion and a sound effect plays that increases in pitch. After using it once it makes complete sense and is impossible to accidentally do. The only issue with this new scheme is the frustration of waiting, so I left that entirely up to the player. There's an option to set the delay when discarding to values between 0 and 2 seconds. While it seems like most people prefer the instant discard by right-clicking, I think it's important to initially have the hold option be the default until they're comfortable enough to change it themselves.

Information (and the lack thereof)
I've spent more time on how best to present information to the player than any other aspect of this game, by a huge margin. I never want the player to feel like they got screwed over because the game did something they didn't know. Unfortunately, there's an absolute TON of information that the player needs access to at any given moment. The combat grid, the character positions, the cards in their hand, what special effects of the cards do, enemy intents, enemy targets, character health, character shielding, status effects afflicting all characters in play - and it's been a challenge to prevent the screen from being overwhelming. I think I've done a decent job of keeping things small but noticeable with smaller texts and icons that grow as well as popup windows when hovered, so that you understand something additional is there but it doesn't concern you with the details unless you actively mouse-over it. There were some other complaints, however, and changing them has definitely made the game better.

First was ability ranges. Queuing an ability like an attack or a move draws its range onto the cells. However you cannot queue a card if you don't have enough power. I had a few complaints where people discarded a card to gain the power they needed to use another card only to find out that they were out of range to use it. This was a quick and easy fix - by hovering a card and holding the Preview button, its range is drawn, and the range is cleared as soon as the button stops being held. It's simple to use, simple to understand, and invisible if the player doesn't care, which is a win in my book!

Next was enemy ranges. By hovering an enemy, after a short delay it would show you which cells they could attack with their current range and move speed. This was a solid start, but made for frustrating play when you wanted to move out of their range and had to keep hovering multiple enemies that were attacking you and then queue up a move and then think "Oh wait, was that cell REALLY out of range or could the enemy just barely reach it" and then hover again and blah, exhausting. So now you can simply click on an enemy to "lock" their threatened cells (clicking on them again clears just their threatened cells, or clicking anywhere clears all threatened cells), which stay visible until you clear them or an ability is used. This lets you see, without a doubt, if you'll be safe from certain enemies when moving. Since I had the Preview button already setup for card ranges, why not use it for enemy ranges, too? If you don't care about specific enemies, any time a movement card is queued you can hold the Preview button to show the threatened cells of all enemies that are going to attack that character next turn. In most cases this is actually what the player cares about anyway, so the choice to make it easy when you want it and invisible when you don't was an easy one.


I'll go over some of the other changes I've made in my next post, but until then I'd love to hear from anyone and everyone, and the alpha versions will continue to be updated weekly and free-to-download!
Logged
fearless_donut
Level 0
***


View Profile
« Reply #2 on: May 21, 2019, 08:21:00 AM »

Hey. I've tried the demo(0.517). The game looks good. So i have a few words, but don't take it too seriously.

- tutorial is nice and clear. Though there was a bug so i couldn't complete it.

   (The error was on activating shield card)
   ___________________________________________
   ############################################################################################
   FATAL ERROR in
   action number 1
   of  Step Event0
   for object obj_character:

   Variable obj_enemy_security_guard_melee.abilityName(100415, -2147483648) not set before reading it.
   at gml_Script_state_enemy_ai_start
   ############################################################################################
   --------------------------------------------------------------------------------------------
   stack frame is
   gml_Script_state_enemy_ai_start (line -1)
   gml_Object_obj_character_Step_0

- Couldn't find any major issues with the UI or controls. The UI is good. (At first, i confused left & right mouse keys for a few times, also i thought that the 'end turn' button works separately for each of player's units, but these misunderstandings were cured after first gameover. Smiley )


- the inactive character's icon is a bit too shadowed, i think. I remember that common turn-based games shadow character's icon when he is out of action points so at first i thought it was the same here too.

- when unit stays in the bottom of the screen, he is hidden by the cards sometimes.

- i'm not sure about the target of the game. Right now it's only death Grin. I completed 7-8 combat screens but they never stops. At some point you enter the location with just 5-7 HP left for both of your units and you know it is the end. So i mean, is there any 'Positive' outcome? (Well, maybe i'm just a weak player).
   
- Sometimes the level's topology has meaning, sometimes not. Actually, most of the time i recycle movements cards for points since there is not enough points for both attacking and maneuvering at the same turn, and since i want to reduce my hp loss i need to finish the fight as soon as possible so i concentrate on attack most of the time.
Maybe it's incorrect tactic, but for now i couldn't find anything better.

- i've got some 'upgrade' cards, but i'm not sure if they are too useful, since by the time i received them i was thinking more about how to stay alive rather than experimenting with some advanced tactics Smiley
   
- i don't understand how the shield works. It has the points, but sometimes breaks down from one attack. Don't know if it's explained in the tutorial.

- i think it'd be nice to give a little text information on enemies? So player can decide which one to attack first and which one to avoid. Since i'm new player, they all seem the same to me now.

-  The game suddenly stuck on enemy unit's turn. There were one my unit and one enemy unit left alive in the location.
Menu buttons were working, but the turn was freezed and the enemy unit was just staying still, so i couldn't continue with my turn and had to exit to menu.

- is there a way to somehow shape up and build certain strategies of winning? I mean, right now i'm just adjusting for current hand of cards, not planning anything certain or thinking about future turns. To me it looks like that the card system has great potential to implement different tactics, but the gameplay doesn't really allow player to do that.
   I know this will break the whole balance, but what do you think of:
      - different roles to the units. Right now they are both damagers.
      - allowing the player to make an initial cards deck by himself(so he can decide whether to go on hit-and-run strategy or everything-into-damage one)
      - more interactive environmental objects the player can use for his advantage(explosion crates, fire extinguishers, healing spots, traps, lasers etc)
      - defeating the enemies not only by shooting them but by other means(like pushing them into some acid area or something)
   (i like to mess into other people's blogs with this annoying question, so you can ignore me here Cheesy)
   
It's all for now.
Logged

My devlog - Aether Way
And Twitter
WhisperingSpider
Level 0
*


View Profile
« Reply #3 on: May 21, 2019, 12:24:14 PM »

Ack! Something I pushed out in that update broke the tutorial. Unfortunately that would have explained a lot of your questions had it been working properly. But, I appreciate you not only playing it, but trudging through the crash and going into the game blind, and then still giving me write up!  Smiley

Things the tutorial covers that you mentioned:
  • You can switch between characters during your turn and they share Power
  • You can hide cards in your hand by right-clicking on the screen, and click again to show them
  • You can view enemy attack ranges to safely move out of them by right-clicking on an enemy, or holding Shift while a movement card is queued
  • Upgrade cards are removed from your deck and permanently grant you the upgrade when used
  • Shields only block one instance of damage, then they break

I'm really sorry that the tutorial is broken, I'll work on getting that patched up and release an updated version shortly so it doesn't happen again! As for your other suggestions, they've given me some updated to-do items and some things to think about, and I really appreciate the feedback Smiley

The content right now is super bare-bones, and is basically setup as a proof-of-concept that shows how the game plays and how all of the different systems work. There is actually an end to the demo - there's a boss encounter that, once defeated, just ends right now. Eventually it will loop back to a more difficult dungeon for the demo to allow you to keep playing and building out a deck if you choose. In the complete game there will be multiple levels that must be completed to win. Over the next few weeks I'll be adding a decent amount of cards for the two characters that will allow you to focus on different roles depending on the cards you select throughout the game.

Different cases of the game getting stuck on an enemy turn have already been found and patched, but it's not something that I can easily replicate. If it happens again, would you mind pressing F8 and typing in a description of what's wrong? That will submit an incident report to my sentry.io bug tracker that also pulls in character and controller states, which goes a long way towards locating and fixing the bug.

Thanks again for the response, it's much appreciated!
Logged
fearless_donut
Level 0
***


View Profile
« Reply #4 on: May 22, 2019, 05:03:04 AM »

Hey again. I just wanted to say that i was able to defeat the boss and complete the demo thanks to this information:
Quote
You can switch between characters during your turn and they share Power
- Couldn't realize it by myself last time Embarrassed. The gameplay became much more flexible knowing that.
   
Unfortunately, still couldn't reproduce the bug with level freeze.
Logged

My devlog - Aether Way
And Twitter
WhisperingSpider
Level 0
*


View Profile
« Reply #5 on: May 22, 2019, 08:43:40 AM »

Haha yeah the tutorial is pretty darn important, and I'm kicking myself for not testing it properly with this last build. I've gone through a ton of iterations to keep the gameplay systems as straightforward as possible, but unfortunately the absolute core of the game that revolves around sacrificing cards needs a quick explanation before it clicks.

If you (or anyone) has any suggestions to help make that more understandable I'd love to hear it! Also, thanks again for the feedback and giving it another try!
Logged
WhisperingSpider
Level 0
*


View Profile
« Reply #6 on: May 27, 2019, 05:18:27 PM »

For this post I'm going to go over two core gameplay systems that seemed like good ideas in design, but didn't fare so well in practice.

Infinite Shielding
In Hostile Takeover all characters can gain shields that act as temporary HP. Originally shields lasted for the entire encounter. I wanted a penalty for the player if they ignored an enemy for too long and they were able to stack up shields, and I wanted defensive options for the player even if they weren't under threat on that exact turn.

A few people complained about enemies having too many shields after a number of turns, so right away I kept my eye on it as a possible problem. There are some effects like Bleeding, or Sniper Rifle attacks that ignore shielding entirely and deal damage directly to HP, so it was a possible problem with some solutions already in place. The big problem came from someone who found an optimal strategy that was simply not fun. They were able to ignore offensive abilities entirely for a few turns while they built up shields, and then spend the next couple turns going on the full offensive, then rinse and repeat until all enemies were defeated. This not only made them practically invulnerable, but it's also a super boring way to play the game. So I have one potentially annoying aspect, and one game-breaking aspect - definitely time to change it.

The solution is shield breaks - shields now break after taking ANY damage. This means you can still stack up a lot of shielding to protect you from one big hit, but it won't protect you from the next hit, big or small. It also strengthens card-by-card gameplay, by encouraging the player to use weaker cards first to break shields and save more powerful cards until enemies are vulnerable. Finally, it allows for a unique interaction with multi-hit attacks, where the first hit breaks the shield and subsequent hits go straight to HP. This means that shields aren't the ultimate defense anymore - suddenly other buffs like Evasion (flat damage reduction) and retreating out of range are not only viable options, but the preferred options depending on the attack. So far it's been met with solid feedback, and the old shield system seems like it will die a lonely death with no one missing it at all.

Unique Isn't Good
The other major gameplay change (which will roll out in this Friday's patch) is Upgrades. After three consecutive combat victories, a character earns an upgrade, which is a permanent perk. Upgrades can grant powers like gaining a buff at the start of each turn, increasing damage after each move, granting shielding when not moving - situationally-powerful abilities that help to mold characters into unique builds each game. I wanted a risk/reward system with them, however, so I made them into cards. If you wanted to permanently gain the upgrade, you had to spend a chunk of Power to use the upgrade, instead of spending it on attacking or defending that turn. To make them non-binary, you could also permanently discard them for a burst of Power as well as granting you its effects for that encounter only. Kind of an 'oh shit' button, if you will, as well as being needlessly convoluted.

Well, as you can probably guess, NO ONE EVER discarded upgrades. They didn't want to miss out on having that power permanently, so they hung onto them if they couldn't afford to use it, and then got frustrated because it ate up a card in their hand that they couldn't do anything with. Which means my system was working as intended! If you wanted to use it but not that turn, you had to pay the price of losing a card to play that turn. However, instead of making for fun and tough decisions, it led to frustrations and non-decisions. As a quick fix I made upgrades recyclable like normal cards so that it simply gave a small amount of power without any temporary buffs or permanent losses. This alleviated the 'wasted card' problem, but now there was another problem related to optimal strategy - all you had to do was get a combat encounter down to the last enemy, then hole up and defend, and wait until each character drew their upgrades to spend power on them. Which is a not-fun and boring way to play the game (I sense a pattern here.)

So instead of being unique, it's back to the tried-and-true - upgrades now install permanently when you get them, and are never added to your deck as a card. However, to give the player some kind of decision around them, you can also opt for healing or credits instead of the upgrade. This helps to avoid upgrades which could weaken your build, gives the player a way to heal mid-dungeon (which many players requested), and adds an additional source of income. By passing on an upgrade and taking the credits, you earn roughly half the cost of an upgrade from the shop. This means that if you see an upgrade that you really want in the shop, you may find it worthwhile to sacrifice other upgrades to be able to afford it.
Logged
Beastboy
Level 3
***

Happy birth day mom!


View Profile
« Reply #7 on: May 29, 2019, 04:28:42 AM »

Wow, following, this looks amazing, dont forget to add some details on floor and if you add some enviroment animations this will be epic
Logged
WhisperingSpider
Level 0
*


View Profile
« Reply #8 on: June 04, 2019, 10:33:38 AM »

Code Refactoring

Code refactoring is often seen as a big no-no, as you're wasting valuable development time 'fixing' something that doesn't need fixed. I agree entirely with this, but I was also running into some issues where some of the more unique cards I wanted to add were causing headaches and unique edge-cases for each and every new ability. I came up with a solution that I like, and will stick with for the rest of this game's development - Monday through Friday is for moving the game forward, and if I decide to spend some of the weekend working on the game, I can spend that time on whatever I want, including code refactoring.

So, I spent last weekend completely rewriting card and ability logic, and the result is an extremely smooth system that has no unique single-use cases. In fact, the only unique aspect between cards now is what scripts the input button calls when you're hovering them. Cards in your hand get played, cards in the "New Card Select" screen get added to your deck, cards in the "Remove Card" screen get removed from your deck, etc. Adding new abilities, even weird ones, is now much easier and cleaner. However, I still had one issue - text space on the card itself.

Card Perks

I like the challenge of keeping text short and succinct because I literally don't have the space to afford anything other than that, but it was causing some of the newer cards to be confusing to players. I like situational cards that can be used to build decks around, so there are cards that do things like increase damage based on how far away the target is, or let you draw a card for each enemy hit, or can only be used under certain circumstances. Keeping the standard card text for abilities (Damage, Target Type, Area, Range, and Effects) was becoming a problem when I also wanted to include these additional qualifiers.

My solution to the above problem is something I call Perks. These are short words or phrases that are highlighted dark orange in the card text, and show a popup window when the card is hovered to explain what they do. My hope is that after a few games, players will understand what perks do, and not need to pay attention to the popup but just read the perk name. For example, if a card is tagged with Scout, it increases damage based on range. If it's got Sneak Attack, it increases damage based on the Stealth the player has.



Combining the Two

Something I didn't plan with the perks system is how well it would fit into the new card logic. With a few lines of code, I can add a new perk, fill out its popup, and handle any additional actions that may be required, whether it's in the damage calculations or post-ability cleanup. I'm still surprised when I add something that I feel should take me an hour or so and it just...works. Which is also a horror in and of itself...
Logged
Beastboy
Level 3
***

Happy birth day mom!


View Profile
« Reply #9 on: October 04, 2019, 03:01:37 AM »

Is this project stil active?
Logged
WhisperingSpider
Level 0
*


View Profile
« Reply #10 on: October 12, 2019, 03:44:56 PM »

Is this project stil active?

It is! The public alpha has had updates pushed out every month, the most recent being two weeks ago. I've just been struggling to find the time to post devlogs, which I know I need to get better at Smiley There's been a ton of changes that I'll save for an actual post, but if you're interested the patch notes are all on the itch.io page: https://whisperingspider.itch.io/hostile-takeover/devlog
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic