Backlit's FPS Engine [BETA]
This is a beta of my FPS engine.
WHAT IS WORKING
options menu: access through the letter o key to open/close it. Allows you to specify WASD or arrow keys for movement, and spacebar or left mouse button for shooting
preliminary vehicle shooting
Newly implemented pathing! And refined pathing in v0.5!
There's four weapon types:
Instant - makes the weapon effect appear at the trace collision point, whether unit or ground Projectile - makes a projectile that flies to the trace collision point, whether unit or ground AOE constant - used for flamethrower, basically adds all the units within the AoE to a unit group and then does the selected weapon damage while the spacebar is held down it will cycle the firing mechanism, so that you continue to spray flames as long as space bar is down Linear Constant - basically runs the projectile op a bunch of times. this is for autocannons, gatling guns, fully automatic weapons, etc.
Each weapon is defined by variables, so to change the range, just alter that one variable for that weapon.
damage is applied by a custom effect that has no graphics, because the traceline handles making the hit graphic appear
There are 4 actual weapons, one to exemplify each type of weapon operator. Rifle, which is instant, rockets, which are projectile, flamethrower, which is AoE constant, and autogun, which is linear constant
movement is with the arrow keys. It can be changed to wasd by hitting the letter 'O' key
this is a beta, meaning that while the vehicle system is there, it's not finished. you can get int and out of them, but the firing triggers aren't different for the vehicles yet, so weapons and vehicles don't work well together.
There's some stuff built into this to keep memory use down. example is the 'set camera bounds' trigger that moves the camera is off when theres no movement taking place, etc. basically turning off triggers that would be called but not complete due to conditions not being fulfilled.
WHAT IS NOT WORKING
FPS->TPS and back custom action is messy (camera wise)
multiplayer support (moot point till lag is fixed)
hp, ammo count, UI
but I figure it's decent right now so if the triggers in it help anybody out, coolio.
spacebar - shoot
arrow keys OR wasd - movement
letter O key - switch between arrow keys and WASD for movement
mouse - look around
period - cycle forward thru weps
comma - cycle back through weps
letter q key - release the mouse (no trigger to reverse this)
letter v key - get in/out vehicle
teal units are vehicles you can get into, white are non-hostile enemies. once AI is implemented there'll be red, which would be hostile. white units are just there so you can test the weapons on them.
if you want to put units other than marines, goliaths, tanks, or science vessels, you'll need to enter e height value for them in the global data bank first.
you'd do this: save real value . at string "unittypename" where . is the height value of the unit and "unittypename" is the exact string of the unit type's name, because the unit hit detector calls the value from the databank to see if it hits based on a string that is the potentially hit unit's type.
sorry the map is so plain. the idea is to get the guts of the engine working before anything else. there's terrain height and cliff changes to demonstrate the trace taking terrain height into account
IN FPS MODE: wasd or arrows are forward/backward and side to side strafing. holding a strafing key while also holding a forward/backward key makes you strafe sideways while moving in the forward/backward direction. In other words you move at an angle when using a forward/backward key and a side to side strafe key.
IN VEHICLE/TPS MODE: same as above UNLESS YOURE IN A TANK. If you're in a tank, the side keys ceae to be strafing keys and instead turn your tank in whichever direction you choose. The idea is that then the mouse will turn the turret, but that's not coded for yet so in the meantime you can look with te mouse while using the keys to move and turn, but the turret doesn't change direction with the mouse look.
Steal the code and make it better!