All Projects → iceshard-engine → engine

iceshard-engine / engine

Licence: MIT license
A personal game engine project, with development focus towards 2D/2.5D games.

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
GLSL
2045 projects
MoonScript
45 projects
Batchfile
5799 projects
shell
77523 projects

Projects that are alternatives of or similar to engine

tnt
A 2d Game Engine written in C++20.
Stars: ✭ 30 (-6.25%)
Mutual labels:  2d-game-engine, cpp20
pandoc-action
github action to run pandoc, soft-deprecated ->
Stars: ✭ 39 (+21.88%)
Mutual labels:  github-actions
actions-deploy-gist
📌 Deploy file to Github Gist
Stars: ✭ 26 (-18.75%)
Mutual labels:  github-actions
wasm4
Build retro games using WebAssembly for a fantasy console.
Stars: ✭ 711 (+2121.88%)
Mutual labels:  2d-game-engine
setup-bats
GitHub Action to setup BATS testing framework
Stars: ✭ 25 (-21.87%)
Mutual labels:  github-actions
doctest
The fastest feature-rich C++11/14/17/20 single-header testing framework
Stars: ✭ 4,434 (+13756.25%)
Mutual labels:  cpp20
GroundEngine
Ground Engine is an easy to use Game Engine for 3D Game Development written in C++
Stars: ✭ 61 (+90.63%)
Mutual labels:  2d-game-engine
github-action-gitflow-release-workflow
Example workflows for automated releases in a GitFlow-style project using GitHub actions.
Stars: ✭ 91 (+184.38%)
Mutual labels:  github-actions
sycl
SYCL for Vitis: Experimental fusion of triSYCL with Intel SYCL oneAPI DPC++ up-streaming effort into Clang/LLVM
Stars: ✭ 80 (+150%)
Mutual labels:  cpp20
no-free-usage-action
A NO-FREE-USAGE action for github. (Only worked with github action.)
Stars: ✭ 51 (+59.38%)
Mutual labels:  github-actions
actions
github actions stuff
Stars: ✭ 39 (+21.88%)
Mutual labels:  github-actions
ts-scaffold
🏗 ts-scaffold - Scaffold project for Typescript projects, with Unit Tests and basic dependencies set up
Stars: ✭ 13 (-59.37%)
Mutual labels:  github-actions
jsdoc-action
📖 GitHub Action to build JSDoc documentation
Stars: ✭ 61 (+90.63%)
Mutual labels:  github-actions
action-pr-title
Github action to enforce Pull Request title conventions
Stars: ✭ 83 (+159.38%)
Mutual labels:  github-actions
ftp-action
Automate copying your files via FTP using this GitHub action.
Stars: ✭ 90 (+181.25%)
Mutual labels:  github-actions
action-eslint
🐋🐬 TypeScript/JavaScript ESLint action
Stars: ✭ 24 (-25%)
Mutual labels:  github-actions
nextjs-cron
Cron jobs with Github Actions for Next.js apps on Vercel▲
Stars: ✭ 144 (+350%)
Mutual labels:  github-actions
slsa-provenance-action
Github Action implementation of SLSA Provenance Generation
Stars: ✭ 34 (+6.25%)
Mutual labels:  github-actions
so stupid search
It's my honor to drive you fucking fire faster, to have more time with your Family and Sunshine.This tool is for those who often want to search for a string Deeply into a directory in Recursive mode, but not with the great tools: grep, ack, ripgrep .........every thing should be Small, Thin, Fast, Lazy....without Think and Remember too much ...一…
Stars: ✭ 135 (+321.88%)
Mutual labels:  cpp20
actions
Set of actions for implementing CI/CD with werf and GitHub Actions
Stars: ✭ 67 (+109.38%)
Mutual labels:  github-actions

Development on the engine is going to be paused for the time beeing, due to lots of changes outside the webz. Dandielo

IceShard

A small game engine project with the sole purpose to learn, improve and invent. Focusing on the best solution for a given problem while not trying to solve everything.

More info about the development approach can be found in our wiki.

Features

Current list of advertisement:

  • Dependency injection based architecture.
  • Support for basic input devices.
  • APIs designed with the 'RAII' principle.
    • Exceptions are debug tools and utilities.
  • Inovative resource and asset systems.
  • Data-oriented ECS implementation.
  • Abstracted API for rendering. (Vulkan)
  • Multi-threaded logic and graphics using C++ coroutines.

Thid party tools and features:

  • Support for Tracy profiler.
  • Optional DevUI API based on ImGui. (ex. disabled in Releaseand Profile builds)
  • Simple 2D Physics implemented with Box2D
  • Loading of common file formats supported with RapidXML, RapidJSON and Assimp.
  • Logging using the fmt library.
  • Unit tests written in the Catch2 framework.

Building the engine

A quick overview how to build the engine on your machine.

Prerequisites

To build this engine you will need the following tools and SDKs installed:

  • Conan Package Manager - Used to manage project dependencies.
    • This also requires python3 as a dependency.
  • Windows:
    • Required: Visual Studio 2022 (17.4 or later)
    • Required: Windows Kit (10.0.19041.0 or later)
    • Required: Vulkan SDK (1.2.170.0 or later)
  • Linux: (Compilation Only)
    • compilation tested On:
      • Manjarno Linux (KDE Plasma) (Kernel 5.15.6-2-MANJARNO x64)
      • GitHub Runner: Ubuntu-22.04
    • Required: GCC-12 or Clang-14 or later
    • Required: standard library libstdc++ v6 or later
    • Required: Vulkan SDK (1.2.170.0 or later) - Not implemented yet.
    • (Linking steps are not enabled yet)
  • MacOS:
    • No support

Configuring Conan

To properly initialize the workspace, you will need to setup Conan with configurations from the IceShard-Conan-Config repository. This contains the Conan clang profiles and remotes that should be used with this project.

The quickest way to setup Conan for this project is to use the following command:

conan config install https://github.com/iceshard-engine/conan-config.git

Ice Build Tools

This project uses its own command line tool named Ice Build Tools to provide various utilities that can be used during development.

It is a Conan package that will be installed on first use. It can be easily updated at any point or reset by removing the ./build/ directory when something goes wrong.


The build command

Building the engine is straight forward, all you need to do is to call this command in your terminal and you have built the engine.

./ice.sh build
./ice.bat build

You can further specify the target you want to build by using the -t --target option.

ice build -t all-x64-Debug

The vstudio command

This command allows to generate project files for Visual Studio and open the solution.

ice vstudio --start

The run command

This command allows to execute pre-defined lists of other commands or tools in order. These execution scenarios are stored in the scenarios.json file and currently provide a quick way to run the test application and to build shaders on the Windows platform.

:: Build all shaders into Vulkan SPIR-V
ice run -s shaders

:: Run the default-built test application executable (all-x64-Develop)
ice run

Contributing

Contributions are welcome, however they need to follow the Coding Style of the engine and pass the review process.

Additionally, some contributions might also require additional changes if the implementation does not follow the design principles of this project.

It is however possible to ask for a separate repository that will and provide new features via modules API. This would only require to follow the aforementioned coding style.

Copyright Information

The engine is licensed under the MIT License.

Additionally, all used third party libraries are mentioned in the thirdparty/README.md. Their licenses are available for lookup in thirdparty/LICENSES.txt

Acknowledgements

This project was heavily inspired by several articles, but mostly by the BitSquid development blog.

Additionally, some parts of the engine were initially based on the BitSquid Foundation Library which was discussed here: https://bitsquid.blogspot.com/2012/11/bitsquid-foundation-library.html.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].