Had to come up with a fix today in HamQuest regarding monsters and experience points. In particular wandering monsters and creatures summoned by a necromancer or summoner (both of which were implemented today as well).
The fix is that no experience will be awarded for killing summoned or wandering creatures. The reason for this is that the player can exploit summoned and wandering monsters to farm experience points (a sufficiently outfitted character can whomp on the lesser creatures for quite some time, and rack up experience points while doing so).
So, a player could (and I did) run away from a summoner, who will happily keep sending more goblins after you. I was pretty well armored and armed, and was able to pick off lots of goblins, orcs, and fimir before I finally got tired of it and killed the summoner. I likely could have gained two experience levels in this way had I continued.
A similar situation occurs with wandering monsters. Currently the mechanism I use does a check for wandering monsters each time a room is entered (and the algorithm used guarantees no wandering monster the first time the room is visited). A player can just stand in a doorway and blip back and fotth between two rooms, eventually generating an infinite number of creatures.
Now that they are no longer worth experience points, they are completely a nuisance to the player, especially the thief and ghoul, who are now a part of the wandering monster brigade.
Of the creatures now added, I would have to put the Dragon as the deadliest (I tried to fight one… I burned through 15 potions and hardly scratched him) and the thief as the most annoying…. easy to kill but he steals megaham pieces!
I’m now in a refactor of the code as well. One of the things that will make further development easier is the ability to put the item descriptors into xml file, which means I need to make the classes representing items more into property bags, so make the xml easier to work with. Actually, this is part of a more overall “configure the game with xml” effort, which will pay off in the long run.
Also, I have found HamQuest to be a new kind of game development experience for me. Usually, I will come up with a little game, make it “done enough” and never touch it again. If the game is simple enough, I’ll port it to every platform/api/language I can find, but it doean’t really progress from the state I leave it in.
HamQuest has begun a life of its own. I may set it down periodically, but I don’t think I’ll be able to set it aside completely.