Action RPG Project

Hello,

I would like to introduce a project I have been working on for quite some time now. It is an action RPG heavily inspired by Diablo and Torchlight etc. However, this is just a hobby project of my self with the occasional help of a friend who likes to work with blender. It is currently in an pre-alpha state but I have almost all basic functionality implemented:

  • Random dungeon generation - the generator takes prebuilt modules for rooms and corridors and and places them in the scene
  • Melee combat and magic system
  • Equipment items that affect character attributes like melee and magic damage, resistances/armor and movement speed
  • Character persistence to save progress.
  • Multiplayer - Dedicated and listen server. There are still some quirks to iron out, but most parts are working

Here are two screenshot of it so far - as I am far from being good at any kind of artwork, pretty much everything is still placeholder assets

Things I would like to finish during the transition to the beta stage:

  • Replace placeholder with original artwork/3d models/animations/sounds/gui textures - probably the hardest part (for me at least)
  • True randomly generated items - right now it selects and item to drop from a list of predefined items but items can already have a different set of attribute modifiers so this should not be too hard
  • Implement 4 character classes, every one with 4-5 unique skills - sounds like a reasonable amount doable for a hobby project
  • Improve multi player - currently the design forces all players to be at the same dungeon level and all have to proceed to the next level at the same time. It would be much nicer if every player can move around independently.

I am quite sure this will keep me occupied for more than the next months. I initially started to work on this game about 2 years ago and I tried Unity, some HTML5/WebGL frameworks, Python/Pygame, Ogre and others and never felt really comfortable working with those solutions. I feel like I made the best progress after switching to JME 6 months ago. Being pretty much a complete Java newbie I am probably doing lots of things wrong but its fun nonetheless, so a big ‘thank you’ to everyone working on and contributing to JME. I will probably make a short game play video, as soon as I think I have reached the alpha stage and there is actually some content to show.

If you are a fan of action RPG/Hack’n’Slash type games and always felt the existing ones are lacking that one feature, your input is very welcome.

7 Likes

Looking great, thanks for sharing your progress!

Hi, Welcome!

Heh join the club, seems to be a few RPG style games in progress atm using jME, each with their own unique ideas for gameplay.
Yes I’m one too, working solo (tho been away from any work for 6+ months, just starting to get back in) and agreed on the assets, 3D models will be my biggest challenge, although there are quite a number of places these days where you can buy pre-mades, just depends on budget (if any) and time, though always pays to check the licence, generally the cheaper they are the less chance to make a profit using them but good enough to start with then swap out later.

As for gameplay, yes I’ve played many a game and most have left me bored after a while, WoW was no exception - possible the worst in a way, best for content/assets and depth of story and game, but very quickly the grind (as are most games) becomes a chore and the “GAME” turns into “WORK”
Whatever happened to games being “FUN” and… well… a “GAME”?? heh.

Screens look good so far, must admit Diablo (1 & 2… lets forget 3 :stuck_out_tongue: ) and the Torchlight series were most fun to play.
Keep up the work, learning Java and jMe is half the fun for me, getting results is the other. In any case, have fun with it, if its fun to build then good chances it will be fun to play, read everything you can on the genre and the game making scene and make it your own.

Look forward to seeing more.

Cheers,
-Radan.

Very nice :).

  1. There is one feature that all rpgs are missing and it makes me nuts: a way of locking/unlocking (with a visual hint) some stuff in your inventory… even (well, especially) skyrim is retarded in that area.
    Either a right-click to lock or a different inventory panel for what you want to keep.

  2. Don’t go too low on the amount of equipment slots.
    People in rpgs/mmorpgs enjoy playing with their equipment.

Just my opinions.

@Murk said: Hello,

I would like to introduce a project I have been working on for quite some time now. It is an action RPG heavily inspired by Diablo and Torchlight etc. However, this is just a hobby project of my self with the occasional help of a friend who likes to work with blender. It is currently in an pre-alpha state but I have almost all basic functionality implemented:

  • Random dungeon generation - the generator takes prebuilt modules for rooms and corridors and and places them in the scene
  • Melee combat and magic system
  • Equipment items that affect character attributes like melee and magic damage, resistances/armor and movement speed
  • Character persistence to save progress.
  • Multiplayer - Dedicated and listen server. There are still some quirks to iron out, but most parts are working

Here are two screenshot of it so far - as I am far from being good at any kind of artwork, pretty much everything is still placeholder assets

Things I would like to finish during the transition to the beta stage:

  • Replace placeholder with original artwork/3d models/animations/sounds/gui textures - probably the hardest part (for me at least)
  • True randomly generated items - right now it selects and item to drop from a list of predefined items but items can already have a different set of attribute modifiers so this should not be too hard
  • Implement 4 character classes, every one with 4-5 unique skills - sounds like a reasonable amount doable for a hobby project
  • Improve multi player - currently the design forces all players to be at the same dungeon level and all have to proceed to the next level at the same time. It would be much nicer if every player can move around independently.

I am quite sure this will keep me occupied for more than the next months. I initially started to work on this game about 2 years ago and I tried Unity, some HTML5/WebGL frameworks, Python/Pygame, Ogre and others and never felt really comfortable working with those solutions. I feel like I made the best progress after switching to JME 6 months ago. Being pretty much a complete Java newbie I am probably doing lots of things wrong but its fun nonetheless, so a big ‘thank you’ to everyone working on and contributing to JME. I will probably make a short game play video, as soon as I think I have reached the alpha stage and there is actually some content to show.

If you are a fan of action RPG/Hack’n’Slash type games and always felt the existing ones are lacking that one feature, your input is very welcome.

Cool! How comes the switch from Unity btw? What parts are JME are you finding much better/worse in comparison?

Looking good so far!

I liked both Torchlight (especially 2) and Diablo (even the latest) and agree with the comment above about ++ to equipment slots… gimme as many as you can stuff into that window!!! I have quite a bit of code towards one of these types of games that I am just never going to use… so if your interested in some ideas about handling inventory/stat modification via items/spells/etc, the system I put together worked out pretty well and is up for grabs. Just let me know.

@Murk said:
  • Replace placeholder with original artwork/3d models/animations/sounds/gui textures - probably the hardest part (for me at least)

While I hesitate to reference dream-ware, my first jME effort is to develop plugins for the huge library of custom content created for Neverwinter Nights.

The vast majority of this stuff is released for use by the NwN community. While a lot of it is pretty old-school, if I can get the asset loader working right, we’ll have access to about 40,000 projects (about 10,000 of which are models or tilesets), created for both NwN1 and NwN2 by the community (not the Bioware content).

The goal there is to be able to load MDB and MDL models into j3o format and export them out, as well. I can see no technical reason stopping me, so you may get a fairly decent (variety-wise) library for jME (including my own, quirky models) sometime this year.

@foxhavendesigns said: While I hesitate to reference dream-ware, my first jME effort is to develop plugins for the huge library of custom content created for Neverwinter Nights.

The vast majority of this stuff is released for use by the NwN community. While a lot of it is pretty old-school, if I can get the asset loader working right, we’ll have access to about 40,000 projects (about 10,000 of which are models or tilesets), created for both NwN1 and NwN2 by the community (not the Bioware content).

The goal there is to be able to load MDB and MDL models into j3o format and export them out, as well. I can see no technical reason stopping me, so you may get a fairly decent (variety-wise) library for jME (including my own, quirky models) sometime this year.

Someone has already implemented NwN model loading I think. @abies maybe. I can’t remember for sure.

The trick will be making sure the models are 100% clean of all Bioware content, including textures, animations, etc.

Yes, I have done NWN1 model loader for JME3. Few versions now, less or more compatible with vanilla jme3 as I was modifying them for particular incarnation of project I was using them for - but still should be pretty usable with just few lines of change. Unfortunately, as I was originally porting my java3d code, it is not using some of jme3 features it could - for example, I have my own skeleton/animation system and pretty bad particile system (which was optimized for 2002/java3d and became a lot more complex than it should).

Regarding reuse of content - unless you want to stay purely with static placeables, there is next to no chance of avoiding Bioware stuff, because of base animations for humanoids. Even if some community model is not inheriting from them, you can safely assume there was a lot of copy/paste. My solution for that was to require people using my code to OWN NWN1 and load models directly from NWN1 installation. This way, I was at least not going to distribute their content. As for the usage of such resources for different game - it might be on the edge of being wrong EULA-wise, but probably right given reverse-engineering laws (in EU at least). Especially if it would force people to buy NWN1 (even at discount) and code was going to be distributed for free, I think that no damage would be done. distributing Bioware models is not a good idea.

1 Like

(trying not to hijack thread - was just offering potential options for art assets in existing content from other game communities)

@pspeed: Didn’t know he’d done a loader, but I do have both your and @abies original java code to work from (thank you again! :-), which at least gives me a good base for nwn1 assets.

My goal is to make a plugin (using the new plugin wizard :slight_smile: and use as many jME features as I can. Unfortunately, learning jME has taken a back-burner for a couple months and I’ve not done much :-/

Regarding use, the licensing issue is complex but not impossible. For the commercial assets, like abies, we will require user to own nwn1 or 2. There are some additional caveats that we are fairly confident gives us at least a place to stand. Particularly since this is not a commercial undertaking in any sense :stuck_out_tongue:

@murk, I like what you’re doing. I’m particularly interested in your random dungeon generation using modular pieces. How are you lining them up? Using “snap-to” nodes or is it pretty much grid based?

One of the features I hope to implement is a snap-to feature for the nwn tilesets that let me use pre-fab areas of tiles, but position and orient them freely on /in terrain. I.e. place an origin tile (or entire are) and turn it the way you want to fit the terrain, then additional tiles/pieces will snap to the attachment points on the first tile…

Thank you all for your feedback, very appreciated!

@avpeacock said: Cool! How comes the switch from Unity btw? What parts are JME are you finding much better/worse in comparison?

Unity is an awesome tool and it is hard to name the things that I did not like. It is really just personal preference than any technical deficit I guess. While the situation might be different now (I stopped using it about a year ago I think), I found it quite hard to actually create a decent dedicated server from within a Unity project. Dedicated servers are a very important feature for me as I just love the fact how communities can evolve around them. Unity has headless support but it never felt like a ‘first class citizen’ and there are third party options available but most of them require you to use a different language for server-side programming which I wanted to avoid at all cost. Right now, I can simply copy the built application to a server and run it with an additional command line parameter and all logic is the same as for the single player game with just a very few if(server)/if(client) type branches. In think Unity is also designed towards easy compositing of your 3D scenes and adding your code to make things move later on which is probably what most people would want anyway, but I personally prefer to have the option to do more things in code than within the scene composer. One thing that I really like in Unity is the state machine based animation controller and I already started implementing something like this within my jME project - without any visual editing though for now. Oh, and Unity and git still don’t work quite well with each other I guess.

@t0neg0d said: Looking good so far!

I liked both Torchlight (especially 2) and Diablo (even the latest) and agree with the comment above about ++ to equipment slots… gimme as many as you can stuff into that window!!! I have quite a bit of code towards one of these types of games that I am just never going to use… so if your interested in some ideas about handling inventory/stat modification via items/spells/etc, the system I put together worked out pretty well and is up for grabs. Just let me know.

Thanks for the offer. Seeing other code will probably result in too much copy and paste :wink: But I would be glad to hear any ideas about how to actually implement spells and their effects. Right now I have a single class Ability which holds properties like the abilities name, energy cost, GUI icon to use and use a factory object to build those based a string identifier. This identifier is used for network messages sent when a spell is cast for example. Additionally, every Ability has a single property which is an instance of a class implementing the spells behaviour (like loading a certain j3o file containing the particle effects, determining what monsters are damaged by the spell and actually applying that damage etc). I am note sure if this will scale well when there are maybe 30+ different spells or abilities.

The inventory window in the screen shot is just a place holder/mock-up of course. There will definitely more space to carry stuff :slight_smile: - I am considering to not limit the amount of items that can be carried at all and switch to a item weight based model. I thought about adding non-combat attribute based actions like picking locks or finding secret doors and while most of them would probably work based on a character’s dexterity or intelligence, carrying more items would be kind of non-combat skill for strength or constitution based character builds.

The Neverwinter Vault is already on my list of sites that I scout for ‘inspiration’ sometimes, but thank you for the hint.

@foxhavendesigns said: [...] @murk, I like what you're doing. I'm particularly interested in your random dungeon generation using modular pieces. How are you lining them up? Using "snap-to" nodes or is it pretty much grid based?

One of the features I hope to implement is a snap-to feature for the nwn tilesets that let me use pre-fab areas of tiles, but position and orient them freely on /in terrain. I.e. place an origin tile (or entire are) and turn it the way you want to fit the terrain, then additional tiles/pieces will snap to the attachment points on the first tile…

My first versions where grid based but I was not satisfied with the results. I think it is too hard to create algorithms that form good looking rooms when using a simple grid based approach and tiles that are rather small compared to the size of the whole room. It might work well for 2D Roguelikes but I switched to an approach where the pre-built rooms have empty nodes that designate the position and orientation of possible exists and aligns newly added tiles accordingly. I think I pretty much followed what is described here: http://gamedevelopment.tutsplus.com/tutorials/bake-your-own-3d-dungeons-with-procedural-recipes--gamedev-14360 I also have some empty Nodes in the .j3o files for the rooms that show the location of decorations and spawn different props like braziers with point lights and particle effects or (hopefully soon breakable) crates on those points.

1 Like

Thank you for that link! Great!

What you describe is exactly what I’m thinking of for my (eventual) toolset overhaul. So, I’m gonna favorite this =D