Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

Search for the Crown (Failure)

A topic by AquaTsar created Mar 06, 2018 Views: 276 Replies: 6
Viewing posts 1 to 7
(1 edit)

Day 1 (Monday)

I started the contest a little late, largely because I wasn't sure how much time I'd have again this year. Regardless of how things go, I thought I'd try my hand at another 7DRL. Although the timer said only 6 days left, I'm working from Monday the 5th until Sunday the 11th local time (EST; losing an hour to stupid daylight savings time). It seems to be within the contest time frame and is going to be 7 days for me anyway.

I'm writing this game in JavaScript, using the ROT.js engine. The beginning of this project involved reworking an earlier project I had started with ROT (attempting to merge some of its features with another JavaScript engine) so that it was simplified and streamlined for this much more simple game. My plan is to have a rather traditional dungeon crawler with more elaborate traps and some multi-person resource management. The basic ideas are laid out but I'm not sure how much fun they will be. We'll see in a couple of days.

By the end of the first day, I have completed a simple set-up. The player can move around a randomly generated dungeon, go up and down stairs, and open/close doors. This is actually a pretty good starting point, since doors and stairs are instances of a more generic method for objects that can be triggered by stepping on them or operating (e.g., pulling a lever). In other words, I have a framework for simple traps. Below is a basic screenshot, which I'll have to pretty up a bit by day 3.

Tomorrow I'll fiddle with inventory and basic items, and that will give me a complete prototype: player creates a character, character wanders around several floors of a dungeon, picks up McGuffin, wanders back through same levels, and returns to surface and wins. I'm happy with this plan because, unlike my previous attempts at a 7DRL, it means that the rest of the contest will come down to adding content and polishing the mechanics/UI. For day 3 I want to add the resource management part and the remaining parts of the UI. Somewhere in day 2 or 3 I'll add simple monsters, but I won't be focusing on them too much in this game.

Day 2 (Tuesday)

Didn't quite get the item management system working yet. To salvage what little time I had today, I focused instead on other parts of the game that needed work. The UI was changed slightly, and the whole game flow is now complete. The player can start a new game after losing or winning, the game can be won, and the levels are generated such that winning is always possible (for now at least).

There isn't much to show for this day though, which is rather unfortunate. My plan for tomorrow is to finish the item system, add some mobs so basic combat works (and the player character can die), and then show some stats for the victory/gameover screen (like how long it took and what was accomplished).

Day 3 (Wednesday)

Got the item management system working, even if I'm only using some basic placeholder items at this point. This involves both items used by the player and items stored in an external base camp. The menus for accessing said items are there, though still very rough. Enemies are now walking around, and the UI was updated to display all of this. I'm content with the progress so far. Tomorrow is a day to add content, particularly traps, since the structure of the game is now present in its mostly complete form. Enemy AI is just random wandering, but I plan to reuse some basic AI I wrote for a previous game entry that chased and fled from the player. That'll be sufficient.

Whether the game will be finished successfully will largely depend on how day 4 and 5 go. At the moment, this could become a game that is complete but too shallow to be interesting. That's ok, since actually completing a 7DRL is a pretty big accomplishment given my past track record, but I'd still prefer an interesting game too if I can swing it.

Day 4 / 5 (Thursday / Friday)

My workload was much higher than expected yesterday, so I used whatever free time I had that day to work on the game. Hence the combined update today.

Progress has been slower than I would like. The game is playable, can be won and lost, and some basic traps are involved: monkeys dropping from the ceiling to attack you, boulders flying out walls to crush you, and that's about it at the moment. The game is still very stable, and that's good, so it's just a matter of adding more content and making the room generation algorithm more interesting. The turn counter isn't working yet, so the hunger clock is missing. Although it's easy to add, I want to add more interesting things to the game first.

By tomorrow I expect to have a prototype playable on an page, so that I can spend Sunday (day 7) on polish and extra stuff. Overall, I have lost a fair amount of time to my usual suspects: refactoring, over-engineering of solutions, and having game ideas that are too abstract for a short game jam (i.e., the main mechanic I want to explore depends on too many other things already existing in the game). At least this game is more stable than my other completed 7DRLs, and the work flow went much better. We'll see how I feel on Sunday.

For now, I leave you with a current screen shot of me exploring a somewhat empty level, avoiding pressure plates that spawn monkeys.

Day 6 (Saturday)

No itchio page yet since I spent my time adding some content and fixing bugs. The game is still stable, but I lost a good couple hours to one particular circumstance where the game would ignore user input and effectively freeze. Kinda annoying. It's fixed though. Two other major accomplishments for today. I got the resource management part mostly working, and it's good enough that I could leave it as is for the final project. The second accomplishment was adding a better level generator. It now uses pieces of pre-constructed layouts to arrange content. This makes it easier to create lots of variations of simple traps without the whole level feeling too samey. There may be some of that already though, so I may probably adjust it by shrinking the levels a little bit.

Tomorrow is some basic polish on the UI, add instructions, and whatever extra content I can fit in. It's not as complete as I would have liked, but I'm content with it. Below is a screenshot of the beginning, where you start off at a base camp with other explorers. My test explorer dies really easily and has no equipment to speak of, so I can make sure those parts of the game work properly.

The only thing I'm really disappointed in is how slow the game seems to run. I think that's just a problem with HTML5 games, and lack of using WebGL. It's not something I'm going to fix though (this is a turn-based game after all).

Day 7 (Sunday)

I am considering this a failed game. It is "complete" in the sense that you can go through the actions necessary to win (i.e., you can find the crown and bring it out). However, all of the intermediary pieces are not finished enough to my liking.

For example, I was only able to get the initial traps that I created working (spawning monkeys, rolling boulders, and falling floors). Yesterday when I changed the method for generating maps, those traps broke. I have been unable to fix them. So, the dungeon is generated with many inoperable traps.

That leaves combat. Melee combat works. The AI isn't particularly interesting, but what bothers me is that I never got around to adding ranged combat. In other words, you only wander around a mostly empty dungeon bumping into enemies that are blindly running towards you. I don't find that particularly interesting, and it's not especially innovative for a roguelike.

The parts that I wanted to experiment with I was unable to finish: the traps, and the item management. In particular, I wanted to see how the game could work with multiple characters going in and out of the dungeon, and needing to manage their food supply and such. Since that required a dungeon to explore, I thought I could use the traps to make it more interesting. The item management is complete, in that you can have multiple characters and switch between them to enter into the dungeon... the mostly empty dungeon.

As such, I'm bowing out. There is enough of a game here that I'm considering continuing it as a separate project (especially since I never figured out how to make a game page for it on anyway), but not enough that it feels like a complete game and certainly not innovative when it comes to roguelikes.

I thought this was a good run. In total, I spent about 48 hours on the game (definitely long enough for this contest) but by day 3 was really tired every day thereafter. I liked that the game was effectively complete halfway through and I was able to work on the intermediary content in the remaining days. I liked that I lost practically no time to fiddly administrative and management stuff, and testing JavaScript in the browser was really fast. This went far smoother than my attempts in C++ and even Java.

However, two things slowed me down. First, I wasted a lot of time on bugs related on the underlying structure. At least 6 hours were lost to just getting proper input, and I think around 7 to properly drawing to the screen, despite using a toolkit to draw and JavaScript for input (which is pretty simple as far as programming languages go). These were across multiple days (the input bug happened on 4 days!), so I could still progress, but in terms of the total time available it was far too costly. The prior code that I used as my starting point got me going quickly, but broke soon after I tried to extend it. I'll either turn this game into a library for me to use in other games, or look for another engine for next time.

The second thing was the main topic of the game. The part I wanted to experiment with for a roguelike required too much additional content. The scope was too big, but I couldn't think of any other way to do with. I had other ideas for a game at the start of the jam, but none of them seemed experimental enough or required a significantly smaller scope. Again, I wanted to experiment with something for this jam, so my ideas had to fit that desire. Unfortunately it didn't pan out, but there's always other years. Besides, there's already plenty of other entries to try out this year!

(1 edit)

Quick update

Thanks to the submission extension I was able to make an page for this game and actually submit it to the contest! You can play it here.

Making the page was easy. However it took me a couple of hours to get my code to work properly online, due to problems with Node, the compilation process I was using, and poor resolution in the iFrame on the game page. It works fine now, but there was extra time spent on getting those things working.

While adjusting the resolution of the game though I found the bug with the traps not working. It turns out that trips were not activating when they were hidden. Initially I created and tested traps that were visible (since it was easier to make sure they worked), then I added them being hidden. Sometime after making them hidden I must have changed the code that checked the conditions under which terrain or traps should be activated. This fix has been added to the game.

I still consider the game incomplete, for the reasons listed in my previous post, and I think it feels incomplete when played. Plus, saying the game is incomplete differentiates it from the others that were complete and submitted before the extension.