Sand Dune Engine

Establish Your Domain



Sand Dune Engine is an open source 2D C++ engine that specializes in versatility without compromising readability and functionality. How it accomplishes this is by using a hybrid between Object Oriented and Entity Component paradigms. Take charge in your projects. There is no obfuscated code. The repository is structured consistently to make it easier to understand how the systems operate. It is also structured in a modular way where developers can swap out components in a way they see fit.


Who should use this?

Developers that meet these criteria:


There are superior engines out there. If there's a need to release a product as quickly as possible, or if there's a need to work with larger communities, choosing Sand Dune is not the correct engine. This engine is small and can be restrictive when requiring features that are not yet implemented. There are advantages and disadvantages when working with this engine. See documentation for an comprehensive list of its features and limitations.


Strengths:

Sand Dune is Readable

Unlike other engines that are either hidden behind closed source or obfuscated behind its custom build tools and its size, Sand Dune is an open source project with an emphasis on readable and consistent source code. If you desire to step through the code to understand how it works, or if there's a component you wish to change, you certainly can! Its size also makes it more versatile to work with. With a smaller system, it's easier to change without introducing unintended consequences. With the source code being structured in a consistent format, understanding how one module work will also help you understand how the rest may work.


Sand Dune is Modular

Each collection of features are segregated into modules. Not only this improves readability but it also makes it easier to identify where systems are located as well as swapping out parts. For example, if you desire a different physics engine, you can swap out the physics module with something else.


Sand Dune is Robust

Sand Dune is not just a game engine. With its flexible UI modules, 8tncan be used to build custom editors and standalone applications. Sand Dune uses a hybrid mix between entity component and object oriented paradigms. It uses the right tool for the job. With object oriented, classes are used to define certain behaviors that can be extended. In addition to that, Sand Dune implements an object reflection system, providing each class meta data that can be leveraged to alter the behavior of certain systems. For example, you can pass in a class reference to a property or function parameter. In addition to that, individual instances, themselves, can be manipulated. With the component-based architecture, developers can attach or detach components. Developers can use this system to implement shared functionality between many unrelated instances.


Sand Dune is Transparent

Maintaining assets is an important job for the longevity of the product. As assets change overtime, or as multiple developers work with a single system, it is important to see how the assets change. Most of the content assets are stored in plain text. This allows for deltas to become visible through version control without the need to open a program that's able to read its format. This also makes it easier to handle merge conflicts, which is especially important when working with a decentralized version control software such as git. However, it does not compromise speed for readability. When deploying to the end product, these assets are exported to binary format!


Sand Dune is Independent

A publisher is not financially backing this engine. Instead Translucent Games makes decisions for the betterment of the engine and to foster a community of hobbiests and professionals alike. Join the discord to interact with your peers as well as work closely with other developers like you.



Weaknesses:

Sand Dune is Growing

There are many incomplete features that are still in the works. The most noticeable limitations are the 2D graphics engine, missing editors, and some essential modules such as animation are not yet implemented. Sand Dune's development is ongoing, but it's recommended to review the list of features since there may be a requirement you need that is not yet implemented.


Sand Dune is Volatile

With new systems being introduced, comes a risk of new bugs. This engine is not battle-hardened compared to other engines. Bugs will be revealed and systems may change over time. Fortunately, all minor versions are backwards compatible, and all revisions will be documented to make it easier to update existing projects. In addition to that, there is no mandate to update Sand Dune. Cherry picking revisions is also an option if there's a need to pull a particular feature from a newer branch.


Sand Dune is Windows only

There is no cross platform support at this time. Eventually there will be support for other operating systems, but at this time, only Windows is supported.


Sand Dune is Gradual

Only a handful of developers are working on this engine in their spare time. Just like it takes multiple years to build its foundation, it'll take awhile to build new features and fix bugs.