SkillAgentSearch skills...

YieldEngine

A powerful scene-oriented JVM game engine, created with the objective of being a simple and efficient engine for creating 2d games in Java ☕

Install / Use

/learn @yield-proj/YieldEngine
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<img align="right" src="yieldIcon.png" height="200" width="200" alt="yield icon">

image image image <a href="https://yield-proj.github.io/YieldEngine/index.html" target="_blank"> <img alt="Documentation" src="https://img.shields.io/badge/documentation-javadoc-brightgreen.svg" /> </a> <a href="http://www.apache.org/licenses/" target="_blank"> <img alt="License: Apache License 2.0" src="https://img.shields.io/badge/License-Apache License 2.0-yellow.svg" /> </a>

<h1>Welcome to the official YieldEngine repo 👋</h1>

🎮 A 2D cross-platform game engine

A powerful scene-oriented JVM game engine☕, created with the objective of being a simple and efficient engine for creating 2d games in any JVM capable language. The engine can produce executables capable of running in a number of platforms, including the major desktop platforms (Linux, macOS, Windows), and mobile platforms in the future 😉.

🏠 Website

🪧 Hello, World! Demo

🪪 Documentation

The Yield Engine documentation is hosted on github websites and is contained in this repository. Check the docs or Check the docs folder.

Core Repository Structure

core/
└── src/main/java/com/xebisco/yieldengine/core/
    ├── Scene.java         # Core scene management
    ├── Entity.java        # Base entity class for game objects
    ├── Component.java     # Base component class for entity behaviors
    ├── components/        # Built-in components for common functionality
    │   ├── AudioEmitter.java    # Spatial audio source component
    │   ├── AudioListener.java   # Audio receiver component
    │   ├── Rectangle.java       # 2D rectangle rendering
    │   ├── Sprite.java         # 2D image rendering
    │   └── Text.java           # Text rendering
    ├── graphics/         # Graphics system implementation
    │   └── yldg1/       # Primary graphics implementation
    ├── input/           # Input handling system
    └── io/             # Resource management (textures, audio, fonts)

Quick Start

  1. Create a basic game scene:
Scene gameScene = new Scene();
gameScene.setBackgroundColor(new Color4f(0.2f, 0.3f, 0.8f));
Global.setCurrentScene(gameScene);
  1. Add entities to the scene:
Entity player = new Entity(new EntityHeader("Player"), new Transform());
player.addComponents(new Rectangle().setColor(new Color4f(1, 0, 0)));
gameScene.getEntities().add(player);
  1. Start the game loop:
LoopContext loop = Global.getOpenGLOpenALLoopContext(800, 600);
gameScene.create();
loop.run();

More Detailed Examples

  1. Creating a sprite with texture:
Texture texture = IO.getInstance().loadTexture("path/to/image.png");
Entity sprite = new Entity(new EntityHeader("Sprite"), new Transform());
sprite.addComponents(new Sprite(texture));
  1. Adding audio to a scene:
    Audio audio = IO.getInstance().loadAudio("path/to/sound.ogg");
    Entity emitter = new Entity(new EntityHeader("Emitter"), new Transform());
    emitter.addComponents(new AudioEmitter(audio, true));

Data Flow

The engine processes game data through a component-based entity system, managing rendering and updates through a scene graph.

[Input]    ->   [Scene Controller]   ->  [Entity Updates] -> [Component Processing]
                                               |
                                               v
[Resource Manager] <- [Graphics/Audio] <- [Render Queue]

Component interactions:

  1. Scene/SceneController manages entity lifecycle and updates
  2. Entities contain components and maintain hierarchical relationships
  3. Components handle specific behaviors (rendering, audio, physics)
  4. Graphics system processes render queue using YLDG1 implementations
  5. Resource manager(IO) handles asset loading and unloading
  6. Input system provides keyboard and mouse state updates
  7. Audio system manages spatial audio through emitter/listener components

😁 Getting the engine

Compiled jars

A compiled version of every main release is hosted here on github, check Releases, to choose witch version of the engine to download.

Compile it yourself

If you really want, you can also compile the YieldEngine to fit your needs.

Contributing

Contributions, issues and feature requests are welcome!🤝<br />To start take a look at the contributing guide.

📝 License

Copyright © 2023 Xebisco. This project is Apache License 2.0 licensed 📝.

Author

👤 Xebisco

Related Skills

View on GitHub
GitHub Stars8
CategoryDevelopment
Updated5mo ago
Forks0

Languages

Java

Security Score

87/100

Audited on Oct 25, 2025

No findings