{"id":15297545,"url":"https://github.com/b3dgs/lionengine","last_synced_at":"2025-04-09T15:07:43.207Z","repository":{"id":9705371,"uuid":"11656984","full_name":"b3dgs/lionengine","owner":"b3dgs","description":"Java 2D Game Engine","archived":false,"fork":false,"pushed_at":"2024-08-13T12:20:03.000Z","size":91703,"stargazers_count":138,"open_issues_count":2,"forks_count":23,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-09T15:07:35.275Z","etag":null,"topics":["audio","awt","engine","game-engine","java","network"],"latest_commit_sha":null,"homepage":"http://lionengine.b3dgs.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/b3dgs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-07-25T09:35:41.000Z","updated_at":"2025-01-26T04:51:30.000Z","dependencies_parsed_at":"2024-01-11T20:19:42.153Z","dependency_job_id":"a0807ace-6d84-4a4a-b0e1-836f19872f3d","html_url":"https://github.com/b3dgs/lionengine","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b3dgs%2Flionengine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b3dgs%2Flionengine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b3dgs%2Flionengine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b3dgs%2Flionengine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/b3dgs","download_url":"https://codeload.github.com/b3dgs/lionengine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248055284,"owners_count":21040157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","awt","engine","game-engine","java","network"],"created_at":"2024-09-30T19:18:14.362Z","updated_at":"2025-04-09T15:07:43.184Z","avatar_url":"https://github.com/b3dgs.png","language":"Java","readme":"|\u003cimg hspace=\"90\"/\u003e\u003cbr\u003e[![Build](https://github.com/b3dgs/lionengine/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/b3dgs/lionengine/actions/workflows/build.yml)\u003cbr\u003e[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=b3dgs_lionengine\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=b3dgs_lionengine)\u003cbr\u003e[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=b3dgs_lionengine\u0026metric=ncloc)](https://sonarcloud.io/summary/new_code?id=b3dgs_lionengine)\u003cbr\u003e[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.b3dgs.lionengine/lionengine-core/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.b3dgs.lionengine/lionengine-core)\u003cbr\u003e[![Dev](https://img.shields.io/badge/dev-v10.0.0%20SNAPSHOT-yellow.svg)](https://github.com/b3dgs/lionengine/milestone/34)\u003cbr\u003e[![License](https://img.shields.io/github/license/b3dgs/lionengine)](/LICENSE)\u003cbr\u003e\u003cimg hspace=\"90\"/\u003e | \u003ca href=\"https://www.b3dgs.com/v7/page.php?lang=en\u0026section=lionengine\"\u003e\u003cimg hspace=\"90\" src=\"https://user-images.githubusercontent.com/34600369/41530953-b6f4554a-72e9-11e8-9ab1-e49d390a9117.png\" width=\"200\"/\u003e\u003c/a\u003e | \u003cimg hspace=\"90\"/\u003e\u003cbr\u003e[Presentation](#presentation)\u003cbr\u003e[General features](#general-features)\u003cbr\u003e[Download](#download)\u003cbr\u003e[Installation](#installation)\u003cbr\u003e[Getting Started](#getting-started)\u003cbr\u003e[Tutorials](#tutorials)\u003cbr\u003e\u003cimg hspace=\"90\"/\u003e |\n|:---|:---:|---:|\n\n## Presentation\nThe __LionEngine__ is a game engine especially developed during the project [Lionheart Remake](https://lionheart.b3dgs.com) for an easy Java use.\nThe engine is as a library, in Jar format (_including its javadoc_), which can be included in any project;\nfor utility class uses, or to directly implement and inherit a game skeleton (_including management of frame rate, extrapolation, input output..._).\n\nUsing Java 17 internal libraries, it is specifically designed for 2D games (no support for 3D at the moment), and proposes a set of functions for 2D resources management (_images_, _sprites_, _animations_, _tiles_, _font_...).\nInputs and outputs are also available, with an easy keys retrieval, mouse movement... Management of music file are also available (_Wav_, _Midi_, and more using plug-ins, such as _Sc68_, _AdPlug_ and _AdlMidi_).\nWindowed, full-screen and applet formats are fully supported, with a complete frame rate control.\n\nIt supports __Android 5.0__ *(API 21)*.\nThe only change to perform is the gameplay part, as the '__mouse__' and '__keyboard__' concepts are different on Android.\nEverything else is fully compatible and does not require any changes.\n\nThe __LionEngine Editor__ is designed to help game development by providing a set of tool for general object edition and map generation.\n\n## General Features\n### Core\n\u003e * #### __lionengine-core__\n\u003e   * Simple initialization and screen configuration (_windowed, fullscreen_)\n\u003e   * Advanced game loop (_machine speed independent, frame skipping, hybrid_)\n\u003e   * Filtering capability (_Bilinear, Blur, HQ2X, HQ3X, Scanline, CRT_)\n\u003e   * Sequence control (_intro, menu, game part, credits..._)\n\u003e   * Easy resource management (_relative to resource directory, JAR, temp_)\n\u003e   * Advanced image usage (_sprite, animation, tile, font, parallax_)\n\u003e   * File I/O (_binary \u0026 XML reader \u0026 writer_)\n\u003e   * Server \u0026 Client UDP system\n\u003e   * Utility classes (_Random, Conversions, Maths, File..._)\n\u003e   * Verbosity control\n\u003e * #### __lionengine-core-awt__\n\u003e   * Engine implementation using __AWT__ from _JDK 17_\n\u003e * #### __lionengine-core-android__\n\u003e   * Engine implementation using __Android 5.0__ _as graphic renderer, target for smartphones_\n\u003e * #### __lionengine-game__\n\u003e   * Camera management (_view and movement_)\n\u003e   * Cursor (_synced or not to system pointer_)\n\u003e   * Background package (_for an easy background composition_)\n\u003e   * Tile based map package (_with minimap support, native save \u0026 load function_)\n\u003e     * Ray cast collision system\n\u003e     * Compatibility with raster bar effect\n\u003e     * A Star pathfinding implementation\n\u003e     * Tile extractor (_generate tilesheet from a level rip image_)\n\u003e     * Level rip converter (_generate a level data file from a tile sheet and a level rip image_)\n\u003e   * Object package\n\u003e     * Setup (_external XML configuration_)\n\u003e     * Factory (_reusable cached object instances_)\n\u003e     * Handler (_updating, rendering, and retrieving_)\n\u003e   * Extensible _Feature_ system to compose object characteristics without code complexity\n\u003e     * Transformable (_size and translation_)\n\u003e     * Body (_gravity handling_)\n\u003e     * Launchable (_launcher and projectile system_)\n\u003e     * Rasterable (_object raster bar effect_)\n\u003e     * Producible (_ability to produce other objects_)\n\u003e     * Collidable (_collision handling_)\n\u003e     * Networkable (_synced object over network_)\n\u003e     * and more...\n\u003e * #### __lionengine-audio-wav__\n\u003e   * Support for Wav sound\n\u003e * #### __lionengine-audio-sc6__\n\u003e   * Support for Sc68 Atari music (Sc68 wrapper)\n\u003e * #### __lionengine-audio-adplug__\n\u003e   * Support for Loudness Sound music (AdPlug wrapper)\n\u003e * #### __lionengine-audio-adlmidi__\n\u003e   * Support for Midi music (AdlMidi wrapper)\n### Editor\n\u003e * #### __com.b3dgs.lionengine.core.swt__\n\u003e   * Core implementation with SWT, dedicated to an Eclipse RCP4 usage\n\u003e * #### __com.b3dgs.lionengine.editor__\n\u003e   * Complete standalone editor which can be used in any project for general level edition\n\u003e   * Can be extended to perform more specific things\n\u003e * #### __com.b3dgs.lionengine.editor.map__\n\u003e   * Full map tile support with import and export function\n\u003e * #### __com.b3dgs.lionengine.editor.object__\n\u003e   * Object handling and editing with advanced properties\n\u003e   * Can be placed and removed on map with mouse\n\u003e * #### __com.b3dgs.lionengine.editor.animation__\n\u003e   * Animation editor frame by frame with mouse\n\u003e * #### __com.b3dgs.lionengine.editor.collision__\n\u003e   * Collision edition assignment with mouse\n\u003e * #### __com.b3dgs.lionengine.editor.pathfinding__\n\u003e   * Pathfinding support with properties edition\n\n## Download\n|[Go to website](https://www.b3dgs.com/v7/page.php?lang=en\u0026section=lionengine)|[Last version](https://lionengine.b3dgs.com/v9-0/page.php?lang=en\u0026section=downloads)|[Maven Central](https://search.maven.org/artifact/com.b3dgs.lionengine/lionengine-core/10.0.0-SNAPSHOT/jar)\n|---|---|---|\n\n## Installation\nSteps to include the __LionEngine__ in your project:\n1. Install at least the [Java JDK 17](https://adoptium.net/)\n2. Choose your favourite IDE ([Eclipse](https://www.eclipse.org/downloads/), [Netbeans](https://netbeans.apache.org/download/)...)\n3. Download the latest [LionEngine](https://search.maven.org/search?q=com.b3dgs.lionengine)\n4. Include all __LionEngine__ libraries you need for your project, following the tree dependency:\n   * __lionengine-core__ _(minimum requirement)_\n     * __lionengine-core-awt__ _(uses_ __AWT__ _as graphic renderer, target for computer)_\n     * __lionengine-game__ _(base for game development)_\n     * __lionengine-audio-wav__ _(support for Wav sound)_\n     * __lionengine-audio-sc68__ _(support for Sc68 Atari music)_\n     * __lionengine-audio-adplug__ _(support for LDS music)_\n     * __lionengine-audio-adlmidi__ _(support for Midi music)_\n5. You are now ready to use the __LionEngine__ in your project\n\n## Getting Started\nOnce you installed the __LionEngine__ in your project, you may would like to know how to prepare a quick sample as a first try:\n\n#### Main class\n* Using __lionengine-core-awt__\n```java\npublic class AppSamplePc\n{\n    public static void main(String[] args)\n    {\n        EngineAwt.start(\"Sample Project\", new Version(0, 1, 0), AppSamplePc.class);\n        Loader.start(Config.windowed(Scene.NATIVE.get2x()), Scene.class);\n    }\n}\n```\n\n* Using __lionengine-core-android__\n```java\npublic class ActivitySample extends ActivityGame\n{\n    @Override\n    protected void start(Bundle bundle)\n    {\n        EngineAndroid.start(\"Sample Project\", new Version(0, 1, 0), this);\n        Loader.start(Config.fullscreen(Scene.NATIVE), Scene.class);\n    }\n}\n```\n\n#### Minimal sequence\n```java\npublic class Scene extends Sequence\n{\n    private static final Resolution NATIVE = new Resolution(320, 240, 60);\n\n    public Scene(Context context)\n    {\n        super(context, NATIVE);\n    }\n\n    @Override\n    public void load()\n    {\n        // Load resources\n    }\n\n    @Override\n    public void update(double extrp)\n    {\n        // Update game\n    }\n\n    @Override\n    public void render(Graphic g)\n    {\n        // Render game\n    }\n}\n```\n\n## Tutorials\n* [LionEngine WebSite](https://lionengine.b3dgs.com)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb3dgs%2Flionengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fb3dgs%2Flionengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb3dgs%2Flionengine/lists"}