Skip to content

My undergraduate work (national competition awards), an original 3D audio game based on the Unity engine (implemented by C#) that has won many awards.

Notifications You must be signed in to change notification settings

fwyc0573/SavingDodo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Saving Dodo

Introduction

My zero-copy undergraduate work, an original 3D audio game based on the Unity engine (implemented by C#) that has won many awards. The theme of the game is the protection of birds. It's worth mentioning that we collaborated with art students to create the story, characters, etc. It's a complete game, all in all, so feel free to download the EXE to experience it!

Video demonstration

https://www.bilibili.com/video/BV1pc411j7Nf


Project Overview

The key design and technical implementation of the project is as follows:

  • Zero-copy implementation of real-time music beat extraction.
    • First, the Fourier transform is used to transform audio files into the frequency domain and to obtain the relative amplitude values of the frequency bin complex data.
    • Second, calculation of the spectral flux (i.e. the sum of the differences between the amplitude values corresponding to the frequency bins of adjacent frames).
    • Third, spectral flux data is trimmed with the aim of finding distinct beats.
    • Finally, trimmed spectral flux of all frames within a sliding window is averaged and used as a threshold for extracting beats.
    • This technology enables support for beat analysis of any user uploaded songs.

  • Zero-copy implementation of soft object technology.
    • First, getting the bounds property of the sprite.
    • Second, creating a new mesh grid, which involves initialising the mesh vertices and initialising the materials.
    • Third, generating rigid body combinations. Initialise whether each rigid body is rotated or not Initialise the offset of each rigid body with respect to the central rigid body.
    • Fourth, calculating the weight values for each rigid structure (each structure has a different influence on the vertices, with closer reference points contributing more to the final position than more distant ones).
    • Finally, updating the soft object through using position offsets relative to the central rigid body.

  • The parameters related to the difficulty of the game are dynamically adjusted by tracking the user's progress and performance in real time.


  • To achieve better performance, object pool management techniques are introduced.
  • Infiniting loop generation of the game map by tracking the position of the game characters.

Copyright

We have applied for a software copyright for this project (including design of artwork characters and props). Please contact me for any commercial use.

About

My undergraduate work (national competition awards), an original 3D audio game based on the Unity engine (implemented by C#) that has won many awards.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published