I completed my mini RPG – Roundalot !

 

Right Click on any image and open it in a new tab to get much better view !

 

After about 1 month I have completed my mini fantasy RPG game with Unity !

This has been a really great project, I have learnt so much while making it, my hole C# skillset has grown and evolved !

First of all this project was sort of a way for me to learn C# with Liam, but after a couple lessons with the great programmer that stoped because he lacked time and some motivation. But still, he taught me some valuable stuff that have really stuck with me, he also showed me that programming isn’t that hard, it’s really just a language that I must learn, a language that will enable me to create games !

Roundalot is very different from my other projects, as I said it is a mini RPG where you play this little boy with red hair who can run around this tiny open world ! It is an isometric top down game just like Midnight Fire, Color Shooter and Surviving Hell but contrary to those other games I created, the main goal isn’t only to survive but discover, to complete some tiny quests such as finding the grandpa’s lost dragon stone which was stolen from the goblins, to open chests and get loot and to discover some magic spells !

There are loads of things in this game that weren’t in any other projects I have worked on, and so I had to figure out how to code those new things such as the simple dialogue, getting items and putting it in a sort of mini inventory as well as the monster’s artificial intelligence. For example in Surviving Hell and Midnight Fire all the monsters do is spawn somewhere around the map, and then go straight towards the player (which is very easy to do thanks to Unity’s amazing NavMeshAgent component). But I didn’t want that sort of behavior for my monsters in Roundalot !

First of all I didn’t want the monsters spawning, I wanted to hand place each and every one in the scene to make some interesting encounters (it’s a very small world so I could do that). I wanted the Monster Mushrooms to simply be in an idle state and then, when the player get’s near them, they would start to follow him and attack. But since the player had a bow (meaning he could attack from far away), I had to make sure these monsters would still follow and try and attack him if they were shot. And the monsters would leave the player after a certain amount of seconds.

I made a patrol script for the goblins, so when they are not following and trying to kill the player they would be moving from point A to point B and back again. This was a bit of a challenge but I felt great when I figured it out and it made the goblin camps feel a lot more lively !

When I thought the project was ready to receive some feedback I let my family test it out. And it was great seeing them play. They weren’t very good at the game and there were moments were hoards of enemies were continuously following them which wasn’t really how I intended the game to be played, but these are valuable lessons. They also pointed out that the text I used for the dialogue was difficult to read, and of course they were right. That is why it is vital for any game developer to bring on playtesters, because as a creator, it is very easy to get used to something after countless playthroughs, like some glitchy animation (like my player’s death anim) or bad UI or in this case, terrible text !

Even though my code and scene are a total mess I was able to finish the project, actually make something playable that my family spent a couple minutes on, and that may not be much, but it’s a start, and all great things start small 🙂 !

I will probably not expand on this project because as I said the project is very messy, it would take a long time fixing everything.

Now I am brainstorming on my next project. I would like my next game to be different from the 3D isometric top down genre, something new (small of course) but original. I have a couple of interesting ideas but more on that in another post !

 

Leave a Reply

Your email address will not be published. Required fields are marked *