GithubHelp home page GithubHelp logo

turtle-dinner's Introduction

Turtle's Dinner

An immersive Unity game integrated with Arduino, centered around an environmental topic.

Image text
Image text

In this game, players take control of a turtle's movement using an ultrasonic sensor, guiding it through the ocean to feed on jellyfish. However, the ocean is also littered with plastic bags that look similar to jellyfish, posing a threat to the turtle's health. It is important to avoid these plastic bags as they are harmful to the turtle's survival.

Eating jellyfish increases the turtle's health, while mistakenly colliding with plastic bags decreases its health. Failure to avoid an excessive number of plastic bags compared to the jellyfish eaten will lead to a failure of survival. As the game progresses, day and night cycles alternate. The plastic bags accumulate, with an increase in the turtle's movement speed, will result in a growing challenge.

This game aims to demonstrate the impact of plastic pollution on marine life. The player can see the pollution under a sea creature's eyes, understanding the need for sustainable practices to preserve our environment.

Design Process

Inspiration: Discuss and diverge our thinking, determine the theme as ocean pollution. research

Research: According to the research on marine pollution, we found that the plastic bags and jellyfish are very similar, which make sea turtles mistake them for jellyfish and eat them, many sea turtles died from this. So we set the game to the player control the sea turtle, and distinguish the difference between jellyfish and plastic bags, to make the correct judgment.

Model: We designed and built a ring-shaped terrain in order to realize that the turtles could always move forward (pulling up the terrain around and in the center, using materials to color the different positions of the model to distinguish between sand and rock parts). Afterwards, existing models (turtles, jellyfish, plastic bags, rocks, water plants, etc.) were used for the decoration of the scene. terrain

Game Implementation

Scenes:
There are 3 scenes - home page, gameplay interface, and gameover interface. The home page briefly introduces the game and features a "Start" button for users to begin playing. When entering the game, the gameplay interface displays the health bar, the number of consumed jellyfish, and the number of mistakenly consumed plastic bags. After the game ends, the user is directed to the gameover screen, where they can choose to restart the game or return to the home interface. Added a image animation to every scene achieve a natural scene transition.

Player:
The player experiences the game from the perspective of a turtle, attempting to survive in the ocean. The script takes Arduino's output as player's height, forming variable-speed movement along a circular orbit.

Image text

Consumption:
When collision detected, the item is considered as eaten by the turtle. The quantity of jellyfish and plastic bags eaten is stored and displayed on top of screen. A health bar on the top demonstrated the health condition by proportion. The color of the bar changes based on a customised colormap, with greener filling indicating better health and red warning for poor health.

Spawner:
The spawner randomly initiate items within the range of player's orbit.

Light changes: Create two directional lights: sun and moon, simulate day light and night light. Use 'transform.RotateAround' and 'transform.LookAt', causing the game object to orbit around the origin and gaze at it.

Background Music: Create a game object for the audio manager, use Awake() method, find all existing audio manager objects and destroy the excess ones to achieve continuous looping of the music.

Demo

Link to package: https://artslondon-my.sharepoint.com/:u:/g/personal/s_wang0320222_arts_ac_uk/Eesr-1PSpLNIiB4xWmBTzG8BD5jrvgPQOdMIkRp-8cdNMQ
Start screen is under "Assets\Start\Scenes\start"

Link to video: https://youtu.be/XD-ZxmEl4HY

References

https://www.youtube.com/watch?v=fMd3B0T5ow0&t=437s
https://www.youtube.com/watch?v=_lREXfAMUcE
https://www.bilibili.com/video/BV1P5411Y7Da/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=b445cf31ae0695a5486703750f1ee614 https://www.bilibili.com/video/BV1po4y1m7VY/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=b445cf31ae0695a5486703750f1ee614

models: Objects purchased online, we reconstructed in Unity.

turtle-dinner's People

Contributors

rebeccasy avatar qingyi-www avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.