2D game written in Java. The intention is for this to be an RPG, with some puzzle elements. Right now, the focus is on creating mechanics and a framework for being able to properly implement a story and gameplay sometime in the future.
Source code is available on GitHub: https://github.com/egartley/beyond-origins
The JavaDoc can be accessed here as well.
These are the features or game mechanics that have been implemented so far as of commit fd39801. A more technical outline may be added in the future, but the one below is meant for anyone to be able to understand.
- Core - Entities, either animated or static (non-animated) - Includes the player, other characters and objects - Collision detection between entities - The "side" in which the collision occured is calculated - Maps, which are like levels or worlds - These maps have different areas called sectors - Management of keyboard and mouse input - Debug mode, which displays technical information - Ability to "wait" an amount of time before doing something - Characters/NPCs can talk to the player - Dialogue is shown in a box at the bottom of the screen - The full text of the dialogue is automatically broken into lines - If there is more than can be displayed, press space to advance - User interface elements, such as the inventory panel or buttons - Can be clicked and enabled/disabled - Notification banners that show for a short period of time - Slide in/out at the top of the screen - Can have an icon, or small image, and text - Basic saving and loading - Player - Controlled with WASD keys (up, left, down, right) - Can move between different maps and sectors (described above) - Ability to attack other entities that are damageable - Gain experience and level up - Inventory - Accessed by pressing E - Can hold different items - These items can be re-arranged in slots - They can also be dropped by dragging them out - Dropped items can be picked up again - Tooltips are shown upon hovering over the item - Quests - Accessed by pressing E and clicking the quests tab - Given to the player by talking to NPCs or other means - A list of objectives, or tasks, to complete - User interface to view active quests and their objectives
A video showing what's currently implemented can be viewed at https://youtu.be/9yA8Gh5eoog.
Screenshots of features shown in the demo video:




