On The Roadside (Turnbased Strategy inspired by XCOM)

Show off your games, demos and other (playable) creations.
User avatar
kikito
Inner party member
Posts: 3153
Joined: Sat Oct 03, 2009 5:22 pm
Location: Madrid, Spain
Contact:

Re: On The Roadside (Turnbased Strategy inspired by XCOM)

Post by kikito »

Hi there,

I want to ask about the health system. It is quite complicated. Can I enquire about the design reasons behind this complexity?

Recently I have started playing Cataclysm: Dark Days Ahead (http://en.cataclysmdda.com/) and they have a comparatively simple health system: Human bodies are divided in 5 slots: head, torso, left arm, right arm, left leg & right leg. Each slot has a 0-5 value, 5 being completely healthy and 0 being completely pulped. Things get bad when a slot's value approaches 0. Damaged legs make people walk slower. Damaged arms lower dexterity and weapon accuracy. If they reach 0 they can't heal without a sling. There is also an independent "pain" indicator. A person suffering acute pain (even if his 5 slots are ok. He might be drugged, etc) performs worse in general.

This system allows for meaningful decisions: with only one medikit, you must choose between healing your leg, to run faster, or an arm, for steadier shots. Or maybe just your head, to alleviate the pain indicator.

There is a complementary clothing/armor system. So each piece of clothing has 3 stats: protection against damage, against cold, and encumberment. So you for example you have to decide between wearing hiking boots, (with little encumberance, high armor, but low temperature protection), and winter boots (very good against cold, but encumbering and not as good armor-wise). This ties to the previous example: if you have highly protective boots you might be inclined to heal your arms before your legs.

I find that this approach, with several "shallow" but interconnected systems, provide complexity and emergence, while remaining easier to understand, than fewer, "deeper" systems. Are you sure you are not doing simulation for simulation sake?
When I write def I mean function.
bladum
Prole
Posts: 28
Joined: Mon Jun 13, 2016 9:32 pm

Re: On The Roadside (Turnbased Strategy inspired by XCOM)

Post by bladum »

do you plan to make geoscape part too ? i was heaviliy involved in openxcom mods & development and might be helpfull here
User avatar
rmcode
Party member
Posts: 454
Joined: Tue Jul 15, 2014 12:04 pm
Location: Germany
Contact:

Re: On The Roadside (Turnbased Strategy inspired by XCOM)

Post by rmcode »

LordSeaworth wrote:Nice to see such great work with this engine.
Keep up the good work!
Thanks for the lovely feedback <3
kikito wrote:I want to ask about the health system. It is quite complicated. Can I enquire about the design reasons behind this complexity?
I see where you are coming from and of course a system like CDDA would fit perfectly. For me the main reason why I want to implement this system is: Fun! I just liked the idea and wanted to see if I can implement it in a way that provides good gameplay. If it doesn't work out I can still change it later down the road.

Of course I have some actual thoughts about the system and how they'll tie into gameplay. For example in CDDA the death of your character means the end of the game, whereas in my game it just means you lose one of your team members. The latter can be further differentiated if you take XCOM:EW and Xenonauts as examples. The latter plays more like classic XCOM where it is common to sacrifice people or at least use them as cheap scouts, whereas losing a highly-skilled squad member can end your whole run in XCOM:EW (at least on ironman classic+ difficulty).

I'm more of a fan of the chess-like gameplay of the modern XCOM (or the Silent Storm) games, where you actually want to keep your team as save as possible. My plan was to include long-lasting effects for your squad, like blindness, missing limbs and maybe even mental health issues. Instead of having a team of expendable people you'd build a squad of highly experienced folks who you really care about after some time.

On the other hand I don't want it to become a gamestopper when one of your guys gets killed, hence why my base gameplay will be quite important for the balance of this health system.
kikito wrote:Are you sure you are not doing simulation for simulation sake?
Maybe, but then again I don't really see it as a problem. I'm doing this as a hobby so I don't have any expectations or deadlines to meet :) Besides, I guess you could say the same about Dwarf Fortress and it's a pretty fun game for some people :awesome:

If you have further questions or suggestions just shoot ... :)
bladum wrote:do you plan to make geoscape part too ? i was heaviliy involved in openxcom mods & development and might be helpfull here
I wouldn't compare it to the geoscape in the classic xcom games, but I definitely want to have some sort of base gameplay. I have a bunch of ideas written down already, but it'll be a while before I'll start to implement them I guess. Currently I'm not really looking for contributions, but that might change later down the road :)

Thanks for the offer though - I highly appreciate it!
User avatar
rmcode
Party member
Posts: 454
Joined: Tue Jul 15, 2014 12:04 pm
Location: Germany
Contact:

Re: On The Roadside (Turnbased Strategy inspired by XCOM)

Post by rmcode »

Just a small update. Due to work and real life stuff I didn't have too much time to code, but that should change in the next few days (vacation :awesome:).

The health system is more or less working although I still need to add bleeding and (more) status effects. The cool thing is, that now creatures can be defined by template files like this:
Image

Not only does this mean that I can simulate different organs, which have different effects upon taking damage and being destroyed, but I can also manually determine which equipment slots a creature can have. This should come in handy when I add non-human creatures. Obviously a dog shouldn't be able to wield a gun, but by giving him a "maw" body node I could then attach a bite-attack to that node. But that's something for a later release.

I also got around to creating a pixelfont and actually started ASCII-ing the inventory:
Image

All in all update 0.4.0 should be ready in the next few weeks.
User avatar
Positive07
Party member
Posts: 1014
Joined: Sun Aug 12, 2012 4:34 pm
Location: Argentina

Re: On The Roadside (Turnbased Strategy inspired by XCOM)

Post by Positive07 »

Oh that UI is already so nice! You could add some color, but the aspect is already really good, it fits the game, I'll be waiting for the update! Keep it up
for i, person in ipairs(everybody) do
[tab]if not person.obey then person:setObey(true) end
end
love.system.openURL(github.com/pablomayobre)
User avatar
rmcode
Party member
Posts: 454
Joined: Tue Jul 15, 2014 12:04 pm
Location: Germany
Contact:

Re: On The Roadside (Turnbased Strategy inspired by XCOM)

Post by rmcode »

Positive07 wrote:Oh that UI is already so nice! You could add some color, but the aspect is already really good, it fits the game, I'll be waiting for the update! Keep it up
Thanks :)

Yeah this is the first rough draft, so it lacks a lot of polish and some actual features. The (currently empty) box at the bottom will be used to display the item's description and stats.
User avatar
Positive07
Party member
Posts: 1014
Joined: Sun Aug 12, 2012 4:34 pm
Location: Argentina

Re: On The Roadside (Turnbased Strategy inspired by XCOM)

Post by Positive07 »

I see, I'm sure it will be great... What is the Other tab intended for?
for i, person in ipairs(everybody) do
[tab]if not person.obey then person:setObey(true) end
end
love.system.openURL(github.com/pablomayobre)
User avatar
rmcode
Party member
Posts: 454
Joined: Tue Jul 15, 2014 12:04 pm
Location: Germany
Contact:

Re: On The Roadside (Turnbased Strategy inspired by XCOM)

Post by rmcode »

That's the inventory you are taking from, so for example another character's inventory, a chest or the floor. The "other" header will be replaced with the actual type of inventory later on.
User avatar
rmcode
Party member
Posts: 454
Joined: Tue Jul 15, 2014 12:04 pm
Location: Germany
Contact:

Re: On The Roadside (Turnbased Strategy inspired by XCOM)

Post by rmcode »

Pushed version 0.4.0.658 to itch.io :nyu:

Please keep in mind that none of the features are final and a lot of the changes are just there to set the foundation for future updates.

Code: Select all

## Additions
- Added knife item to test slashing damage
- Added the first implementation of an in-depth health system
    - Each create has an actual body model consisting of separate body parts
    - Each body part does have its own effects and attributes
        - Destroying a vital organ leads to a character's death
        - Destroying the eyes will blind the character
    - Attacks can cause bleeding which can lead to a character's death
- Added a custom image font for the user interface 
- Added simple (preliminary) health screen

## Fixes
- Fix merging of item stacks 
- Fix camera moving while inventory is open 
- Fix issue with Lua's default io libs 

## Other Changes
- Do not restore camera position after movement 
- Reduced amount of camera movement during AI turns
- Taught AI to rearm throwing weapons
- Use layout-independent key scancodes 
- Added a custom error handler
- Made throwable weapons stackable 
- Equipment slots are no longer hardcoded but can be determined by a character's body template
- Hide equipment when looking at another character's inventory
- The camera actually takes tile sizes into account when moving
- Mouse Pointer is no longer updated when the inventory is open 
- Made game window resizable (minimum size is locked to 800x600)
- General inventory layout improvements
    - Added scrollable item description area
    - Added item stats area

Some notes on the health system

The basic setup for medical system is done now. Bodies can be created as graphs with nodes representing different body parts and edges representing the connection between them. This allows me to create different types of creatures in the future. and especially keeps the whole system pretty flexible. I specifically wanted to avoid hardcoded inventory slots based on the human body.

The system works like this now:

Entry nodes
Each body has socalled entry nodes which represent the body parts which can be hit by an attack directly. Each of these nodes can be damaged and ultimately being destroyed, which also leds to the desctruction to any connected child nodes. So if an arm is cut off the hand is destroyed as well. Entry nodes also can receive bleeding effects which will lead to a character bleeding out over time.

Inner nodes
Inner nodes aren't visible to the player (although this will change with the implementation of certain features in the future) and are connected to entry nodes. Inner nodes will be used to apply certain status effects to a character. Right now a character can be killed by destroying a vital organ (brain, lungs, ...) and blinded by destroying their eyes.

Equipment Slots
This was a struggle to implement, but I finally managed to add flexible equipment slots which can also be defined via the body graph. This allows me to add different equipment slots for non human characters as well as removing equipment slots if the specific body part is torn off (TBD).

All in all the player only has to worry about the status of the entry nodes. With the addition of a medical system in future updates bleeding can be stopped and damaged body parts can be healed. Inner nodes / internal organs only act as a way to simulate certain status effects and handling critical hits.

@kikito I hope this addresses some of your concerns :)
health.png
health.png (14.15 KiB) Viewed 7796 times
Published a small patch 0.4.1.664:

Code: Select all

## Other Changes
- Deactivated save feature
- Made chairs and tables climbable
Published hotfix 0.4.2.668:

Code: Select all

## Fixes
- Keep health screen centered when screen is resized
- Prevent crash when screen is resized while inventory is open
- Fix enqueuing of action which can't be performed
Published hotfix 0.4.3.685:

Code: Select all

- Revert "Fix impossible actions being added to the queue" as it caused additional problems
User avatar
rmcode
Party member
Posts: 454
Joined: Tue Jul 15, 2014 12:04 pm
Location: Germany
Contact:

Re: On The Roadside (Turnbased Strategy inspired by XCOM)

Post by rmcode »

Published 0.5.0.725 containing some important fixes

Code: Select all

## Additions
- Added a new smaller map with more tactical possibilites
    - Added new tiles "Gravel" and "Wooden Floor"
    - Added new world object "Tree"
- Added preliminary item descriptions
- Added log file writer
- Added indicator displaying the AP costs for an action

## Removals
- Removed german translation files for now
- Removed automatic changing to crouched mode when a character climbs over a world object

## Fixes
- Fixed AP cost calculation in pathfinding algorithm
- Fixed enqueuing of impossible actions
- Fixed AI getting stuck in behavior tree
- Fixed crash with the Rearm Action

## Other Changes
- Changed colors of crate objects
- General improvements of the user interface
    - Debug info is hidden by default
    - Rearranged the other UI components to match the game's grid system
- Changed movement input to use two stages again
    - The first click plots the path
    - The second click starts the actual movement
- AP cost for interacting with a world object is now dependent on the character's stance
- AP cost for traversing a tile is now dependent on the character's stance
- Help and debug info overlays are still visible during AI turns
- Camera now starts centered on the map

Published 0.5.1.727

Code: Select all

- Reduced debug output

Published 0.5.2.741
This should finally resolve the last few stubborn AI issues.

Code: Select all

## Fixes
- Fixed issue where the AI would start the execution state twice
- Fixed actions being executed for dead characters
- Fixed AI handler failing to end its turn
Post Reply

Who is online

Users browsing this forum: No registered users and 36 guests