Roguelike with Slick2D - Class design?

Hey everyone! This is my first post here :slight_smile:

I’m interested in making a Roguelike in Java using Slick2D. I’m relatively new to Java but I’m an experienced game developer, having worked on a couple of commerical titles in other languages. So I am generally experienced with making games, but I need some help with the best way to implement my ideas for this Java project. I’ve used Slick2D to make a vertical shooter and that’s my main Java experience thus far.

What I would like some help with is the design of this Roguelike in terms of the different classes and how they should interact with each other.

I’ve done some forum searches already for things such as “roguelike” and “design patterns” and to begin with it seems I should start with a familiar class structure of mainly an “Entity” object extended by things such as “Character”. And then Character could be extended again by Player perhaps.

I can visualize most of the elements, but how should I handle things such as each Character/NPC’s individual stats and the way the player can interact with them? I also want to have a combat system similar to Dwarf Fortress, where the player can target specific body parts, such as “Attack left leg”. So in this way, I would want each entity to have a ‘body’ system, with the possibility to be able to adapt this to creatures such as dogs (4 legs) - however almost all of the characters would be humans.

Also, are there any good game design books related to Java that might me be of help to me?

Thank you for the help!

I would think game design would be cross-platform. You should be able to apply what you know with the games you’ve made in other languages to Java. Stats of a player would just be attributes of a Java class and you would have getters and setters to access them. Beyond that, access them from the user, you would need to develop a interface that the user can use to access the stats.

Does that help?