Over the last few days during whatever spare time I could afford I have been working on designing the movement/combat system for my PC game prototype of a Top-Down Hack-n-Slash Action RPG Dungeon Crawler (that’s a mouthful).
I have now made a breakthrough and arrived at a solution that is almost exactly what I am after. This took a few days of playing around with an overly complex way of doing it before I decided to simplify it. The only drawback to the solution now is that multiplayer won’t work, but as I do not need this for the prototype it won’t be a problem. If I do end up making a fuller game I may investigate fixing the functionality to work with multiplayer then.
To get to where I am at now, I played around with Diablo 3 quite a bit to see how Blizzard implemented the controls as this was the control method I was looking to replicate. Upon completing this research I made up a large list of things that happened when clicking certain buttons together, clicking on different objects and enemies, holding shift while pressing buttons, walking around while holding certain buttons and more until I had worked out the input design elements I wanted to copy (which was most of them). I then tried to work up a flow chart for coding the input system.
The flowchart was initially designed with the previous system before it was scrapped and simplified, but being a flowchart of actions to perform with different inputs, it worked easily with the simplified system also, and as I had spent such a long time working out the flowchart, I didn’t even need to bring it up as it was also fresh in my mind.
I am now left with two issues to resolve:
- If you open the quest screen (or another screen once implemented) and walk off, the screen doesn’t close.
- If you click an item/mob and you are not close enough, it should walk to it and pickup/attack. At the moment it walks to the item/mob but you have to click again once you get close enough to perform the action.
That’s enough work for now though since it is 2:00AM. Next I might look at the combat damage so I can hurt enemies and they can hurt me. I will then be able to check that against the input functionality which should start walking after an enemy dies or try to attack the next selected enemy.