Hello there!
I’m a bit late but here is the monthly report about my projects even if this time I’ll only talk about “The Gate” : I’m eager to release a playble demo and I’m working hard to make it happen 😊.
So, here is a list about what I’ve recently.
Dialogue System
I finally added a word wrapping routine to the dialogues, I was pretty tired to count characters and to manual format the lines of text.
It was also a pretty diffcult task because of the formatting tags and because of the actor’s names that must be taken into account.
Without word wrapping II was forced to test the dialogues every time, fix them, test again and so on…
But now, even if I can still format the text manually, I can count on the word wrap and write long lines without worries anymore 😄
In the above screen shot you can see that now I can write long lines freely, the word wrapping routine will adjust the text rendered in the available space.
I also fixed a bug that was causing bad jumps in the dialogue scripts.
Little bits of obfuscation
Since I’m working to release a public demo, I thought to obfuscate a little all the text files that are loaded by the game engine.
In the above image there some dialogue scripts that are just plain text files.
I decided to do this work for two reasons:
- I don’t want that people are able to modify the game in this early demo.
I will provide all the needed tools and the needed documentation to alter the game (or even to create a new game from scratch) when it will be completed and published. - Loaders are much faster because I treat these files as a data block, so they are not loaded line by line anymore but instead with a single load operation.
Of course my sources are still plain text files to be able to edit them, but the files in the distribution will be obfuscated.
Here you can see the same files as above that will be distributed with the game.
…and here is the same text file looks like once it has been obfuscated, not complex encryption has been used but just a simple solution to avoid plain text files.
At this point another question araised:
How can I handle all this obfuscated files?
If I modify a text file I need that the obfuscated file is updated as well and doing this task manually is impossible.
After a while I found the answer and I decided to codea game builder (in AMOS) for this purpose.
A screen shot of the mentioned builder.
The task of this program is to scan my source files, create a destination drawer, obfuscate all the text files and copy them on it, respecting the game’s drawers structure.
Here is the result: a drawer named with the current date and time and the game drawers with all the text files obfuscated.
At the end of the process I can put on the build drawer the compiled main program and all will work, ready to be packed and distributed!
While processing the files the builder will produce a log with detailed information about everything copied in the destination drawer.
This job took some time, but I’ve a build system now and I can setup a distribution package in no time.
The Title Screen
I’ve started to work on the title screen because… every game has a title screen! 😆
The player can select the game options using a menu system that looks like an old terminal (yes, I’m pretty obsessed with terminals!), and in these last days I added to it some sound effects.
There is no music yet.
It’s the first time I make the title screen public, took inspiration from an image I’ve seen on Internet and I started drawing it, two months of work just because I’m not a pixel artist, but I’m pretty happy with it! 🙃
The title screen! I zoomed it a bit to let you see better.
It’s not yet complete because I want to add some movement and animations, the terminal on the bottom left will be used to display and navigate the main game menu.

…and here is how the game menu looks like (it’s gif, so no sound 😛).
Load & Save states
The game features an automatic save system to allow the player to reload the game into a relatively safe position: the game auto-saves everything when the player exit from a room.
Here is an example:
if we are in the room #1 and we exit from here to enter the room #2, just before loading the room #2, the game performs an auto-save.
If the player dies in room #2 the game can be loaded and started again from room #1, in front of the door that he has tried to enter.
Of course there is the possibility to load & save manually from the in-game menu, but even if the code is ready, I still have to add these two options to the menu.
I decided, at the last minute, to save the enemies state too: this way enemies will not respawn (unless I code them to respawn), wondering enemies will be restored at their positions and the player will find the room exactly as he left it.
The bullet’s holes in the walls are not yet restored, but I’d like to add this feature, it’s almost ready into the code base.
While working on the save slots I tried to use the Kill command to clear a previously saved game.
This command should delete a file or a drawer but with great surprise it was always kicking me with a “File not found” error.
Here is what the AMOS Pro manual says about this command.
I spent an entire day to figure out that the returned error was wrong, infact Kill wasn’t working because I was trying to delete a not-empty drawer, but the error was misleading at least.
So I created a simple recursive procedure that, for a given drawer, iterate the contents and empty it.
For those interested here is the code:
The recursive procedure I use to empty a folder.
Cleaning the folders
Well, my game folders were crowded with temporary files, tests, and all sort of things needed while devolping the game, so I cleaned up a bit the entire development directory moving the files not needed by the game outside.
Scratching my head…
Some days ago I tried to compile a new build but surprise surprise: the compiler was failing!
My blood frooze 😰.
It was showing a line where there should be an error, but the command on that line was correct, so I imagined that the line he was marking as faulty was wrong.
Another day has passed, but I finally found were the problem was hiding.
In the recursive function I mentioned above I was using V$=Dir Next() to move to the next file entry (during the directory scan process), the interpreter was fine with that, but the compiler wanted v$=Dir Next$ without brackets: what a hell! 🤪
…And how about cleaning the code?
Yes, I did it: I’ve moved the procedures in the code to group them and find them easily.
The source code is pretty long and sometimes I’m not able to quickly locate a procedure that I coded 1 year ago!
I cannot remember every single procedure’s name I coded in two years, so this clean up was mandatory.
After I completed this cleanup I compiled the game once again to avoid surprises!
Misc fixes
While optimizing the code I found that I introduced a bug that was crashing the game when in a room there was no triggers defined but there was an empty triggers_def file (or with only comments inside). I fixed it.
I also fixed a bug that was adding a Chr$(13) at the end of the map variables dump, messing up all the successive game load & save operations.
Another similar bug showed his face, the same as above, but for the furnitures saved states.
Fixed a bug that showed up when releasing (unloading) the enemy’s animation frames.
Last bits before the public demo
Before the demo will go live there are some things I need to complete:
- I’ve to complete a terminal script and a dialogue with an NPC.
- I’ve to add load & save options on the game menu, it’s quick, internally the needed routines are already present.
- I want to add a music to the title screen.
About this last point (the music) I tried to get my hands dirty with trackers… after 30 years 😆
Well, it will require some time to get used to trackers again!
What happen after the demo release?
Lot of stuff is planned:
- More game music
- Ambient sounds
- Enemies sound effects
- The rest of the game map (something around 36 rooms, some of them really huge!)
- Sound effects in dialogues + 3 channel music
- Sound effects in terminals [OK] + 3 channel music
- Sound effects in hacking device + 3 channel music
- Sound effects in game menu + 3 channel music
- Sound effects in document reader + 3 channel music
That’s all for now!
Thank you everyone for the interest in this project and for your support, every single bit count!
If you have the chance help to find more followers and supporters because I’d like to work as much as I can on this game and complete it as soon as possible.









