{"id":21723464,"url":"https://github.com/thedudefromci/wraithengine","last_synced_at":"2025-04-12T22:05:25.099Z","repository":{"id":25162380,"uuid":"28585264","full_name":"TheDudeFromCI/WraithEngine","owner":"TheDudeFromCI","description":"A free, open source, Java game engine library built on top of LWJGL. Designed to act as a use-exactly-what-you-need, no-assumptions framework, WraithEngine is versatile enough to act as a library within other tools or projects, or a full fledged standalone game engine.","archived":false,"fork":false,"pushed_at":"2022-01-09T03:50:45.000Z","size":789,"stargazers_count":56,"open_issues_count":8,"forks_count":19,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-12T22:05:20.768Z","etag":null,"topics":["engine","framework","game","game-development","game-engine","gamedev","indiedev","java-game","library","lwjgl3"],"latest_commit_sha":null,"homepage":"https://wraithengine.github.io/WraithEngine/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheDudeFromCI.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}},"created_at":"2014-12-29T08:14:55.000Z","updated_at":"2025-03-10T17:35:30.000Z","dependencies_parsed_at":"2022-08-23T03:20:20.693Z","dependency_job_id":null,"html_url":"https://github.com/TheDudeFromCI/WraithEngine","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDudeFromCI%2FWraithEngine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDudeFromCI%2FWraithEngine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDudeFromCI%2FWraithEngine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDudeFromCI%2FWraithEngine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheDudeFromCI","download_url":"https://codeload.github.com/TheDudeFromCI/WraithEngine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248637770,"owners_count":21137538,"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":["engine","framework","game","game-development","game-engine","gamedev","indiedev","java-game","library","lwjgl3"],"created_at":"2024-11-26T02:39:33.825Z","updated_at":"2025-04-12T22:05:25.072Z","avatar_url":"https://github.com/TheDudeFromCI.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eWraithEngine\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\u003ci\u003eWraithEngine is a free, open-source, Java-based game engine built on top of LWJGL. It is designed to use high-level API for creating games quickly and easily. It is designed to allow users to be able to browse and modify the engine to fit their needs, and only apply components which are relevant for their projects.\u003c/i\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/TheDudeFromCI/nodelib\" /\u003e\n  \u003cimg src=\"https://img.shields.io/github/repo-size/TheDudeFromCI/nodelib\" /\u003e\n  \u003cimg src=\"https://img.shields.io/github/issues/TheDudeFromCI/nodelib\" /\u003e\n  \u003cimg src=\"https://img.shields.io/github/v/release/TheDudeFromCI/nodelib?include_prereleases\" /\u003e\n  \u003ca href=\"https://github.com/TheDudeFromCI/WraithEngine/actions\"\u003e\u003cimg alt=\"Actions Status\" src=\"https://github.com/TheDudeFromCI/WraithEngine/workflows/CI/badge.svg\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://sonarcloud.io/dashboard?id=TheDudeFromCI_WraithEngine\"\u003e\u003cimg alt=\"Quality Gate Status\" src=\"https://sonarcloud.io/api/project_badges/measure?project=TheDudeFromCI_WraithEngine\u0026metric=alert_status\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://sonarcloud.io/dashboard?id=TheDudeFromCI_WraithEngine\"\u003e\u003cimg alt=\"Bugs\" src=\"https://sonarcloud.io/api/project_badges/measure?project=TheDudeFromCI_WraithEngine\u0026metric=bugs\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://sonarcloud.io/dashboard?id=TheDudeFromCI_WraithEngine\"\u003e\u003cimg alt=\"Coverage\" src=\"https://sonarcloud.io/api/project_badges/measure?project=TheDudeFromCI_WraithEngine\u0026metric=coverage\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://sonarcloud.io/dashboard?id=TheDudeFromCI_WraithEngine\"\u003e\u003cimg alt=\"Maintainability Rating\" src=\"https://sonarcloud.io/api/project_badges/measure?project=TheDudeFromCI_WraithEngine\u0026metric=sqale_rating\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://sonarcloud.io/dashboard?id=TheDudeFromCI_WraithEngine\"\u003e\u003cimg alt=\"Technical Debt\" src=\"https://sonarcloud.io/api/project_badges/measure?project=TheDudeFromCI_WraithEngine\u0026metric=sqale_index\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://bettercodehub.com/\"\u003e\u003cimg alt=\"BCH compliance\" src=\"https://bettercodehub.com/edge/badge/TheDudeFromCI/WraithEngine?branch=master\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n#### Java Version\n\nStarting with build 27, Java 13 is now the targeted version being used to compile the project. (Previously version 8.)\n\n## Screenshots\n\n\u003cimg src=\"wiki/spinning-cube.webp\" width=\"250px\" /\u003e\n\u003cimg src=\"wiki/terrain.webp\" width=\"250px\" /\u003e\n\n## Getting Started\n\nWraithEngine primarily uses Maven for package management, but for users who wish to use their own package management system, the jar file and dependencies can be found in the releases tab.\n\n### Setting Up Maven\n\nIf your project uses a Maven workflow, the following dependency should be added to your pom.xml file:\n\n```\n\u003cdependency\u003e\n    \u003cgroupId\u003enet.whg\u003c/groupId\u003e\n    \u003cartifactId\u003ewraithengine\u003c/artifactId\u003e\n    \u003cversion\u003eBUILD_NUMBER\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nReplace **BUILD_NUMBER** with the build number you wish to use, in the format `build*#`. Or,`build_3` to use build 3, for example.\n\nAs WraithEngine uses the Github Package Repository, you must also add this repository to your project in order to access WraithEngine. This can be done by modifying your Maven settings.xml file. This file is a Maven user settings file, which tells Maven useful tips such as what servers to check to resolve dependencies, and account information for logging in to those servers to access them. This file is found at `USER_HOME_FOLDER/.m2/settings.xml`.\n\nFor individuals using Linux, this is usually: `/home/USERNAME/.m2/settings.xml`\n\u003cbr\u003e\nFor individuals using Windows, this is usually: `C:\\Users\\USERNAME\\.m2\\settings.xml`\n\u003cbr\u003e\nFor individuals using Mac, this is usually: `/Users/USERNAME/.m2/settings.xml`\n\nIf you're using a custom workflow, you can also create a separate settings.xml file specific to your current project. Simply use the `--settings PATH/TO/SETTINGS` flag when calling Maven commands to use a custom settings file.\n\nIf the file does not exist, create it. After creating it, you want to add the following repositories and server tags. You should modify your file to look like this. (See profiles and servers) This basically tells Maven where to look for the WraithEngine package at. Due to how Github is set up, you also must have a Github API token created to allow you to download packages remotely, even though they're open source. This can be seen below in the `\u003cservers\u003e` tag.\n\n```\n\u003csettings xmlns=\"http://maven.apache.org/SETTINGS/1.0.0\"\n  xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://maven.apache.org/SETTINGS/1.0.0\n                      http://maven.apache.org/xsd/settings-1.0.0.xsd\"\u003e\n\n  \u003cactiveProfiles\u003e\n    \u003cactiveProfile\u003egithub\u003c/activeProfile\u003e\n  \u003c/activeProfiles\u003e\n\n  \u003cprofiles\u003e\n    \u003cprofile\u003e\n      \u003cid\u003egithub\u003c/id\u003e\n      \u003crepositories\u003e\n        \u003crepository\u003e\n          \u003cid\u003ecentral\u003c/id\u003e\n          \u003curl\u003ehttps://repo1.maven.org/maven2\u003c/url\u003e\n          \u003creleases\u003e\u003cenabled\u003etrue\u003c/enabled\u003e\u003c/releases\u003e\n          \u003csnapshots\u003e\u003cenabled\u003efalse\u003c/enabled\u003e\u003c/snapshots\u003e\n        \u003c/repository\u003e\n\n        \u003crepository\u003e\n          \u003cid\u003egithub\u003c/id\u003e\n          \u003cname\u003eGitHub wraithengine Apache Maven Packages\u003c/name\u003e\n          \u003curl\u003ehttps://maven.pkg.github.com/wraithengine/WraithEngine\u003c/url\u003e\n        \u003c/repository\u003e\n      \u003c/repositories\u003e\n    \u003c/profile\u003e\n  \u003c/profiles\u003e\n\n  \u003cservers\u003e\n    \u003cserver\u003e\n      \u003cid\u003egithub\u003c/id\u003e\n      \u003cusername\u003eUSERNAME\u003c/username\u003e\n      \u003cpassword\u003eAPI_TOKEN\u003c/password\u003e\n    \u003c/server\u003e\n  \u003c/servers\u003e\n\u003c/settings\u003e\n```\n\nReplace `USERNAME` with your Github username in all lowercase letters. Replace `API_TOKEN` with your Github API token.\n\nIf you're unsure how to create a Github API token, go into your user settings, and select Developer settings. Select Personal Access Tokens, and generate a new token that specific to the device you are working on. Make sure to give it the \"read:packages\" flag.\n\n**Note:**\nKeep this token secret! This is a basically a password which allows software to access your account. This should be kept a secret! If your API token is ever compromised, delete it and create a new token.\n\n### Jar Download\n\nIf your currently workflow does not use Maven, all builds, starting from build 14, can be found in the releases menu about. The libraries which WraithEngine relies on can be found next to the release zip.\n\n### Building From Source\n\n*Requires Maven*\n\nYou can build the project from source by simple cloning the project and running:\n* `mvn -DskipTests dependency:copy-dependencies package`\n\nin the project directory. The WraithEngine jar file can be found in the `target` folder. All of the dependencies for it will automatically be downloaded into the `target/dependency` folder.\n\n## Project Demos\n\n*Requires Maven*\n\nVarious demos for WraithEngine can be found within the `Demos` folder, showing off some of the various features of WraithEngine, as well as how they are used. If you'd like to run these projects yourself, you can clone the project, then run the following command from within the project directory:\n\n* `mvn -DskipTests dependency:copy-dependencies install`\n* `mvn -f Demos/pom.xml dependency:copy-dependencies package`\n\nFor **Unix** / **Mac**:\n* `java -cp \"Demos/target/*:Demos/target/dependency/*\" DEMO_NAME`\n\nFor **Windows**:\n* `java -cp \"Demos/target/*;Demos/target/dependency/*\" DEMO_NAME`\n\nwhere **DEMO_NAME** is the name of the demo you wish to run, including the path. (I.e `graphics.SpinningCubeDemo` to run the spinning cube demo.)\n\n## Contributing\n\nWraithEngine is open-source and community-driven. All contributions are welcome and highly encouraged! If you see an area of the project which is lacking, feel free to open an issue or submit a pull request. If you want to help but aren't sure where to start:\n\n- Test Coverage\n\n  Extra tests are always awesome! They help prevent potential bugs and improve the stability of areas of the project which might have been overlooked in the past. If you think of some important tests which weren't originally added, feel free to submit them.\n\n- Documentation\n\n  Sometimes documentation is poorly worded or doesn't properly explain what's going on. If you think of a better way of explaining something, or just generally tweaking the grammar and formatting, go for it.\n\n- Bug Fixes\n\n  This is a pretty straight forward one. Bugs happen, and they suck, a lot. But if you have some time to squash a few of them, the community would greatly appreciate it!\n\n- Features and Enhancements\n\n  These are the really big ones, for the brave. If you see a crucial feature on the todo list, that's really taking far too long to be implemented, feel free to get the ball rolling. It keeps things moving and ensures that the most important features actually make it into the project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthedudefromci%2Fwraithengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthedudefromci%2Fwraithengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthedudefromci%2Fwraithengine/lists"}