Games Programming 1 assignment work from Goldsmiths, University of London.

Developed by: Jinhao Li, Han Dong

GitHub page: iMixBlue/LimitSpaceGame: a game <3 (github.com)

Overview:

This project is a 3D game with an anime-style aesthetic, centered around the theme of "Limited Space". Players assume the role of a character who is under the control of an evil grandfather.

The game's challenge lies in completing a series of tasks set by the grandfather. Throughout this process, players will gradually uncover the complex and intricate relationship between the character and her grandfather, coming to the realization that freedom is still an elusive goal, even after the completion of tasks.

After completing all tasks, players unlock the teleportation portal to the final destination, only to discover that the exit leads back to the same room, realizing the inescapability and being deceived by the grandfather again.  This plot twist perfectly embodies the game's theme of "Limited Space," highlighting the player's confinement and inevitable fate.

Our game not only offers a rich gameplay experience but also provides ample scope for future expansions in narrative and functionality. The logical and well structured design of our code makes this project easily adaptable and expandable, and we look forward to continuously optimizing and enhancing the gaming experience in future developments. 

Parts of the game system design:

In our game, the classes related to the character are designed to be intuitive. We use a composition design pattern for the character's Inventory and RespawnManager. This means that the character will “have” an Inventory and a RespawnManager.

Also, we have an interface called “Usable”, which is applied to all items that can be used in the game. The benefit of this is that if we want to add more items in the future, it will be easy to expand the system.

Finally, the DiminutionExecuter class uses this Usable interface. This means it can be compatible with other usable items, which is important for the overall design of our game.

This UML class diagram shows the variety of objects in our game and how the classes are structured and related. Each class stands for a different interactive object in the game, with its own set of characteristics and ways of behaving.

The “Car” class has many properties and methods. The properties include things like the car's power and how much control it has, which relate to how the player will control the car.

The “Bounce” class is a basic class with a “pushForce” property. This property is in charge of the strength of all the bouncing actions in the game.

Classes like “Fan”, “Trampoline”, and “Smoke” inherit from “Bounce”. They give specific actions to the game's fans, trampolines, and smoke. For example, the Fan class controls how fast the fan spins, the Trampoline class plays jumping animations, and the Smoke class controls the particle effects for smoke.


The “RetriveArea” class represents a specific area in the game designed for detecting and handling item pickups. It contains an “item” attribute, which refers to a “GameObject”. There's also an “OnItemGetAction” event, which is triggered when an item is acquired. The “OnTriggerStay” method within this class would likely be invoked when an item remains in this area, to add the item to the player's inventory and destroy the item object in the game.

The “Lerper” class is used for interpolating movement between two points. It possesses two “Transform” type attributes, t0 and t1, representing the start and end points, respectively. The “curve” attribute is an “AnimationCurve”, controlling the rate of interpolation. The “T” and “speed” attributes govern the progress and speed of the interpolation. Its methods, like “ApplyLerp”, “ToT0”, “ToT1”, and “IsLerpRotationDone”, are used to perform the interpolation, interpolate towards the start or end point, and check if the interpolation rotation is complete.

More code can be seen at:https://github.com/iMixBlue/LimitSpaceGame/tree/master/Assets/Scripts


Comments

Log in with itch.io to leave a comment.

A lot of effort on shaders! QAQ Very impressive. By the way, why the game is kind of buggy hhhh And I enjoy the sound you implemented.

画面有点东西的

多亏LJH

Interesting! i love this game!

Thank UU!