Skip to content

Survival Shooter: The Sequel - Extended version of Survival Shooter game from Unity

Notifications You must be signed in to change notification settings

mikeleo03/Survival-Shooter-The-Sequel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation



Survival Shooter: The Sequel

Extended version of Survival Shooter game from Unity tutorial


Survival Shooter: The Sequel Game

Survival Shooter: The Sequel expands upon the original Unity tutorial with a wealth of new features. Dive into a world ravaged by Keroco, monstrous frog-like creatures. Embark on 4 challenging quests, following a captivating narrative revealed through 3 cinematic cut-scenes. Progress is tracked with a save system, ensuring your hard-earned victories aren't lost. Failing a quest or depleting your health results in a game over, but don't worry, you can review your performance through detailed gameplay statistics.

The enhanced main menu lets you fine-tune the experience. Adjust audio levels, toggle sound effects, and select difficulty to find your perfect challenge. A loyal pet companion, purchasable with in-game currency earned from quests, fights alongside you. Conquer a variety of enemies – from the basic Keroco to the formidable Raja Keroco and Jendral Keroco. Multiple weapon types, including a default weapon, shotgun, and sword, offer strategic combat options. Enhance your abilities with power-ups found within mysterious orbs scattered throughout the world. And for those who want to push the boundaries, a selection of cheats is available for a truly wild experience. With Survival Shooter: The Sequel, the adventure awaits!

πŸ“ Table of Contents

πŸ“’ General Information

The construction project of the Bandung Bondowoso temple was a great success due to the Android application created by his genie. As a result, he gained immense wealth. Confused about how to spend his fortune, Bandung Bondowoso decided to assemble a PC so that he could play AAAA games. However, he felt that AAAA games did not meet his expectations. Therefore, Bandung Bondowoso asked for help from his genie to create a new game.

The genie of Bandung Bondowoso had previously tried to create a game from the Unity tutorial that is also available here. Therefore, the genie of Bandung Bondowoso decided to modify the game to make it more challenging.

πŸ‘¨πŸ»β€πŸ’» Tech Stacks and Platforms

Unity | Visual Studio | Android

πŸ“– Libraries

Here's list of libraries that used in this project.

Libraries Purposes
TextMeshPro Enables advanced text rendering with better performance and visual enhancements.
Timeline Creates cinematic sequences and animations with control over cameras, sound, and transitions.
Unity UI Builds user interfaces within the game, including menus, buttons, and health bars.
Newtonsoft Json Parses and manipulates JSON data for saving game data or working with external sources.
Version Control Tracks changes to project files over time, allowing reverts and collaboration.
Visual Scripting Creates game logic visually with nodes instead of writing code.

And some Unity core libraries like Unity, UnityEngine, System, and many more!

⭐ Game Flows

Here's Survival Shooter The Sequel main game flows and its interface.

Main Menu Opening Cutscene
Dialogue Cutscene Quest Detail
Shotgun Demo Sword Demo
Mobs Orb Power Up
Pet Shopkeeper
Statistics Cheat
Pause Game Over
Load Game Save Game
Settings Quest Completed

πŸ“± Bonus 1 - Build to Android

Android View #1 Android View #2
Android View #3 Android View #4
Here is how we build the Survival Shooter: The Sequel into Android:
  1. Open the Unity project.
  2. Configure Build Settings: Go to File > Build Settings.
  3. Switch Platform: In the Build Settings window, select "Android" from the platform list and click "Switch Platform" to configure settings for Android.
  4. Set Minimum API Level: This determines the range of Android devices the game can support. Choose an appropriate level based on target audience (at this game, we set it to 24).
  5. Build and Run (or Build): Click "Build and Run" to deploy the game to a connected Android device or simply "Build" to create an APK file.

⌨️ Bonus 2 - Multitype Input

Since the game need to be run smoothly on Android, we also prepare and adapt to be able to handle touch screen interface. Unity offers two main approaches for handling touch screen input in Android game:

  1. Legacy Input System: This is the traditional method and works well for basic touch mechanics.
  2. New Input System (NIS): This is a more modern and powerful system offering greater flexibility for complex input handling.

In this task, we choose New Input System. We enable it by go to Edit > Project Settings > Input System, then check the box next to "Input System Package" and click "Play Mode" to enable it within the project. Here is the snippet on how we use it

PlayerShooting.cs
#if !MOBILE_INPUT    
    // If the Fire1 button is being press and it's time to fire...
    if (fire.IsPressed()) {
        // ... shoot the gun.
        Shoot();
    }
#else
    // Detect the user touch point
    foreach (var touch in Touch.activeTouches) {
        if (touch.startScreenPosition != Vector2.zero) {
            if (touch.startScreenPosition.x > Screen.width / 2 &&
                touch.startScreenPosition.x < Screen.width - Screen.width/7) {
                // ... shoot the gun.
                Shoot();
            }
        }
    }
#endif

πŸ’£ Bonus 3 - Skill Cutscene

Skill Cutscene View #1 (Desktop) Skill Cutscene View #2 (Android)
We implement the skill cutscene trigerred when the player throw the grenade using right click on mouse. To create the skill cutscene, we are doing these steps:
  1. Create a Timeline object: We add this Timeline object to the Main scene. This will serve as the container for the animation sequence.
  2. Attach Player Animator: Drag and drop the Player object onto the Timeline object. This will connect the Player's Animator to the Timeline, allowing us to animate the player's actions.
  3. Create the Grenade Skill Animations' Clips: In the Timeline window, we create the clips for the skill cutscene. The animation is inspired by this Feeding Frenzy game animation.
  4. Modify the Clips' Position in the Timeline: Customize the animation by adjusting and positioning the clips in the Timeline according to our needs. This allows us to create the desired animation sequence. Here is the animation.
  5. Integrate PlayableDirector: Add a PlayableDirector component to an empty GameObject in main scene. This component will control the playback of the cutscene.
  6. Trigger Cutscene with PlayableDirector: In the PlayerShooting script, when the player throws a grenade, call the PlayableDirector's Play() method to initiate the cutscene.
  7. Freeze Enemies before Cutscene: Before the cutscene plays, add code in the PlayerShooting script to disable enemy movement and interactions. This will ensure enemies remain frozen during the cutscene.
  8. Unfreeze Enemies after Cutscene: After the cutscene finishes playing, add code in the PlayerShooting script to re-enable enemy movement and interactions. This will allow enemies to resume their normal behavior.

Here's the detail implementation.

πŸ₯½ Bonus 4 - AR Version

AR Version View #1 AR Version View #2
AR Version View #3 AR Version View #4

In order to make the game more immersive, we also make the AR version. The implementation of AR is using the following additional libraries.

Libraries Purposes
AR Foundation Unity's framework for building augmented reality (AR) experiences across different devices.
Google ARCore XR Plugin Extends AR Foundation to leverage Google's ARCore technology for specific AR features on Android devices.

Here is how we use AR for camera tracking and input manager.

AR Session for input manager in AR Version. XR Origin for background based on camera-tracking.

πŸ‘¨β€πŸ‘¨β€πŸ‘¦β€πŸ‘¦ Task Division

The following is the division of tasks that we carry out.

Task 13521052 13521056 13521064 13521108 13521172
Initialization
Initiate Project βœ…
Setup Unity Project βœ… βœ…
Main Features
Story Mode βœ… βœ…
Save Game βœ…
Game Over βœ…
Statistik Game βœ…
Main Menu βœ…
Shopkeeper βœ…
Weapon βœ…
Pet βœ…
Cheat βœ…
Mobs βœ…
Orb Power Up βœ…
Bonus
Build ke Android βœ…
Multitype Input βœ…
Skill Cutscene βœ…
Membuat versi AR βœ…

πŸ‘ Contributors

Contributors Preparation Time Working Time
13521052 - Melvin Kent Jonathan 10 hours 42 hours
13521056 - Daniel Egiant Sitanggang 10 hours 52 hours
13521064 - Bill Clinton 10 hours 60 hours
13521108 - Michael Leon Putra Widhi 20 hours 52 hours
13521172 - Nathan Tenka 5 hours 80 hours