DevBlog – Checkpoints, portraits and more checkpoints

DevBlog – Checkpoints, portraits and more checkpoints

devblog_checkpoint

I have some great news for everyone that kept dying and cursing in the Courier of the Crypts demo preview – checkpoints! I’ve implemented them and they are working now more or less. I also have some great news for those that don’t like checkpoints. Matej did an impressive update on the portraits as well.

In this Development Blog post:

  • Checkpoints and all the problems I had implementing them (technical details)
  • Consequences of dying and respawning at the checkpoint
  • Portrait updates and dialog preview
  • Ghosts arrival changes
  • Other changes / updates


 Checkpoints and all the problems I had implementing them

cotc_checkpointA lot of people were complaining about the lack of checkpoint feature in the game and there’s a very logical explanation for that – it’s not that easy to implement them. One of the simple solutions would be to respawn player back at the checkpoint when he dies but that wouldn’t work in this game. Good example is a boss room with a checkpoint infront of it. When you die you can’t get respawned back at the checkpoint and leave the damaged boss there and all other states like they were. I need to reset that. What about the room where floor falls apart? I can’t leave the hole in the ground which player couldn’t pass…To cut it short, I had to save all the information what has changed before reaching the checkpoint, which items doesn’t exists anymore etc.

Checkpoint debug room. This is a loaded state - chest opened, eggs popped, button pressed, doors opened...
Checkpoint debug room. This is a loaded state – chest opened, eggs popped, button pressed, doors opened…

That’s how I did the checkpoint system

  • Before you reach the checkpoint
    • Save items you pick/destroy/kill to the IgnoreObjectsOnLoadCurrent list
    • Save information about current terrain changes
  • When you reach checkpoint
    • Move all the saved information to the global lists and clear the current ones
    • Save existing objects states
  • When you die and respawn at the checkpoint
    • Load map
    • Don’t load objects that are on the GlobalIgnoreObject list
    • Apply terrain changes
    • Apply saved objects states to the objects
  • When you restart the whole map (respawn at the beginning)
    • Clear all saved states and changes

I was trying not to complicate that much but I really couldn’t find a better way around the issue. It took me quite some time to implement this, especially the object saving / loading states. Checkpoints are in the game now and they are working but I still need to add saving & loading states to some stuff like lights, animations and particle emitters.

I could write few pages about the whole system but I don’t want to bore you to death. If you have more questions or opinions on the issue let me know in the comments.

I hope I’ll see less rage quits this time around wink


 Consequences of dying and respawning at the checkpoint

I really like the no-checkpoints idea becuase players played the game more carefully but then again I don’t want to punish players too much for bad game design decisions / mistakes and that’s why checkpoints are great BUT….I won’t let you run around carefree and that’s why I implemented that dying consequences.

When you die, you’ll loose 30% of your collected gold in the map (that’s only if you respawn at the checkpoint of course because you always start the map with 0 gold). It’s not that big of a punishment but gold will be needed for upgrades and some bonus map unlocks. The game isn’t that much about skill than it is about learning about the environment. That’s why I want players to use the knowledge to lower the death count instead of running into the same trap 100 times because the checkpoint was just behind the corner.

There’s another thing I’m really happy about – when you die and respawn, you’ll find your own skeleton lying on the place of your death. If you’ll die 10 times then there will be 10 skeletons lying around wearing the Courier’s leath jacket. I’ve made a short gif for you wink


 

Portrait updates and dialog preview

cotc_portraits

As you can see, portraits changed a lot (in a positive way) and “day light” portraits are marked as finish for now. Courier in the torch light needs improvements though but Matej did an amazing job so far! He also got some feedback from Yuriy Gusev himself (he is a legendary pixel artist for me) which is a great honor!

Portraits are all in the game now and I’ve prepared this short dialog just to show the faces. Tell me, what do you think?  :)

cotc_dialog


 

Ghost arrival changes

When you run out of torch, ghosts were spawned instantly which made one kid cry (true story!) also, it was so out of sudden that they didn’t know what’s happening. Now, when your flame runs out, the blue bar is displayed with a text “Shadows are looking for you…” – you have 10 seconds to find the flame before ghosts appear.

shadows_are_looking

 


 

Other changes / updates

  • Vision fog for the visions Courier will get from time to time
  • You can skip dialog with a key now
  • Fixed some player animation frames
  • Dialog system changed a bit (code, only code…)
  • Credits of the devs displayed on the gameplay map
  • Inventory item slot darkens when the item is there
  • You can now go from the main menu to the overworld map and from there to the maps and all the way back to the menu. That works but I still have to work hard on the overworld state.

As you can see, I only did 1 thing from the TODO list I’ve published in the last dev blog. I’m working like that. If I don’t feel like working on something I pick another task. It’s better than doing nothing right? Everything is part of the bigger Early Access TODO anyway.

This is for this week, I would love to hear your opinion on the work I’ve done. Don’t be afraid to share your doubts or critics wink

Have a great week on!

  • Ecker

    Awesome progress. I remember er we also had found checkpoints challenging to implement, had to go back and make a load state in lots of old code. Should have thought about it up front.

    The new courier portrait looks awesome! Love the animation test, funny faces. :P

    The ghost arrival changes makes it much more clear what’s going on, also gives you time to panic! :P

    • Yeah, it’s a thing you have problems with if you don’t think about it up front but hey, lession learned right? :D

      I’m really glad you like the portraits because I love them! Matej did a really good job bringing Courier to life.
      As for the ghost bar, you’ll be able to buy upgrades (“Magic medallion”?) which will give you more time before the ghosts arrive.

      Thanks for commenting Ecker! We need to talk again sometimes to see how are you doing :)

  • Matthias Baur

    Checkpoints! Yeah, I had my problems in the crypts (demo), too.

    Have you thought of an adjustable difficulty? Lose less than 30% gold, … maybe choose the difficulty at the beginning, when your journey starts.

    What I think would be cool: In the dialog of the beginning the master could say something like: “But be aware, it’s a

    … task, here you could decide between easy or hard mode.

    But this idea is not fully worked out…

    Your gif with the Courier dying and his corpses laying there is quite funny. The second time he dies, he turns upside-down?! Weird way to die… ;)

    I’m very excited to see your game on Steam (I hope this will be this month).

    • I know I know, I don’t judge you, demo is quite hard without the “tutorial” and everything ;)

      Yes, the difficulty, I had some ideas but at the moment I don’t want to implement that. I wanted to have a normal and hardcore difficulty without a checkpoints. That would be a wonderful way to pick a difficulty and if I decide to implement that option I’ll make it your way. Thanks a lot! :D

      You’ll be able to buy upgrades in the game which will lower % of gold loss, lower the flame consumption speed, give you more max hearts etc.

      Haha yeah, he actually falls on his back, I know, I have to work a bit more on that death animation. There will be more death animations though from burning to ashes to loosing a soul.

      Thanks for the critics, I love when people state their opinion on stuff I do and I appreciate it :)

      Steam early access release plan is for the April indeed, late April, so it is going to be there pretty soon yeah.

  • Dennis

    Sir, will this game ever come out for Mac, benevolent creator of the game, sir. Because I am….DYING TO PLAY THIS GAME!!!!!!!!!! Please, for Mac, please?

    • Sir yes Sir!

      Actually, MAC port is one of the main platforms I’m aiming – Windows, Linux & MAC to be precise. However, my primary goal now is to finish the game first and release it for Windows. After that Linux and MAC will follow. I don’t have the MAC so it will be a bit harder but I’ll do my best to port it ASAP, that’s my word and well, that’s all I can give you now :)

      You’re comment means a lot to me and it is a great motivation to push the game forward to MAC, cheers SIR! :D

      • Dennis

        THANK YOU!!!! Back to waiting for the game to release.

Comments are closed.