A screenshot demonstrating the procedurally generated map with lighting effects, the hero, and some collectable items, as well as the mini-map and the vital stat display.
JGameEngine is a computer game that is inspired by 16-bit era rpgs and roguelikes. This is currently in production in my free time. Aside from any standard Java libraries being used, all code and art assets are written and developed by myself.
I was inspired to create a game with open-ended gameplay that relies heavily on procedurally generated content. That way, no one ever gets bored. Thus, many elements of the game will be randomized to ensure a unique experience very play through.
This game also allows me a space to express my many creative interests. I will continue to use the pixel art and animation assets that I design using the open-source software GIMP. I also write MIDI-based music with Cakewalk Sonar that I will eventually include. However, the primary focus of this project is the serious coding challenge of how to design and implement a cross-platform computer game logic system from the ground up.
I have a mostly up-to-date demo in my repository, demo/JGameEngine.jar
, as a runnable jar file. At this time, is not available as a separate download. You must clone my repository or download it as a zip file to play my demo. Of course you can also open the Eclipse project and run, build or modify it yourself! The main class is main/JGameEngine.java
.
So far, JGameEngine has some implemented features to enjoy, including:
- Navigate a procedurally generated map as an explorer in a fantasy setting.
- Manage your Hunger, Damage, Thirst, and Stress to avoid losing the game.
- Time only advances when you move.
- Collect items you encounter, adding them to your inventory.
- Manage your inventory by inspecting, sorting, or trashing your items.
- View a mini-map that shows your location and the location of items.
- Lighting effects hide or reveal parts of the map as you explore.
- Switch between fullscreen and windowed mode.
Features that are yet to be implemented:
- Explore multiple levels, delving deeper underground
- Encounter enemies you have to fight with combat
- Use items from your inventory for various effects
- Equip some items as armor or weapons, to increase your Stats.
- Placeholder menu items will be implemented
Command | Keys | Notes |
---|---|---|
movement, menu navigation | hjkl, aswd, arrow keys | |
action, select, confirm | enter, space, x | |
rest | r | time passes, reducing damage but increasing hunger |
run | z | hold while moving |
toggle in-game time | t | |
toggle minimap | m | |
toggle vital stats | v | |
open main menu | esc | |
to previous menu | esc, z | |
inventory menu shortcut | i | |
fullscreen | ctrl + f, fullscreen from settings menu |
|
quit game | ctrl + q, quit from main menu |
Here are more screenshots demonstrating some of the game's Inventory features:
Trying to collect that sword, but the player's inventory is full.
A view of the Main Menu. Inventory
, Settings
, and Quit
are functional.
A view of the Inventory screen. Use
an item removes it from the inventory, but it doesn't have an effect. Inspect
will give some detailed info about the item. Order
allows you to manually sort and order the items by switching their positions. Sort
will algorithmically sort the items alphabetically and stack like items to the maximum allowed amount. Trash
trashes the item, removing it from the Inventory.