The JM Engine is a 3D engine focused on scripting tasks in C++ carried out by two CITM students for the third delivery of the Video Game Engines course.
This engine is developed by:
- Joan Damià - Joan Damià
- Miguel Rodríguez - Miguel Rodríguez
Github repository: JM-Engine
This Engine is forked from another CITM 3D Engine, you can check the original repesitory here:
Original repository: DaTo Engine
- Left Control --> Center selected object
- Left shift --> Duplicate movement speed
- Right Click --> FPS camera
- Left Alt + Left Click --> Orbital camera
- Right Shift --> Top view
- Up Arrow --> Front view
- Right Arrow --> Right view
- Left Arrow --> Left view
- Down Arrow --> Back view
- Scroll up --> Zoom in
- Scroll down --> Zoom out
- W --> Move forward
- A --> Move left
- S --> Move backwards
- D --> Move right
- R --> Move up
- F --> Move down
- W --> Position
- R --> Scale
- E --> Rotate
- T --> Universal
- W --> Move forward
- A --> Rotate left
- S --> Move backwards
- D --> Rotate right
- Mouse Movement --> Aim Shoot
- Right Click --> Shoot
- Top, sides, back and front view (Reworked).
- Quick options when you right click on the Game Objects displayed in the Hierarchy
- Reparent game objects one is selected and dragged to another one
- Loading models and textures with Assimp and DevIL.
- Render models and textures with OpenGL.
- .fbx support for models (at the moment).
- .png and .dds support for textures (for now).
- Unity-like camera controls.
- Hierarchy system.
- Drag & Drop for all supported formats.
- Game Objects with texture, mesh and transform components.
- Game objects can have a camera component.
- The Transform component of the Game Objects works, and can be modified both from the Inspector and with the Guizmos.
- Hierarchy:
- Fast options to Delete, Hide and Create Empty Child.
- Reparent by dragging a Game Object into another.
- Game timer that can be played, paused, resumed and stopped.
- All meshes use a bounding volume (AABB) and can be discarded using Frustum Culling.
- Game Objects can be picked from the world using the mouse.
- Mouse Picking can be deactivated for a selected object.
- The editor has two windows, one with the scene (editor view) and another captured from a Game object witha camera component (Main Game Camera), each one has its own framebuffer and the user can visualize both at the same time.
- All normals move with the model.
- Skybox added.
- Warning window before deleting a game object or scene, with a checkbox for "Do not show again".
- Game Object can be renamed from Inspector.
- If an object is repeated, the name will change to: Name + (number of repetitions).
- The Tank moves and rotates with keyboard controls and the turret rotates with the mouse.
- When Play Mode stops the Tank positions resets.
- The Tank shoots bullets with right click.
- The Bullets are game objects with a life time.
- When a bullet is created, a text appears in the Console window.
- The script variables of the tank are modifiable in the Inspector window.