Skip to content

Commit 4f1f2ff

Browse files
authored
Update README.md
1 parent eea9a53 commit 4f1f2ff

File tree

1 file changed

+105
-1
lines changed

1 file changed

+105
-1
lines changed

README.md

Lines changed: 105 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,105 @@
1-
# unity-junior-prototype-6
1+
# unity-junior-data-persistence-prototype-6
2+
3+
## Screenshots
4+
5+
## Table of Contents
6+
1. [Description](#description)
7+
2. [Installation](#installation)
8+
3. [Run](#run)
9+
4. [Credits](#credits)
10+
5. [Contributing](#contributing)
11+
6. [License](#license)
12+
13+
## Description
14+
15+
This prototype is part of the Junior Programmer Pathway from Unity Learn. Its purpose is to teach the fundamentals of gameplay mechanics through scripting in C#.
16+
Unlike earlier prototypes, this one begins with a non-functional game. We were provided with a partially implemented codebase along with a PDF guide that briefly explains the existing code and outlines the tasks we need to complete to get the game working.
17+
18+
If you encounter difficulties, a step-by-step tutorial is also available to walk you through the process.
19+
20+
### Purpose
21+
22+
The objective of this prototype is to follow the mission given on the PDF:
23+
24+
- Scene management
25+
- Create transitions between two scenes.
26+
- Configure buttons so the user can control those transitions.
27+
- Configure a button to exit the application (or exit Play mode, in Unity Editor).
28+
- Data persistence
29+
- Configure buttons in one scene to apply a chosen color to objects in a second scene.
30+
- Save the last color chosen by the user and preselect it the next time the application is launched.
31+
- Inheritance and polymorphism
32+
- Create a new type of object in the simulation, with a variation on behavior derived from a base class.
33+
- Abstraction
34+
- Refactor to reduce duplicate code and improve reusability.
35+
- Encapsulation
36+
- Use getters and setters to protect data from misuse.
37+
- Optimizing code
38+
- Profile example code to identify basic optimization issues.
39+
40+
## Controls
41+
42+
- In main menu, you can select a color to apply to units.
43+
- Click on a working unit to select it.
44+
- Then, click on a location in the world to move the unit there.
45+
- If you click on a resource pile, the selected unit will automatically begin working (e.g., collecting resources).
46+
47+
### Technologies used
48+
49+
- **Unity** – Version 6000.0.47f1
50+
- **C#** – Used for gameplay scripting
51+
52+
### Challenges and Future Features
53+
54+
One of the biggest challenges in this project was understanding what I was supposed to do and how the provided codebase actually worked. It wasn’t immediately clear, so it took some time to explore and figure things out.
55+
56+
We were then asked to implement features that we had never encountered before. In previous prototypes, these kinds of tasks were presented as optional “bonus features,” but here they were part of the main objectives which made it more challenging but also more rewarding.
57+
58+
I also had to learn how to use Unity’s Animator, which was new territory for me. My experience with animation comes mostly from JavaScript and CSS, where I’m fairly confident. Trying to achieve similar effects in Unity was a bit of a struggle at first—but a valuable one!
59+
60+
At the end of the project, I compared my solution to the official tutorial version and was pleasantly surprised to see that our approaches were different—but both worked! This helped me learn multiple ways to solve the same problem and discover new Unity features and scripting techniques.
61+
62+
## Installation
63+
64+
You can download pre-built releases for your supported operating system from the GitHub Releases page. Available builds include:
65+
- macOS
66+
- Windows
67+
- Linux
68+
69+
## Run
70+
71+
To run the program, simply double-click the executable file for your operating system.
72+
73+
### MacOS
74+
75+
Unzip and open the .app file.
76+
77+
### Windows
78+
79+
Unzip and double-click the .exe file.
80+
81+
### Linux
82+
83+
```bash
84+
chmod +x Prototype_6_Linux.x86_64
85+
./Prototype_6_Linux.x86_64
86+
```
87+
88+
### Web
89+
90+
Play on [browser](https://vpekdas.github.io/unity-junior-data-persistence-prototype-6)
91+
92+
## Credits
93+
94+
This project is based on the Unity **Junior Programmer Pathway** by Unity Learn.
95+
Many thanks to the instructors for their excellent step-by-step video tutorials and guidance.
96+
97+
## Contributing
98+
99+
To report issues, please create an issue here: [issue tracker](https://github.com/Vpekdas/unity-junior-data-persistence-prototype-6/issues).
100+
101+
If you'd like to contribute, please follow the steps outlined in [CONTRIBUTING.md](CONTRIBUTING.md).
102+
103+
## License
104+
105+
This project is licensed under the [MIT License](LICENSE).

0 commit comments

Comments
 (0)