[Java] Triple-R (Retro RPG Revolution)
An object-oriented, highly interactive (perhaps 'action based') RPG engine written in Java.
Having seen countless 'RPG' programming projects in independent development all over the 'net, I knew two things: first, that I still needed to develop something like this on my own to further my understanding of the development process, and secondly, I knew that everyone else was going about 'RPGs' in a very narrow-minded, fixed and limited way. No one else seems to be creating quite the sort of game I want to create. And so, I'm doing more or less everything from the ground up, in a platform-independent language. The underlying mechanics and 'engine' have been dubbed 'Triple R'. The game I intend to eventually complete based on it is currently titled "Emran Saga", which is indeed a silly name, but one that is silly by existing standards of RPG naming.
- 2D graphics: multi-layered fine-grained scrolling graphics with transparency, scaling, and rotation. The graphics implementation is very loosely coupled to the rest of the system, and can be fairly easily substituted with any desired library that can be linked to Java - possibly JOGL or LWJGL in future, if Graphics2D proves to be too slow.
- 3 tiled layers of graphics, plus large numbers of variable-sized sprites. The in-game graphics setup is based abstractly on the GBA's hardware abilities. Triple-R runs at 60fps with at least 50 NPCs running around a town area, and can handle very many of them on-screen at once.
- The screen can be scrolled in all directions on a per-pixel basis, and user movement is also per-pixel. The screen is currently limited to GBA screen size, though this is not a performance restriction, merely a preference; it can be used in windowed or full-screen mode. Since a GBA screen is wider in aspect ratio than monitor/TV, I intend to add a more usual screen size so that it matches monitor-aspect in fullscreen mode. Currently it uses a black border and runs in a higher resolution mode than necessary.
- 'Action-game' interactions: you can jump over objects or off ledges, and swinging a weapon happens using game-world physics, rather than stupid dice-rolling RPG rules like 'evasion%'. So if an NPC or enemy is standing in front of you, and your fist connects with their body, they get punched!
- Precise character motion: you can freely run or walk (well, in 8 directions). Unlike Pokémon and my old Impworld demo, the character is not constrained to tile centres. Collision detection/response correctly prevents you passing through solid things, even at stupidly high speeds, using position-interpolating sweep tests.
- You may activate many interactive objects in the game. This currently includes NPCs and some inanimate objects. NPCs skid roughly 20-30 scale feet before slowing down due to ground friction.
- Map-switching. The final gameworld will be very large indeed, and is split into numerous areas (an example being the arbitrarily-sized 'areas' of the overworld in Zelda 3). No full areas are finished yet, as the engine is still being augmented and expanded, but it is possible to walk from one test area to another (that is, change maps) by passing through an exit zone, such as town gates or house doors.
- Talking/dialogue: the player may talk to any of the NPCs in the (mostly empty) starting zone. Currently, each NPC only has one short line of speech. This is being expanded by merging speech into the scripting system.
- Scripting system: objects, including NPCs, map areas and the player, are scriptable using a custom-written interpreted plaintext script language. This allows customisable, complex behaviour to be achieved without altering the engine. The scripting engine is not yet complete, but activates on an event-driven basis and can set variables, perform control flow, set item/object properties, delay actions, and use multiple-iteration blocking commands such as 'goto', which utilises a fully implemented and working A* Pathfinder.
- Smarter-than-average AI: Currently, NPCs are limited to script-following. This will be added to with world-progression variables, meaning that NPC townsfolk will have task lists, and 'opinions' based on a set of available 'topics', or current affairs. Villages will be continuously altered by NPC activity, giving NPCs tasks to achieve rather than just standing around or gormlessly following a patrol route (or randomly dithering around one spot, as is the case in every RPG currently available. Similarly, changing topics and opinions will alter bland NPCs dialogue throughout the game.
- The dialogue system will include multiple speech windows in sequence, as well as questions where the player may choose an answer from one of several options.
- Solid-object detection is being augmented, to permit fall-through floors and the ability to jump off platforms.
- Ability-assisted (magical) player-character flight
- Graphical overhaul!
:D The old/neglected graphics explain why it's not much to look at!
Download a very old, bug-filled demo here. The up-to-date sparkly new demo will be available on 31st December 2006!