Phoebus_Engine

Practice Engine

View the Project on GitHub oscarpm5/Phoebus_Engine

Phoebus Icon



Phoebus Engine

Welcome to Phoebus Engine!

This engine is made by two 3rd grade students of Design and Development of Videogames on CITM university (Terrassa, Barcelona, Spain) under the supervision and guidance of lecturer Marc Garrigó.


The intent is to create a functional 3D engine with a focus on performance and Audio capabilities (hence the engine name). Because of that, we'll provide a deeper analysis of the audio system further down the web.
If you wish to contact us or provide any kind of feedback, we'll gladly answer all your questions.

We hope you'll enjoy using it as much as we enjoyed making it!


Check out our latest Release!

Check it here!

Engine Overview

Although our focus is in the Audio System, Phouebus Engine does have the basic utilities you would hope to find in an Engine:

Engine Showcase

Audio System demonstration



Controls:

Note that the 3D viewport controls will only work when interacting with the 3D view and won’t work in the menus

To select an object click in the desired object in the Hierarchy Tab (it will turn orange).

Holding Shift when dragging the Far/Near plane buttons in the config/camera panels allows extra precision.

If you have a Component Control on a Game Object AND Engine is Playing:



Audio System

Phoebus Engine has a focus on it's audio department. Thanks to a Wwise integration in our engine, we're able to use funcionts and structures derived from the Wwise application directly into our engine. In order to do so, we've implemented the following components and systems:


Listener

The Listener component can be assigned to any Gaame Object to (you guessed it) listen to the audios in scene. In games, this component would we assigned to the player character (plural, if more than one player). If thaat's the case, a passive-active listener hierarchy has to be implemented in-game. We've already taken care of that problem for you; and the listener component can be flagged both as Active/Nonactive and ActiveListener/PassiveListener.


Source

The Source component correlates to a sound emitter. This sounds (be it SFX or Music) must have been pre-stablished in your Wwise project previously linked tom the engine. Once those sounds have been defined in Wwise, you only need to create a Play-Type event inside Wwise. The *name* of the event is what you need to type into this component. The engine will handle all the rest.



In order to make some adjustment possibles in-engine, we've added some utility functions and options:

Volume

Each sound/music has it's own volume, apart from the total volume of the user. Real volume will be calculated taking both into account (+ possible effects applied)


Pitch

Although the Engine has a PlaySpeed option (config->FPS) if you want to implement slow motion mechanics, each audio has it's own self-pitch RTCP. This makes it possible to slow down select sounds while keeping others normal (if you want to have music keep the same, or have slow-mo effects apply only to some characters).


Blend

We have a pre-determined Blend RTCP into our music tracks, so you can decide when does a transition occur. By default, this transition is linear, but it can be changed and modified inside the Wwise project.


Reverb Zone / Mod Zone

This component defines an area in-game in which sounds reverberate. The "type" of reverberation is defined in Wwise using an auxiliary Bus, but things such as shape, volume or intensity of effect can be controlled in-game.



This component can be used to apply effects that are not reverb effects; to do so, create a new auxiliary bus in your Wwise project and apply your wished effects. After that, include the related plugins in-engine. Add the reverb component and change the bus from default to the name of the bus you created (remember to update soundbanks). Phoebus engine will detect the bus and use it as the effect modifier instead of a classic reverb.



Meet the Team

Member Portrait Linkedin
Oscar Pérez Oscar Linkedin!
Adrià Serrano Adrià Linkedin!



Work division

Disclaimer: Making an Engine (at our currelt level) proved to demand an ungodly amount of time and effort. Not a single feature was done alone without the help, guidance and support of the other member. Nevertheless, some systems were “assigned” to one individual to take the blunt of the workload and the responsability of that feature’s functioning. These assigments are as follows:

License

MIT License

Copyright (c) 2020 oscarpm5

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.