This is a breakdown of the progress of the weapon systems. The weapons systems are not yet at the progress showcase stage, but as it has been awhile since the last proper blog post, I thought I'd give an insight to what I have been working on.
The blog post will contain GIFs, explanations, and design choices.
What I've been working on
Player weapon system
Equipping weapons
Design introspective
What's next
Future development
Since the last blog post, I have been working on many different aspects of the game, one of the major ones has been the weapon system. It still isn't finished, but has had quite a bit of improvements since I last updated the blog.
Scriptable objects, the amount of information stored in the scriptable has increased, along-side changes in variables that allow more modularity and quick changes.
Equipping weapons. The player now has 3 different weapon slots, Primary 1, Primary 2 and secondary. This will allow the player to equip 3 different weapons per mission.
Holding weapons. The player now correctly holds the weapon in their hands, this has been done with the animations and handle objects.
Movement changes. When aiming, the player's movement speed is affected.
Holstering. The player can holster their weapons, which will allow them to move at a faster pace.
Weapon types: More weapon types have been added.
Texture changes: I have redone the textures and UV unwrapping to ensure they are better quality.
Model changes: The models have been re-imported at a size that matches the size of the player character.
This is the scriptable object for the Weapon's. These variables are likely to change, and the values stored in them are also likely to change as the system has more features implemented, therefore all values should be seen as temporary placeholders.
The image below showcases the getters i use within the script, this is to prevent important values being changed within other scripts or objects, improving security and preventing unwanted changes.
These are image's of the script attached to my player object.
This script handles everything to do with the player's weapons, such as: Equipping, holding, position, aiming, assigning and, holstering.
As you can see in the GIF attached, the weapons that are currently equipped update accordingly, this was done for debugging purposes.
Currently, the weapons are selected through dragging the scriptable object of the weapon into the Weapon slots (Primary, primary2, secondary), but for the progress showcase it will be done via a menu after the character select.
The GIF showcase's the player equipping 3 different weapons, alongside showing off the dual wield feature.
Aiming will be done differently than most FPS games, as I want the game to be fast-paced there will be very minimal ADS, the only weapons which will utilize ADS are scoped weaponry. Other weapons will be aimed at the hip, similar to how counterstrike works.
Aiming will also slightly decrease movement speed, this is to make sure players aren't just aiming non-stop throughout the level. While the decrease in movement speed is not great, it is enough that players will be punished if they don't put their weapons down and run to safety or hide.
When the player is not aiming, the weapons will be down at the player's side, this will prevent them from shooting, but not change the players' movement speed.
The aim of having different weapon types is to allow freedom in player choice. Overall, I want people to enjoy my game and play it how they want to play, by restricting weapons to a small amount of options, I feel as though I am taking enjoyment away from the players. I believe the different weapon types will enhance people's enjoyment by giving them different options to play with.
Not mentioned in the above sections, equipment is another type of weapon the player will be able to utilize, these can be AOE, single target or utility that will allow players more freedom within the missions.
Accuracy will be done like most arcade shooters, running, jumping, sliding and diving will not affect accuracy. Due to the game's fast-paced nature most guns will be accurate no matter your situation, to ensure the game is fun and not frustrating, after-all if a player is playing a game to feel like john wick, it's not fun when you miss a perfectly placed headshot while sprinting due to weapon inaccuracy.
However, the weapons still have spread and inaccuracy, the variety of such is determined by the weapon. Shotguns for example will have a much bigger spread than other guns, while snipers, bolt-actions and rifle's will have much lower spread. Duel-wield will also affect inaccuracy.
Dual-wielding is a feature which I believe makes the game so much more fun, it gives the game an 90's action blockbuster feeling which I feel fits with the intended gameplay loop. Being able to dive, slide and sprint while dual-wielding pistols, short-nosed shotguns, or SMG's just sounds fun, and if I manage to make the gun-play fun, dual-wield will simply enhance the already fun gun play.
Dual-wielding will not be available for all weaponry, even though it is technically toggle-able. I only intend on having: Pistols, SMG's and small shotguns being available for dual-wield.
As the game is fast-paced, I believe having the player choose between: aiming, holding, and holstered, creates more gameplay possibilities, this is due to the fact that movement speed is affected by all these options. The player is the fastest when the weapons are holstered, the second fastest when holding, and the slowest while aiming.
This can impact the player's decision-making, maybe they want to sprint into a room filled with enemies, so they holster their weapons sprint in, dive over a table, then equip their weapons now in a much better situation. Or they want to go in with the weapons already aiming, allowing them to move more tactically while still going in gun-blazing, or the player wants to be cautious, have the weapons in their hands, but only aiming when necessary to complete their objective. After-all, i want players to be able to have more freedom in their approach to certain missions, such as intel gathering, or escape missions.
For the progress showcase I plan on having the ability to shoot, fire, and select weapons all possible and working without issues. This will mean there is working weapons and a selection screen for you to pick the weapons you want to equip.
Animations will be made to allow for aiming, as-well as reloading, holstering and drawing the weapons.
The weapon select menu will also be implemented, allowing the player to choose what weapons are to be equipped.
The projectiles will be implemented, along with targets to shoot to test damage and accuracy.
I will work on different models. I want at least one weapon for each weapon type, however, I tend to get carried away when modelling, so some weapon types may have multiple different weapons, this could cause an issue for balancing, especially at early stages, such as the progress showcase. The models will have to be made with animation in mind, this will allow me to properly make the animations required to create gun-play that will be enjoyable, after-all, it doesn't matter how good the guns sound, and shoot, if the animations are boring or bad.
The weapons will be balanced throughout development, this will also ensure that power creep will not happen, or at-least be lessened. I ultimately want all weapons to be viable throughout the game, even if some weapons are more useful than others in specific situations. The overall aim of the game is for it to be fun, while being slightly challenging, with options to change that in settings if the player wishes. The game will be fast-paced with plenty of enemies, so having the player using weapons that feel like they are shooting air instead of bullets will go against the overall aim of the game, so to ensure that, all weapons must be viable throughout the game, except for very specific circumstances, that I will mention in future posts.
When the game releases into 1.0, I plan on having the weapon selection screen be much more fleshed out, tabs will be utilized to allow the player to search through the available weapons. Each weapon will also have their stats displayed, alongside a short bio, to enhance the world building in the game. I am interested in having the weapons displayed in 3D and slowly rotating when inspecting in the weapon selection screen, but unsure if that will be implemented.
When dying, the player currently doesn't drop their weapons. I aim to have this implemented as it would be quite as simple task, however, implementing it for the progress showcase is unlikely, as I want to tweak with the death system and ensure it works how i want it to, before adding more elements to it.
#4.2 Movement N/A