Home About Us Development Team Engine Features Downloads License

ZERO ENGINE

ABOUT US

Who We are?

We are a small team compound by German Insua and Christian Piña. We're both currently studying a Videogame Development Degree in 'Universitat Politécnica de Catalunya' [UPC-CITM].

What it's Zero Engine?

Zero Engine it's a 3D game engine application developed by us as a 3 month project for subject 3D engines imparted by lecturer Marc Garrigó.

What it's Zero Engine capable of doing?

Latest version of Zero Engine can import and manage resources as textures and meshes. Moreover can serialize scenes and gameobjects unity like. Furthermore We've implemented small memory and render optimizations as reference counting and frustum culling. Finally We've also implemented an advanced physic subsystem developed with Nvidia PhysX 4.1

Supported platforms

Currently the engine does only have support to be used in Windows desktops and it's have been built in x86 architecture

DEVELOPMENT TEAM

Common features developed

User Interface

Time Manager

Gameobjects and Components

Geometry Importer

Render Geometry

Germán Insua

Custom File Format

Serialize Resources

Resource Manager

Christian Piña

Mouse Picking

Frustum Culling

Cameras and Guizmos

ENGINE FEATURES

Main Core Sub-Systems

-Geometry Viewer

This subsystem can import dragged resources as fbx files to be imported with assimp. Later this can be shown throught viewport to be rendered.

-Gameobjects and Components

This structure enables us to work properly with different subsystems as Physics in our case due We force to cluster all stuff as Transforms, Mesh info and Renderers, Materials..., furthermore helps us to Serialize info to be stored.

-User Interface

Basic user interface developed with ImGui to visually work with our elements Ex: Gameobjects can be modified from hierarchy/inspector window, resources can be managed...

-Time Manager

Simpler subsystem that only takes in charge of time step in game. Useful to work with animations physics and particles

-Resource Manager

Subsystem that cares how resources are managed by user. User can drop resources and this will be imported with own data structures to be loaded faster. Moreover user can search resources in engine window and make use of them. Ex: Drop texture into material or load saved scenes

-Cameras and Guizmos

Here We can find minimal render optimizations with frustum culling, developed due to camera near/far planes and geometry bounding boxes. Also camera's raycast enables us to activate mouse picking feature and display guizmos to interact with gameobjects

Physics System

Physics system have been developed with Nvidia PhysX 4.1. This libraries enables us to add into our scenes and gameobjects physicalized properties as gravity forces, mass, friction, restitution... through rigidbody , collider and constrain structures.

Gameobjects now can create new components as:

-Rigidbody

This component will create a dynamic actor that will interact with physical forces and will take control about which position does the gameobject have in the world

-Colliders

Will create into the gameobject selected a collider with desired primitive shape by user that can be Box, Sphere or Capsule. If the gameobject does have already a rigidbody the shape collider will be attached to the rigidDynamic to react with world collisions. If the gameobject doesn't own a rigidDynamic body, shape will be settled and attached to a rigidStatic body

-Constrains

Constrains between rigidBodies can be created with joint components(Distance, Hinge, Slider, Spherical). Like rigidbody and collider components, joints can be settled from inspector window. Joint's main function it's attach two rigidbodies and interact between both with world physics and own properties.

Otherwise We've developed two extra core modules to manage physics and create the mentioned structures. This core modules will be ModulePhysics and ModuleVehicle
-ModulePhysics

This module initialize main core SDK structures related to physX libraries as PxPhysics that make us able to create materials, actors(rigid static/dynamic bodies) and constrains. Also takes in charge of initialize world physics and calculations depending time step assigned.

-ModuleVehicle

Like ModulePhysics module, this one takes in charge of initialize physX vehicle SDK to create properly physicalized vehicles with gears/tires/chassis adjustments

DOWNLOAD LATEST VERSION

Here you can download the latest release of our 3D Engine.

LICENSE

MIT License

Copyright (c) 2020 Germán Insua & Christian Piña

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.