Devlog #1 - In the beginning


Hello there,

So I wanted to kind of document as I go along the process for making the Realm of the Dominion. The inspiration for this game's design comes from The Elder Scrolls III: Morrowind. Morrowind was one of the first legitimate RPG's that I ever played and really was able to just lose myself in.  I've always wanted to make games but the skillset required has always just felt beyond me a bit, so I kept putting it off. 

Well as the years went by, I would dabble more and more in things pertaining to game development, one of which being FiveM for Grand Theft Auto 5. Ever since I played a game called Face of Mankind as a kid, it was hard for me to find the level of multiplayer role playing in any game until I came across this. I got sucked into it and eventually started building a server with friends, which turned into me building various servers for FiveM and learning how to understand the high level scripting language called Lua.

Now I've never tried writing in the language, but I got to a point where I was fairly confident I could understand most scripts written in it's language and it eventually clicked for me that if I could read this language, I could probably learn to read other languages and possibly start writing in them.  Now this thought process started me down a road from Godot's engine language called GDScript, to spending time trying to learn Unreal Engine's Blueprints visual scripting language. This lead to me trying to sit down and learn the low level C++ programming language from scratch. I started working on a very basic text adventure game with this but it got pretty dry for me pretty fast.


I have  a hard time sticking with the learning process of programming languages if it isn't tied to something I'm excited to make. Text RPG wasn't on the top of my list. So I began thinking of what would keep my interest.  My ultimate goal was to build a 3D realistic graphics mmorpg...lol. The reason this is funny is because this is quite literally every first time game programmer's dream game and it always leads to a crash and burn moment when you realize it's so horrendously unrealistic to try and build something like this from scratch as your first time learning project.

For the most part, you will get overwhelmed with the realization of even a portion of what's involved in making something like this during your first week in.  But I WASN'T LIKE THEM RIGHT? So of course I tried to do it building in Unreal Engine's blueprints system, it was going to be a police game, something akin to FiveM roleplay but built from the ground up to be a Police Co-Op MMORPG.

...

Yeah that died about 2 weeks in. So I went back to pondering what was a realistic goal. I can't say that I have FOR SURE landed on realistic as my goal, but I did land on a goal. I decided to accept that a safe starting place would be in 2 Dimensional graphics rather than 3D.  So that's where my current project began. But what was the game going to be about? That's where I started thinking about my first RPG experience with Morrowind. The music, the exploitable gameplay, the intriguing lore and I spent at least 2 years playing this game as a kid before even completing the main story quest because I had more fun just playing to role of different characters imagining I was living a life in the game completely unrelated to the actual game's purpose.

So that's where my inspiration kicked in. I want to build an RPG that doesn't necessarily force you down the linear path and while it hopefully will eventually have a main story and lore to it, but the main focus of this game build is to try and build in the mechanics that sound fun(And potentially exploitable) to work together in a more or less survival environment.

So I have selected the Medieval era and was able to find art assets(Seeing stuff physically look how I want keeps me motivated) that fit the aesthetic for the most part and I got to work.


I have started by following a great tutorial series by Michael Games on Youtube.

(https://www.youtube.com/watch?v=QPeycNt29tY&list=PLfcCiyd_V9GH8M9xd_QKlyU8jryGcy3Xa)

I began with a basic character controller, just being able to use keys(And hopefully when I get a controller for testing, controller support) to move the character around the screen.


I then got idle animations connected to the player based on the direction last pressed to be the way they were facing.


I then added animations to the controller triggered by the key presses and using a bunch of math(I hate math, I know, terrible hobby to hate math in). This actually came out really well. I was excited, things were happening.


After all of this, I began working on laying out a basic test map where I learned about the bane of my existence, Y Sorting, which after hours of being lost and confused, I realized none of it was working properly because I had screwed up the Z Index on all of my map art when I first installed it and when I undid that, suddenly, everything started appearing properly. For those who have no idea what I’m talking about, basically the player moves in front of and behind objects based on how high or low the player is located on the map compared to the object they are crossing. If they player character is above it, he appears behind it, if he is below it, he appears in front of it.

Needless to say, I was thrilled to have resolved this part lol I also added basic collisions to the structures and the player so they wouldn’t go through each other.

The rest of the images will be shown as links because they have audio in them and I can't put audio into gifs and I didn't plan ahead on saving my files in an easily trackable place to upload the files directly. I will try to sort this out better in future devlogs.

https://kappa.lol/BbnmX

Then I got my first attack animation in place with an added sound effect to play on top of it. 

https://kappa.lol/M2EWr

Then I added all of my directional attack animations.

https://kappa.lol/UmHZX

So from here, I then dropped in the first example of a guard NPC as well as some bushes and my first “hitbox” and “hurtbox”.  The guard at this point was basically just a picture with no collisions and the idle animation attached. The reason you see so many here is because I ran into a problem when I put the first one in where the game lagged like hell as soon as I put him in. I had come to realize the file size for all of my images was large, or basically the quality of the images for the animations was WAY too big.  So I reimported all of my images with a much lower resolution.

This is where I also learned about Frames Per Second when setting up the animations in the AnimatedSprite2d node in godot. Turns out I didn’t need them running at 60 FPS, I needed something more like 30FPS. You can see the difference now if you look back on my other clips and see that the intense high speed head bobbing is no longer a thing when moving.

In addition to all of this, I placed my first “hurtbox” on my player character, which is basically just a box that allows the player to do damage to another object that is programmed to read that damage. I programmed the box to enable and disable only during the weapon swing animations and positioned it accordingly for each direction.  I then added the “hitbox” onto the bushes, this allowed the player hurtbox to do damage and in turn make the bush disappear.

https://kappa.lol/3teFV

I then gave the NPC guard a very basic form of “AI” which is a really fancy way of saying, I made him randomly pause his animation, change directions, walk in that direction for a random amount of seconds, stop, change directions again randomly and rinse and repeat. For as simple as it is, aside from him walking into walls, he already looks lively. I also added collisions to him as you can see when he runs into walls.

https://kappa.lol/7cFWL

So at this point, I had added a hitbox to the NPC guard and set him to play a stunned animation when the hitbox was collided with. Of course I added audio as well.

https://kappa.lol/YaDJu

Now I had put most of the pieces together for the NPC receiving damage, I had added on a death animation and gave him health so that when he was hit so many times, he would die and then disappear. This also lead me down quite the road for figuring out how to play multiple audio sources of different sounds at the same time.  The current player refused to do it, so I had found another solution using a tutorial from Queble.

(https://www.youtube.com/watch?v=llJa2w8v1-M&pp=ygUXZ29kb3QgcG9seXBob25pYyBwbGF5ZXI%3D)

This allowed me to create a player that would play the sword hit sound at the same time as the sword swing sound and the sword hit sound at the same time as the death sound.

I also added audio to the bush destruction as you can see.  Now I’m not FULLY confident this is the ultimate solution to my audio system but it works for now.

You may also notice that the bushes seem to block the player after disappearing for a second.  This is because I noticed that when trying to add the audio, the code to make the bush delete was also deleting the audio before it even played. So for now I added an await timer after the audio plays but also set the bush to invisible immediately and then delete a second or so after when the audio finishes.  Clearly this is not optimal because I can’t have the player running into invisible bushes even if it is just for a second, I just haven’t spent the time to resolve this yet.

I may just disabled the collider as well during the second timeframe unless I come up with a better solution.

https://kappa.lol/C0W6X

This is just me adding a couple more guards to give more of an experience in the current downloadable game.

https://kappa.lol/IMLNo

Lastly, I added a hitbox to the player with his own stun effect. Now this was designed after Michael Games’ design for the slime monster, I do not plan to have players take damage from guards just by running into them, this was just me testing the effect of the system being put in place.

Ultimately, I have learned a lot just in this small start to creating Realm of the Dominion. I know it’s not much, but it’s more than I’ve ever built myself and I am quite proud of the results thus far. To be clear, while yes I am following a tutorial for most of these systems, I am also expanding beyond the tutorials as well as plan to expand far beyond them when I get past the basic systems. The important thing is I’m having quite a bit of fun doing it as well.

Files

Realm of the Dominion Windows.zip 281 MB
Version 0.0.8 77 days ago

Get Realm of the Dominion

Buy Now$5.00 USD or more

Leave a comment

Log in with itch.io to leave a comment.