The First Update
The first version of this prototype was almost nothing more than the Unity 2D Roguelike tutorial and their Basic 2D Dungeon Generation code. There wasn't a whole lot to talk about with it, but it was my first time seriously spending time with the Unity engine, and I actually got them to work together in a way that technically made a never ending "game" that could be played.
Starting with this update all of that is starting to change and I'm actually starting to try to change major parts of the original code to better fit the kind of game I want to make.
Speaking of the game I want to make, it's still just a rough idea that I hope to expand on significantly the closer I get to a finished base engine. I'm planning to make a game in the style of the Mystery Dungeon games by Spike Chunsoft. Essentially a roguelike with a hub area where you can save, store and purchase items, receive small quests, and stuff like that; several dungeons that are progressively more difficult and are different every time you enter them, and a basic story that drives you to go to and clear these dungeons in the first place.
There are several changes I've made to the original engine already to make dungeon traversal similar but several more still needed to make it more like this series of games.
- The first and biggest change I made so far is actually having the player and monsters move and collide based on their position in a 2-dimensional array rather than using 2D colliders. Part of the reason I did this was to help with implementing diagonal movement as the colliders would return a collision if I tried to move diagonally with them. It also solves an issue the tutorial runs into where enemies can end up overlapping each other as they all check a certain position at the same time, then move at the same time causing them to all end up in the same spot. This change means the enemies immediately mark their current position clear, and their next position taken one at a time eliminating the possibility of them all taking the same spot.
- The second biggest change was removing the reliance on the turnDelay float value on the Game Manager. This causes significant lag in the tutorial and was one of the first things I wanted to change. At first there were issues attempting to do this. I'd constantly end up with the player off-grid, particularly when walking diagonally, which of course caused issues with the basic enemy AI that relies on their coordinates being equal to the player's, and it also just looked really bad. Eventually I realized i was being dumb and just had to ensure the co-routine finished before another one attempted to start. It works pretty well right now. Walking diagonally currently feels slower than walking in a cardinal direction, but that is something I can fix later as it doesn't have any huge effect on anything right now.
- I've added basic stats for the player and the creatures, along with giving the player a currently superfluous experience and level up system as it doesn't do anything except display a level up message when you earn enough experience. Leveling will end up increasing various stats later on.
- As stated previously I've added diagonal movement. It's pretty basic at the moment and doesn't have any special rules associated with it yet. Eventually certain tiles should be impassable diagonally while some should be only passable by doing so.
- UI elements have been added to display the current floor, your current level, and your health.
- I've also added pretty terrible replacement sprites for the player. I needed all 8 directions to be represented and visible to the player so I got out my copy of GraphicsGale and tried to make 8 directions of the sprite Unity provided. It didn't go great, but they communicate the required information so they are good enough for now.
- Attacking enemies no longer occurs automatically when running into them. You now have to press the fire button or click the primary mouse button to attack. It is also dependent on the way you are facing which is why I needed to make the distinct facing sprites to ensure you can tell which way you are attacking.
- You can also now hold the Shift key to choose your facing direction without actually moving, and hold the Space key to lock your character into only moving diagonally. Both features that are essential for making sure you don't accidentally misstep.
- Lastly, I've also got the game running on 3DS and I think that will be my primary target platform for now with WebGL as my secondary and Windows as my tertiary. I'm just having fun playing this on a 3DS and it is really helping motivate me to keep on working on this. There shouldn't be any significant issues caused by this though, so it doesn't mean too much to anyone who follows the progress of the game.
Going forward I want to continue to get the basic dungeon exploring mechanics to near parity with the Mystery Dungeon games. This includes an inventory to store picked-up items in rather than using them instantly. I also definitely want to replace the dungeon generation algorithm I got from the second Unity tutorial with something less haphazard. Currently there is significant overlapping of rooms that makes consistently generating contents within them difficult and can cause a fair bit of headache trying to navigate as it just ends up a bit too random to enjoy.
Anyway, the downloads have been updated on the game's page, as has the WebGL embed version at the top of the page. Be sure to give it a try and leave some feedback!
Get Roguelike Prototype
Leave a comment
Log in with your itch.io account to leave a comment.