Yet another of those evenings with too little energy to do something productive. Well, in regards to programming that is. However; I can muster enough drive to write a journal entry! These past few days I have been able to get a lot of coding done. This is particularly good in light of my resent troubles with my pen and display/monitor (see previous entry). I have been bug-hunting and also implementing features that have been on my to-do-list for too long.
One of these features has been a key ring/chain. I noticed that I needed something like a key ring for quite some time ago, consider the following scenario:
- The player picks up a key that can open a locked door which eventually leads to another level.
- The player opens the door and closes it behind him.
- The player then walks to the new level. When the new level has been loaded the previous level is visible in the world map as a fast-travel location.
- The player drops the key and afterwards uses fast-travel to get to the previous map.
- Arriving at the first map on the "inside", the player now walks to the door which was previously locked. Now he can't get back to the key and he can't open the door.
Situations like this can easily occur if I allow fast-travel and key drop. The easiest solution I could come up with was to implement a key ring which can't be dropped. The ring holds all keys ever received and as a bonus also saves some inventory space (I allow 16 inventory items and 4 equipped items, 20 items in total). I guess I could do some sort of path tracking to the new fast-travel location and check which doors needed opening... but that seemed like a too complicated system. The key ring can be found inside the inventory along side the other slots:
I have also dabbed with the rendering code. Previously transparent items couldn't cast or receive any shadows, this is now possible. I haven't done any benchmarking on this but I hope it hasn't slowed down the frame time too much. Also water splashes are a little bit prettier ([s]screen shot of this to follow within a day[/s]).
Next up is fleshing out the game's story. Writing better dialogue and decide where the demo should end.
That's all for now, thanks for reading!!