Skip to content

CITM-UPC/TheOneEngine

Repository files navigation




Releases | Screenshots | Features | Wiki | Contributing


platforms release
issues pulls
license downloads

1. What is TheOne

1.1. Description

TheOne is a game engine crafted with passion by Héctor Báscones, Arnau Jiménez and Júlia Serra.

TheOne pillars are:

  • Documentation
  • Simplicity
  • SOLID

1.2. Modules

  • TheOneEngine: Uses EngineCore, asset dependent, for any game built with TheOne
  • TheOneEditor: Uses EngineCore, expose game development to the end-user

Editor

2. History of TheOne

2.1. Context

TheOne is a project for the subject of Game Engines in our 3rd year at CITM (UPC).
Our team (Héctor Báscones, Arnau Jiménez, Júlia Serra) had 3 months to create a game engine from scratch.

2.2. Goals

Our goals for this project were:

  • Understanding the architecture of a game engine
  • Making a game engine as simple as possible
  • Producing SOLID modern code
  • Creating a game with our engine
  • Dealing with a long-term project
  • Developping documentation for developers and end-users

2.3. Pre-production

We spent the first weeks designing our initial architecture, setting up the template with the libraries, and defining the rules to keep a maintainable code during the whole project.

2.4. Production

The production made us realize that our idea of a game engine was naive. Our architecture evolved through the knowledge acquired in class.

3. Features

3.1. Implemented

Here is a non-exhaustive list of TheOne main features:

  • Model Import + Drag & Drop
  • Texture Import
  • GameObject hierarchy + Component Pattern
  • Unity-like camera controls
  • Editor tools (main menu and windows)
  • Transform and Game Object hierarchy
  • Custom file format
  • Scene serialization
  • Play / Stop
  • Mouse picking
  • Frustum culling
  • Resource Management

3.2. To implement

Again, a non-exhaustive list of TheOne in-coming features:

  • Custom shaders support
  • Rigidbody physics
  • Windows game building
  • More input device support (Gamepad)
  • Prefab system
  • Skeletal animation
  • Sound system
  • Particle System

4. Details

4.1. Software

  • Visual Studio 2022 (v142) (previous versions should also be supported)

4.2. Dependencies

  • OpenGL + GLEW + GLM (Graphics API)
  • SDL2 (OpenGL Binding + Input)
  • Assimp (3D model loader)
  • DeVil (Image library)
  • rapidjson (JSON parser/generator)
  • imGui (GUI)
  • imPlot (2D plotting for ImGui)

4.3. Requirements

TheOne requires:

  • RAM: 256MB
  • OS: Windows 7
  • GPU: Graphics card supporting OpenGL 3
  • CPU: x64

4.4. Licence

TheOne is licenced under an MIT licence.

4.5. More information

If you are interested in TheOne, you can download our engine on our website:

Learn about TheOne by visiting our Wiki:

You can also watch our features reel (TheOne v0.x) on YouTube:

5. Getting started

Learn how to create your own games using TheOne by visiting our wiki.

6. Contributing

TheOne is opened to any contribution. Do not hesitate to open issues (Features or bugs) or create pull requests.

If you want to help us, visit our CONTRIBUTING.md guidelines document.

7. Screenshots