Separaty Engine is a game engine made in C++ for learning purposes.
This project has been created by UPC-CITM students with the objective of improving our programming skills to be more efficient and clean. For doing it, we have focused in the basic internal tools, functions and processes that we normally do not take into account during the development of a videogame.
It is important to highlight that our engine is free to use and everyone can give us feedback to continue improving it!
Obviously, we believe that this is not necessary to emphasize, but we will say it anyway: This Engine will be Better than Unity one day!
Visit github page for detailed information regarding code and functionalities: https://iconicgit.github.io/Separaty_Engine/
Our engine has a Main Menu Bar that allows you to quickly access all the functions of the engine, beeing able have a lot of ways to navigate through it. Here you can see of it:
On the File Tab, you will find all the things related with the Scene and Project Creation. In addition to an Exit button.
-
New Scene: Create new scene
-
Open Scene: Open an existing scene
-
Save: Save Scene
-
Load: Load Scene
-
New Project: Create new project
-
Open Project: Open an existing scene
-
Save Project: Save the current project
-
Exit: Close the engine
On this part you can find all the Edit functionalities available in the Engine along with their shortcuts. As well as the buttons for the Project settings and Data.
-
Basic Editors: All basic functionalities for editing. With their respective Shortcut. (Shortcuts are defined below)
-
Project Settings...: Opens the current Project Settings
-
Preferences: Opens the Engine General Settings
-
Show Application Data: Opens the Project Data
-
Controls: Link to the controls of the engine / Opens a windows with the basic controls of the Engine
In Game Objects you find the different lists of all the creatable objects. In them you can select the object to create.
- Create Empty: Create an empty object
- Create 3D Objects: List of all available primitives
Cube: Create a cube game object
Sphere: Create a sphere game object
Capsule: Create a capsule game object
Cylinder: Create a cylinder game object
Plane: Create a plane game object
- Effects: List of all available effects
Particles
- Light: List of all available lights
Directional Light: Light that gets emitted in a specific direction
Point Light: Light that gets emitted from a single point in all directions
Spot Light: Light that gets emitted to produce intense illumination in a well-defined area
Area Light: Light that gets emitted in a specific direction from within a set boundary, either a rectangle or circle
- Audio: List of all available audios
- Camera: Creates a camera
On the View Tab, you will find all the things related with the visualitzation of the Scene. Since you have the render options.
- Render Options: List of all available render options
Ambient Oclussion: Calculate how exposed each point in a scene is to ambient lighting
Color Material: Specifies which material parameters track the current color
Cull Face: Allows non-visible triangles of closed surfaces to be removed
Depth Test: Tests the depth value of the fragment against the content of the depth buffer
Front: Defines front-facing and back-facing polygons
Lightning: Simulates the bright spot of a light that appears on shiny objects
Wireframe: Creates an edge or skeletal representation of the object
- Shaders: List of all available shaders
In the windows section you can find all the Editor Windows that can be used to working in the Project.
- Hierarchy: Opens the Hierarchy Window
In this window we can find all the Game Objects created in the scene. So we can see how many objects we have and their hierarchy.
In addition to the functionalities of adding childs and removing objects.
- Inspector: Opens the Inspector Window
In the inspector window you can find all the components that each object in the scene has. As it can be seen in the images, each object ha:
An information window about it
A transform window to move the object around the scene
A mesh window to change his mesh
A texture window to texturize it.
In addition to having an extra component if we have selected a camera type game object.
In this component you can modify both the near and far planes of the frustum, in addition to the FOV of the camera.
As well as allowing interaction through cameras, since it allows you to choose the view port once you are in game mode. This is done by first selecting the option to set the camera as main camera and later selecting the use camera option, in order to indicate that you want to have its point of view.
- Assets: Opens the Assets Window
It contains a list with all the folders and assets saved in the project.
- Show Output: Opens the Debug Console
- Play & Stop: Opens the Play & Stop Window
This window allows you to iterate through the game state and the editor state, to be able to see what the game scene would look like in real time.
Here you can find all the information about the Engine. In addition to direct links to contact us, report any bug or have a look to the Separaty Manual.
-
About us: Opens the documentation of the engine
-
Separaty Manual: Opens the tutorial/how to use the engine github page
-
Make any comment: Opens the contact github page
-
Report a Bug: Opens the issues github page
-
W: Move Forward
-
A: Move Left
-
S: Move Backwards
-
D: Move Right
-
Hold Shift: Duplicate movement speed
-
Right Click + Left ALT: Orbit around the selected object
(If an object is not selected) Orbit around the center of the scene
-
Left Click + Left ALT: Camera rotation
-
Mouse Wheel: Zoom In/Out
-
F: Focus the camera around the selected object
(If an object is not selected) Focus around the center of the scene.
-
CTRL + Z: Undo
-
CTRL + Y: Redo
-
SHIFT + A: Select All
-
SHIFT + D: Deselect All
-
CTRL + X: Cut
-
CTRL + C: Copy
-
CTRL + V: Paste
-
CTRL + D: Duplicate
-
SHIFT + R: Rename
-
SUPR: Delete
-
Brandon Arandia
- Github account: IconicGIT
-
Gerard Martinez
- Github account: GerardMartinez02
Copyright (c) 2022 Brandon Arandia & Gerard Martinez 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.