Search Unity

  1. Unity 2018.3 is now released.
    Dismiss Notice
  2. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  3. Want more efficiency in your development work? Sign up to receive weekly tech and creative know-how from Unity experts.
    Dismiss Notice
  4. Build games and experiences that can load instantly and without install. Explore the Project Tiny Preview today!
    Dismiss Notice
  5. Want to provide direct feedback to the Unity team? Join the Unity Advisory Panel.
    Dismiss Notice
  6. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice

Games Mittens' Adventure - Top down shooter + multiplayer

Discussion in 'Works In Progress' started by newjerseyrunner, May 18, 2018.

  1. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    Thank you.


    I'm currently writing a neural network and a genetic algorithm. I'm having some trouble writing a good AI for the vehicles and I've used neural networks before in racing game so I'm going to give that a try. It'll be nice because I can train multiple versions for different difficulty levels.
     
  2. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    2,475
    You may be interested in
    Evolving Neural Networks NEAT With 3D Cars + Tutorial

    also check this guy channel
     
  3. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    That is exactly the type of thing that I wrote today. Mine is a little bit more complex as my neural network has four layers and a thousand neurons, but the idea is the same. I’m evolving them by putting them in a room with an enemy that spawns in a random location and attacks the brain until it’s dead, then it spawns a new enemy. The ones that are bred are the ones that get the most kills and survive the longest. I’m evolving a generic version, then I’ll also evolve them for the specific map they’ll be placed in.
     
  4. FoolishGamer

    FoolishGamer

    Joined:
    Jul 6, 2012
    Posts:
    8
    Man, this is an ambitious project for a 1 man band. Its impressive how much has already been put into this. Multi-player and multiple game modes! I definitely dig the cats versus rats universe you based it on. Also, the use of verticality in a top down is something I haven't really seen other people do. Of course I don't think I have seen cat soldiers in tanks either. So you might have cornered the market there.

    Just wondering, are you using Unity multiplayer services or something like Photon? Have you needed to code anything to compensate for latency such as using prediction?

    Congratulations on the work so far. I will continue to follow.
     
  5. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    2,475
    In this example you can expand easily to n number inputs and outputs on layers, as you like.
    But in NN, it is irrelevant if you have 3 or 100 layers. For second layer is only matter number of nodes.
    There is some paper discussing about it.

    But teaching techniques is pretty much the same.
     
  6. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    Thanks for the encouragement. So far I have just written the multiplayer to work over LAN using the built in networking. I used encapsulation for the networking layer though, specifically because I figured that I might replace it at some point. When I implemented it, I just wanted to see something working. If there seems to be significant interest in my game once I start showing it off beyond this dev blog, I may convert to a real multiplayer system. I counteract latency by doing all the animation on the client to avoid jitter but that's it. Over the LAN, latency is not really a big deal, but I do know a little about how to do that so if I go true online multiplayer, I will write some.

    I've probably read those papers. You may have even read some that I wrote. :p. Breadth and Depth evolve quite differently and are suited towards different tasks. Breadth allows for a large range of combinations of behaviors, where depth allows for more defined behaviors to a point. I chose 4 because with how I've programmed my neurons, the minimum number of layers required to create an XOR logic gate is 3, so I added one more to allow combinations from that. Breadth is also much easy to do backward propagation calculations on and more reliable, however, I'm using a genetic algorithm to train them, which doesn't matter as much. An interesting note is that I always write neural networks with feedback loops. I have special output nodes that loop back around into special input nodes, which creates some really deep behaviors.

    I set up some initial DNA with some hand written path to allow the simplest behavior: aim the gun at the enemy, if the enemy is close and in a vehicle, back up, if they're close and not in a vehicle, run them over, and if they're far move towards enemy. I'm debugging the network and evolution system today and will probably evolve a test batch overnight.
     
    Antypodish likes this.
  7. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    My neural network is completely debugged and I've written a default set of DNA which will more or less mimic what I had programmed for the vehicle AI. It's been a while since I've programmed a network so I had to remember how to visualize it.

    I've also created the test environment, 12 identical rooms which will spawn 12 copies of the same individual. This way I get an average performance score rather than taking an individual score, which seems too variable. I spawn in one enemy at a time for each vehicle, which fight until one of them dies. If the enemy dies, it respawn somewhere else, but if the vehicle dies, it's done.

    I iterator between two different scoring systems, one that prioritizes survival and longevity, and one that prioritizes killing efficiency. It also iterates between types of enemies, each of which have different behaviors. Some are very aggressive, some aren't. Some put out bursts of damage and some continuously fire. Some throw grenades, some don't and some jump around a lot.

    I allowed it to iterate through both scoring system and all enemies three times with the same individual because I wanted to make sure that my tests were sound and that I got the results I expected before starting to evolve anything. It also gives me a little more insight into exactly how the different enemies stack up against each other.

    Screen Shot 2018-11-15 at 9.50.23 AM.png

    AR - I expected these guys to produce the lowest survival scores because they have a long range and put out a ton of bullets. They basically don't stop shooting unless you stun them or they lose sight of you. I also expected them to give the AIs the lowest killing score because they jump around a lot when you look at them, they're the fastest enemies, and they have the highest health.

    Pistols - This is the canon fodder of my game so I expected the AIs to do the best against them. They are armed with only pistols, but they do throw grenades. They're also not very aggressive. They're the dumbest enemies too and lack any real kind of evasive maneuvers so I expected them to have high scores in the killing. They also have fairly low health.

    Shotguns - I expected this guy in the middle for survival because while it's weapons are way more damaging than the pistol guys, their aim isn't that good and they're not very aggressive. I'm very happy that it seems right smack in the middle of the AR and pistol scores. I expected them to also be in the middle for the killing score. They're behavior is not much more complex than the pistol guys, but they have higher health.

    Stalker - I was surprised at the survival score for this enemy. It has an AR, but it doesn't continuously fire it. This does make the AR significantly more accurate though so I think what's happening is this guy isn't shooting as much, but hitting much more often. I was also surprised by how high the killing score was, I suppose it's because this enemy likes to get into a good spot then stay there, which allowed bombs to land on it over and over again.

    Cats - These are your allies and the toughest entities in the game. I expected the networks to get a pretty low score in terms of survival. The cats only have pistols, so they're not quite as good as the AR guys, but are extremely aggressive so it makes up for it. I expected the networks to score poorly here in the killing category , the cats are the smartest ais in the game.


    Now that my baseline is set, it's time to evolve some networks. I expect to do mostly testing on the genetic algorithm today and likely run thirty to fifty generations overnight.


    A side effect of doing this experiment I predict is that I'll discover some weird behaviors of the AI that need to be fixed. Neural networks tend to find and exploit bugs in systems and cheat.
     
  8. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    2,475
    Yep, I love AI with NN based "cheating" ;)

     
  9. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    So I'm only six generations in with a population of only eight and already I see some fascinating behavior. It's nearly tripled it's scores from the base state and already I see why. It's default values had it throwing bombs when it was way too close, so it'd end up damaging itself. It's increased the distance that it starts throwing bombs for and it's also doing something really interesting. It's tossing the bombs out behind the enemy, which has less chance of hurting the network, and causes the enemies to be blasted towards the tank, which makes it easy to run them over. It's switched to getting most of it's kills by splattering rather than the main weapon. It's quite efficient at this actually already. I'm planning on creating several small populations, then interbreeding them, just to avoid a possible local minimum situation.
     
  10. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    I've seen that robotic presentation before, it was great.

    So I got some cool behavior in a group of 8 over 50 generations and going to breed a few more small groups, then crossbreed them.

    I did notice that they found an exploit. They found a set of circumstances that causes the frame rate to drop, which causes the rat's AI to not work as well. I've both fixed the problem with the rat AI and the exploit that causes the frame rate to drop. Neutral networks are such great testers.
     
    Last edited: Nov 16, 2018
  11. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    Since I don't plan on doing much work during Thanksgiving week, I've spent some time making sure that I can run automated tasks during this time. I will probably allow the tank AI to do training for more than a week, which will probably end up being around 500 generations.

    Here is what a tank in generation 50 looks like as it's going through it's training. There are 12 instances of this fight happening at the same time. As you can see, it's reluctant to use it's weapon when the enemy is close because it hurts itself more than the enemy does, but it gives the enemy a long period where they can just chip health down, so I expect some behavior to evolve to correct that.

     
    Last edited: Nov 19, 2018
  12. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    I just got a huge confidence boost about how I did my main menu. The way you select a multiplayer match is by selecting the levels you want to play, then checking the game modes you want, then it randomly selects one.

    The Halo Master Chief collection just updated their multiplayer menu. It’s almost identical to what I did. Good thing I posted this somewhere in the 2nd page of this thread or else no one would believe me that I came up with t on my own.
     
  13. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    My neural network for the tanks is evolving along nicely. It’s slow, but it’s steady progress and it’s work that gets done while I sleep so it’s definitely worth it.

    I am going to make a hard push next week because I have my first full campaign alpha test planned on Saturday. I need to update the hint system in case the player gets stuck or lost, and I need to make sure that all triggers work perfectly.

    My tester will play through while I record them and take notes on anything of note. I expect she may get lost a few times, I don’t expect her to forget any of the mechanics but I do expect there to be a little bit of learning time for the controller. I layed out the first level mostly to practice movement so I hope that by the second level, she’ll be able to hit her targets with the generous aim assist. I expect that maybe some jumps or ledges she may get hung up on, all of that will be fixed before I send it off to my second tester next week.

    After that sill consider the campaign in code freeze status and finalize the multiplayer.
     
  14. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    2,475
    I do wonder, how many inputs and outputs you have in your net?
    Can you not accelerate the game.

    This is what I did on my NET. Simply accelerating physics, just for training.
    As long is not breaking critical elements like collisions, if needed.
     
  15. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    I had considered seeing if I could do that. I think it would take too much work to do right now for the demo stage, but I may invest that time later for the full game.

    I have 16 inputs and 10 outputs. The enemy targeting is controlled by the driver so there is an x and y offset to the enemy. The distance to the enemy, the relative angle of the enemy from forward. A raycast distance forwards backwards and in both directions offset 20 degrees. The tanks health and whether or not the enemy is also in a vehicle. The rest don’t have real inputs but are loopbacks from the output.

    The output basically maps to the controller plus some helper outputs. There is an x and y offset to put the crosshairs at, an x y movement offset which maps directly to a player controller and a fire button. There is also an angular crosshairs and movement offset. The rest of the outputs aren’t used but all outputs are connected to those special input nodes.

    The ATV network that I’ll have to evolve I’ll also include a line of sight input but the tank lobs bombs so it doesn’t need line of sight.

    I’ve increased the width of the hidden layers as well when I saw how little CPU even a dozen tanks were taking in the profiler.
     
  16. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    I did some more polishing, added some instructions in same places where I think the player might get stuck. All on timers or something to not annoy players that don't need help. I also solved the animation bug with the quadrupeds where the rear feet weren't moving correctly, but introduced a new bug so I'll need to solve that tomorrow.

    I'm also doing some final linking. I've added the ability to actually quit the game without the editor, as well as get back to the main menu from the game. I've also introduced a Pause button.

    Screen Shot 2018-11-26 at 4.34.31 PM.png

    Of course, any place I can put a lolspeak replacement in, I'm doing it. In cutscenes they even say "meow" in place of "now."
     
    Last edited: Nov 26, 2018
  17. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    Demo is getting closer and closer. I was able to play the campaign all the way through today with only minor bugs. I also recorded the entire thing and did a voiceover to act as a walkthrough for anyone who downloads the demo and gets stuck (also linking my alpha testers to it.)

    I beat the demo in about a half an hour, and I expect most players to be able to beat it in two. This should make the full game have about 10 hours of campaign content.

     
  18. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    I'm still on track to have by first full-campaign alpha test this weekend. I've been playing it all the way through over and over again, writing down bugs, then crossing them out and repeating.


    My tanks are about 200 generations into their evolution and they are still performing better than each previous generation. I will continue to breed them until they reach some sort of local minimum. I will likely use my hardcoded versions for the demo, and continue to evolve these as I build the rest of the game.
     
  19. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    Oh baby, is it looking good. All of those little nagging things that I just accepted because they weren't core to the experience are almost completely cleaned up and it's starting to feel more like a product.

    I added a fastest time and highest score display on each level, so that you have a reason to go back and play it again. I've found myself trying to beat my high scores on some of the levels and it's interesting to see how fast I can really speed run through some of them. I'm having my first alpha test tomorrow.

    I expect:
    She might get confused about where one of the switches is in The Village
    She will get lost in Rat Maze
    She will die 3-5 times total, because I expect her to play on "Casual"
    It will take about 2-3 hours to complete the game because they'll hunt around for upgrades
    She will comment that the controls feel weird at first, but should be acclimated by the end of the tutorial
    She may pick a single weapon and stick with it, or they may start to discover certain weapons are better for certain enemies
    She may forget certain moves like double and wall jumps
    I expect to get a laugh out of some of the bloodier gibs
    She will find about half of the guns/upgrades
    She will try her best to shove the tank through the gates of The Temple even though it's clearly blocked off and might succeed
    She will fall from high places repeatedly, but get less as time goes on
    She will somehow blow herself up, either with a rocket or grenade and I'll get a dirty look for laughing
     
  20. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    I've up until now only had testers deal with isolated experiences but I just finished my first play-test of the demo. It took about two hours, which is what I expected and there were a number of things I found out. This is mostly a list for my own reference, but I figured everyone else might be interested too.

    General:
    Dead enemies should be more contorted because from overhead it's difficult to see who's standing/sitting and who's laying dead. Perhaps I'll give dead enemies a dedicated blood decal at it's head to show that it's really dead.

    The cursor kept going up the walls and she kept shooting above enemies. I think I'll remedy this by having it do a series of checks if it's on a vertical wall: if it's got an enemy in it's sight, just fire as is, otherwise, check if there is an enemy level with the player, and if so, level the gun and fire.

    The levels are too long to start from scratch if you die near the end, I need checkpoints. I will implement them for every difficulty except for the hardest, which I'll require you to beat the level in one go. I thought just leaving the doors unlocked would be enough, but one of the longer levels doesn't have any doors and there is a boss at the end of it.

    Fine control is easy on a keyboard because you kinda flutter the keys, but with a joystick it's far more difficult and she constantly said like he was out of control. I think I'll tie his speed to the square of the joystick value rather than it's true value.

    Overwold
    She didn't realize this was an overworld, A hint needs to pop up if the player doesn't go into the first level within five seconds.

    Landing
    Player didn't move cursor much, aimed by moving. Jumped directly from the ramp to the shotgun, which I didn't expect, but was thrilled by. I'll leave this option available.

    Village
    She jumped in the fountain and her allies followed her. They seemed to have gotten stuck in there, need to add that to the navmesh.

    She started aiming the weapon more, which is exactly what I expected, she seems proficient with aiming now.

    First death taking on a guy with a shotgun in the closed box where she couldn't get the cursor on him fast enough because it was on a wall.

    The max jumps are not easy for her, I should implement a ledge grab if you're just off from the jump.

    She didn't realize that she was supposed to be looking for switches, even though she saw the doors. I need a popup like in Quake "This door is opened elsewhere."

    She's starting to really use the melee function and getting up close to both deal maximum damage and collect the health faster, this is the push-forward combat style that I worked so hard to steer the gameplay towards. I think I've nailed it.

    Temple
    She drove the tank backwards for most of it, I expected the player to make a 3 point turn. I need to slightly alter the controls so that the tank prefers to move forwards.

    She started to see that she needs to jump up to shoot enemies above her as they can hit her easily, but most of her bullets don't land.

    The ramp up the spiral was not obvious despite being the only thing in the room, needs a light.

    She tried to get the secret rocket launcher that you're supposed to have to get the double jump to reach, but she cheesed it by wall jumping... hmm. Might move the rocket launcher to somewhere else that can't be cheesed and put armor there instead.

    "isOnGround" seems to be messed up when going down a ramp, as double jumping from it was weak, not sure why since I use my own system with coyote time. Increase coyote time?

    Catwalks
    She's not sure what the armor is, needs an audio queue for the pickup like each gun.

    Despite multiple forks, she went the same way I normally do. I designed this by use of lighting and it seemed to have worked.

    She fell on the double jump, this needs a box next to it to make retrying it easier.

    After the level, she got stuck trying to get back up. Five jumpers in a row before really learning about them isn't good. I need to figure something else out, maybe just open up a teleporter?

    Rat Maze
    Was confusing, but not for the reason I expected. I need to add a lot more light and make the ground more distinguishable from the walls.

    She also got nearly to the second switch before reaching the first one, I thought I walled you off from that area.

    She got trapped in the end room where she's meant to shoot a rocket or bomb at a broken wall. I need to put a hint in there that triggers after twenty seconds or so after the boss dies if you still haven't bombed that wall. She played Zelda enough to know which wall was special, but not how to break it.
     
    Last edited: Dec 3, 2018
  21. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    So last night and this morning I made a ridiculous amount of improvements.


    First, I noticed that the jumping seemed different in the editor and out, which was weird because none of my math requires is dependent on the frame rate. I realized that I had done a differential incorrectly and recalculated the derivative. This was why max jumps were so tricky for her.

    I decided instead of a vertical auto aim, just to add some resistance to the cursor when you try to push it up a wall (and an assist when coming down a wall.). This effect is subtle, but seems to really confine the cursor more to the floor, as soon as you try to bring it up a wall, it slows down. This affects only a controller, I don't want to take any control away from a mouse user.

    I added checkpoints for all levels, and some even have multiple checkpoints.

    I added a lot of hints and popup messages for things like doors, breakable walls, and I provide an objective at the beginning of each level.

    I reworked some of the level design and added some things to make navigation easier.

    I changed the tank code so that it prefers to move forwards and will reorient itself to if need-be.

    I moved some of the advanced weapons to places that can't be cheesed with wall jumps.

    I made the player speed relative to the offset of the joystick squared to have more control over finer movements.

    I redid a lot of the lighting in the maze level and changed where some doors were to block off more of it at first.

    I've also decided to cap the frame rate at 30. There are a number of reasons for this, mainly so that I keep a consistent frame rate during intense split screen battles. I can also add more blood.
     
    Last edited: Dec 3, 2018
  22. Gor-Sky

    Gor-Sky

    Joined:
    Jan 28, 2018
    Posts:
    35
    I really am a lazy reader so i actually didnt read a lot from this thread.
    Just wanted to say that i find you really inspring! Being so motivated and analyzing a lot - you seem to be e very productive and energetic person:) Can everyone play the demo when it's done?
     
  23. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    I don't expect many to, it's more of a blog.

    Thanks and yes. There will be a full game released in a year or so for either 5 or 10 bucks, but the demo with 6 levels will always be free.
     
    Gor-Sky likes this.
  24. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    Tons and tons of polish, just ironing out minor bugs that show up here and there.

    The camera would jitter sometimes and I couldn't figure out why, turns out the AI that kept it away from walls had a bug where it retraced too far and always thought the character was occluded. There was also a bug in my zooming math which caused a quantized value to pop out instead of a continuous curve.

    Altered the shaders for smoke to make it way more visible and fixed a bug with the first few renders of a smoke frame.

    I added zones that have different materials so that the correct color dirt gets kicked up by footsteps and vehicles. It also allows for sounds, so in the water, each footstep makes a small splash.

    Fixed a problem where one of the checkpoints spawn the player after a required trigger to fill the rest of the level.

    Added more gore to the gibbing system.


    I haven't trained the neural networks for a few days, it'll be interesting to see how long it takes them to adapt to the alterations that I made to the vehicles.
     
    Last edited: Dec 4, 2018
  25. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    Today I went into my special scene that has rooms with every enemy type and I debugged all remaining behavioral bugs that I could find. The enemies didn't melee if you were underneath them so I fixed that because a lot of my enemies jump at your during their melee attack. Some enemies also would continue to stalk me after I became invisible.

    I also added the melee weapon today. You can drop all your weapons and fight by punching everything in sight, but I also have a sword powerup, as well as an "enchanter" powerup which makes your attacks more powerful and creates a magic smoke from either your claws or sword. This will make it so that it's technically possible to beat the entire game without picking up a single weapon.

     

    Attached Files:

    Last edited: Dec 6, 2018
  26. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    I put my speed running skills to the test today. I've speedrunned most of my favorite games so I've got a wide variety of way to break games under my belt and I put my game through the paces to see what exploits I could find. I found a lot of weird edge cases and corrected them.

    I was certain that there was no way to clip through the map, I have code specifically to test for that case so no matter what I did, that code did it's job. I clipped through a few times but it was corrected instantly. I tried pushing myself with explosives and having all of the different enemies and vehicles try to push me into corners of all angles.

    I tried corner clipping to try and wall jump in places that I shouldn't be able to and tried to get myself to be able to land on walls that I shouldn't be able to. I found a way to stick to the wall, which I decided to leave in because you can't do anything other than fall down once you get to that state and cats are good climbers.

    I found out you can preserve the force I use to slide you off of large slopes to gain extra speed, which was an easy fix. You could also use slides on walls facing downwards to get a boost up, which I removed.

    I tried clipping through corners where I knew two separate pieces of geometry met, but found it impossible.


    I’ve had multiple people tell me they want feedback on the health of their vehicle. Instead of adding a health monitor, I decided to simply add some visual feedback. The vehicles have six states now: good, small smoke, big smoke, small fire, big fire, dead. This provides way more feedback for your own vehicle as well as the enemies. It feels more satisfying now to beat up in the enemy tanks now that they get beat up faster.
     
    Last edited: Dec 6, 2018
  27. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    Here you can see some of the polish compared to what had been. The tank battle is far more colorful and feels easier to control. It has a lot more visual appeal and I think the power of the tank mortar comes off better and the gore of the gibs are more excessive. Even in the thumbnail you can see two of the blue enemies being torn apart in a cloud of blood. Notice that I get gibbed myself at the end of the video, Mittens' head comes to rest right at the foot of the tank staring right up at the camera.



    The thumbnail also gives you a freeze-frame of what the bomb looks like. It's design was inspired by the bombs in Super Metroid, which was one of my favorite classic games weapon.
     
  28. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    It’s been a week since my first real play test and I’ve solved most of the issues that I saw and gave the player more subtle assistances. I also think I’ve solved all of the “where to go” issues too.

    I was still concerned about some players forgetting about the bombs because you get them at the end of a cutscene and aren’t forced to use them like the other powerups. So I decided to show it off twice and make a little QuickTime event after you beat the temple level where Mittens throws a bomb to open the path ahead.
     
  29. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    Just finished the second playtest. All of the improvements that I implemented seemed to have worked well and I see some other improvements that’s I could make.

    I see a few minor navigational upgrades that I can do as well.

    I’m so glad that I decided to focus on and release a small demo because it’s allowing me to hone in on good level design concepts and stuff before expanding to the bigger world.

    I plan on changed four sticky notes worth of stuff then send it out to a remote tester as well to get further feedback. in the next week as well as debug the coop system so that next weekend I can do a coop playtest. The weekend after that I plan on doing a multiplayer playtest.
     
  30. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    I kept getting feedback that the controller felt strange under some circumstances and I realized there was a fundamental mathematical error in how I calculated the movement vector. I wanted the thumbstick to have a geometric push, so if you held the stick all the way to the left it'd move at 100% it's speed but if you held it 50% left, the actual movement would be 12.5%. This worked because I cubed the values, but then I realized that this created an asometotic draw towards the two axis and that 45 degrees was actually the hardest direction to travel, which is where everyone was having trouble. I fixed the issue by multiplying the vector as a whole by it's magnitude squared, rather than it's components. I've also removed the completely free range of motion from the thumbstick and movement now snaps to multiples of 7.5 degrees. This makes it easier to move at exactly 45 degrees and not drift off of a thin catwalk.
     
  31. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    The addition of the melee weapons greatly expands the types of play that are supported. For the hell of it I decided to try to beat the level Catwalks with just the sword.



    0:00 - I show that I start in the hardest difficulty setting.
    0:12 - I switch to my "Enchanted Excaliber" for this challenge
    0:30 - I hear a bunch of enemies get alerted and try to stay out of sight, but end up having to make a run for it, they hit me hard.
    0:40 - I take a second and wait to ambush anyone stalking me, doesn't look like anyone
    0:55 - I'm trying to figure out how to tackle the two shotgunners in front of me
    1:00 - I hear a bomb come from behind, so there was someone stalking me after all and panic. I accidentally throw a bomb and clear out the gunners, so I rush to the button.
    1:15 - This guy one shots me with a pistol and kills me (or maybe he punches me?)
    1:26 - Attempt number two, I spawn at the first checkpoint just below the first switch
    1:40 - I'm really not sure where to go, the enemies in my way are the ones that hurt me so badly the first time, try sneaking up?
    2:25 - Great, back to the same gunners with the same amount of health.
    2:40 - I try to just rush up, but they shoot the barrels and blow me up
    2:55 - Ugh! I gotta find a different approach, wait a minute, I start with full health, maybe I can sacrifice some to get a better position on them right now.
    3:00 - Nice easy grenade jump behind them, they didn't even see me! Feel the fury of my sword!
    3:15 - Nice acrobatic wall-jump / sword swing. You can see the enemy's head fall down onto the barrels.
    3:30 - Not sure why I went in that hallway, I thought the chain gunner had seen me
    3:40 - Another leap onto unsuspecting enemies and a fury of sword swipes, I grab the Time Shifter because otherwise the next hallway would shred me
    4:00 - With the Time Shifter I'm able to sidestep the majority of the bullets fired at me and tear through them in a rain of blood and body parts
    4:10 - That doctor brought the worst enemy back to life, he starts stalking me with this assault rifle so I run
    4:35 - That's something weird that just floated by, what could it be?
    4:55 - Celebration for beating the level without firing a shot.
     
  32. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    I did more honing if parameters on my camera and player, preparing for the next big push of play testing the cooperative mode.

    I also made it so that you can deflect enemy bullets back at them with the sword. It’s quite satisfying. I did this because I found it annoying to have no long range abilities and made the sword just somewhat of a novelty in the campaign. Now it gives you some defense as well (I had planned on simply giving you a shield but I like this better.)
     
    Last edited: Dec 12, 2018 at 1:47 AM
  33. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    I was playing Halo yesterday on the level Derelict. In this particular level there are long cubbies that players hide in and I use grenades to get them out. I often throw one grenade on the ground, then toss another as it explodes. This pushes my second grenade into the cubby where my first one can't reach. I don't use this technique much, but realized how useful it can be. So I implemented it in Mittens. Explosions now throw push grenades around. This creates a lot more chaos in levels where there are a lot of grenades going off, which is always fun.

    I’m doing a coop playtest today, I think I got all of the issues with it out of the way.

    Screen Shot 2018-12-12 at 12.55.12 PM.png
     
    Last edited: Dec 12, 2018 at 5:58 PM
  34. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    505
    Check out the co-op!

    After we did our playtest, we went back into one of the levels to do a recording. My MacBook was surprisingly able to both handle the game and do the HD recording without any lag so I feel good about my engine.

    I’m the player on the left, my wife is playing on the right. Both of us are using Xbox One controllers.

    I’m especially proud of how it sounds. Unity only has one microphone so I had to do some tricks to get the sound to work properly. It not only takes into consideration how far away each player is, but also whether or not they are behind a wall and it adjusted the volume and pitch accordingly. The soundtrack also intelligently reduces itself during intense firefights.




    0:13 - We start the level together
    0:20 - My wife switches to a flamethrower and drops down to burn everything while I double chaingun everyone up above
    0:35 - I come down to the floor to help my wife as she’s literally lighting the whole place (including both of us) on fire
    0:50 - We’re trying to clear the area and hunt down all of the doctors so that it stays clear
    1:40 - This part of the floor is clear so we move on
    1:50 - I get the time shifter powerup and in coop you can see better how it works, notice how when my wife gets close to me, time slows for her, but it runs normally far away. Imagine the implications for multiplayer
    2:10 - Fully automatic chain gun and a double shotgun grenade launcher creates utter chaos
    2:30 - Look at the amount of blood and bullet holes!
    2:50 - We split up so I can go activate the second switch while she finishes clearing the bottom
    3:34 - We meet again to head upstairs together
    4:20 - Together we shred through the enemies
    4:40 - My wife uses her phaser to shoot the guy I normally gib through the wall
    4:55 - I fire a bullet spray at the angled corner to bounce them into the hallway
    5:30 - I die from a grenade and respawn