Skip to content

KaChowEngine_v0.5

Choose a tag to compare

@arinWald arinWald released this 02 Nov 16:38
· 24 commits to main since this release

KaChowEngine

This project is a 3D Game Engine made by students of CITM for the assigment of Videogame Engine Development of 2023.

It has been made by: Arnau Gonzalez and Pau Argiz

Our GitHubs:

Link to our project

How to use KaChow Engine?

Download the engine

  1. Download the last release here.
  2. Extract files from the .zip
  3. Execute .exe

The engine

Camera

The camera in KaChow Engine offers various controls for navigating your 3D scene:

  • Right Click: Enables FPS (First-Person Shooter) free rotation, allowing you to look around in your virtual world with ease.
  • Mouse Wheel UP/DOWN: Zooms the camera in and out, adjusting the view of your scene.
  • Left Alt + Left Click: Orbits the camera around the selected object, providing a different perspective.

While right-clicking, the following controls are available to navigate the scene:

  • (Holding Shift, movement speed boost)
  • W: Move forward
  • A: Move Left
  • S: Move backward
  • D: Move Right
  • Q: Move Up
  • E: Move Down
  • F: Focus on the selected object, centering it in the view.

Inspector

The 'Inspector' displays all the different components and their properties of the selected GameObjects.

Components

KaChow Engine supports various components to enhance your 3D objects and assets:

  • Component Transform: Modify the rotation, position, and scale of the selected GameObject.
  • Component Mesh: Provides detailed information about different meshes and their vertices for the selected object.
  • Component Materials: Allows you to view and manage textures and materials applied to your GameObjects.

Drag & Drop

KaChow Engine simplifies asset management through its Drag & Drop functionality:

  • The engine allows users to drag and drop FBX files from anywhere on the hard drive.
  • Users can also drag and drop files to assign textures to GameObjects.

Windows

Configuration

In the 'Configuration' section, you can fine-tune various settings to optimize your development and user experience:

FPS Histogram:

  • This option provides a real-time histogram that displays the frames per second (FPS) of your application. Monitoring the FPS is essential for ensuring smooth and responsive gameplay.

MS Histogram:

  • The MS Histogram shows a histogram of the frame time or DeltaTime. It's a valuable tool for identifying performance bottlenecks and ensuring consistent frame pacing.

Window:

  • In the 'Window' section, you can manage the display settings:

    • Window Resolution: Display the resolution of the window
    • Display Window Resolution: View the current window resolution and use two sliders to change it interactively.
    • Fullscreen Option: Toggle between windowed and fullscreen display modes

View:

  • The 'View' section allows you to activate and deactivate various windows within the engine.

Rendering

The rendering capabilities of KaChow Engine allow you to create visually stunning 3D scenes. You can control various rendering options in the 'Render' section:

  • Lighting: Enable or disable lighting for your scene.
  • Cullface: Control face culling to optimize rendering.
  • Depth Test: Toggle depth testing for proper layering.
  • Color Material: Customize material colors for objects.
  • Wireframe: Visualize objects in wireframe mode.
  • Textures 2D: Manage and apply textures to your objects.
  • VSync: Enable or disable vertical synchronization for smoother rendering.
  • Brightness Slider: Adjust the brightness of the scene.

Input

  • Mouse and Keyboard Inputs: Display the current input from the mouse and keyboard, making it easy to understand and manage user interactions.

Audio

  • Volume Slider: Adjust the volume to create the desired auditory experience.

Objects

Create and manipulate objects within your scenes with ease, including primitives and empty GameObjects.

  • Hierarchy: View and interact with a list of all GameObjects in your scene, making it simple to select and manipulate them.

  • Inspector: Customize GameObjects by changing their names, viewing mesh information, adjusting materials, and applying textures.

Console

The 'Console' provides a central location for important logs and messages, making it easy to debug and monitor.

External Libraries

Our engine relies on various external libraries to power its functionality:

  • SDL: Simple DirectMedia Layer for cross-platform development.
  • ImGui: The Dear ImGui library for creating user interfaces.
  • Assimp: The Open Asset Import Library for 3D model loading.
  • Glew: The OpenGL Extension Wrangler Library for OpenGL extensions.
  • MathGeoLib: A C++ library for linear algebra and geometry.
  • DevIL: The Developer's Image Library for image file handling.