Hello! Today I’m starting the Monster Embassy devlog.

This log will be mostly for myself, at least for now, as a way to document what I’m doing and to stay motivated. Hopefully, though, in time it will become a nice tool to share what I’m doing with others.

Monster Embassy development “started” (as in, I began regularly working on the code itself) a couple of weeks ago, but since I’m starting the devlog today, I’ll consider this week to be “Week #1” and begin couting from this point on.

Now, to the updates.

Current state of development

As you can see in the project milestones section, first of all I’m planning on finishing a prototype, in which all game systems and functionalities work perfectly, independently from specific game content. For this reason, right now the game doesn’t look very pretty (I’m using placeholders, for the most part) and instead I’m focusing on coding a good “base” for the game: movement and map systems, collisions, menus…

I estimate that I’ve done about 10% of the work needed to finish the prototype. But it’s only an illustrative figure.

What I’ve done so far

  • Created a basis for the structure of the entire game: an intro sequence with different “stages” (boot screen, credits, animation sequence, titlescreen and load game screen), a division between the navigable worldmap scene and the actual episode screens and a main menu that can be accessed at any time.
  • Implemented a language selection system that loads all text from external .json files.
  • Designed a spell selection menu.
  • Created a basic system to detect obstacles and destroy/move them depending on the currently selected spell.
  • Added a system to randomly spawn certain kinds of obstacles (rocks, trees, bushes…) when you start an episode, so the maps aren’t always the same.
  • Created a system to distinguish between different kinds of obstacles: whether they’re NPCs, doors, map margins, map entrances (random obstacles can’t spawn in entrances), whether they spawn randomly or have preset positions, etc.
  • Implemented a Zelda-like camera (you can reach the edge of the screen, and then the camera moves automatically to the next “room”), thanks to the materials provided by GDQuest.
  • Implemented grid-based movement, thanks to the materials provided by GDQuest.
  • Implemented a dialog system, based upon the SMRT addon by brunosxs.
  • Added pixel-perfect rescaling. Also, the screen can only scale to multiples of two to prevent distorsion.
  • Implemented a health system and a health bar in the menu hud.
  • Created a persistent config system that saves current screen size + selected language to an external config.cfg file.

What I want to work on next

  • Letting the player turn around (change direction) by using the arrow keys, without actually moving to the next tile.
  • Restoring the starting position of all obstacles when you leave and reenter a “room”, to make solving puzzles easier and not having to restart the episode each time when you make a mistake.
  • Adding a system to preserve destroyed obstacles, obstacle positions, etc. when you enter and exit an indoor map.
  • Add a game over event when your health drops to 0.
  • Save fullscreen settings (true-false) to the external config.cfg file. I’ve had difficulties getting Godot to detect if the game is in fullscreen mode or not.

Things that I want to do but will leave for later

  • Implement a savefile system with encrypted files.
  • Create an actual config menu (possibly with custom keybindings, although that may be beyond my ability for the moment).
  • Implement the item system + random drops when you destroy obstacles.

Known bugs to fix

  • When using a stick controler and navigating the menus, the cursor moves way too fast.

Some screenshots

screenshot

Boot screen. Is accompanied by a typical GB “boot” sound effect. I have the entire animation designed already, but it isn’t animated in-game yet, since it isn’t a priority.

screenshot screenshot screenshot

Some menus. Greyed out items haven’t been fully implemented yet.

screenshot

Navigable worldmap scene. For the moment I’m using a hand-drawn sketch of the worldmap as a placeholder for the background.

screenshot

Episode scene. This will be where most of the actual gameplay will happen. You can see the margins, which are the tiles marked with an X (they’re automatically generated for every map, since their positions are always the same), as well as a couple of hand-placed NPCs and many randomly generated rocks.

screenshot

The quick spell select menu, where the player can change the currently assigned spell.

This is it

Well, that’s more or less what I’ve done so far. I’m leaving out a few things, but for the most part that’s it.

I’ll update this devlog once a week with any new changes. Best of luck to all and until the next time.