This is the repository hosting the UWS acktoberfest 2021 Collaborative Game Project.
The project contains some asset packages and tools to help you get started quicker. It also contains Unity's Creator Kit: Beginner Code package, which provides a framework that helps beginners get creating, coding, and designing! If you want, you can dive right in and create your first Pull Request, or follow along with the Tutorial provided! Whether you're a beginner or an expert, You should check out the documentation for the framework, which you can find here.
With the Games Development Society being an educational society and all, we do have some learning outcomes for this project. First and foremost, we want this to be a collaborative project where anyone can contribute and learn the ropes of game development. By the end of the project, you'll have hopefully learned some of the following.
- Learn the ropes of Game Development with the Unity Engine
- Using GitHub to contribute to an open-source project
- Communicate and coordinate with others to come up with ideas and foster those ideas into actual gameplay elements
Speaking of communicating, join our Discord Server! Talk or ask about this project, find other people in your course, or find out anything UWS related!
First, you should gloss over the Project Details. There, you'll find a summary of the type of game we have decided we want to create with everyone this year. Once you've read and memorised all of that, head over to the Contributing section, where you'll learn more about how to actually get started.
Project Details
- Genre: 3D Platformer/Puzzle
- The genre defines the overarching "type" of game that we want to create.
- Setting: Utopia
- The setting tells the player the overall style of the game in terms of time period, architecture, and environment.
- Theme: Pursuit
- The theme is the main characteristic or definition of the game. Not everything in the game needs to be considered with the theme in mind. However, the more things are, the more consistent the game will be!
Tools you'll need
- Unity 2021.1.20f1
- You should be able to install the engine through Unity Hub
- Visual Studio Community (recommended) OR Visual Studio Code OR Rider
- I guess this is optional if you don't plan to code at all.
- GitHub Desktop
- This is optional if you're already an expert git user!
Contributing
We'll be making heavy use of the open-source workflow, which should really help instill good practice when it comes to project management and contributing to projects. Some of the terminology may be unfamiliar to you, so following are some refreshers. You can also always just look up a term in the GitHub Glossary or Google 😋
Quick Glossary Refresher
- Git
- Git is an open source program for tracking changes in text files. It was written by the author of the Linux operating system, and is the core technology that GitHub, the social and user interface, is built on top of.
- Project
- The Unity Project, which is generally accessed through the Unity Hub.
- Repository
- A repository is the most basic element of GitHub. They're easiest to imagine as a project's folder. A repository contains all of the project files (including documentation), and stores each file's revision history. Repositories can have multiple collaborators and can be either public or private.
- Remote
- This is the version of a repository or branch that is hosted on a server, most likely GitHub.com. Remote versions can be connected to local clones so that changes can be synced. If you're reading this in a browser, your remote is most likely the URL of this page!
- Issue
- Issues are suggested improvements, tasks or questions related to the repository. Issues can be created by anyone (for public repositories), and are moderated by repository collaborators. Each issue contains its own discussion thread. You can also categorize an issue with labels and assign it to someone.
- Commit
- A commit, or "revision", is an individual change to a file (or set of files). When you make a commit to save your work, Git creates a unique ID (a.k.a. the "SHA" or "hash") that allows you to keep record of the specific changes committed along with who made them and when. Commits usually contain a commit message which is a brief description of what changes were made.
- Pushing/Pulling
- To Push means to send your committed changes to a remote repository on GitHub.com. For instance, if you change something locally, you can push those changes so that others may access them.
- A Pull refers to when you are fetching in changes and merging them. For instance, if someone has edited the remote file you're both working on, you'll want to pull in those changes to your local copy so that it's up to date. See also fetch.
- Pull Request
- Pull requests are proposed changes to a repository submitted by a user and accepted or rejected by a repository's collaborators. Like issues, pull requests each have their own discussion forum.
- Learn more about PRs
- Fork & Clone this repository to your local machine. You only have to do this once. (how?)
- Create a new branch, loosely named after the feature you'd like to add (how?)
- Open the project in Unity (how?)
From here, you have 2 choices:
- Review any outstanding tasks, pick one, and let others know that you'd like to tackle it by commenting on the issue. If you're not sure how to go about tackling it, ask for help!
- Alternatively, You can totally also throw your own ideas into the mix!
- Work away at anything you'd like to see in the game!
Once you're done creating and are satisfied with what you've worked on, make sure you:
- Commit & Push your changes (how?)
- Create a Pull Request (how?)
- Wait for a project maintainer to review your PR (how boring!)
You can delete your feature branch once your PR has been accepted!
- Make sure to create a new branch for every feature you intend to add. This makes it easier to merge your hard work into the main repository and allows you to submit multiple features simultaneously.