Skip to content
/ AlmondEngine Public template

Almond Engine - x64 Cross-platform C++20 3D Game Engine

License

Notifications You must be signed in to change notification settings

Autodidac/AlmondEngine

Repository files navigation

Almond Engine - x64 Cross-platform C++20 "Header-Only" Complete 3D Rendering Engine - Focusing Flexability and Maximum Performance.

Almond Engine is a contemporary cross-platform library designed for creating and managing Games across multiple platforms. It abstracts platform-specific Game Management code into a unified interface, allowing you to create and manipulate AlmondEngine in a platform-agnostic way.

GPT-4

Features

  • Cross-platform support for Windows, macOS, Linux, Android, iOS, WebAssembly, PS5, Xbox, and a No-op/Console mode.
  • Game Creation and Management.
  • Platform-specific implementation details hidden behind a common interface.
  • Namespace 'almondengine' Prevents Global Code Leaks
  • Modern C++20 and Efficient Pattern Design
  • Platform-Specific Factories
  • Custom Efficient Memory Management and Logging, and Error Handling
  • Split-Screen and VR Features In AlmondEngine, Ensure that these features are appropriately implemented in the platform-specific classes where applicable.

Tested

  • Tested in Windows 10/11 With Console and WindowsDesktopApplication

## Supported Platforms

- **Windows** (Win32)
- **macOS** (Cocoa)
- **Linux** (XCB or XLib)
- **Android**
- **iOS** (UIKit)
- **WebAssembly** (Emscripten)
- **PlayStation 5** (PS5)
- **Xbox**
- **Console** (Headless mode)

Installation

Prerequisites

  • C++20 or later
  • CMake 3.10 or later

Building

  1. Clone the repository:
   git clone https://github.com/Autodidac/AlmondEngine.git
   cd AlmondEngine

Build using WIN32 (Windows 11 64bit) and vs2022:

Simply run the provided vs solution file AlmondEngine.sln in the main folder

Generate build files using CMake:

Run cmake to generate the build files, then compile:

Build the project:

Basic Build:

mkdir build
cd build
cmake ..
cmake --build .

Usage

Example Console Batch
@echo off
AlmondEngine_Example.exe 
pause
Example
#include "AlmondEngine.h"

int main() {
    auto AlmondEngine = almondengine::renderer::createAlmondEngine();
    if (AlmondEngine->init()) {
        AlmondEngine->createWindow(L"Example Game", 800, 600);
        // Main loop or additional logic here
        AlmondEngine->shutdown();
    }
    return 0;
}

API Reference

almondengine::AlmondEngine
static std::unique_ptr<AlmondEngine> createAlmondEngine()
bool init()
bool createWindow(const wchar_t* title, int width, int height)
void shutdown()

Platform-specific Implementations

The platform-specific implementation files are organized into separate source files. Each implementation file contains the initialization, window creation, and shutdown code for a specific platform.

-Windows: AlmondEngineWin32.cpp and AlmondEngineWin32.h

-macOS: AlmondEngineMac.cpp and AlmondEngineMac.h

-Linux: AlmondEngineLinux.cpp and AlmondEngineLinux.h

-Android: AlmondEngineAndroid.cpp and AlmondEngineAndroid.h

-iOS: AlmondEngineIOS.cpp and AlmondEngineIOS.h

-WebAssembly: AlmondEngineWebAssembly.cpp and AlmondEngineWebAssembly.h

-PlayStation 5: AlmondEnginePS5.cpp and AlmondEnginePS5.h

-Xbox: AlmondEngineXbox.cpp and AlmondEngineXbox.h

-No-op mode: AlmondEngineConsole.cpp and AlmondEngineConsole.h

License

Almond Engine is licensed under the MIT License. See the LICENSE file for details.

If you're not aware of the MIT License get familiar with it.

Contributing

Contributions are welcome! Please see the CONTRIBUTING.md file for guidelines.

Acknowledgements

This project was developed with the support of OpenAI's GPT-4, which provided valuable assistance in generating code and design ideas.

I appreciate the power and capabilities of GPT-4 in aiding the creation of this project and others.

Almond Engine - A GPT-4 Cross-platform Library For All! Almost Entirely Built and Designed by AI - Even much of this readme and the CMakeLists.txt are written by GPT-4.. what a wonderful tool Thank You Again!

About

Almond Engine - x64 Cross-platform C++20 3D Game Engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published