Skip to content
This repository was archived by the owner on Mar 30, 2025. It is now read-only.

Nick-Fanelli/HarmonyEngine

Repository files navigation

HarmonyEngine

Harmony Engine is currently a 3D Game Engine with primarily 2D support in development with hopes to one day be a standalone game engine that can be used to develop 3D or 2D games. The current focus is to develop a complete 2D game engine then extend it to also work in 3D.

Image of Harmony Engine v0.3.0 (Jul 25, 2021)

Image of Harmony Engine SNAPSHOT v0.6.0 (Aug 27, 2021)


Currently Harmony Engine is begin developed on MacOS however, with a few quick adjustments it should be able to run on Windows 10 as well. (Windows support coming soon)!!!

Quick Links

  1. Highlight Features and Goals
  2. Changelog
  3. Instructions for Cloning and Building Project
  4. Instructions for Generating Changelog
  5. How to Contribute

Highlight Features

  • 2D Rendering
  • Editor based workflow
  • Lua Scripting
  • Drag and Drop Assets Functionality
  • Serialization System

Short-Term Goals

  • Editor Mouse Picking
  • Integration with Operating System (eg. file recognition, etc.)
  • Editor Undo/Redo System

Long-Term Goals

  • Audio Support
  • Compile Harmony Engine/Editor to a Window Executable File.
  • Ability to compile a Harmony Project into a native executable. (meaning you will be able to run your project outside of Harmony Engine)
  • Full 3D Rendering Support
  • Ability to work with external applications. (eg. Blender, Maya, Photoshop, etc.)
  • Mobile platform support

Cloning and Building Project

  1. Mac Instructions
  2. Windows 10 Instructions (Coming Soon)
  3. Linux Instructions (Coming Soon)


Getting Started With Mac


1. Clone the Repository - Make sure you have git command line tools installed! (on MacOS simply running git in terminal will prompt its installation)

git clone https://github.com/Nick-Fanelli/HarmonyEngine.git --recursive

Note: Use flag --recursive to get access to the submodules

2. Installing CMake

  • Make sure Homebrew is installed (if so skip this step)

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • Install, CMake

    brew install cmake

3. Building the Project

  • Navigate to HarmonyEngine/build directory; or create it.
  • Build project with CMake
    cmake ..

4. Build and Run The C++ Code

  • Run the Makefile

    make
  • Run the Executable

    ./HarmonyEditor/HarmonyExecutable

    Note: Make sure you run the executable from the build directory!


Getting Started with Windows


Getting started instructions for Windows coming soon...


Getting Started with Linux


Getting started instructions for Linux coming soon...


Generating the Changelog

1. Make sure that NPM command line tools are installed
2. Get the needed dependencies

  • Run the following command in the root directory of the project
npm install

3. Create the version/change-log commit

  • Run the following command in the root directory of the project (Replace {TARGET_VERSION_TAG} with the version tag. eg. v1.0.0) Note: Please use the vX.X.X format when tagging versions (eg. v1.0.0, v0.1.0, v1.0.2)
npm run release -- --release-as {TARGET_VERSION_TAG}

4. Push the new tag/version

  • Run the following command in the root directory of the project
git push --follow-tags

How to Contribute

No contributions currently needed! Instructions Coming soon... Follow the repo for alerts

About

Game Engine developed for making games in OpenGL with C++.

Topics

Resources

License

Stars

Watchers

Forks

Languages