-
Notifications
You must be signed in to change notification settings - Fork 4
Getting Started
- assets: Contains supporting assets that aren't directly loaded by the game. This can include wiki images, documentation, texture files, etc.
- source: Contains the source code of the game following the libGDX project layout.
The game uses the Gradle build tool. Open the source directory with IntelliJ or another IDE with Gradle support to automatically install dependencies. Alternatively, Gradle will install dependencies when you first run the game.
A pre-setup Intellij project is provided which contains tasks to run and test the game.
-
Create a new directory .idea under source/, so that the path of this folder is game-engine/source/.idea/
-
Copy the contents of .idea.template into .idea. You should now have the path game-engine/source/.idea/workspace.xml
-
Open the source directory in IntelliJ as an existing project. Say yes to importing Gradle settings.
-
Under project settings (File > Project Structure > Project), select version 11 as the project SDK and language level.
- Run or edit the game using the provided build tasks.
Alternatively from a terminal inside the source directory, you can run:
-
./gradlew run
to run the game. -
./gradlew test
to run the unit tests. -
./gradlew build
to build a release version of the game. -
./gradlew clean
to delete the generated output directory.
Dependending on your OS, you may need to substitute ./gradlew
with gradlew.bat
or gradle
(if globally installed).
Depending on your version of MacOS, you may encounter an issue with the game launching but no screen appearing. Make sure you check the MacOS Setup Guide to troubleshoot this issue and get the game running.
The example game provided is called Box Boy. It is a simple game with a player that runs around a forest filled with ghosts. The following sections will give a light overview on how the game is put together.
The game is composed of a number of screens and can only display one screen at a time. Within Box Boy there are 3 screens:
- Main Menu Screen:
/screens/MainGameScreen.java
- Main Game Screen:
/screens/MainMenuScreen.java
- Settings Screen:
/screens/SettingsScreen.java
The screens are managed by GDX Game: /GdxGame.java
, which makes it easy to move between them like a state machine.
When you run the game, you'll first come to the Main Menu Screen. From here you'll see the main menu, where the 'Settings' button will take you to the Settings Screen, and the 'Start' button will take you to the Main Game Screen.
Screens can also contain game areas which makes it easy to create different levels or areas within a screen. An example in the game of this is in the Main Game Screen, which currently has a Forest Game Area. The Forest Game Area is a good place to get started within the code: /areas/ForestGameArea.java
.
Screen are responsible for initiating important game services, drawing the background and UI, rendering the entities and handling input. When using game areas, some of the screen's responsibilities can be delegated to the game areas.
In the game, the Main Game Screen intialises important services such as the Physics Service, Input Service, Entity Service, etc., as well as loads assets and creates the UI for the screen. The Forest Game Area is then responsible for loading game area-specific assets, drawing the background tiles, drawing game area-specific UI, creating the trees, player and ghosts, and playing the background music.
Learn more about screens and game areas in Game Screens.
There are a number of entities within the game including the trees, player and ghosts.
Learn more about entities in Entity Component System (ECS).
Camera Angle and The Player's Perspective
Achievements Trophies and Cards
πΎ Obstacle/Enemy
βMonster Manual
βObstacles/Enemies
ββ- Alien Plants
ββ- Variation thorns
ββ- Falling Meteorites
ββ- FaceHugger
ββ- AlienMonkey
βSpaceship & Map Entry
βParticle effect
[code for debuff animations](code for debuff animations)
Main Character Movement, Interactions and Animations - Code Guidelines
ItemBar & Recycle system
πΎ Obstacle/Enemy
βObstacle/Enemy
βMonster Manual
βSpaceship Boss
βParticle effects
βOther Related Code
βUML & Sequence diagram of enemies/obstacles
Scoring System Implementation Explanation
Buff and Debuff Implementation
Infinite generating terrains Implementation Explanation
Game Over Screen and functions explaination
Buffer timer before game start
Rocks and woods layout optimization
Magma and nails code implementation
Guide: Adding Background music for a particular screen
History Scoreboard - Score Details
Listening for important events in the Achievements ecosystem
Hunger and Thirst icon code guidelines
Hunger and Thirst User Testing
Buff and Debuff Manual User Testing
The New Button User Test in Setting Page
The Main Menu Buttons User Testing
Infinite loop game and Terrain Testing
https://github.com/UQdeco2800/2021-ext-studio-2.wiki.git
πΎ Obstacle/Enemy
βObstacle testing
ββ- Alien Plants & Variation Thorns
ββ- Falling Meteorites
βEnemy testing
ββ- Alien Monkeys & Facehugger
ββ- Spaceship Boss
βMonster Manual
βParticle-effect
βPlayer attack testing
ββ- Player Attack
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Changeable background & Buffer time testing
Game over screen test sprint 4
New terrain textures on bonus map test sprint 4
Achievements System, Game Records and Unlockable Chapters
Musics Implementation Testing plan