A 2D game engine written in C++

Overview

Wase Engine logo banner

Website badge Discord badge Mit License badge Issues badge Lines badge Stars badge

Wase Engine is an open source 2d game library made with C++ and the SDL libraries. Wase Engine can be used to create all kinds of 2d games. The main goal for Wase Engine is to give you the tools you need for creating games while keeping as much control as possible.

Setting up Wase Engine

You can choose to build Wase Engine yourself from the source code or you can download the pre-build libraries on our website.

To build Wase Engine you will need to install the following tools:

  • C++17 or higher
  • CMake
  • SDL2
  • SDL2 Image
  • SDL2 Mixer
  • SDL2 TTF

CMake

mkdir build
cd build
cmake ..
cmake build .

MinGW

mkdir build
cd build
cmake -G "MinGW Makefiles" ..
make

List of projects with Wase Engine

Compatible platforms

  • Windows
  • Linux
  • MacOS

Documentation

You can head over to the documentation for more information about Wase Engine. In the documentation there is a detailed description about how Wase Engine works.

Contributing

If you want to contribute to Wase Engine you can head over to the contributing page for more information.

Comments
  • Tests

    Tests

    Is your feature request related to a problem? Please describe. When you work on a feature you might break another one without noticing.

    Describe the solution you'd like Tests that test certain features and/or methods that run when new code is being merged

    enhancement high priority 
    opened by JaimieVos 9
  • Button added

    Button added

    #51

    Features

    • Interactive color changes with mouse.
    • Text Alignment options
    • Input Controls (OnMouseDown, OnMouseUp etc.)

    Issues

    • For now, we can't draw button with filled rectangle. Because since the rectangle is rendered first, we can't see the text below it. So we will render a empty rectangle until we fix the error.
    • Text Colors seems sus. It doesn't show the same color as I want to draw. When clicking the button in the gif below, the rectangle successfully turns yellow, while the text does not completely change to yellow. Or i'm just confused.

    Screenshots wase-button-test

    I am open to discussion.

    enhancement 
    opened by requizm 4
  • Allow all types for the logs

    Allow all types for the logs

    Is your feature request related to a problem? Please describe. Currently when you want to log an integer you can't. Currently only strings are allowed.

    Describe the solution you'd like Being allowed to log more than only strings.

    Additional context As an example, you can't do this currently or something similar. log_utils::info("Amount: " << number);

    There should be a way that it is possible to do this.

    enhancement help wanted 
    opened by JaimieVos 4
  • in engine.cpp the at line 122 addScenes(m_Config.scenes);" does not add a scene to the m_Config variable.">

    in engine.cpp the at line 122 "m_SceneManager->addScenes(m_Config.scenes);" does not add a scene to the m_Config variable.

    Describe the bug In the file "engine.cpp" at line 122 in the function "bool Engine::initializeSceneManager()" the line of code "m_SceneManager->addScenes(m_Config.scenes);" does not add a scene object to "m_Config.scenes".

    To Reproduce start wase-engine

    Expected behavior A window should appear when I start wase-engine

    System information:

    • OS: Ubuntu
    • Version: 22.04

    Additional context I was able to run wase-engine before input was added but I don't think the bug has anything to do with input.

    bug 
    opened by Crawfish-h 2
  • GoogleTest added. Refactor CI

    GoogleTest added. Refactor CI

    #38 Think of what I'm doing as a template, not as a whole set of tests. After that, when a new feature is being developed, it would be more accurate to push, including tests.

    opened by requizm 2
  • x86 and x64 build support

    x86 and x64 build support

    Is your feature request related to a problem? Please describe. I'm using MinGW-64 on Windows. Since my working environment is vscode, i can't build with that command: cmake .. -G "MinGW Makefiles"

    Error:
    mingw makefiles does not support platform specification win32
    

    Describe the solution you'd like We can remove that line:

    set(CMAKE_GENERATOR_PLATFORM win32)
    

    Also, why only x86 build support?

    enhancement 
    opened by requizm 2
  • IO reading methods

    IO reading methods

    Describe the solution you'd like A namespace that contains methods to get information from the filesystem

    • [x] fileExists: returns a bool
    • [x] folderExists: returns a bool
    • [x] getFiles: returns the names and extension of the files at the given path
    • [x] getFolders: returns the names of the folders at the given path
    • [x] readFile: returns a string with the contents of the file
    enhancement 
    opened by JaimieVos 1
  • Added Windows(MSVC, MinGW) and Linux CI build.

    Added Windows(MSVC, MinGW) and Linux CI build.

    #56 #64

    • windows-latest(MSVC-latest)
    • windows-latest(MinGW 8.1.0)
    • ubuntu-latest (GCC 9.3.0)

    You can check actions on my branch: https://github.com/requizm/wase-engine/tree/GithubActionCI

    opened by requizm 1
  • Continuous Integration tools

    Continuous Integration tools

    Is your feature request related to a problem? Please describe. We should add it to see if there are errors in pull requests.

    Describe the solution you'd like We can use github actions, travis-ci etc. Currently the following can be done on windows:

    • MinGW 8.1.0 or up
    • MSVC 2019
    enhancement 
    opened by requizm 1
  • Added a way to play sound.

    Added a way to play sound.

    Added four sound classes: buffer used to load sounds, music buffer used to play music, sound device used to control how the sound is heard, and source class that is used to play sounds.

    opened by Crawfish-h 1
  • IO writing methods

    IO writing methods

    Describe the solution you'd like A namespace that contains methods to write information to the filesystem

    • [ ] copy: copies the source path to the target path
    • [ ] delete: deletes a file/folder
    • [ ] createFile: creates a file at the target location
    • [ ] createFolder: creates a folder at the target location
    • [ ] write: write to the target file
    enhancement 
    opened by JaimieVos 3
  • String ID's

    String ID's

    Describe the solution you'd like An implementation for string id's to identify things such as entities and scenes in an efficiënt way.

    Additional context https://cowboyprogramming.com/2007/01/04/practical-hash-ids/

    enhancement 
    opened by JaimieVos 0
Releases(1.0)
  • 1.0(Jul 19, 2021)

    Finally the first official version of Wase Engine is ready to be published! Hopefully we can keep expanding Wase Engine with more features in the future! For more information visit our website https://wase-engine.com/

    Features in V1.0:

    1. Scenes
    2. Entities
    3. Components
      • Transform
      • SpriteRenderer
      • Animator
      • AudioSource
      • BoxCollider2D
      • Label
    4. Resource management
    5. Scene management
    6. Input system
    7. Logging system
    8. Drawing class
    9. Camera system
    Source code(tar.gz)
    Source code(zip)
    wase-engine-v1.0-precompiled.zip(1.14 MB)
Owner
Wase Engine
A 2D game engine written in C++
Wase Engine
Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.

OpenXRay OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. S

null 2.2k Jan 1, 2023
Hyperion Engine is a 3D game engine written in C++

Hyperion Engine About Hyperion Engine is a 3D game engine written in C++. We aim to make Hyperion be easy to understand and use, while still enabling

null 293 Jan 1, 2023
Godot Engine – Multi-platform 2D and 3D game engine

Godot Engine 2D and 3D cross-platform game engine Godot Engine is a feature-packed, cross-platform game engine to create 2D and 3D games from a unifie

Godot Engine 56.7k Jan 9, 2023
Flax Engine – multi-platform 3D game engine

Flax Engine – multi-platform 3D game engine

Flax Engine 3.7k Jan 7, 2023
MAZE (My AmaZing Engine) - 🎮 Personal open-source cross-platform game engine

MAZE (My AmaZing Engine) is the self-written open-source cross-platform game engine in the active development stage. At the moment it is my main pet project, developed for the purpose of learning and preserving different game dev technologies.

Dmitriy Nosov 13 Dec 14, 2022
Rogy-Engine- - My 3D game engine source code.

Rogy-Engine Development My 3D game engine. (NOT THE FINAL VERSION- Windows only) Features: PBR shading and reflection probes with parallax correction.

AlaX 97 Dec 28, 2022
The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

null 2.8k Dec 29, 2022
A lightweight game engine written in modern C++

Halley Game Engine A lightweight game engine written in C++17. It has been used to ship Wargroove, a turn-based strategy game, on Windows, Mac (experi

Rodrigo Braz Monteiro 3.2k Dec 30, 2022
Simple, fast, easy to get started mid-level game engine written in Zig

Alka Game engine written in zig, compatible with master branch. This engine does provide a toolset for you but generally you have to implement how the

Kiakra 23 Dec 5, 2022
A 2D game engine written in C++

Wase Engine is an open source 2d game library made with C++ and the SDL libraries. Wase Engine can be used to create all kinds of 2d games. The main g

Wase Engine 53 Nov 10, 2022
A game engine written in C

Spark Engine 2D/3D game engine in development - Written in C - Using OpenGL - Similar concepts as in Unity Building stuffs (>w<) Requirements: - g++ 5

LamkasDev 9 Nov 21, 2022
A Game Engine written in C++

A Game Engine written in C++

YeffyCodeGit 7 Sep 6, 2022
A very simple 2D game engine written in C++, using SDL and Lua.

2D Game Engine written in C++, SDL, and Lua. This is a simple 2D game engine written in C++ and using SDL and Lua scripting

Gustavo Pezzi 27 Dec 29, 2022
Minetest is an open source voxel game engine with easy modding and game creation

Minetest is an open source voxel game engine with easy modding and game creation

Minetest 8.3k Dec 29, 2022
To recreate the board game Scotland yard and enable a single player to play the game by letting one of the roles being played by the computer based on written algorithm

Scotland Yard GAME OF SCOTLAND YARD This is a custom version of the classic board game, Scotland Yard .The game uses the London map used in the origin

Brshank 2 Nov 11, 2021
Stealthy way to hijack the existing game process handle within the game launcher (currently supports Steam and Battle.net). Achieve external game process read/write with minimum footprint.

Launcher Abuser Stealthy way to hijack the existing game process handle within the game launcher (currently supports Steam and Battle.net). Achieve ex

Ricardo Nacif 80 Nov 25, 2022
Game Boy, Game Boy Color, and Game Boy Advanced Emulator

SkyEmu SkyEmu is low level cycle accurate GameBoy, GameBoy Color and Game Boy Advance emulator that I have been developing in my spare time. Its prima

Sky 321 Jan 4, 2023
OGRE is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce games and demos utilising 3D hardware.

OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce games and demos utilising 3D hardware. The class library abstracts all the details of using the underlying system libraries like Direct3D and OpenGL and provides an interface based on world objects and other intuitive classes.

null 3.1k Jan 3, 2023
An OpenGL Engine Written In C Using A Very OOP-Like Way Of Programming

A Simple Engine in its very first stages of becoming a, Game Engine or just a framework for making games using OpenGL. Here are the features of the Op

DevHedron 26 Jul 9, 2022