Giter Site home page Giter Site logo

separaty_engine's Introduction

Separaty Engine

Separaty-WORD

Description

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/

Separaty Manual (Quick Engine View)

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:

Menu Bar

File

On the File Tab, you will find all the things related with the Scene and Project Creation. In addition to an Exit button.

File

  • 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

Edit

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.

Edit

  • 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

Game Objetcs

In Game Objects you find the different lists of all the creatable objects. In them you can select the object to create.

Game Objects

  • Create Empty: Create an empty object

Create Empty

  • Create 3D Objects: List of all available primitives

3D Objects

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

Effects)

Particles

  • Light: List of all available lights

Light

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

Audio

  • Camera: Creates a camera

Camera)

View

On the View Tab, you will find all the things related with the visualitzation of the Scene. Since you have the render options.

View)

  • Render Options: List of all available render options

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

Shaders

Window

In the windows section you can find all the Editor Windows that can be used to working in the Project.

Window

  • Hierarchy: Opens the Hierarchy Window

Hierarchy

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

InspectorClosed Inspector

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.

Camera

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

Assets

It contains a list with all the folders and assets saved in the project.

  • Show Output: Opens the Debug Console

Output

  • Play & Stop: Opens the Play & Stop Window

Stop

Play

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.

Help

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.

Help

  • 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

Controls

Camera Controls:

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

Shortcuts:

  • 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

Developers

License

MIT License

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.

separaty_engine's People

Contributors

gerardmartinez02 avatar iconicgit avatar

Watchers

 avatar

Forkers

alch440

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.