Hello forum, I’m new here. Was doing java development a number of years ago but has been out of it for too long and I’m now considering to start a little game project to get back in.
The plan is a turn-based strategy game with some RPG elements. You manage a smaller group with skills & personalities. There will be lots of items and resources. A lot of the challenge will be resource management and time management for your characters.
The game will be 2d and most things happen through selecting different options in events, moving around inventory and setting tasks to be completed. There will actually not be much graphics at all to begin with, I’m planning on using the Netbeans GUI builder to get most of the interface done
But there will be a lot of detailed simulation going on. You should have different tasks available to choose for your characters, for example to build something, but this will require tools, materials, skills etc. It all fits quite well into a nice OO structure with inheritance from less specialized object types etc.
But with my rusty java skills I’m still a bit confused about how to best go about this. For example, there will be a lot of possible tasks to do, but the selection needs to be limited based on character skills, tools available, raw materials etc. Some tasks will be unique, some can be repeated but they will all have different criteria for being selectable or not. What is the best approach here, do I keep task objects in a big list to iterate over every turn and ask each object if they are “selectable” based on the current world state or is there a smarter way?
The task selection is a good example of a problem that is coming up a lot in my design. I basically want to handle groups of object based on their properties (which could also change), but not have to keep the full objects in memory. Using a SQL backend would go a long way to help with the selection, but would introduce a few other complications and might be a bit overkill if there is a better way to do this.
I would be grateful for any general advice or pointers to similar examples.