![]() ![]() My favourite series of Japanese RPG games is the Shin Megami Tensei series, which are known for being set in a dark demon-infested version of Tokyo and for being really difficult. #Angband tiles code#Also it was a useful reminder to be more careful about my coding practices in some parts of the game, so I did quite a few bits of refactoring of the code to prevent anything like that happening again.Īgain in service of making combat more interesting I made some significant changes to the combat system to better differentiate enemies. I was able to fix that relatively easily once I figured it out - this is why we keep backups, kids. ![]() In certain situations that meant the scheduler would find that reference, say to itself ‘hey this here says there should be an orc doing something’ and the player would end up fighting a ghostly remnant of a previously defeated enemy! Eventually I got all that ironed out, and finally had fast-moving wolves and bats, slow-moving zombies, etc… only to find that in certain circumstances the player would encounter invisible and invincible enemies after moving to a new dungeon level.Īfter a few days of annoyance I worked out the problem - monsters were dying in combat, but a reference to them was remaining in the turn schedule, meaning that memory was still being allocated for their monster data by the program. It sounds simple, but it turned out to be a big pain to get right! I had a lot of weird bugs where certain monster turns didn’t register, or the game would suddenly stop running in turn-based mode and let monsters run rampant while the player was unable to move, and all sorts of other problems. The number of turns they have to wait until they can move or attack again depends on their Speed stat. Eventually I settled on a central turn scheduling system in which all monsters (and the player) schedule their next turn each time they take an action. This is kind of a weird thing to implement in a turn-based game, and I wasn’t sure of the best way to go about it at first. In order to make monster fighting more interesting, I wanted to add a system for variable attack and movement speeds between different creatures. I’ve added an indicator to the interface that shows this stat directly, unlike Rogue and some other games that keep it hidden and only warn you shortly before death: If at any point your Satiety stat dips below 50, you start getting warnings, and at 0 begin taking damage every turn. Currently my system is very basic: the player starts with three rations, and can find two different types of food items within the dungeon that refills their hunger meter. ![]() Since food is limited and can only be found within the dungeon and not created by the player, it serves as a time pressure mechanism the player has to keep moving further down the dungeon to find food in order to stay alive. Hunger systems are a classic feature of roguelikes - since the original Rogue, in fact! The idea is that the player needs to seek out food within the dungeon and eat it regularly, otherwise they gradually begin to starve to death. Originally I was going to work on the dungeon environment, but I figured that fancy dungeons wouldn’t be that useful if the player couldn’t do interesting stuff in them, so I went for under-the-hood gameplay systems instead: My focus in the last few weeks has been on some core gameplay systems. #Angband tiles update#So it’s been a little bit since the last update on my hobbyist game development efforts, but a lot’s been going on whenever I can snatch some time in between the constant, endless presentations I’ve had to prepare for recently on the academic side of my life. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |