zyeware 0.5.0

Simple, general purpose 2D and 3D game engine.


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

ZyeWare Game Engine

License Open issues Last commit

<p align="center">

<img src="res/core-package/textures/engine-logo.png" width="600" alt="ZyeWare Logo">

</p>

Introduction

ZyeWare is a multi-platform, general purpose 2D and 3D game engine (mainly focused on 2D though). Not much more to say quite yet.

I'm mainly developing this engine on stream over on my channel!

History

Initial work started back in March 2019 when developing a game engine for a physics engine assignment. This was then rewritten in August 2020 to the current structure, until it was forgotten about. Beginning with 2023, I've picked it up again, rebranded, and am trying to finally mature it enough as to be able to create simple (or maybe even more sophisticated) games with it.

A very important resource, especially for the early stages of the engine rewrite, has been Hazel from Cherno! He's really cool, you should check him out!

What can it do?

Not much currently. It supports a Virtual File System with high moddability, various rendering functionalities (where 2D is rendered with batching), audio of course, and has a quite well integrated Entity Component System structure on top of it. Available backends are currently OpenGL (with SDL) and OpenAL.

Games created with ZyeWare

Not yet. I'll start listing them as soon as there are, though.

Contributions?

If you want to contribute, that would be really cool! Please just be aware of various pitfalls:

  • Methods declared in DI files must be implemented in a separate file exactly in the order they were declared in. Otherwise very strange linking issues occur.
  • I try to take readability of code very seriously, so while still trying to be performant, please perfer clear and easy to understand code instead of black magic.

How to build (or create a game)

Following these steps should give you a working development setup:

  • Clone this repository somewhere under the name zyeware, and afterwards register it as a local package with dub add-local zyeware/ "1.0.0"
  • Clone https://github.com/zyebytevt/zpklink somewhere as zpklink, and register it with dub add-local zpklink/ "1.0.0"
  • Fetch the necessary dependencies. For now, this should only be SDL2, OpenGL and OpenAL. How you get those libraries depends on your operating system.
  • Now you can either create a new project with zyeware as a DUB dependency, or you can clone https://github.com/zyebytevt/zyeware-sandbox for a base and lots of examples on how to do stuff.

Can I create games with it?

If you can stomach it, sure. LGPL even allows you to create closed-source games with it, if your heart so desires.

Authors:
  • ZyeByte
Dependencies:
imagefmt, sdlang-d, terminal, audio-formats, bmfont, inmath
Versions:
0.5.0 2023-Feb-17
0.0.1 2023-Jan-02
~main 2023-Aug-26
~feat/vulkan 2023-Mar-20
~feat/abstract-rendering 2023-Sep-09
Show all 5 versions
Download Stats:
  • 0 downloads today

  • 1 downloads this week

  • 3 downloads this month

  • 29 downloads total

Score:
1.4
Short URL:
zyeware.dub.pm