This is the second update of my 'Spy
Story' game, which adds more interactivity to the main level and some
improvements to the intro and auxiliary game screens.
I've designed the 'Training' level to
be a sand-box-test environment, where ideas can be quickly
implemented; some of which I will keep; others I will discard.
The
bulk of the code is in the form of Javascript with a few C# modules
linked-in. The main engine is Unity.
I spent a lot of time recently, coding
a weapon-targeting system, which uses a ray-casting process to ensure
accurate aiming; whether firing from the hip, or directly through the
weapon's optical-scope and I've used an 'additive-blended-shader'
inside the scope, so that the player benefits from a night-vision
effect in dark zones.
A health system was added and linked to
the player HUD, which responds to weapons-fire from enemy *NPCs and
hazard regions.
For example, if the player enters a toxic lake, a
red-out effect illustrates that the character is being harmed, whilst
health points are removed from the HUD icon.
The player can also be killed by
falling from a pre-determined height threshold, such as the top of a
building, or a cliff.
When the player is dead, the level will
automatically reset and the character will re-spawn.
Objects can now be 'tagged', in the
code, as 'Explosive', which will trigger a particle effect when they
are shot by the player or an NPC. The object is then deleted from the
game world. Object deletion will also occur on NPCs that have been
killed.
The player can now climb any structure
in the game with the addition of a climbing script that works in
conjunction with invisible trigger zones.
Finally, the biggest improvement comes
with the addition of Enemy AI. NPCs can now patrol an area determined
by a waypoint system. Should the player enter their attack range,
they will stop patrolling and move directly towards the
player-character and enter an attack mode.
*NPC - Non Player Character
Here's the gameplay video:
P.S. I've uploaded the G36C Assault Rifle.
You can download it here: