Skip to content

CloudCodingSpace/MeltedForge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MeltedForge

MeltedForge is a game engine written in C using Vulkan, with a focus on minimal dependencies, performance, and clean design.

MeltedForge Logo


Features

  • Model loading along with the material data
  • Entity Component System (ECS)
  • Engine & editor level UI
  • UI customization
  • Rendering multiple entities
  • Render targets (Ability to set the render output to an image, which can be used to render the scene inside an UI panel like the scene viewport)
  • Binary serialization & deserialization
  • WIP Material system

Goals

  • Cross-platform
  • Realistic graphics
  • Sound system support
  • Animation system
  • Flexible and modular
  • Built to showcase what C can really do in game dev
  • Low-end spec friendly (hopefully)
  • Beginner-friendly setup and usage
  • Multithreading
  • Async model loading

Dependencies

Note: The following are the important conditions met by the PC for building/running MeltedForge

  • Vulkan SDK (Get from LunarG)
  • A GPU driver with modern Vulkan support (Vulkan 1.2.000+)
  • A modern C & C++ compiler with the support of latest language standards with the corresponding runtime libraries (Preferably GCC & G++ or MSVC, but currently clang is not tested and is not supported)
  • CMake (Get from here)
  • Make if using GCC & G++

Build Instructions

Note: This repo uses submodules. Make sure to clone it recursively.

git clone --recursive https://github.com/CloudCodingSpace/MeltedForge.git

The make change the directory into the repo's remote folder/directory. Then create a folder/directory like bin/out/build for the binary output. Then run the following commands :-

cmake -S . -B <path-to-build-dir>
cmake --build <path-to-build-dir> --parallel

Note: Before running the executable of the MFTest, make sure that the shaders are compiled. Helper scripts to compile shaders on Window are in the scripts folder.

Technical Details (For developers and nerds)

  • This engine is mostly using C. But there is some usage of other languages like C++ since 3rd party vendors like Dear ImGui and Assimp use it.
  • Currently supports compilers like GCC, G++ and MSVC.
  • Aims at having support for Clang & Clang++, but currently it is not tested and does not have support.

About

A game engine in C

Topics

Resources

License

Stars

Watchers

Forks

Languages