All Projects → gilmore606 → ure

gilmore606 / ure

Licence: MIT License
the unRogueEngine

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to ure

OpenNefia
(Archived) Moddable engine reimplementation of the Japanese roguelike Elona.
Stars: ✭ 103 (-7.21%)
Mutual labels:  engine, roguelike, roguelike-game
Lambdahack
Haskell game engine library for roguelike dungeon crawlers; please offer feedback, e.g., after trying out the sample game with the web frontend at
Stars: ✭ 439 (+295.5%)
Mutual labels:  gamedev, engine, roguelike
Vxr
General purpose engine written in C++ with emphasis on materials rendering (PBR, clear coat, anisotropy, iridescence)
Stars: ✭ 181 (+63.06%)
Mutual labels:  gamedev, engine
Vulkan Renderer
A new 3D game engine using modern C++ and Vulkan API
Stars: ✭ 205 (+84.68%)
Mutual labels:  gamedev, engine
Awesome Haxe Gamedev
Resources for game development on haxe
Stars: ✭ 213 (+91.89%)
Mutual labels:  gamedev, engine
Evennia
Python MUD/MUX/MUSH/MU* development system
Stars: ✭ 1,309 (+1079.28%)
Mutual labels:  gamedev, engine
Gamedev Resources
🎮 🎲 A wonderful list of Game Development resources.
Stars: ✭ 2,054 (+1750.45%)
Mutual labels:  gamedev, engine
Ogsr Engine
OGSR Project - Evolution of X-Ray Engine for S.T.A.L.K.E.R.: Shadow of Chernobyl
Stars: ✭ 213 (+91.89%)
Mutual labels:  gamedev, engine
Sadconsole
A .NET ascii/ansi console engine written in C# for MonoGame and XNA. Create your own text roguelike (or other) games!
Stars: ✭ 853 (+668.47%)
Mutual labels:  gamedev, roguelike
cavernos
Retro fantasy terminal for building DOS-era ASCII games, powered by WebAssembly
Stars: ✭ 32 (-71.17%)
Mutual labels:  roguelike, roguelikedev
Zilon Roguelike
Survival roguelike game with huge world generation.
Stars: ✭ 18 (-83.78%)
Mutual labels:  roguelike-game, roguelikedev
Bgfx
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Stars: ✭ 10,252 (+9136.04%)
Mutual labels:  gamedev, engine
Yeti
⛄️ A general-purpose data-driven game engine with tools. Attribution based licensing.
Stars: ✭ 21 (-81.08%)
Mutual labels:  gamedev, engine
Opensurge
A fun 2D retro platformer inspired by Sonic games and a game creation system.
Stars: ✭ 143 (+28.83%)
Mutual labels:  gamedev, engine
Amethyst
Data-oriented and data-driven game engine written in Rust
Stars: ✭ 7,682 (+6820.72%)
Mutual labels:  gamedev, engine
Flaxengine
Flax Engine – multi-platform 3D game engine
Stars: ✭ 3,127 (+2717.12%)
Mutual labels:  gamedev, engine
Rootex
An advanced C++ 3D game engine powering an in-production game yet to be announced
Stars: ✭ 161 (+45.05%)
Mutual labels:  gamedev, engine
Coffee
An opinionated 2D game engine for Rust
Stars: ✭ 771 (+594.59%)
Mutual labels:  gamedev, engine
Dome
A lightweight game development environment where games can be written in Wren
Stars: ✭ 251 (+126.13%)
Mutual labels:  gamedev, engine
troll-hunter
Trollhunter is a single-player roguelike game.
Stars: ✭ 28 (-74.77%)
Mutual labels:  roguelike, roguelike-game

URE - the unRogueEngine

UnRogue Engine is a Java library for making roguelike games.

ure thumbnail

URE is a class library of smart classes which work together to create a typical roguelike game environment based on 2D cell grids, turn-based action, and procedural content. It can emulate all the conventions of a normal single player roguelike such as Nethack, but is not limited to these conventions. Users can use URE simply as a display layer, as a full world abstraction manager, or take full advantage of its object library and use a conventional roguelike as an immediate jumping-off point to create from.

ure gif

Features

URE is built for flexibility -- you should be able to use as few or as many of its features as you need. Its base classes are extendable and configurable to achieve almost any roguelike game you can imagine.

  • Realtime lighting and visibility with full color blending and illumination for hundreds of lightsources in a scene
  • OpenGL rendering layer with no AWT/swing elements, for cross platform high performance
  • Visual particle system
  • 60fps animation of lights, terrain, and entities
  • Included truetype and pixel CP437-capable monospace fonts, or use any truetype font
  • Complete game loop with action-time system and NPC turn management
  • Full input handling, key buffering, mappable keybindings, mouse support
  • Persist game areas to disk and restore them seamlessly for a persistent world
  • JSON support for defining all types of game entities
  • Many level generator algorithms included as generic methods to mix and match for your own custom level generators
  • A* pathfinding available to actor entities or for general problem solving
  • Simplex and Perlin noise
  • A complete gameworld model incorporating things, actor NPCs, terrain, and more
  • Cartographer system for centrally defining a world structure, regions, and area links
  • UI elements such as a scroll panel, status panels, input widgets, lens panel, and more
  • Built for flexibility -- mix and match URE classes, extend and replace with your own

ure gif

Planned features

  • Drop-in replacement renderer modules to allow graphical tile rendering, isometric views, or other visualizations without changing the underlying game
  • Complex NPC AI, conversation trees, shops, quest-givers, and other rich NPC features
  • Status effects
  • Object materials and composition
  • Environmental effects such as liquid flow, smoke/vapors, and their interactions

(see the Roadmap for more details on planned features.)

Why Java?

The decision to implement URE into Java was not made lightly. We recognize that there are more popular languages for roguelike and indie game development, such as Python, Lua, Unity/C#, etc. However we feel that Java provides several advantages for roguelike development in particular.

  • Robust object model. The data model of a simulation-style game maps well to a robust inheritance/interface model such as Java's. Java capabilities such as reflection allow us to dynamically support user-created classes.
  • Cross platform. Although a Java app requires a JVM, this can be bundled easily into platform-specific distros to support all major targets.
  • Performance. Roguelikes often use CPU-intensive algorithms. Java implementations can be significantly faster than their Python or other interpreted-language equivalent.
  • Type-safety. More accessible languages like Python tend to be weakly typed. While this allows more rapid prototyping and a looser style, it can make maintenance of a large interacting system (such as a roguelike world state) problematic and brittle. Java's strong typing helps to keep things on the rails.
  • Tools support. Working in Java gives us access to professional strength IDEs such as IntelliJ and their plugins and build systems.
  • A path to Scala. We wanted the option, for ourselves and for users, to incorporate Scala in addition to vanilla Java code in order to leverage modern functional programming techniques. This allowed us to mainly support a well-known language (Java) while still providing a path to a functional language (since Scala is a superset of Java), rather than writing natively in a newer less-known functional language.
  • Future non-Java support. Not only Scala, but Kotlin (or any other JVM-based language) should also be able to import and use URE unmodified. We have hopes of building an API frontend for Python and possibly Lua as well.

Getting Started

See the HOWTO to get started on a URE project.

If you're excited about URE and would like to start trying it out in its early state, we would welcome your feedback and be happy to work with you to get features implemented to help you achieve your roguelike dream.

API Documentation

see JavaDoc

Contributing to URE

URE is an open source community project and the maintainers welcome contributions from the community. We aim to provide a comprehensive library of useful game objects and functionality covering as wide a variety of use cases as possible. If you've made a generally useful Thing, Behavior, Action, Terrain, or other entity type, ping us with your branch and we'd be happy to consider merging it back.

Projects made with URE

Hopefully someday there will be links here to actual games.

Built With

  • IntelliJ A mighty nice IDE.
  • Gradle Build automation and dependency management.
  • Jackson JSON serializing for object persistence.
  • Reflections Dynamic class detection.
  • LWJGL Low level OpenGL access.
  • JOML Low level OpenGL math.
  • Dagger Dependency injection. Pretty handy for game projects and lazy devs!
  • Guava Provides a lightweight global event bus.
  • RexPaint URE imports and renders Rexpaint .xp files for splash screens, sprites, terrain decorations, etc.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].