Wednesday, May 28, 2014

A large part of my work this quarter was devoted to attempting to implement netcode into the Grind, which unfortunately ended up falling out of scope within the time allotted.


Beyond that, I implemented a rumble feature by changing how unity received controller input, built the main menu and character select screens and functionality, and refined the AI behavior.


The level scripts were also refined, as well as allowing the level designers better affordances of which scripted objects were affecting which objects in the editor. Also I introduced a scripted "breakable wall" which unfortunately didn't get put into the final build.



Level script log:

10:32 AM 4/3/2014
v1.10

Anything that triggers something now only draws line to what it affects when selected; visually it became a mess of lines going everywhere and it was getting somewhat laggy.

Revised; everything that sends an activate impulse now has a toggle to just display when selected or constantly display what they affect.


Added "DodgeNode" tag and DodgeNode object. It's just a null with the tag, and is used to give the Hopper places it can dodge to. This gives level designers a way to make sure he won't doge off a ledge.







4:18 PM 4/10/2014
v 1.11

Timer turn off fixed.

10:19 PM 4/14/2014

New destructable wall in progress that contains individual bricks that have physics properties when the wall is "destroyed".

3:06 PM 4/19/2014

Began main menu script. This is not actually a tool.

Began interface tool for pop-up GUI windows.






3:05 PM 4/23/2014

Increased destructable knockback.

Timers can now deactivate.


Music boxes now can be activated and deactivated.







1:50 PM 5/10/2014

Chests now don't wiggle their collision when they move. Players shouldn't get trapped inside them now.







5:24 PM 5/6/2014

Movers can now loop from specific points.

"KillPlayer" script now can deal specific damage.


Other scripting:

4:18 PM 3/27/2014

Updated character controller input (CHR_CTRL) to use a new controller input method. This fixes the trigger problems and fixes unity's issue with consistently determining which player is which


5:42 PM 4/1/2014

Added system in CHR_CTRL to allow force feedback. Actually getting this to work required some weird directions, because the controller isn't on the player object.

CHR_DMG modified to send force feedback info so it vibrates when hit.

2:14 PM 4/2/2014

CHR_CTRL now also ignores any rumble input sent to it if it's less than the current rumble.

WPN_ATN modified so charging rumbles.


5:45 PM 4/8/2014
Controller input screwed up out of nowhere, and was controlling each other's characters. Fixed by swtiching everything over to using XInput fully. DIDN'T DO THIS FOR START BUTTON.



3:02 PM 4/23/2014

Main menu script

6:47 PM 4/25/2014

Main menu and script along with char select screen. Waiting on having another player character animated before progress can continue.


3:14 PM 5/15/2014

Added pause menu object. Needs to be in a level to show up. It is added to the SceneMGR object because that's always at a point where people can pause.


3:40 PM 5/21/2014

Level transition functionality started. Hooks into the level change event, displays that a level is complete along with which player is in which place


Game ctrl manager modified. Added GiveXPValues.

Level transition completed, waiting for testing.



AI:


3:06 PM 4/1/2014

Snatcher now rotates properly and dies and despawns properly. Rotation bug kinda adds more life into it too.






3:22 PM 4/3/2014
v1.9

Juggernaut's stats fixed again. Damage 1.5, knock 5, stun 1. Stun should prolly never be over 1, knock should be between 3-7.


Sandra now passes target info correctly, and doesn't shoot 3-pointers from crotch. Attack damage is 0.5 (because they throw two boomerangs at a time). Base attack time is 1.5


Found out why in rare occurrances enemies will run off of cliffs: they're within the 0.5 threshold y distance of their target, and their target is grounded, they enable bForwardOverride, which moves them forward regardless of void in front of them. Messing with this number on my end will make monsters never be able to attack players on slopes; the level platforms must be set to be within the range or this will happen.



1:32 PM 4/5/2014


The changes that had wandering in them dissapeared. VERSION CONTROL SUCKS.

Cleaned up AI_MAIN a little bit. Re-implimented wandering.

Added means of taking all players' positions in for getting a move direction. Intended for use in the Hopper, which tries to avoid everyone until they attack.

Hoppers have larger sight radius than most monsters to keep them away from players.

Hopper's prefab changed: Min and max Charge Time reduced to 0.2 to ensure I can unleash it whenever.

New hopper mostly implimented; waiting on Eugene's damage types implimentation so he can avoid projectiles. Weird bug where the first time he attacks he does the normal attack rather than the charge.

New hopper works like this: He goes out of his way to avoid all players, then closes in on one of them, and hops at them to attack. Pauses afterwords, this is the moment in which they can be attacked; they loop afterwords. If approached outside of this window, they back up, and if players get too close or if they're about to walk off a ledge, they jump into the air to a point away from the players.

Level design is now required to impliment hoppers. Their jumping avoidance method requires placing "nodes" in the level - these are just nulls with the "DodgeNode" tag. After it flies upwards, it picks the node furthest from all players, so long as that node isn't over 50 meters away from itself (this distance check is so you can have hoppers in multiple areas inside a level; otherwise you'd have hoppers at the end of a level bouncing to nodes at the begining.)

The reason why these dodge nodes exist is because they're the simplest method of making sure they don't dodge an attack, only to jump off a ledge. :B


   

Added "DodgeNode" tag.





Hoppers: Sheild stuff too out of scope possibly; consider better avoidance by taking multiple nearby players into account when determining move direction. If they're backed into a corner, could also have them jump up like juggernauts do, but land at a more secure place.

Attack has longer pause after? Jump back, if he still doesn't?

Consider having Hoppers be immune to projectiles (for now, they ignore them and deal no damage - "Miss!" pops up when they collide) or possibly even reflect them. Deflect would work too.




Sandra shouldn't move towards targets. Instead, she should get a start vector based on where she spawns, and wander around on her own from that (idle wander, but more pronounced [longer wandering duration] than default monster wandering and more frequent). If she's outside a certain distance from her start, she wanders back closer to it.





V1.10

12:06 PM 4/30/2014

Sandra now moves in a random direction after attacking.


v1.11

Snatchers now have the correct model, and have rudementary animation.

Wisps now have their particles and can be attacked to detonate.




v1.12

Hoppers avoid time cut from 4 seconds to 2.