27 year old Geologist and amateur game dev

Report RSS Just the Facts Ma'am. Just the facts.

Posted by on

Good evening readers, Ash here. Today we'll be discussing the current project that I am working on. Since this is introducing this project to you, there will be a section explaining the ins and outs of the game, it's setting, mechanics, etc. so as to catch everyone up. Following that, I'll go into what I'm currently working on. That said, you aren't here for the preamble, so...

Project History

For my first major project I had 3 choices: a platformer based around spelling, a re-imagining of the old game Motherload, and a lovecraftian dungeon crawler. When deciding, I realized I would have to balance what I was capable of, with my ambition for the title. As I still am brand new to game development, I decided to err on the side of caution and go for something that was pretty straightforward: So I went for the dungeon crawler. The spelling game, and the Motherload reimagining would have both required me to have some form of random block generation, something I wasn't prepared to do. Conversely, making dungeons is something I've done modding for fun in the Elder Scrolls series, and I love both writing and Lovecraft.

So my plan has been to make something based on The Case of Charles Dexter Ward (Link included, it's a pretty good read). The basics of my story are thus: You are a doctor in a small town located in Rhode Island, following the Civil War. You retired to this village following the war, in which you helped liberate the Andersonville Prison Camp (Link to wikipedia). While you settled into your New English life, you started to notice some weird behavior from a local man who lived off the coast, on a small island. Eventually you decide it was time to take drastic action, for the safety of the town. Traveling to the island and steal into the man's house, you are intent on finding evidence that he is a threat, before his work does damange to the people around him. Doing so, you stumble across a subterranean labyrinth that is inhabited by all kinds of unspeakable monsters conjured by the man in question. It is your job to find the evidence you need to incriminate the man who lives there. The further you go into the dungeon, the more you discover about what is going on, but the more damage you sustain.

Mechanically, the game is based around stealth. The standard monsters, that inhabit the dungeon are very difficult to kill. They are a combination of reanimated humans, and eldritch monstrosities, so fighting them directly isn't really an option. It's possible, but without planning, staging, and weaponry... it's probably not going to work. Once you have what you need, you can just leave, but if you don't have enough information you may do more harm than good, because each monster killed, each bit of info you recover, helps the people of the town more. Monsters will detect you based on scent, sound, and sight; with some monsters being more predisposed to one of those sense than the others. But, with each sense, comes means of limiting your exposure, and avoiding detection.

I've been working on the project almost exactly 2 weeks now. There are stand-in assets for the monsters and many items in the dungeon, while I have made original sprites for the Player character, dungeon scenery, and various other things here and there. I have programmed a lighting system, collisions, movement, and rudimentary monster AI. My primary goal at this time is to get the monster AI advanced enough to test and tweak those core mechanics.

Status

Now that we have you caught up...

Well right now I'm rather stuck. The game is coming together fine, and I got a more advanced version of the scent detection put into the game. The system is simple: the various objects will drop scent markers around the map. These scent markers are then zeroed in on by the monster, if they fall into his detection range. The monster will then follow the markers one at a time, until the markers run out or the monster detects their source. The markers themselves stick around for 20 seconds, so as to give the monster time to find them, and give the player character warning when the monster is on his trail. To avoid clogging the map up with markers, as the monster tracks, he'll delete markers he investigates. Because it takes time, you can throw the monster off by luring him into areas where the markers will not last (In water) or by confusing the monster by luring it into odoriferous areas of the dungeon.

Sight detection, is pretty clear cut, but has actually become the more complex of the two systems. If you fall inside the monster's sight cone, the monster will pursue you. The sight cone varies in size, based on the light levels around the monster. While standing in pitch darkness it will be 100% possible to avoid the monster walking just a few feet away from you (As long as you don't make too much noise, and stay still). Currently I have the detection system In, and it seems to work well.

So, if I have both systems in, why am I not testing? Well, everything works just fine on it's own. It's just once you try to fit each of the pieces together, it starts to fall apart. I've had a persistent problem for 2 days, where the states I have coded for the monsters, will not swap, or wont work as they should. My biggest issue, is my monsters move randomly, with a different direction being computed for them, every few seconds. The monsters moving randomly was a stand-in for the final system I wanted to add, where the monster would choose from a number of available routes to walk. My stand-in system, is now interfering with the logic that makes the monsters swap between the states that determine their behavior. I'm going to have to implement some form of my final system in for this to work. That said, I've already had trouble getting collision and monster movement to jive once before.

The AI is frustrating in many ways, and I may yet have to retouch my scent detection system after this, once I start letting multiple scent markers get dropped by various different sources.

So, what am I going to do? Well first, I'm going to take the time to sit down, and map out in detail the logic behind how state is swapped between. I hadn't mapped that out before hand, but I find I need to, before going any further. It's just getting too complex, and bits and pieces keep conflicting with one another. I mean I have just hit a brick wall with the sight detection. Despite the fact that I have a full design document for the feature that I know works... because of the monster's random movement system, I can't implement it, because the order in which I am recalling variables for one, conflicts with the order in which I need to recall variables for the other. I'm going to just implement the random path system I intended to use in the final product instead. I'm also going to reassign a few things to placeholder objects, that can be assigned as Parent objects. For example, I'm going to make a solid object, object... that is then assigned as a parent to all walls, crates, iron maidens, etc. that need to be avoided when collisions are considered. So far, these kind of tweaks and changes have already happened with the scent detection, movement, lighting and collision systems I am currently using, so I'm not too bothered that I have to do it again. Luckliy, each time I have to take time to do these kind of changes, it's improved performance just a little bit. Not that performance has been a Real problem, I mean it's a 32 bit pixel art game, but I'd rather not be bumping up against 60 FPS with my current rig, so watching it run at 80 - 100 FPS makes me feel good.

The big bug I'm going to look at tonight, is that if I am pushing the down and left buttons while standing against a wall below my character, I get warped to the top of the room. I THINK this is an issue with the scent markers, where they are spawning in the wall, or about to, and so the character is moved someplace, where the marker can drop and avoid collision. This has been a persistent bug for a while. I think, fixing it should just be as simple, as reassigning the center of the scent marker, so that it drops in the middle of the player character.

Conclusion

So, I'm already testing the individual systems, and I'm happy with how it's all coming together. I had budgeted 4 months to do this game, and as of right this moment, I think I'm not behind that estimate. Luckily, since there is so much to do, I'm also able to swap over to another job every once in a while, if I get burned out, while working on something else. For example, if the scent detection system is bugging me, I've always got art assets to work on.

Anyway, Hope this brought you up to date on what I'm working on. Feel free to ask any questions you want about the project, below in the comments.

Thank you for reading!

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: