GithubHelp home page GithubHelp logo

pal189 / demo-project Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 43.74 MB

Demonstration of project setup, application launching, implementation of audio (using FMOD) and UI elements.

C# 100.00%
project-setup audio app-initialization ui-elements unity game-development unity3d

demo-project's Introduction

demo-project

Demonstration of project setup, application launching, implementation of audio (using FMOD), UI elements.

This project demonstrates the following systems and practices:

  1. Application initialization: application is launched from a single entry point using the sequence of steps - Chain. This makes the process of launching of all the application systems and game session logics consistent and predictable.
  2. Chain: it is an easy manageable sequence of Steps. This system allows not only to create and successively conduct sequences of Steps, but also to pause, to resume, to interrupt and to change the order of Steps during Chain running. Control over the Chain could also be made from inside of the Step. Project shows the most simple use of the Chain. However the ability to orchestrate its content and behavior gives possibility to implement much more complex systems, e.g. AI.
  3. Audio: implementation of audio system based on FMOD. Alongside with base functionality concerned with control over sounds, volumes and VCAs, some more advanced technics are shown. Primarily these are 1) music fading while specific sounds are being played and 2) managing of FMOD engine behavior by changing its parameters.
  4. UI elements: approach to implementation of UI basic elements. It is shown using the example of TransitionButton and TransitionHandler. Two points have to be highlighted here:
    1. separation of UI from game logics. Logics and data must work independently from UI. UI should only display the data and give the user the required points of interaction with the game logics. This is partly demonstrated in SettingsScreen.
    2. possibility to set up and change the behavior of the UI elements without changing the code. This is achieved by implementing simple functionality in MonoBehaviours. Such approach gives VFX designers, artists and game designers more tools for quick experimenting and partly frees the programmer from the duty of implementing such experiments. This approach can and should be implemented not only in UI but in many fields of the game logics.

Please note: this is a small demo project aiming to show only the above mentioned systems and practices. Other systems by all means required for commercial protect, e.g. architecture solution, UI system, etc. are not implemented.

Important: in order to reduce the repository size FMOD libs for iOS (~200 mb, cannot be imported through the package manager) were not imported into the project. This means that builds on iOS are currently cannot be made. If you want to make such a build you have to import those libs into the project. You can download and unpack libs from FMOD package for Unity v2.02.04 which is used in the project on the following link: https://fmod.com/download#fmodforunity

demo-project's People

Contributors

pal189 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.