PSA - the post-scientific apocalypse



Disclaimer: This is by no means a final list
I will probably add, modify and even cut points on this list as development goes on.
Also, this is not the ordner in which things will be implemented

The core shooter module is the one I am currently focussed on and is mostly implemented as of the Alpha 0-3 version.


Core shooter module

This contains the most basic features needed for a first-person, turn-based shooter. It contains all the things I need to see if doing a turn-based shooter in first person is a viable idea or not. Without this, there is no game, so this is the one I am currently working on


Tile-based movement(implemented)

  • Pretty self explanatory

Different types of guns, like pistols, shotguns, sniper rifles(implemented)

  • Implementation: Basic weapon classes already implemented. Just need to create more

  • Why?: More guns equals more boom. This game needs a lot of Boom

Dynamic crosshair when aiming to show bullet spread(implemented)

  • Why?: Since I have no hit percentages due to the way firing is done, the player needs a way to know how big his chances to hit actually are

Cover penetration(implemented)

  • Explain: The damage done to an entity is dependent on how much of its body the bullet actually pierced. The ability of bullets to penetrate objects is dependent on the type of ammo, the weapon and the angle at which the bullet hits.

  • Why?: This makes shots more interesting in that very little cover is completly bulletproof. Just as in real-life.

Different ammo types(implemented)

  • Why?: So players have always the right ammo for the job

  • Explain!: I plan to include types like: high accuracy match rounds, armor piercing rounds, explosive ammo, etc.

Manually loadable magazines(partially implemented)

  • Implementation: Magazines can currently be topped up with the desired ammo types and hold multiple ammo types. Still needs an interface to do so properly

  • Why?: This gives the player the options to load their mags in interesting ways

  • Explain!: You can load different ammo types in the same magazine. This allows you, for example to alternate between soft-target and armor piercing rounds to be prepared for every kind of target without switching mags. Or you can have the first salvo of your rifle fire exploding rounds to detroy enemy cover and then finish them up with normal bullets. It's up to you

Close-quarter-combat mode(not implemented)

  • Explain: Cuts the turn of an entity into several short parts, when they are close to an enemy. That means, for example, if you are close to an enemy, you can spend half your turnpoints, then the enemy can spend half, and so on until your entire turn is done(turnpoints not used in the previous part-turn will be added to your next part-turn

  • Implementation: I’ve got some ideas how to do this

  • Why?: It gives high powered and highly accurate weapons like sniper rifles a disadvantage at close distance to balance them out

Armor(partially implemented)

  • Implementation: Basic functionality is implemented, still need to do armor degradation

  • Explain: Armor is covering different part of an entity’s body. A bullet does the full damage if it actually manages to penetrate the armor

  • Why?: Duh. You can't run around a anomaly ridden, mutant infested warzone naked. That just wouldn't be stylish

Tile-based inventory(implemented)

  • Why?: It gives the player a nice overview of their available items

Squads automatically attacking and defending positions(implemented)

  • Why?: Entities moving around as squads makes the player mostly always encountering several entities at once to not make the enemies easy pickings

Entities taking cover and beeing able to crouch(not implemented)

  • Why?: So beeing in cover is more effective and entities are not as exposed as they currently. And I don't mean the fact that the current 3D model does not include pants.

Covering fire(implemented)

  • Why?: Otherwise the only shots that matter are the ones that hit. Which is kinda boring, I think


 

Advanced shooter module

This includes features that I would like to add to the core gameplay, but which aren't strictly necessary for a functioning game. So naturally, these are lower priority


Grenades(not implemented)

  • Implementation: The script for explosives is already written but I still need a system for throwing them

  • Why?: Explosions!!! Need I say more?

Placed explosives(not implemented)

  • Implementation: Explosives script is done but this also still needs a system to deploy

  • Why?: Even bigger explosions! 'Nuf said? Also, have you ever stood in front of a wall and wished it wasn’t there anymore? I got you covered.

Melee weapons and attacks(not implemented)

  • Implementation: Basically a gun with unlimited ammo and reach of 1 field; Still need to implement switching between main gun, sidearm and melee though

  • Why?: Mutants need this anyway and it gives the player a good backup options

Bullet physics(not implemented)

  • Implementation: This is propably gonna be very hard; May involve math (Aaahhhhh!)

  • Explain: Add things like bullet drop, ricochets and bullets deviating after going through stuff.

  • Why?: Makes long distance shots more interesting. Also makes high g anomalies and grenades more interesting

Destructible terrain(not implemented)

  • Implementation: Know how to do it, but is gonna require messing around with dynamically creating meshes, so this one's one the backburner for now

  • Why?: Again, more options.

  • Explain!: This would allow you to blow holes in walls without destroying the entire wall. For example you can peak and or shoot through holes in the walls of a battle ridden building

Damage taken by falling down(not implemented)

  • Implementation: Roughly know how to code that; Still needs implementing

  • Why?: It makes for interesting options when you can dispose of an enemy at a high position by blowing away the floor under their feet and have them drop three stories to the ground

Damage taken by stuff falling on other stuff(not implemented)

  • Implementation: I have some basic ideas how to code that

  • Why?: More tactical options. It's pretty though to focus on killing someone if you just had a large fridge falling on your head

Inventory space in armor(not implemented)

  • This will require some change to my inventory, but shouldn’t be to hard

  • Explain: Think vest pockets; It takes less points to use something from your vest than from your backpack.

 

Roleplaying module

These are the features that make it a S.T.A.L.K.E.R. inspired game


Large gameworld with NPCs dynamically moving in it and doing missions(partially implemented)

  • Implementation: Basic functionality is implemented. Factions currently find new positions and try to occupy them

  • Why?: It makes the gameworld feel alive, even if you are not there. For example you fought one faction in an area and find it's occupied by a different factions. It also lets the player encounter non-scripted NPC battles on their travels

  • Explain!: Squads of NPCs and mutants are given objectives in the world like patrol this area, go there, attack this position and so on, based on larger strategic faction goals. Circumstances and other squads near them also affect their actions.

Weight and volume of items in Inventory and backpacks(not implemented)

  • Explain!: Every item adds weight and, if it is put into the backpack, volume. Weight is gonna slow you down, and if your backpack's volume is at its capacity you can't pick up any more things. No slugging 15 gun back to base and sell them for an unbalanced amount of money. Also ties into the "leveling by getting better gear" aproach, as you need better backpacks to carry more stuff

  • Why?: It gives the player urgency to think ahead and only pack whats necessary. Also you can pack a lot of gear for your missions, drop your backpack when you enter a fight, and pick it up again afterwards

Upgrading weapons and armor(not implemented)

  • Explain: You can upgrade your weapon with different scopes, barrels and other things to influence its damage, accuracy and so on. For armor you can increase its durability, add additional armor plates and so on.

Anomalies(not implemented)

  • I have some ideas how to code them

  • Why?: Wouldn’t be a S.T.A.L.K.E.R.-esque world without anomalies

Dynamic faction relations(not implemented)

  • Implementation: Faction relations are currently fixed

  • Explain!: Faction relations change based on actions of squads. Trading shots damages relations, resupply and helping in fights improves them

  • Why?: It would be a pretty dull world with only one kind of people in it. Plus it makes for a more dynamic world if faction allegiances shift with time

 

Once the base game is finished, there are two further modules. These require lengthy explanations though and this list is already long enough so I’ll just explain them very briefly.


Story module

This serves to tie together the theme, build out the gameworld and guide the player through everything. It also provides the basis for the insanity module(see below)


The setting in the present:

The story plays in an abandoned research institute on a former colony of earth. Think a zone filled with warring factions, mutants and abandoned laboratories. At some point in the past, all contact to earth was lost after a cataclysmic event.

You play as an AI located in a former laboratory that basically needs to fix itself and the other AI located in the same lab.

The clues on how to do that are delivered through E-Mails, messages and research documents found on terminals in the present. These texts describe the events unfolding shortly after the original catastrophe. Specifically a slowly unfolding insurgency modeled after how an insurgency/civil war in a real life city in the western world today would probably unfold, inspired by the “It could happen here podcast by Robert Evans (https://www.itcouldhappenherepod.com/).

 

Insanity module

This adds a metagame and allows for progression besides the better equipment you can buy as you advances through the game. Because lives are cheap, but stuff's expensive.(I'm sure that there is absolutely no moral lesson in there whatsoever :P)


Certain actions increase the insanity level of the entity you are controlling as well as the insanity level of you.

This introduces intentional glitches into the behavior of the entity you control as well as the overall game control. This will change the way the game is played but also carries certain benefits.

I currently already have done some of the design on it and I’ll put it here once I’ve coalesced it into a coherent design document