The HUD is small because I messed up when taking these screenshots.
    The new graphical style made the game quite scary.
    Luckily you have plenty of firepower, especially if you cheat.
    The pause menu I forgot, with the added brightness slider.
    The dynamic lighting effects are cool.
    January 9, 2017 | 83 comments

    Survival Shooter Extended

    Here's my version of the official Unity tutorial project, Survival Shooter. Basically it's the original project with a lot of features and polish piled on top.

    This game has 10 waves, but it loops around with increased difficulty after wave 10. However, It starts to break down around wave 10. The amount of enemies and effects become overwhelming and the difficulty is not very well balanced. You can however fix that yourself, there's a link on the right for you to download the entire project to alter as you please. I don't enforce any licenses or regulations on your use of the project or its assets, but there may be some tied to the original tutorial project. Those still apply obviously. Please check out the original tutorial and tutorial project just to be sure if you intend to do something with the project you're not sure if is allowed or not.

    Among the changes I've made are different enemy types with different behaviors, enemies now come at you in waves, there are power-ups, as well as numerous other tweaks to effects etc. And enemies dissolve when they die. Spent quite a bit of time on that one as I've never really written a shader before and this one was a bit tricky. Hope you find something useful in there. The tutorial is great and I feel like I've made some worthwhile additions to the project.

    Based on the official tutorial available here: https://learn.unity.com/projects/survival-shooter-tutorial

     

    Øyvind Strømsvik's picture

    About Øyvind Strømsvik (TwiiK)

    I've been passionate about games all my life and started dabbling in game development about 15 years ago with BlitzBasic,... read more but I quickly lost interest and began doing 3d modeling instead. 3d modeling remained a hobby and I picked up game development again around the release of Unity 2.0. My driving force behind wanting to get back into game development was my lost interest in commercial games as they started appealing to a group of gamers I was no longer in. Indie games were the only games that still looked interesting, but at the same time some of them looked like they would be just as fun to make as to actually play. And many of them were made by just one guy.

    Tagged with: 3D, Isometric, Shooter, Unity
    Pedro Gordinho's picture

    Pedro Gordinho

    Helo,
    I just wanted to say that your version of the survival shooter is absolutely amazing. I love the ricochet bullets.
    Unity should put this project on their web page.
    Congrats and thank you for sharing the project.

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Pedro Gordinho: Thank you. That means a lot to me. :) Sorry for the late reply. I haven't been working with Unity nor checking my website for quite a while.

    Felipe Reis's picture

    Felipe Reis

    @Pedro Gordinho: Pedro?
    Pode me ajudar com isso?

    Unity 5 Survival Shooter Q&A

    Andrew's picture

    Andrew

    @Pedro Gordinho: What browser can I download this on? Because it says that chrome doesnt work for this.

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Andrew: You can download the Unity project using any browser, but you can't play the game in the Web Player using Chrome. Any other browser will work. If you're on Windows you can use Internet Explorer and if you're on Mac you can use Safari.

    Or you can you can use Google to search for and download Firefox or Opera independent of your operating system.

    bear's picture

    bear

    It's look amazing but it is not work with unity 5 because there are error.
    please reupload or tell me how to fix it.
    Thanks.

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @bear: Hi, bear. I'm sorry to hear that. I don't have time to reupload it for Unity 5, I'm not sure I even want to. Some people may still use Unity 4, especially those who are following along to the official tutorial. All my new projects use Unity 5, but these old ones are done with Unity 4.

    PS: I don't know what errors you are getting so I can't help you without more information I'm afraid.

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @bear: Some more people also asked for a 5.x version of the project so I upgraded it and uploaded it alongside the old one. You can download it from the link above.

    Btw, the only thing that to be done to make it work in Unity 5.x was to rebake the navigation mesh. Unity even told me that it had to be rebuilt when I opened the project. Apparently it's because the navigation mesh storage format has changed from Unity 4.x to Unity 5.x.

    Giannis G's picture

    Giannis G

    Your job is awesome. You should create some video-tutorials too about this extended version.

    Atahan Solmaz's picture

    Atahan Solmaz

    Hello,
    It's looks like awesome but I have problem on build. When I choose build and run game for windows (x86). First unity logo came on screen then game is stucked on blue screen. Where did I mistake :(

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Atahan Solmaz: I'm not sure. I haven't tried that myself. I'll try it if I have the time and see what I get.

    Arman's picture

    Arman

    Have you tried to build this on Android?
    I am getting terrible performance with the original tutorial when I build it for Android.
    https://answers.unity.com/questions/973553/survival-shooter-tutorial-slu...

    Your thoughts would be greatly appreciated.

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Arman: No, I haven't. I'm pretty sure this project, both the original and my version, is way to expensive performance wise for android - because of all the rigged characters, point lights etc. And there's a ton of unoptimised particle effects etc. in my version. I'm sorry to say, I have no experience with mobile whatsoever. I build games to run on my own desktop computer with no thoughts given to other people's setups to be brutally honest. It's part of the freedom I have when I'm not making commercial products. :D

    To both of you. Sorry for the late reply. I've been away for about a month.

    HACKER_522's picture

    HACKER_522

    Please help me! i m not able to connect to Assets store

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @HACKER_522: Haha, I'm sorry. I can't help you with that. :p

    Depending on your issue there's a bunch of help on the forums and the internet in general. The issue I most often have is that I just get a white screen when trying to use the asset store. I haven't actually found a solution for that, but the issue always solves itself after a while. I just wait a couple of hours or a day and try again.

    baysal's picture

    baysal

    Can I use that project?

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @baysal: Use it for whatever you like. I'm not sure if the official Unity tutorials come with any license agreements, but if they do the same ones apply here. But I'm pretty sure you can use them however you want.

    Matus's picture

    Matus

    Hehe, I made a multiplayer version of Survival Shooter. Then I discovered this. Good job. Multiplayer is here: http://madvas.github.io/survival-shooter-multiplayer/#!/survival-shooter...

    Tom's picture

    Tom

    @Matus: Dude that is sick but can you send me a download link, I will not give to others

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Matus: That's really cool. I can't wait to get my hands dirty with the new Unity multiplayer, but I have some projects I want to finish first. I'm trying to become better at actually completing projects rather than just piling up unfinished ones. :p

    Alejandro's picture

    Alejandro

    @Tom:
    how did you make the multiplayer thing. I would love to input that into my project. Please help me dude. I love it

    Tom's picture

    Tom

    Hey, love your version but I am trying to edit the waves by making the hellephant spawn in an earlier wave but I cannot seem to figure out how to change it please help and I have also noticed a glitch where the enemy would get stuck inside an object and I would have to restart the match.

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Tom: All the waves are defined in the CreateWaves() method in the WaveManager.cs file. Wave 1 for example looks like this:

    Wave wave1 = new Wave();
    wave1.entries.Add(new Wave.Entry(enemies[0], 10 * difficulty));
    waves.Add(wave1);

    To add a Hellephant to it just change it to this:

    Wave wave1 = new Wave();
    wave1.entries.Add(new Wave.Entry(enemies[0], 10 * difficulty));
    wave1.entries.Add(new Wave.Entry(enemies[2], 1 * difficulty));
    waves.Add(wave1);

    The whole method and way of handling the waves is really quick and dirty. Normally I guess you would make your own editor script so that you could manage your waves through the inspector.

    As for the glitch I'm aware of it. You can try tweaking the colliders and rebaking the nav mesh to get rid of it.

    Jhonny's picture

    Jhonny

    Hello , I wonder how to add pickups , which slows down shots , and increases the damage already tried, they created prefabs and all the straights , however the manager pickups not add them .. Thank you

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Jhonny: I'm sorry, but I don't understand your question or problem.

    Alejandro's picture

    Alejandro

    @Øyvind Strømsvik:
    I beleive he is asking how to make more pickups like your's that do different things e.g to increase damage or slowdown how fast the bullet from the player goes. This would help me too if you knew how.

    Bill Wheatley's picture

    Bill Wheatley

    This is really awesome. It helps me with trying to keep a UI Image over a gameobject as a selection box.
    I appreciate the effort with getting this reuploaded for unity 5.x. Thank you sir!

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Bill Wheatley: Thank you for the kind words. :)

    Anmol Singh's picture

    Anmol Singh

    Thank you brother for this plz share projects like this one !

    Charles 's picture

    Charles

    Hi Øyvind (:

    Thanks a lot for sharing this very nice extend ! Well done, this is a good job.
    I tried to play a little with it and it's quiet funny. I want to stop the reflection form the bullet / shoot on all the environment elements but I can't find anything :/ Have you got any idea how to do this ?

    Thanks a lot & have a nice day :)

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Charles: Sorry, but I'm not entirely sure what you're asking. Can't you just disable the reflection power-up?

    Luis Quiroz's picture

    Luis Quiroz

    Hi, I just have a couple of questions.
    Why did you take the menu off? And do you know how can I add it again? Great job anyways!!!

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Luis Quiroz: Thanks! Good question actually. I guess I didn't notice there was a menu. But if there is a menu in the original tutorial then surely you can just follow the tutorial and add it back in?

    I won't help you, sorry. It should be easy enough to do on your own. :p

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Øyvind Strømsvik: I guess I lied. :p

    After you wrote this I noticed that Unity has released an official version of the project with very cool assets so I updated my own project. At the same time I included the pause menu and a few other features.

    SPS's picture

    SPS

    The project is showing errors while building.

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @SPS: No it doesn't. How do you think I built the webplayer?

    The problem is in your end and if you want help you at least need to say what errors you're getting.

    SPS's picture

    SPS

    I'm new to unity.I don't understand that much.When i try to build a standalone player for windows the building screen closes.

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @SPS: Sorry, but I can't help you with that. Ask on the Unity forums and copy your error message or take a screenshot of it.

    sps's picture

    sps

    Anyways I'm going with the old version.Can you please tell me how i can add controls for android.The caracter only fire's,it doesn't walk or run on android

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @sps: You will have to figure that out on your own. I've never done anything for Android.

    sps's picture

    sps

    The new project shows "rebuilding library because the asset database could not be found"error.can you help me out?
    Thanks in advanced.

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @sps: That's not an error. It's just a status message. I never upload the library folder with my projects because it doesn't contain anything important and it's often very big. Just open the project and Unity will recreate everything for you. And you probably have to bake the lighting after you start the project as well.

    sps's picture

    sps

    How do I do that?

    sourov's picture

    sourov

    How do I add a splash image in this project.

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @sourov: Not sure what you mean, sorry. Also sorry for the late reply. Things have been a bit hectic for me both during and after Christmas. :)

    Gilberto's picture

    Gilberto

    I have a little problem with the movement script, the player didnt look at mouse position ;-;

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Gilberto: Hey, sorry for the late reply, but I just downloaded the project and tried it and it works fine for me.

    Are you getting an error?

    joel's picture

    joel

    how do i play the game

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @joel: Either download the Unity project and play it in the Unity Editor or play it in your browser using the Unity Web Player.

    Blixx's picture

    Blixx

    I'm having troubles getting the enemies to slow down, While i appreciate the difficulty for myself, My 5 year old son is dying left right and center,

    I adjusted the values in the enemy movement script both attack and roam speed to lower values even including fractions of a whole number and it's not seeming to take effect,

    public float roamSpeed = .02f;
    public float attackSpeed = .05f;

    Any Thoughts?

    Blixx's picture

    Blixx

    @Blixx:

    And then i feel stupid after i figured it out, Default values are in the prefab for the different entity types... Derp

    Omoi10969's picture

    Omoi10969

    This game is brilliant in every way. Very well done.
    One big problem is that the game doesn't spawn any enemies after wave 11 (9900) score. I am currently trying to edit it and cant find a way to fix it could you please take a look?

    Also how did you add materials to the pickups, I'm trying to make some more e.g. speed boost but can't do it

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Omoi10969: I realize your post is many months old and I apologize for not answering you sooner.

    The waves should go on forever if I remember correctly. I may have to test the game again to see that is still the case. It sounds like one enemy may have gotten stuck or fallen through the world if your score is 9900 because I'm fairly certain it should be 10000 when you complete wave 10.

    As for your questions I'm unable to provide any answers to you because I don't remember how this project works and it would be too time consuming for me to get familiar with it again. I'm sorry.

    saw's picture

    saw

    hello
    i want ask wheres the spawn power script

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @saw: I don't understand what you're asking. All the scripts are in the same place.

    Alejandro's picture

    Alejandro

    @Øyvind Strømsvik:
    I think what he means to say is that in the original game, in the environment is the Zombunny spawnpoint and all those. I think he's asking where is the script to the spawnpoints, since you don't have any on the environment. I think not sure

    Marko's picture

    Marko

    Impressive extension!
    Thanks for all the comments in the scripts- makes easy reading.

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Marko: Thank you! Comments like these are the reason I do it. :)

    no environment's picture

    no environment

    when i put environment there is nothing ..except yellow lines

    Johnny Mac's picture

    Johnny Mac

    WOW! I can not begin to tell you how impressive this is. Fantastic work!

    Alejandro's picture

    Alejandro

    Hey I LOVE this game!!! Very well made, love the new scripts and the hellephant, that is amazing. Two questions are, can I use this for my personal game and can you help me with my enemies. So I added a new enemy with its own animation and all. It works perfectly fine, it attacks and follows me but I am not able to shoot it. The bullets go right through it. Is there a way to make it so that my new enemy can actually get shot. It has all the scripts that the regular enemies have so I'm not sure what it is. If you were able to help with that, it would be amazing. Thanks. P.s does the navmesh really matter if the area is completly flat, or it does matter. Thanks

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Alejandro: Thanks for the kind words. :)

    Sorry for the late reply, I was away for the weekend.

    Do whatever you want with this project. :) As for your new enemy I'm thinking that you need to assign to the correct layer or give it the correct tag or something like that. I haven't looked at this project in ages so I don't know for sure, but something like that sounds like a likely culprit.

    Regarding the navmesh that depends on how Unity's navigation system works. I haven't used it much so I don't know.

    Serj Agopian's picture

    Serj Agopian

    Hey man,

    I've been playing around with this project and adding some new things (I added a movement speed boost, fixed difficulty, going to make a grounded Hellephant that tanks the damage for the Zombunnies at a certain difficulty, and whatever I come up with next) and attempting to fix the bugs in it.

    I am facing a couple of problems which I spent many hours debugging, which is the spawning out of bounds and spawning in an obstacle. I tried rebaking the NavMesh I thought that might be it, but when I attempt at doing that I lose the whole Nav Mesh and I don't have any walkable area. I was wondering do you remember on which Object you baked the NavMesh? Another thing I tried is, in the WaveManager after Instantiating the enemy, I was checking if there is a collision of the enemy.layer and the Shootable Layer which is all the obstacles, however, OnCollisionEnter or OnTriggerEnter would never be called eventhough there would be a collision. What I wanted to attempt to do is if there is a collision return and try again at creating that GameObject.

    Another thing I found is that the Hellephant's layer is Shootable and not enemy. Why is that? Is it safe to change it?

    In addition, after finishing all of these changes and bug fixes, I would like to make the project available to you, so that you can update it. It would be a great open source project where beginners can look at the code and learn from it. Also, commenting as well so the code is maintainable! Appreciate the great work, well done.

    Serj Agopian's picture

    Serj Agopian

    @Serj Agopian: Oh Also the game stops at Wave 11 do you know why?

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Serj Agopian: Hi Serj, I'm afraid that I don't have the time nor the interest needed to help you. I know this sounds harsh, but I don't remember enough about this project to answer your questions, and I don't have Unity 5.3 any longer so if I open the project it would be updated to Unity 5.5 and potentially break.

    This is also the reason I don't have these projects on Github or something like that because I don't have the resources to maintain them, but by all means you're free to make your version of the project available yourself. :)

    I remember there were a few headaches with the navmesh and that it's setup a bit unorthodox, but I don't remember more than that.

    There is no real wave 11 in the game, after wave 10 it starts on wave 1 again and makes it harder. That part of the game may be buggy for all I know.

    Serj Agopian's picture

    Serj Agopian

    @Øyvind Strømsvik: It is all good don't need help in making additions to the project. but I thought you might remember the already written code. Anyways, I will have to remove the whole navmesh soon and implement my own layers for my own pathfinding algorithm for the enemies. When I'm done updating everything I'll post it on Github and share the link here in the comments.

    Yes I finally found out why it ends at wave 11! There is an entry class and you pass all the prefabs there. And yes it is buggy it never is looping after wave 10, have to figure out a way to do that or change the whole wave manager!

    Anyways reading and figuring out the code takes time to find out how things are done, so I can completely debug and make changes. Just another day as a developer! It would have been great if you could shed some light on the code but also if you can't remember it can't be helped because I've been in the same situation would have to read over everything from the beginning.

    Anyways thank you for your time and all your work!

    Tomas's picture

    Tomas

    Hey, your project is amazing! Its helping me a lot to learn about unity! Thanks for making it and sharting it.
    I have a question, im trying to use your pickup system but i dont know how to make the pickups spawn.
    I have been looking in your code for a pickup spawn system or something like that but i couldnt find it, so could you please tell me how you do? Thank you!

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @Tomas: Thanks for the kind words. :)

    As for your question I'm afraid I don't know how to do it. I don't remember much about this project anymore. The best advice I can offer is just to study the project and learn how it works. I'm sure that just searching the code base for "pickup" will get you started.

    Tomas's picture

    Tomas

    @Øyvind Strømsvik:
    Thanks, i did search in the code but i found no spawning system. Also y checked the game objects and nothing.
    Its quite insteresting to learn how the hell the assets is trolling me. xd.
    Thanks for your awesome work again!

    Serj Agopian's picture

    Serj Agopian

    @Tomas: Hey Tomas I've been working on this project recently. The pickups are instantiated in the Enemy Health after the enemy dies. line 203 - 232 approximately. Good luck

    Tomas's picture

    Tomas

    @Serj Agopian:

    Thanks a lot man, i would never have founded it because i have my own Enemy Health script! You rock!!!!

    Serj Agopian's picture

    Serj Agopian

    @Tomas: Anytime man! Tell me if you need anything else!

    iwan's picture

    iwan

    wow this is awesome, thanks for sharing this project dude
    i'm converting your project into htc vive VR wave shooter, and the problem that i'm facing right now is i couldn't shoot to the sky, the bullets track stays flat horizontal.. is this related to the quaternion rot? what line should i change so i could shoot with limitless angle?

    Øyvind Strømsvik's picture

    Øyvind Strømsvik

    @iwan: Thanks for the kind words :)

    Yes, it's surely related to the rotation, but it would take me too long to figure out how to fix it for you. Try some yourself and ask on the forums for help. Doing support for these projects is usually too time consuming for me, especially when it involves trying to make the project do something it wasn't designed for, I'm sorry.

    Best of luck to you.

    Sukhminder 's picture

    Sukhminder

    Thankx a lot for this awesome job bro. Really liked it. Just 1 question that when I was trying to make this my game didnt respond camera movement from mouse in game. Please help. Thankx in advance

    Ram's picture

    Ram

    How can I add jump function to this game? I tried if(Input.GetKeyDown(KeyCode.Space))
    {
    playerRigidbody.AddForce(transform.up * 20);
    }

    but it doesnot work. Any help would be apprieciated.

    Tim's picture

    Tim

    @Ram:

    Hiya Ram, did you remember to uncheck the box for Freeze Position on the Player's Rigidbody component Constraints? Remember that we locked Position Y during the tutorial.
    Hopefully this helps someone.

    SaifAhmed's picture

    SaifAhmed

    OMG, you are amazing how did you do that. you are intelligent the way of thinking and very thing OMG

    micheal milton's picture

    micheal milton

    Hi there

    I have made a few changes to this from what you had.
    I'v added in a settings manager so that the volumes and the brightness are the same over all levels.
    Added a levels system so only the levels they have completed are available.
    Added a level over panel so user can choose to play next level or not shows there level score.
    Made a few changes to some of your scripts and the waves not have any problems that iv found yet.

     Al E.'s picture

    Al E.

    @micheal milton:
    Hi Micheal,
    Would you care to share this?

    micheal milton's picture

    micheal milton

    @Al E.:
    I have no problem sharing this mate i will post this on my website
    http://www.addonsrus.com/index.php?categories/unity.18/

    Al E.'s picture

    Al E.

    @micheal milton:
    Thanks mate, I'll keep checking your website for it

    micheal milton's picture

    micheal milton

    @Al E.:
    should be there now mate

    Add new comment

    1.1.3 - April 18, 2020
    • Upgraded the project to Unity 5.6.7 and moved everything to Github.
    1.1.2 - January 9, 2017
    • Upgraded the project to Unity 5.5.
    • Added Windows and Mac standalone builds.
    • Fixed an issue with a sound that wasn't playing through an audio mixer.
    • Upgrading to 5.5 made the lighting brighter so reduced it a bit to match the old look, but it's still slightly brighter than before because I thought it was too dark before.
    • Added a README.txt to the project.
    1.1.1 - January 1, 2016
    • Upgraded the project to Unity 5.3.
    1.1.0 - November 11, 2015
    • Changed all the assets to the ones in the official Unity 5 version of the tutorial. Except for the player and the enemies because they use my custom dissolve and rim light shader which is essential to a lot of the effects.
    • Added all the image effects and snazzle from the official Unity 5 version of the tutorial.
    • Added the pause menu that I initially forgot.
    • Added a brightness slider to the pause menu which uses an extremely simple image effect I made to darken/brighten the image, because the game is quite dark now.
    • Made it so you can add and change waves through the inspector instead of through code.
    • Managed to make it so my dissolve shader actually glows through the use of emission. Managing to combine this and the rim light effect in the same shader made me feel like some sort of shader super guru.
    • Made the enemy/player hit effect tighter and much nicer in my opinion
    • Removed the directional light, effectively cutting the amount of draw calls in half. The realtime and baked global illumination looks really nice on their own so there was no need for it.
    1.0.0 - November 18, 2014
    • Initial release

    There are no known issues or planned features at this time. If you've encountered a bug or have suggestions for additional features feel free to leave a comment and let me know.