GithubHelp home page GithubHelp logo

enginec's Introduction

EngineC

An educational game engine written in C. It is heavily inspired by the Kohi Game Engine (https://github.com/travisvroman/kohi).

Why C

I chose C as my language of choice for this project because I wanted to lower the language complexity to a minimum to keep a simple codebase. The goal here is not to make cool abstractions and idomatic OOP, the complexity should be in the code itself.

Goals

This main goal of this project is to make a stable, usable engine. Once this project reaches a usable state, more precise goals can be determined. Until then, performance or features are not the main focus.

Roadmap

Until the first stable release, all commits that are not considered as "side-tangent" or bugfixes will be committed to the master branch. This is done to be able to easily track the progress of the project in its early states.

The first steps of this project will be to create basic layers, like platform, memory management, windowing, etc. Once these layers are ready, focus will be set to the rendering part of the engine. Occasional peeks to other engine parts will occur (like resource loading, threading, etc.)

Building from source

This project uses premake5 to generate a build system.

Prerequisites

Building

After cloning the repository, use premake5 to generate a build system. For example, to generate a VS2022 solution:

premake5 vs2022

For available build systems, run premake5 --help.

You can then use the generated build system to build the project.

Coding Style/Guidelines

  • 130 characters per line
  • No line break before brackets
  • Doxygen comments following this format:
/**
 * @brief This is a brief message.
 * 
 * Explanation of the function (if needed)).
 * 
 * @param[in] param1 Description of param1.
 * @param[out] param2 Description of param2.
 * @param[in,out] param3 Description of param3.
 * 
 * @retval TRUE Success
 * @retval FALSE Failure
 * OR
 * @return Description of return value.
 */

enginec's People

Contributors

0killian avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.