First of all let's talk about the world itself. During early prototyping I intended to have the player control a demon who wanted to reach heaven, taking the player on a linear path from the underworld to heaven. Most of this has been trashed now though, you will still take on the role of a small demon however, the story begins in the human realm, which the demons have invaded and nearly conquered. As the war has been raging for a few years, this small demon gets home-sick. The demon had no desire to invade the human realm in the first place, so he decide that he will stop fighting the humans, and instead put up his best efforts to make it back home somehow.
In my previous project I created "map chunks" that were placed randomly with a layout-mask to determine what type of blocks could be placed where. This made each playthrough slightly more random and new, but I also felt that it was difficult to create very interesting maps with this method, I weren't able to use lightmaps properly either. For Demox I'm going to try creating each map by hand, while the game sessions will be alot less randomized I believe that the maps will be more interesting and fun to play through, and I can optimize them more easily aswell.
One of my goals that I felt I needed to go for this time is to create a more appealing world than what I did for Loot Burn Kill Repeat. I did feel comfortable with the LBKR-world in itself and the idea behind it however I feel that I failed somewhat in the presentation. In the end I felt it was just a dead world with monsters and the player fighting them off on your own.
.Interactivity For a Better World
To go through some of the decisions I've made to help me along the way to make this game world feel more interesting and involving than the LBKR-world;
Cloth physics collision and rigidbody controlled light sources.
I'm making alot more use of Unity's built-in Cloth Physics component this time, to simulate both character clothing and some geometry such as curtains, tents etc. That will collide and be affected by the player character, furthermore, alot of the objects around the world will be possible to interact with, either by pushing around, carrying, destroying or using as a weapon or shield.
Prototype of an interactive contraption intended for a dungeon puzzle
Also some more (passive) interactions are included, as an example I've created a shader that allow foliage to wrap around characters when they step near it, eg. bushes or grass will move away or be pushed downward when stepped on.
Foliage wrapping aswell as a physics-based bridge in-game
I'm also going to test how well it would work to have more of the environment react to combat, both with destructible objects such as I wrote for LBKR, but also more subtle details like if trees or shrubs are damaged, have leaves fly around. And also to let different natural elements react to damage types, eg. Water would extinguish fire, but greatly increase electric damage.
Some more cloth simulation
Briefly returning to physics, I've just recently finished writing a water system to help me handle collisions and interactions with water in the game. If characters walk in water for example, water particle effects will follow the character and the character's move speed is reduced depending on how deep the water is. If the water is too deep to reach the bottom the character will start swimming (or drown, if out of breath or don't know how to swim)
Furthermore, some impact fx for attacks or objects have an alternative effect when beeing used in a water volume. I will go through this water system more thoroughly in another article that I'll post soon, since this system has ended up beeing quite extensive on it's own.
The AI is another subject that I will go more into depth in an upcoming article, but let's list at least a few of my decisions and ideas here aswell since the AI will likely be a major part of making the world a better place than the LBKR world!
First and foremost, friendly AI will engage enemy AI. Since there are two sides fighting one another and that most map will include both human characters and demons those two factions must be able to fight eachother just as if an enemy AI would encounter the player. I also want to make it possible for the player to recruit NPC's in safe zones as followers who will help the player fight enemies.
Friendly AI fighting hostile AI in-game.
Another idea I've been thinking alot about is the possibility for the player to kill friendly AI. Most of the friendly AI are human characters (Since the demons see the player character as a deserter and/or traitor.) but since the player's a demon the humans would naturally be sceptical toward the player in the beginning, and the player would have to help the humans first in order to build up some trust.
The idea is that killing a friendly AI could give the player an opportunity to claim great items or other rewards by killing the character- but it would greatly reduce the player's reputation and trustworthyness, also if other NPC's notice the player murdering their friends or stealing items from camps they should obviously engage or be upset by the player. This could also open up for alternative game endings!
Environmental traps, hidden in plain sight
There are some obstacles that need to be adressed though!
How to avoid accidental NPC kills?
One idea could be to have the NPC punch the player back one single time if the player only attack the NPC one single time, and avoid trying the kill the player unless he/she feel threathened.
How should I properly notify the player that his choice to kill an NPC may have an impact on the game and story progression?
Which also includes the next obstacle:
What if the player kill an NPC who will give the player a future quest for story progression?
An idea to overcome this obstacle could be to make those NPC's so powerful that it's more or less impossible for the player to kill them. This solution could feel limiting to the player though if all other NPC's can die except those of importance no matter how much the player wants them dead.
An alternative solution could be to just ignore the issue and expect the player to solve the story quest with no guiding hand,forcing the player to explore and discover what to do to progress with a blindfold on. Which regarding the penalty of killing a friendly AI is quite good in my opinion- but I expect it could be frustrating for most players and remove some, if not all joy, to be forced to run around clueless in the world with no idea what to do... it's all just speculation at this stage though.
A third alternative for this obstacle could be for the AI to drop a journal when killed that hold mission information or pages with information what must be done, sort of replacing the AI's storyline so that the player would still be offered the same information and guidance.
I'm quite sure I'll notice more obstacles as I continue to think about this mechanic.
A blacksmith, working his (apparently invisible) steel
While still on the topic of AI, most of the NPC's will have tasks to do in this game, unlike what I did for LBKR where all NPC's in the safe zones just stood around doing nothing at all. As covered already, AI will react to other AI of other factions when encountered, but while not engaged in combat I want them to move around the environment with some sort of purpose and work.
I will return to this subject in a future article when I've designed the system more thoroughly.
Item shops, will be a common sight in human camps and when encountering wandering merchants.
The player will be able to purchase items from shops at different camp sites, similar to what I implemented for Loot Burn Kill Repeat. Although the shops will only hold 3 – 4 items at the time in stock, and instead of a buring UI window as I used in LBKR I'm trying to keep things more interesting this time, the items are displayed in the shop in realtime, and the player can purchase them by simply clicking on the item.
There will be only a few types of items that can be found, namely Armors, weapons and quest items/keys.
Items are not randomly generated and dropped when a monster is killed like in LBKR, instead if an enemy is wielding an axe when he dies, the axe will be dropped. Otherwise to find items the player must search around the game world, they can be found both at pre-defined locations in the map or by searching chests.
There are also special types of weapons, there are currently only two of these implemented but I intend to extend this list along the way.
Some items have special functionality, such as torches that can help the player illuminate dark environments
- Limbs: by dismembering enemies in combat you will be able to pick up the detached body part and use it to slap other enemies with. This has no special purpose to be honest, but was simply a weird and funny idea I had.
- Torches: Apart from using as a weapon it can also be used to set certain types of objects in flames and to get better vision in dark places.
While I won't write as extensive item system this time as for my previous project I'ld still like to have a slight procedural adjustment to items, especially when dropped from chests or when an AI spawn with a weapon.
I've not yet decided exactly how this should be done or what properties to adjust at runtime but my goal is to include item rarities like in LBKR but that could symbolise the item's condition instead? I also intend to make some items breakable, rendering the item useless once the item finally break
Another feature that I actually have implemented at this time already is to let AI characters collect weapons from the game world and use them in combat. I will cover this more in depth in my next article centered around the AI though, since this one became quite long.