• Stars
    star
    11,609
  • Rank 2,847 (Top 0.06 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created about 6 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Hazel Engine

Hazel License

Hazel

Hazel is primarily an early-stage interactive application and rendering engine for Windows. Currently not much is implemented, however (almost) everything inside this repository is being created within YouTube videos, found at thecherno.com/engine.


Getting Started

Visual Studio 2017 or 2019 is recommended, Hazel is officially untested on other development environments whilst we focus on a Windows build.

1. Downloading the repository:

Start by cloning the repository with git clone --recursive https://github.com/TheCherno/Hazel.

If the repository was cloned non-recursively previously, use git submodule update --init to clone the necessary submodules.

2. Configuring the dependencies:

  1. Run the Setup.bat file found in scripts folder. This will download the required prerequisites for the project if they are not present yet.
  2. One prerequisite is the Vulkan SDK. If it is not installed, the script will execute the VulkanSDK.exe file, and will prompt the user to install the SDK.
  3. After installation, run the Setup.bat file again. If the Vulkan SDK is installed properly, it will then download the Vulkan SDK Debug libraries. (This may take a longer amount of time)
  4. After downloading and unzipping the files, the Win-GenProjects.bat script file will get executed automatically, which will then generate a Visual Studio solution file for user's usage.

If changes are made, or if you want to regenerate project files, rerun the Win-GenProjects.bat script file found in scripts folder.


The Plan

The plan for Hazel is two-fold: to create a powerful 3D engine, but also to serve as an education tool for teaching game engine design and architecture. Because of this the development inside this repository is rather slow, since everything has to be taught and implemented on-camera. There is a much more advanced version of the engine in a private repository called Hazel-dev, accessible to supporters on Patreon. The plan for this project is to mostly take already implemented code from the Hazel-dev repository and integrate it into this one, done within videos and supported by explanations.

Main features to come:

  • Fast 2D rendering (UI, particles, sprites, etc.)
  • High-fidelity Physically-Based 3D rendering (this will be expanded later, 2D to come first)
  • Support for Mac, Linux, Android and iOS
    • Native rendering API support (DirectX, Vulkan, Metal)
  • Fully featured viewer and editor applications
  • Fully scripted interaction and behavior
  • Integrated 3rd party 2D and 3D physics engine
  • Procedural terrain and world generation
  • Artificial Intelligence
  • Audio system

Short term goals :

Note: this is subject to change at any time! Follow the roadmap over at hazelengine.com/roadmap.

By the end 2020, we want to make a game using the Hazel game engine. Not like the time I made a game in one hour using the engine, but this time by using the proper tools that would be required to make a game with Hazel. This means we need to add a full 2D workflow:

  • Design the game scene by using Hazelnut, the Hazel editor,
  • Test the game inside Hazelnut, including the ability to save/load the created game,
  • Load and play the game inside Sandbox.

We want everyone to be able to play the game on all desktop platforms (Windows, Mac and Linux). When this is implemented, another attempt at the "Creating a game in one hour using Hazel" will be made to see how far the engine has become.

Twitter Instagram Youtube Discord Patreon

More Repositories

1

Sparky

Cross-Platform High Performance 2D/3D game engine for people like me who like to write code.
C++
1,098
star
2

Walnut

Walnut is a simple application framework for Vulkan and Dear ImGui apps
C++
770
star
3

OpenGL

OpenGL support library so you can just dive in and write OpenGL code
C++
751
star
4

ProjectTemplate

A little quick-start project template for C++ projects which utilise a Core/App project architecture
Lua
395
star
5

RayTracing

YouTube ray tracing series
C++
366
star
6

Hazel1HourGame

Flappy Bird clone made in a couple of hours for a video using a very primitive version of Hazel.
C++
151
star
7

Flappy

A clone of Flappy Bird made for desktop platforms using Java and OpenGL.
Java
142
star
8

ChernoCraft

A small Minecraft clone in C++.
C++
120
star
9

OneHourParticleSystem

Simple particle system made in one hour: https://youtu.be/GK0jHlv3e3w
C++
116
star
10

Walnut-Chat

Some examples on how to use Valve's GameNetworkingSockets library for networking in C++
C++
110
star
11

ChernoChat

All of the code for the Cherno Chat project, as well as the code for the individual episodes.
Java
93
star
12

HazelAudio

Hazel Audio is an audio library designed for Hazel
C++
81
star
13

Genesis-Remake

C++
79
star
14

Cherno

The Cherno engine, for Ludum Dare.
Java
75
star
15

GameProgramming

The official Game Programming repository!
Java
73
star
16

WalnutAppTemplate

Walnut application template to easily make new Walnut apps
Lua
58
star
17

HazelLua

Scripting submodule for Hazel
C++
42
star
18

Flinty

Flinty is a small, simple library for basic user-controlled hardware-accelerated rendering, as well as general C++ development.
C
33
star
19

Genesis

Genesis is (basically) the first game I ever made - for Ludum Dare 24.
Java
33
star
20

DocumentationWebsite

Example documentation website with mdBook
24
star
21

EventSystem

Basic event system with dispatcher for the following video tutorial. A tutorial can be found here: https://youtu.be/yD47_hq75q0
Java
22
star
22

JavaSerialization

Source code from my YouTube Serialization series: https://www.youtube.com/playlist?list=PLlrATfBNZ98cCfmH0xPebdVVMSYRQfyKi
Java
20
star
23

AnimatedSpriteCompression

Animated sprite compression format using delta encoding.
C
19
star
24

SparkyTEST

The Sparky (working title) engine!
C++
19
star
25

LD32

Ludum Dare 32 game! (Working Title)
C
13
star
26

Growth

My game for Ludum Dare 34!
Java
12
star
27

Shatter

Shatter, a game made by me within 48 hours for Ludum Dare 28!
Java
9
star
28

Beneath

Beneath, for Ludum Dare 29! Theme: Beneath the Surface
Java
8
star
29

Evacuate

Evacuate - my game for Ludum Dare 30. All content made within 48 hours.
JavaScript
6
star