Skip to content

AlexMG99/RainbowNeko-Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

535 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3D Game Engine: NekoRainbow-Engine

Description

This is a 3D Game Engine created by Laia Martinez Motis and Alex Morales Garcia, two Students at CITM (UPC) university for the 3D engines subject during 3rd year of Game Design and Game Development degree.

Link to Github Repository: NekoRainbow Engine. Link to Github Web:Link to NekoRainbow Web

Authors Githubs

Game Engine Intructions

Main Menu Bar

  • File
    • Quit (Escape): Exits the application
  • Help: Links to the folllowing pages:
    • Github Repository.
    • Documentation: Github README.
    • Download latest: Latest engine version.
    • Report a bug.
    • About.
  • Window: Show/Hide Panels.
    • Console.
    • Configuration.
    • Game.
    • Hierarchy.
    • Inspector.
    • Panel Shape.
    • Assets.
    • Play.

Configuration

  • Application: Shows info about:
    • Project Name.
    • Organization.
    • Max FPS: Cap FPS.
    • Framerate Plot.
    • Milliseconds Plot.
  • Window: Window parameters:
    • Brightness.
    • Width and height.
    • Fullscreen/Fullscreen Desktop/Resizable/Borderless.
    • Mouse position.
    • Mouse movement.
    • Mouse wheel.
    • Game panel mouse.
  • Hardware: It shows the capabilities of the hardware.
  • Renderer: Change backgroundcolor and activate/deactivate glRender properties and change view between POLYGON, WIREFRAME and VERTEX.
  • Camera Setting: Camera parameters:
    • Near Plane.
    • Far Plane.
    • FOV.

Hierarchy

The panel Hierarchy shows all the loaded GameObjects. You can select them by clicking in the name. Also you can select the scene camera.

Game

Shows game scene

  • Check Boxes:
    • Activate/Deactivate Grid.
    • Activate/Deactivate Fill.
    • Activate/Deactivate Points:.
    • Activate/Deactivate Camera Culling.
    • Activate/Deactivate Gizmos.

Play

Shows scene through camera

  • Buttons:
    • Play/Stop button: Starts/Stops/Resets Game Timer.
    • Continue/Pause button: Continue or Pauses Game Timer.
    • One Frame button: Adds one frame to the paused Game Timer:.
  • Timer:
    • Real Timer: Starts when we start debugging.
    • Game Timer: Starts when Start Button is clicked:.

Inspector

The panel Inspector shows information about that GameObject selected in the panel Hierarchy.

  • Check Box: Name of the GameObject selected.

  • Check Box: Static or non-static object. Creates Quadtree.

  • Transform: Shows info about:

    • Position of the object.
    • Scale of the object.
    • Rotation of the object:.
  • Mesh: Clicking in the check boxes you can:

    • Activate or deactivate the mesh.
    • Activate or deactivate the normal vertex.
    • Activate or deactivate the normal face:.
  • Mesh: It shows information about:

    • Resource Mesh ID.
    • ID Vertex.
    • Number of Vertex:.
    • ID Index.
    • Number of index:.
    • ID Uv:.
  • Mesh: Bounding Boxes check box:

    • Show AABB.
      • Show OBB.
  • Mesh: Mode:

    • Change wireframe color.
      • Change vertex color.
  • Texture: Clicking in the check box you can:

    • Activate or deactivate the texture.
  • Texture: Clicking in the check box you can: * Resource Texture ID.

    • Path of the texture.
    • Id of the texture:.
    • Width and Height of the texture.
    • Image of the texture.

Shape Creator

The panel Shape Creator allows you to create 5 types of shapes:

  • Saphes:
    • Cube.
    • Sphere.
    • Cylinder.
    • Cone.
    • Plane.
      • Torus.
    • Octahedron.

Console

The panel Console prints:

  • Prints:
    • Assimp Logs.
    • Normal Logs.

Assets

The panel loads the floders and resources that are inside the Library folder. If you left-click on a floder, it will show the resources inside it. To use one of the shown resorces on the Panel Scene, you must left-click on the resource, then it will appear in the scene without the texture. To put the texture on it you must have the texture folder opened, then select the object you want to punt the texture on and then left-click on the texture.

UI

The UI is activated when clicked PLAY button. For this Assignment we have done a Demo. The Demo consists of a Main Menu, whith a label for the menu title, and a butoon start which leads the user to a new scene. In this new scene, the BakerHouse.fbx is loaded and appears a Crosshair in the middle of the screen. When pressed F1, a options menu is opened, where the player can activate/deactivate Vysnc and dragable UI. When F1 or the close button is clicked the menu will close. When the STOP button is clicked, the scene will go to his original state.

Game Engine Controls

  • Camera Movement:
    • While right clicking, and using "WASD" movement and free look around is enabled.
  • Zoom In/ Zoom Out:
    • Mouse Wheel.
  • F key:
    • Focus the camera around the object selected.
  • Alt+Left:
    • Orbit the object.
  • Supr:
    • Delete the selected GameObject and childrens.
  • C key:
    • Centers the camera.
  • Right Mouse Click on scene object:
    • Selects GameObject.
  • F1:
    • Activates/Deactivates UI.

Guizmo Controls

When a GameObject in the scene is selected:

  • W key:
    • Translate GameObject.
  • E key:
    • Rotate GameObject.
  • R key:
    • Scale GameObject.
  • X key:
    • Changes to World.
  • D key:
    • Changes to Local.

Innovations

Innovations implemented in our Engine:

  • Code:
    • Render screen as a game panel.
    • Created a DockingSpace which allows us to change the panels position.
  • Style:
    • Created two types of cursor icons (eye and hand).
    • Created our Engine style and applied to it.
  • Panel Assets:
    • Panel that loads the resources inside the Library folder.
    • Left_Click on the resources to place them in the panel scene to use them.
      • Load the resources texture, selecting the object in the scene and then left_clicking on the texture.

Tasks by Member Assigment 2

  • Laia Martinez:

    • Mouse Picking
    • Panel Game
    • Scene Guizmos
    • Engine Icons
    • Timer
    • Start, pause and tick
  • Alex Morales:

      * Quadtree
    
    • AABB and OBB
    • Camera as component
    • Frustum & Frustum Culling
    • Resource Manager
      • Resizing
      • Own Format
    • Serialize scene
    • Library created again if it doesn't exists
      • Panel Assets

Libraries Used

Libraries used in our Engine:

  • SDL 2.0
  • ImGui 1.73
  • Glew 2.1.0
  • OpenGL
  • MatGeoLib 1.5
  • PCG 0.98.1
  • Parson
  • Devil
  • Assimp
  • Par Shapes
  • Deviceid
  • mmgr
  • ImGuizmo

License

MIT License

Copyright (c) 2018 @LaiaMartinezMotis (Laia Martinez Motis) and @AlexMG99 (Alex Morales Garcia)

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.

About

This is a shared repository of Alex Morales and Laia Martinez, students at CITM(Terrassa).

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages