- time passed between start and end date(including free days), 162 days(5 months and 9 days), thats 44,38% of the 2019 year,
- source lines of code equals +/- 6000 (value without empty lines),
- Scripts dir contains 101 files,
- 42 music tracks were used, to hear them all you would need 2 hours and 23 minutes,
- the longest thing to do was evironment designing for each minigame level,
- the most tiring work to do for us was projecting minigames with trees (especially for PHP lang),
- adding developer console was the best idea to faster testing times,
- prizes for medals, medals, ProjectZero map overview and additional character were not planned from the start,
- we wanted C# land to be lived by humans but we did not find any interesting asset,
- the most advanced script is NPCHandler,
- most problems were with setting up Pickup script for Puzzle minigame but was edited and now it looks solid,
- thanks to starting project early we managed to finish it in 100%,
- project reached 45 discussions over GitHub, 3 of them were marked as bugs,
- time to ring Project Zero map using the shortest path and fastest character(Slime Rabbit) - 1min 47sec,
- time to ring all paths of Project Zero map with Slime Rabbit character - 4min 30sec,
- project includes 92 graphics, 30 Unity assets,
- HUD inspiraction was from TC: Rainbow Six Siege game,
- playable version contains 52 scenes, project also contains additionat scenes for game cover,
- we wanted to make backpack work like box in which books are stored but due to time limit we took lighter variant and created panel with all books.
🔸 Player creates character by giving name, choosing available model and assigning points to attributes from basic pool. These actions are not mandatory and player has full freedom.
🔸 The game is taking place on the map in which is divided into lands that can be visited. Each of the land is represented by specific language and terrain. On each land player can find living beings that are interactable(NPCs) if player attribute level is suitable.
🔸 NPCs have tasks which player can solve. By approaching the task we mean playing minigame that is accessible to player. More details on each minigame type were described later in that document.
🔸 Money and information are given if minigame level is passed. In puzzle game there are no penalties. In the remaining minigame types mistakes matter. Content in summarizations depend on minigame type.
🔸 Money can be spent in stores.
🔸 Each land has bookstore.
🔸 Book contains information for specific language. Reading it first time will increase character attribute level and unlock more tasks to complete.
🔸 The game target is to meet/remind raised elements.
🔸 Game is done in 100% when player finishes all available minigame levels(not by one approach).
🔸 It's impossible to lose game with the need to start a new one.
🔸 Maze is minigame that can be repeated if obtained results are not satisfying.
Language | Terrain type | Being type |
---|---|---|
C# | woody (spring style) | dog |
Java | waste | cat |
HTML | mountainous | rabbit |
JavaScript | winter | penguin |
PHP | woody (autumn style) | mouse |
Here you will find details about implementend minigames.
Here player's character is positioned on the top of "skyscraper" which is built from several levels. Each level consists of question and 4 answers that can be selected. When player chooses wrong answer, it does not affect skyscraper construction. Choosing correct answer will make current section disappear. Minigame is played until reaching ground.
Pinpin is similiar to skyscraper, however here, player must select correct code fragment from the given language. To select code fragment, player must drag drawing pin to the area of code and then stand on the button that verifies decision. Mistakes count to the amount of currency that can be won.
Typical minigame when it comes to programming. Player must set propely all given blocks of code in designated places. To make game easier for beginners, when puzzle block is set in correct place it will be marked and locked from further movement. On level solve player gets fixed currency amount and information about code that was laid.
In maze minigame player must collect proper code fragments and evade bugs. Collecting bugs affect quality of summarization and amount of currency that can be won. Maze is a type that can be repeated if results are not satisfying(not if player already collected prize).
Map template | Map example | Map e.g. with paths |
---|---|---|
Skyscraper (side) | Skyscraper (top) | Menu |
Character creation | NPC (1) | NPC (2) |
0️⃣0️⃣ top down view gameplay
0️⃣1️⃣ main world split into 5 lands
0️⃣2️⃣ different design style for each prepared land
0️⃣3️⃣ moving beings thanks to Unity navmesh technolog
0️⃣4️⃣ interactable NPCs
0️⃣5️⃣ panel with all books
0️⃣6️⃣ character creator
0️⃣7️⃣ spendable currency in bookstores
0️⃣8️⃣ character knowledge progress by reading books
0️⃣9️⃣ minigame: quiz
1️⃣0️⃣ minigame: maze
1️⃣1️⃣ minigame: pinpin
1️⃣2️⃣ minigame: puzzle
1️⃣3️⃣ 40 levels in total to pass
1️⃣4️⃣ 20 books to check
1️⃣5️⃣ more than 40 music tracks to hear
1️⃣6️⃣ minigames summarization and loading screens also with some knowledge
1️⃣7️⃣ different design each of the minigame level
1️⃣8️⃣ different musical setting in each of the minigame level
1️⃣9️⃣ adjustable settings
2️⃣0️⃣ repetitiveness (it's not possible to pass all minigame levels during one approach)
2️⃣1️⃣ medals
2️⃣2️⃣ prizes for medals (for e.g. additional playable character)
2️⃣3️⃣ special icon designed for saving game status
2️⃣4️⃣ world map overview
2️⃣5️⃣ minimap in player's HUD while travelling through world
2️⃣6️⃣ developer console to test application
Language | Color | Name in Unity | Sample |
---|---|---|---|
C# | lime | lime | |
JavaScript | cyan | cyan | |
Java | yellow | yellow | |
HTML | magenta | magenta | |
PHP | orange | orange |
Keys might differ depending on minigame that is played or current location
W - forward
A - left
S - backward
D - right
B - open/close books panel
F - interact with NPC
Space [hold] - catch and move puzzle/drawing pin
LMB (left mouse button) - buying in shop, opening books etc.
In CREDITS_en.md file you will find references to the elements that were used in the project: assets, music, graphics. They are showed also in game, in Credits section. Credits can be reached using this link.
Warning! To get correct view of 'Game' window in Unity, create profile with 1920x1080 resolution. Set it and then change Scale parameter to minimum assignable value.
2018.3.12f1
v 4.7.1
More photos from creating Project Zero can be found here and here.
References to the recorded videos are available here: link.
Levels unlocking, prizes, penalties were described here, books valuation here.
All used keys with description are described in this thread.
Summarizations content for maze/pinpin/puzzle minigames are available here.
Tasks done for this project are documented here.