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.

Issues
  • 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
  • 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
  • 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
  • Vector2 and Vector3 magnitude, dot and cross product

    Vector2 and Vector3 magnitude, dot and cross product

    Describe the solution you'd like A Vector3 class should be added. To the Vector2 class should be added: magnitude, dot and cross product calculations. The Vector3 should have the same methods as the Vector2 class.

    enhancement 
    opened by JaimieVos 0
  • Mouse position gives wrong position when fullscreen with blackbars

    Mouse position gives wrong position when fullscreen with blackbars

    Describe the bug When the window has blackbars because of a higher resolution the mouse position isn't correct anymore.

    To Reproduce

    1. Set up a window that has a lower resolution than your screen and add the fullscreen flags to it.
    2. Make an entity with a sprite renderer that renders a simple cube.
    3. Assing the entity position to the mouse position

    Expected behavior The cube will have an offset to the mouse position because the blackbars aren't calculated with it.

    System information:

    • OS: Windows 11
    bug confirmed 
    opened by JaimieVos 0
  • Particle system

    Particle system

    Describe the solution you'd like There should be a particle system. I don't know yet what it should contain and how it should be but I will fill up this issue soon with more information.

    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 2k Aug 10, 2022
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 163 Aug 9, 2022
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 51.6k Aug 3, 2022
Flax Engine – multi-platform 3D game engine

Flax Engine – multi-platform 3D game engine

Flax Engine 3.5k Aug 10, 2022
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 11 Jan 9, 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 92 Jun 18, 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.7k Aug 6, 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.1k Aug 9, 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 21 Jul 27, 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 46 May 23, 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 8 Jul 9, 2022
A Game Engine written in C++

A Game Engine written in C++

YeffyCodeGit 6 Feb 20, 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 16 Jul 13, 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 7.7k Aug 3, 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 76 Jul 28, 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 193 Aug 6, 2022
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 2.9k Aug 2, 2022
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