The Hidden Gems - Game Concept
Title: The Hidden Gems
Genre: Survival
Platform: PC (using Unity Game Engine)
Player Viewpoint: First-Person Shooter (FPS)
The player, a retired army soldier, wakes up on a serene beach after a peaceful sleep in a beach chair. He is approached by an NPC named David who recognizes him and asks for help. The NPC reveals that there are three islands nearby, each infested with dangerous monsters. The NPC promises the player 5 million dollars if he can retrieve a rare gem from each of the three islands. The player must defend against monsters, collect the gems, and return to the beach to claim his reward—all within a time limit of 3 in-game days.
David is a lapidarist who collects unique stones from different places. At the start, David recognizes the Player and asks for help.
Dialogue Example:
- David: "Hello, sir! Please wake up!"
- Player: "Huh? Oh, hi. Who are you?"
- David: "I’m David, a lapidarist. I collect unique stones from different places. But today, I need your help."
- Player: "Help? With what?"
- David: "There are three islands nearby, each infested with dangerous monsters. On each island, there's a rare gem. If you can retrieve all three gems and bring them back to me, I'll reward you with 5 million dollars."
- Player: "5 million dollars? Why me?"
- David: "I recognized you as a retired army soldier. Your skills are perfect for this task. But be warned, the monsters are fierce, and time is limited. You have only 3 in-game days to complete this mission."
- Player: "Alright, I'll do it. Where do I start?"
- David: "Your journey begins with the boat over there. It will take you to the islands. Good luck, and stay safe!"
- Player: "Thanks, David. I’ll be back with those gems."
- David: "I’m counting on you! Remember, time is of the essence."
In "The Hidden Gems," the islands are inhabited by formidable monsters that serve as guardians of the rare gems. These creatures are the primary adversaries the player must overcome to complete the mission.
- Monsters will engage the player within a certain proximity.
- Their primary attack method is a melee strike delivered with their hands, dealing 20 damage to the player’s health per hit.
- To defeat a monster, the player must shoot it three times with their firearm. After the third shot, the monster will be eliminated.
The game features three distinct islands, each covered in a uniform grass texture to maintain visual consistency. Each island presents unique challenges, with 8 enemies per island guarding the rare gems.
- Setting: The game is set on a beach with tropical, tranquil surroundings. The boundaries are defined by thick bushes.
- Time of Day: The game starts in the morning, giving a fresh and bright feel.
- Key Landmarks:
- Windmill: Serves as a visual landmark.
- Wooden Boat: The player’s transportation between islands.
- Three Islands: The locations where gems are found.
- Boundaries: Prevent the player from leaving the designated area.
- Movement: W, A, S, D keys
- Shooting: Left mouse button
- Reloading: "R" key
- Interacting with Objects (Boat/Gems/NPC): "E" key
- Health System: Health packs restore health; player dies if health reaches zero.
- Boat Navigation: Drive the boat to travel between islands.
- Conversation: The NPC initiates dialogue and explains the mission.
- Transaction: The NPC will exchange the gems for 5 million dollars.
- Melee Attack: Enemies perform melee attacks.
- Spawning: Enemies spawn on islands and attack the player on sight.
- Lighting: Direct lighting simulates sunlight for realism.
- Camera: FPS camera controlled by the mouse.
- Event: The game begins when the player awakens on the beach and is approached by the NPC.
- Trigger: The NPC approaches and starts a dialogue.
- Event: The player collects all three gems from the islands.
- Trigger: Picking up the final gem updates the player’s objectives.
- Event: The player returns to the NPC with all three gems and receives 5 million dollars.
- Trigger: The player interacts with the NPC after collecting all gems.
- Event: The player fails to return the gems within 3 in-game days.
- Trigger: Timer tracks the in-game days. If the limit is reached, the game ends in failure.
- Event: The player’s health reaches zero.
- Trigger: The player dies due to enemy attacks.
- Event: Player takes damage from enemies and uses health packs to heal.
- Trigger: Enemy attacks reduce player health; health packs restore it.
function gameStart() {
playerAwakes();
npcApproaches();
npcDialogue("I need your help to retrieve gems from the islands.");
}
function collectGem(islandNumber) {
player.collect(gem);
gemsCollected += 1;
if (gemsCollected == 3) {
updateObjective("Return to the NPC to claim your reward.");
}
}
function checkWinCondition() {
if (player.interactsWith(npc) && gemsCollected == 3) {
npc.giveReward(5000000);
displayMessage("Congratulations! You have won!");
endGame();
}
}
function checkTime() {
if (gameDaysPassed > 3) {
displayMessage("You have run out of time. Game Over.");
endGame();
}
}
function checkPlayerHealth() {
if (player.health <= 0) {
displayMessage("You have died. Game Over.");
endGame();
}
}
function useBoat() {
if (player.interactsWith(boat)) {
boat.start();
navigateTo(islandNumber);
}
}
This prototype plan outlines the high concept, world, mechanics, and event logic of The Hidden Gems. The game offers a blend of exploration, combat, and time management, challenging the player to complete the objective within the given time frame.
- Type of Asset: 3D Objects
- Where it is used: Main scene, main island to decorate the island
- URL: https://assetstore.unity.com/packages/3d/props/simple-free-beach-models-287370
- Type of Asset: 3D Objects
- Where it is used: NPC talk
- URL: https://assetstore.unity.com/packages/3d/characters/humanoids/lowpoly-survival-character-rio-273074
- Type of Asset: 3D Objects
- Where it is used: To let user gain health as a health kit
- URL: https://assetstore.unity.com/packages/3d/props/first-aid-jar-285565
- Type of Asset: 3D Objects
- Where it is used: To collect gem
- URL: https://assetstore.unity.com/packages/3d/props/stylized-crystal-77275
- Type of Asset: 3D Objects
- Where it is used: Skeleton model as enemy
- URL: https://assetstore.unity.com/packages/3d/characters/humanoids/fantasy-monster-skeleton-35635
- Type of Asset: 3D Objects
- Where it is used: To have island in game
- URL: https://assetstore.unity.com/packages/3d/environments/island-assets-56989
- Type of Asset: 3D Objects
- Where it is used: To have shooting character in game
- URL: https://assetstore.unity.com/packages/templates/systems/low-poly-shooter-pack-free-sample-144839
- Details of what the tutorial helped you with: Helped me to learn how to pick up an object
- Tutorial URL: How To Pick Up an Item - Unity
- Details of what the tutorial helped you with: Helped me to understand how the health bar works
- Tutorial URL: Health Bar Tutorial
- Change Made: Used static dialogue images without character animation
- Reason for the Change: Did not find any free character animation in Unity
- Issue: Player cannot drive the boat
- Details: Attempted to disable player control and enable boat control, but it did not work. Used collider and made it triggered. When the user presses 'E,' it starts the timeline and moves to another island.
- Controller Asset Name: P_LPSP_FP_CH
- Type of Controller Used: Unity Asset Store Controller
- Controller Details:
- W to move forward
- A to move left
- D to move right
- S to move backward
- T to inspect gun
- R to reload
- Q to change gun
- Mouse scroll to change gun
- Mouse movement to look around
- E to trigger events
- Script:
GameTimer.cs
- Details: Starts a timer of 60s in each island. The user must collect the gem within 1 minute; otherwise, an end-game canvas opens, and the user can restart the game.
- Script:
player_death.cs
- Details: There are skeleton zombies, and a slider tracks the player's health. Health decreases by 20% on collision with each zombie. After 5 collisions, the player dies, the end-game canvas opens, and the user can restart the game.
- Script:
SkeletonScript.cs
- Object: Skeleton@Attack
- Details: Attached to the skeleton. If the skeleton is hit 3 times by bullets, it dies.
- Script:
Projectile.cs
- Object:
P_LPSP_WEP_Handgun_03
(Child ofcharacter_for_island_island
) - Details: Detects bullet collisions with objects tagged as skeletons. After 3 collisions, the skeleton dies.
- Script:
player_health.cs
- Object:
character_for_island_island
- Details: Controls the health bar, indicating the remaining health. After picking up a health kit, it refills the bar.
- Script:
pick_up_stone.cs
- Object:
crystal_17_2
- Details: If a game object tagged as Player collides with the gem, it activates. When the user presses 'E,' they collect the gem.
- Script:
npcconversation.cs
- Object:
Rio
- Details: Opens a dialogue box when the player collides with Rio. Pressing the left key changes the dialogue.
- Script:
pause_game.cs
- Object:
pausemenu
- Details: Pauses the game by setting
Time.timeScale = 0
and shows a pause canvas. The resume button restores the game by settingTime.timeScale = 1
. The exit button allows the user to exit the game.
- Script:
main_scene_to_first_island.cs
- Object:
Boat
- Details: Attached to the boat. If the player collides with the boat, a canvas appears. Pressing 'E' plays the timeline and changes the scene.
- Script:
level_changer.cs
- Object:
boat_for_islamd1
- Details: If the player has not collected the gem, the boat tells them to collect it first. After collecting the gem and pressing 'E,' the player moves to the next scene (island).
- Script:
last_npc_talk.cs
- Object:
Rio
- Details: After the player collects three gems and collides with Rio, a dialogue box opens, indicating the player has won the game and can exit.
- Script:
GameTimer.cs
- Object:
GameTimeManager
- Details: Assigns 60 seconds per scene. If the player completes the task within the time, nothing happens. If not, a "lose" canvas opens, allowing the user to restart the game.