SHAKAL
copyright 2022-2023 Sean Evan
publishing as Anvilsong Forge
-------------------------------------------------
Project Shakal v0.6a
"KABOOM! Update"
~~ music/sfx, animations, logic,
~~ gameloop, particles, bunch of new stuff
version committed:
07.27.2023 July
v0.6a changes
* EXPLOSIONS
! enemy infantry v1
* enemy turret v2
* projectile logic v2
* background music !!temp!!
* sound effects
* title screen v2
* 'new game' menu scene flow
* 'quit game' menu scene flow
* stats v1
* old script removal and outdated thing cleanup
* item tag database reorganization
EXPLOSIONS
set up as particle system
.tif 6x6 sprite
orange emission and lighting
prefab created - can just Instantiate wherever
enemy infantry v1
placeholder graphic - red capsules
sfx array - 0.shoot 1.die 2.smoosh 3.reload
prefab created / improved
script working and evolving
knows gamemanager and player
bullet spawner
bulletSpeed = 700
bulletLifespan = 2.2
isLoaded / isFiring loop
v1 weapon values
loadingRate = 1.35
firingRange = 10
firingRate = 0.35
shotTimer = 0
stats working
shot/exploded/smooshed now seperate stats
enemy turret v2
fixed range and fire timing
better BurstFire method
bullet spawner
bulletSpeed = 750
bulletLifespan = 1.9
v2 weapon values
firingRange = 10
firingRate = 0.35
burstRate = 1.35
shotTimer = 0.0
better DestroyTurret method
projectile logic v2
new projectile controller scripts
!! muuuch better performance now
bullets
new FireBullet script for spawner
new WeaponBullet script for prefab
fixed range
bullets now know if player or enemy fired
grenades
new FireGrenade script for spawner
new WeaponGrenade script for prefab
fixed range
spawns explosion on hit or miss
x, y, z wobbles: random -400 to 400
rockets
new FireRocket script for spawner
new WeaponRocket script for prefab
fixed range
spawns explosion on hit
spawns explosion on miss **correctly!**
rockets now know player's powerup level
spin effect tweaked in script
music !!temp!!
heavy metal BGM (by MOTHERBRAIN! -YouTube)
cut master into individual track clips
export clips in project-usable format
import into project as mp3 audio
!! TO DO - redo as WAV - better looping
Audio Listener in each scene's Main Camera
!! TO DO - perfect BGM looping
sfx
menu sounds
MenuYup - beep affirmative
MenuNope - boop negative
environment sounds
ExplosionMedium
ExplosionLarge
player sounds
PlayerDeath
PlayerFire
GrenadeLaunch
GrenadeWhistle
GrenadeHit
RocketLaunch
RocketHit1
RocketHit2
RocketHit3
enemy sounds
EnemyFire
EnemyTurretFire
title screen v2
title screen canvas now seperate slides
Title Slide
Background
Title Screen
Menu Slide
Copyright Text
Selection Text
One Player Text and Button
Two Player Text and Button
Settings Text and Button
Quit Text and Button
Version Text
Null Text
New Game slide
with script logic to appear after delay
Image (pixel map of lvl1)
New Game Text
Side Effect Text
Press Fire Text and Button
with script logic to appear after delay
new game '1 Player' scene flow
player presses '1 Player' button on menu:
explosion sfx plays
deactivate menu slide
activate new game slide
play New Game music clip
wait some seconds
"Press Fire To Continue' text appears
player presses 'Fire' button
load scene Level 1
quit game scene flow
player presses 'Quit Game' button on menu:
in editor, quit playback mode
in standalone, close game app
player statistics
game manager variables created to track:
player cannon power level
lvl1 enemy infantry destroyed
by shooting
by exploding
by smooshing
lvl1 enemy turrets destroyed
lvl1 enemy patrolboats destroyed
lvl1 enemy brown tanks destroyed
lvl1 enemy blue tanks destroyed
lvl1 pows still captured (in huts)
lvl1 pows rescued (in jeep)
lvl1 pows evacuated (in helicopter)
lvl1 pows missing (on game world)
lvl1 pows dead (killed in player death)
lvl1 commandos still captured (in huts)
lvl1 commandos rescued (in jeep)
lvl1 commandos evacuated (in helicopter)
lvl1 commandos missing (on game world)
lvl1 commandos dead (killed in player death)
created screen canvas and text for stats
showable/hidable on pause
-------------------------------------------------
Project Shakal v0.5a
"Arsenal and Terrain Update"
version recommitted:
12.01.2022 December
v0.5a changes
* finish passable/unpassable terrain
* visual variation on ground plane
* make bridge on river region
* make water more water-ey
* make water impassable
* make jungle more tree-ey
* update buildings
* player grenades
* player rockets
* game manager expansion
terrain layer complete
water lower than ground plane
hills higher than ground plane
surface heights smoothed and normalized
visual ground variation
standard asset pack import
terrain assets
ground plane now has 3 grass texture stamps
sand texture painted onto ground plane
grass textures alpha blended and painted
"nature-ized" coastline
make bridge over river
alpha bridge placed
mated to invisible seawalls
water-ey water
standard asset pack import
water assets
made water plane lower than ground
set up simple looping animation
impassable waterways
made invisible seawalls on water edges
roughed up, naturalized terrain topography
jungle-ey jungle
alpha homemade trees replaced
standard asset pack import
speedtree assets
alpha homemade rocks replaced
standard asset pack import
rock assets
made rocks impassable
made rocks destroy bullets
thick trees placed on ridges
ground and hills texture painted
impassables got more trees as needed
buildings updated
made buildings bulletproof
tweaked scale and placement
player grenades
created grenade prefab
made spawner point on player cannon
spawner angle now makes neat arcing path
created controller script and logic
made neat lil y-rotating wobble script
made only one grenade launchable at a time
player rockets
created rocket prefab
made spawner point on player cannon
created controller script and logic
made x-rotating spin script
made only one rocket launchable at a time
game manager expansion
now handles player cannon powerup level
-------------------------------------------------
Project Shakal v0.4a
"UI / Level 1 Objects Update"
version committed:
11.12.2022 November
v0.4a changes:
* title sequence
* on-screen text
* score
* lives
* game manager expansion
* objects and buildings - level 1
* placement of all turrets - level 1
* center player gun to vehicle
title sequence
imported background image v2, lookin snazzy
added Settings button and logic
on-screen game text and logic
handled by game manager now
show current score in 000000 padded format
show number of lives remaining
game manager
track isGameActive flag
track and display score and remaining lives
handle game start, game over, quit methods
objects and buildings v1- level 1
scaled level map and 3d assets to each other
walled in game area better
create rocks, placed 7x
create trees, placed 52x
create sandbags, placed 7x
create walls and gate for POW compound
create POW huts, placed 4x
create GI huts, placed 3x
create POW helipad and lanterns
turrets
placed 15x
scaled to match terrain, refined placement
tweaked range to start firing further out
player gun / minor player vehicle restyle
moved gun and turret to center of vehicle
seperated from cannon mount
changed cannon mount to fit rotation
made vehicle tires and lights larger
lifted side skirts, added back seat area
moved window to fit new gun turret location
-------------------------------------------------
Project Shakal v0.3a
"Super Update, Now With Turrets!"
version committed:
10.18.2022 October
v0.3a changes:
* splash screen
* title screen
* scenes (title screen, levels...)
* game manager script
* walls
* player prefab
* updated visuals
* score system
* number of lives system
* gun fires bullets {Fire1}
* collision detection
* player bullets prefab
* enemy turret prefab
* basic aim-towards-player logic
* fires three round burst, coroutine method
* collision detection
* points system
* hitpoint system - 3x bullets to destroy
* enemy bullets prefab
splash screen
anvilsong forge logo
splitscreen, 2 seconds
title screen
imported background image v1
buttons (1 player, 2 player, quit)
imported button image
button navigation logic
1 player button active by default
stopped mouse from stealing button focus
wraps first->last and last->first
text formatted
scene system working
new title screen scene: ShakalTitle
new working scene: Shakallevel 1
game manager
UI and event handling script: GameManager
isGameActive false
isGameOver false
StartGame() working
QuitGame() working
walls around arena
collision rules
if hit by player bullet
if hit by enemy bullet
will also block player movement
2 box colliders
1 trigger and 1 physical barrier
player prefab
new player system variables
score 0
lives 5
collision rules
if hit by enemy bullet
if hit by enemy
tuned bullet speed and lifespan
player bullet prefab
player bullet control script:
PlayerBulletController
speed 700
lifespan .5
enemy turret prefab
turret control script: TurretController
firingRange 10
firingRate 0.31
bulletHitsToDestroy 3
points 500
collision rules
if hit by player
if hit by player bullet
shoot - aim - shoot loop
aim - LookAt method
shoot - coroutine loop method
tuned bullet speed and lifespan
enemy bullet prefab
enemy bullet control script:
EnemyBulletController
enemyBulletSpeed 1000
enemyBulletLifespan 1.65
instantiate method
-------------------------------------------------
Project Shakal v0.2a
"Movement Update"
version committed:
09.12.2022 September
v0.2a changes:
* game icon
* hide mouse arrow
* quit game menu function
* player prefab
* updated visuals
* updated motion
* 8-way smoothed player motion
* independant turret rotation
* movement now animated
built game icon is now anvilsong forge logo
game now hides mouse cursor while running
add function to quit game (in editor or build)
"Esc" keyboard keypress
player prefab
edit player appearance
blue sphere -> green jeep v1
!!! stuff happened, v1 is now blue smoke !!!
!!! after a biiiiiigly amount of time... !!!
blue sphere -> green jeep v2
edit player motion
player movement now 8-way (rounded)
using rigidbody, rotation/velocity method
speed 200
speedRotation 25
horizontal 0
vertical 0
horizontalRaw 0
verticalRaw 0
player now faces direction of travel
quaternian/slerp/45deg method
turret now faces 'up' regardless of travel
v
2nd rigidbody, constrain x, y, z rotation
animator controller exists
add move animation
add "Moving" state
add "Not Moving" state
add transitions
add "PlayerMoving" animation
scale .75>.85 over .2 sec
-------------------------------------------------
Project Shakal v0.1a
"Framework - Update 1"
version committed:
09.12.2022 September
game window: 1024x960
v0.1a changes:
* camera
* motion follows player
* constrain to game area
* lighting
* ground
* player prefab
* basic motion by input
* constrain to game area
main camera - isometric
transform -13.5, 12, -115
rotation 90, 0, 0
scale .75, 1, .75
camera control script: CameraController
set camera view height
camHeight 12
constrain to within game area
camWallX 13.5
camWallZ 115
move camera with player
camPaddingX 3.8
camPaddingTop 1.35
camPaddingBottom 4.25
forward motion updates constraint
camPadding 4
forward motion updates bottom boundary
camProgress -116.5
lighting
transform 15.5, 10, -80
rotation 50, -30, 0
white, directional
ground - plane
scale 4.25,1,24.5
player prefab
blue sphere
transform -16.25, .75, -115.5
scale .75, .75, .75
rigidbody constrain x, y, and z rotation
player control script: PlayerController
using transform.Translate method
speed: 3
constrain to within game area
wallX 20
wallZ 120.5
forward motion updates constraint
playerPadding 11.5
playerProgress -130
-------------------------------------------------
-------------------------------------------------
Project created using Unity engine
3D models created using Unity editor:
player vehicle
player bullet/grenade/rocket
enemy turret
enemy bullet
tree/rock/sandbag (retired)
POW/commando huts
helipad/lantern
POW compound and gate
river bridge
walls
powerup
UI and text created using Unity TextMesh Pro:
title screen text
title screen buttons
lives and score text
null text entry
C# scripts written using Visual Studio
** w/net searching of course, **
** but no copy-paste jazz **
NO AI CODE, during any phase ever, 0.0%
Art created manually using MS Paint and GIMP:
logo
title screen
SHAKAL text art
warzone wall background
white/blue chain backdrop
title screen button icon
Art created using AI art app NightCafe:
POW portraits in story menu slides
sneak peek and promo game art slides
SFX created using jsfxr and audacity
Design, testing, documentation, blablalba
in-house, thanks compound testers!!!
-------------------------------------------------
$ Resources, sound, art, any and everything NOT $
$ self-created goes here... attribution is cool. $
firstly, music, was not made in-house
-made by MOTHERBRAIN! in 2015
found on YouTube and got the feels,
!! will NOT release with this music !!
!! note to self: hire good musician
"Standard Assets" free asset pack
-made by Unity
* SpeedTree: Palm_Desktop
* TerrainAssets: Grass, Cliff, Sand albedos
* Water: WaterProDaytime
"Rock Package" free asset pack
-made by shui861wy
* rock_05 and rock_06 prefabs
"Particle Pack" free asset pack
-made by Unity
* explosion sprite .tif
* found Tvtig guide animating w/particles
-------------------------------------------------
Shakal Website © Sean Evan 2022-2023