Monday, 4 September 2017

Crypt of Darne devlog masterpost

Since I'm migrating all my devlogs here, so I'm making a masterpost for anything Crypt of Darne related. In future all my game related devlogs will be in this blog, so I can keep everything in one place.

This is a list of separate logs, from the first to last. They're unedited and may be a bit rough, I usually put more effort to the blog posts here.

(Jul 7, 2017) My roguelike Darne and what I’ve done so far

Heyyy, this is my first post on this blog! I made this to help myself to keep up with my gamedev stuff, and I’ll try to update this whenever I’ve done any significant changes to my projects, finished them or just have something gamedev to talk about.

Last few days I’ve been working on my own roguelike with python+libtcod, because I wanted to join the Games Made Quick gamejam. I have followed this tutorial to the note, and now I got a great base I’ve been working on to add my own things. It feels a bit like there’s an engine I can just work on, however this time I can even change the engine settings too.


I dunno if this project is one of those that will never properly end, or am I gonna do it till certain things are done and leave at that.
However, what I’ve done so far is:
  • Everything on the tutorial site, except for all the extras
  • Added my own races, based on the Enegrond lore I’m creating, need to write it all down someday
  • Inventory size is based on the playercharacters STR, and not just a fixed number
  • BSP dungeon generator
  • Custom tileset, however this is just a placeholder and will be changed
  • Set the menu positioning better, however this will probably changed again
  • Removed confusion spell for now atleast, I didn’t like how it required mouse to aim and I try to keep the game playable with keyboard only
  • Character naming (Did this today!)
I don’t have much to say about these features, except making the character naming took really damn long and required a lot of thinking. Instead of just going with raw_input(”Type your name: “) like in simpler python software, I had to write code that constantly checks if the player is typing anything (not all the time, only when creating new game), then when player presses a key, it checks what key it was, translates it into a character and puts it in the player name. I am too lazy to get the capital letters working, since the game has automatic capitalisation of the first letter anyway. I also got backspace working which is nice.

What I struggled mostly was that libtcod saw backspace press as a character too, so I was wondering why backspace didn’t delete the previous character. It was always creating one new character, so it was basically deleting and adding more stuff +-0. Thanks to the helpful guys in the awesome roguelike discord that I found in r/roguelikedev, I managed to figure out what was wrong and added a check that only normal characters (a,b,c,.) go through.

Also about the custom tilesets, that’s gonna take me some time to figure out. I need to find a fun font and then make my own tiles for the game. I like ASCII graphics but I wanted a reason to draw some pixel art.
There’s still A LOT to do, but next I try to get these done, in no particular order:
  • Random doors
  • Ending portal and bossfight
  • Spells
  • Ranged weapons (probably just bow and arrow)
  • Lots of different kind of monsters (please give me good resources for this if you know any, I probably go with monsters from various mythologies)
And of course I then draw all the tiles when all of the above is done.
So far, even after some frustration, I’ve been having a lot of fun making this! 

(Jul 10, 2017) First iteration is done!

Woop, the first iteration of Crypt of Darne is now done, just in time for the jam ending. It is still lacking some monsters, items and of course the graphical tiles, but it’s pretty much playable. Also lots of balance issues to take care of aswell.
However I managed to get the game spawn random usable items that can’t be picked up, such as fountains. (So far the version on has only those.)

Dexterity is now also a thing that is kinda like critical hit, giving extra damage to the objects attack if the random diceroll goes through. It compares the players and the monsters dexterity and the one who wins gets to do extra damage.
I removed BSP map generator because I didn’t really feel like I was properly in control of the map generator. Now I have more freedom tweaking the dungeon looks.

I also made weapons affect strength directly, but to give an attack bonus on top of strength instead. This makes the inventory size scale only by the STR rating, and wielding a sword won’t raise your STR and magically make your inventory bigger.

Lastly I added A* Pathfinding, so the enemies don’t get stuck on walls. Now they chase the player all around the map, which should add more challenge.

One thing I learned was that apparently keycodes between different keyboard layouts can differ a lot (or there was just issue with shift keys), which made the climb-down-stairs key “<” not work on US keyboards. I changed it to Z and now it works again.

This project has been great fun and I don’t see myself stopping anytime soon, but I really need a break. Whenever I close my eyes I just see lines and lines of python code and I can’t stop thinking how to improve things in the code. I gotta actually play something instead of making things for once.
Hopefully someone enjoys playing it. :)

(Jul 11, 2017) Balancing things

I just wanted to do a quick post to show how I balance things
I kept most of the info hidden (because no spoilers!) and as you can see, I see what attributes the object has and then sum it up and compare those sums with other objects, seeing if they’re around the same line. The attributes may differ, but I try to keep that sum consistent, so every object has it’s uniqueness, but they’re equally powerful.

This is kinda fun, I’ve been doing this for two hours now. I think I’ve gotten most basic items and monsters down, and I try to keep the scope small so I won’t add too much. I will probably add a few more monsters just for fun.
Another reason I want to keep the list of objects small is that the generators etc. will have rough time adding all the stuff in the game if there’s too many items.

After this, it’s only the matter of actually adding them into the game, then making tiles for everything (oh boy), fixing bugs, adding the bossfight room and then I think it’ll be done!

I also need to make the enemies get more powerful the deeper the player descends, so I gotta figure that out.

(Jul 14, 2017) Added lots of enemies!

Lots of enemies have been added to the devbuild (NOT the build on, it’s my personal devbuild), so there’s more stuff to kill (or get killed by)
There are lots of balance things I have to consider, but for now I will keep them rather fixed. I try to keep the enemies simple, there’s small enemies that can take less hits but are more dexterous, medium enemies that are rather balanced in every way, and large enemies that can take a lot of hits and deal lots of damage, but are very slow.
Dunno how well that will work but it shall be seen.

Next I have to make the list of items, and then the list of interactive stuff in the dungeons.
After that, I gotta make tiles for everything. If I did my math correctly, I have about 102 tiles to draw.. 

(Jul 15, 2017) All items added now!

Woop woop, all items are added now! The ones I could come up with anyway. You should see way more stuff now.
There are also rubble and pillars that may block your path. If that happens, just walk around or if it completely seals you in somewhere, you just have to press esc and start a new game. I may add an ability to destroy the pillars or rubbles with something later, but for now they’re there just to add more obstacles.
And yes, this is a live build, so go get it here:
The game is still far from done!!

(Jul 16, 2017) Most of the clutter has been added

Most of the clutter stuff has been added. They’re things like books, treasure chests, coins etc. I will add these more over time but the essentials are now in.
I spent ~3 hours trying to figure out how to make a fun door system but couldn’t come up with anything, so I’m gonna keep the crypt doorless for now. Keep the scope small, bud.

The game can also be won now, you can win the game by founding a specific item that will let you go fight the bad guy.. :D
Next on to do list are traps if I can make those and then of course tiles.
Oh and yes, I uploaded the new version. Download it from here:

(Jul 20, 2017) Cool graphixxxx

Alright, Crypt of Darne (CoD, hehehehe) has now **SOME** graphical tiles added! All player characters and races have tiles, walls, floors and stairs have also tiles. All I got to do now is items and clutter stuff. Then it’s finally DONE!

Also here’s an image of the player characters in 32x32 tiles. The game uses 16x16 tiles because changing the font at this point will be a huge hassle and I just want to get the game done, so the quality of the tiles suffers some. You can still see what the objects are though.
It has been really fun to draw those tiles, and I’ll keep doing it.
I’m so happy that this project is done soon! :D

(Jul 21, 2017) Making monsters!

(Aug 2, 2017) Players, walls, floors, stairs and monsters are now done!

52 tiles left!


I am really happy right now!!

This is the first time anyone has donated money to me for any game I’ve ever worked on. 
I have set Darne to “pay what you want” payment, so people can get it for free. The payment is 100% optional, yet still someone decided it was worth of their money!

This just gave me a huge confidence boost. Maybe I am in the right career! 
This 3€ will go either towards pizza or video games, haha! :D 

I actually know who this person is, since they revealed themselves to me. I was watching stream, and mentioned that I’ve been drawing sprites/tiles for my game. They wanted to know more and let me link their game to the chat, and suddenly I got a email that “Hey you got 3€” Go follow Shakkapanda and his moderator team on Mixer, they’re really awesome people!!!

(Aug 4, 2017) Crypt of Darne version 1.0.0 and future

It is done.
Finally, after couple months of developing this.. It’s done. 
It has been hell of a ride, I’ve had SO MUCH fun making this game. I learned A LOT about Python 2.7 and libtcod.
I have to raise hat to anyone who manages to make even more complex games with Python. You guys are amazing and you deserve all the praise.

Get the full version from here:
I sincerely hope you enjoy the game. It’s not a proper roguelike, it’s more a dungeon delving game with simple RPG elements and procedurally generated dungeons. There are many secrets and things to be found…! ;)

It’s hard to say more about this game. I’m very content, but exhausted. I really want to work on something else for now.
However! I will write a manual + lorebook about the races of the game and Darne and his crypt itself. These should explain more about the back story and I will try to make them look very old-school type manuals, such as old Ultima game manuals. I may also make a simple box for the game just for fun.

Now, what’s next?

I may improve Crypt of Darne from time to time, add more things or fix bugs, however my plan is to go back to this one FPS game I had to make long time ago. 3D low poly models, loads of guns, few different types of enemies in a big map, where you have to survive and fight the enemies. The games working title is Project Ironscale.

But before that, I will rest a bit, gather my bearings, write lore for Darne, play games etc. etc. Expect to hear more soonTM. 

No comments:

Post a Comment