Hello everyone!
Here we are with another update 😄
GAME PROGRESS
After the holidays I’ve resumed the work on “The Gate” trying to move as fast as possible with the rooms creation.
I’ve just completed room 24, you can see how it looks like in the video below (please note that these are video from YouTube, head to my Patreon for better quality).
The hardest room was the number 23 because there are many dialogues and actors here, with some new features I had to add to the dialogue system (I will talk about them below).
Here you can see a video, without spoilers, about room 23:
In room 22 I introduced an enemy variant: they act as walls, shields and traps and I thought to show it with a brief video:
Since they are actually enemies, they have their brain script: these energy shields will never go up until the player go away from them. You can also try to destroy the shields, but you will waste a ton of precious bullets! 😬
ENEMIES
The engine handles automatically the enemies facing: if the go to the left, the engine will flip the frames, otherwise it leaves the original frames which are facing to the right.

But there was a problem I got aware only when I added these enemies type.
There are some turrets that move over a rail and I designed them trying to shade their edges with light-dark tones.
When these enemies were flipped, the shading was also reversed giving them a completely odd and out-of-context aspect because the enemy’s lighting was the exact opposite of the global room’s lighting.
So I made space for another variable in the enemy structure to hold this information and I changed the engine to handle a new flag I called “do-not-flip”, it’s a bit-masked flag.

For those who don’t know what a bit-masked flag is, well, it simply means that every bit in a given variable has a meaning.
For example, if you consider the number 5 and write it into its binary form you get %101.
Each position has power of 2 value, starting from the left to the right you get: 1,2,4,8 (which are 2^0, 2^1, 2^2, 2^3,…) and so on…
In this little example we have [2^2=4]+[0]+[2^0=1] -> 5.
We have two bits set: the bit 0 (the first from the right) and bit 2 (the third from the right) each of them representing a switch (0-1).
LESS HARD-CODED STUFF
In this game there are very few hard-coded values (values that are in the source code and that cannot be modified unless you re-compile the program), but I have externalized more variables to allow me to test the compiled game and adjust these values on the fly.
They are:
- The doors update frequency
- The triggers update frequency
- The enemies (brain) update frequency
- The vertical blank bottom line target
The last value may seems cryptic for those not into coding, but it’s an essential value to make the game graphics smooth.
NEW THINGS
While coding some rooms I had the need to start a terminal session just after a dialogue (at some point Lucy, the Institute’s AI, gives Kal the opportunity to access her terminal).

I expanded the [SPECIAL …] command so that, if called from a dialogue, it open a terminal session just after the dialogue ends.
But while writing the dialogues I had another need: I wanted to change the hero attributes from the dialogues, so I expanded, once again, the command [SPECIAL …] so that, for example, I can modify the hero health (Hint: a creature in the lab can cure Kal’s wounds).

Here is what this command can change:
- health : Change current hero health
- max-health : Change current hero max-health
- medikits : Change medikits count
- bullets : Change current clip’s bullets count
- max-bullets : Change current clip’s capacity
- clips : Change current clips count
- max-clips : Change current maximum clips
- gun-power : Change current gun’s power
During the implementation of the above command I also fixed a bug with the medi-kit automatic use.
WHAT’S EATING MY TIME?
Well… drawing graphics is at the first position followed by dialogues.

Dialogues requires a lot of focus because I have to say things avoiding spoilers, I’m writing the dialogues and the information found on the terminals in a way that the player should elaborate his own ideas about what’s happening at the Raw Cell Institute.
I also have to keep track of the map variables (something I use to “remember” each room’s things).
For example, in room 24, there is a character that can tell Kal some interesting things, but it does not show these options until Kal discover or inspect something in the room.

Third place is for the music: I have to limit the modules size to 100-150k bytes and since I’m using sampled music, it is pretty hard: I’m doing my best to achieve good results avoiding boring loops, maintaining mystery and raising the tension in some rooms.
You can listen to some soundtracks in the recorded video, I hope you like them 🎧.
MY MUSIC EQUIPMENT
I thought to share with you my music equipment, I’m using my keyboards to make the game’s soundtracks.
Here is the Yamaha MOX6: one of the best workstation I’ve ever had, it has tons of great sounds, arpeggios and a pattern-based sequencer that I love.


Here is the another workstation/arranger: the Korg Pa1000, loaded with great sounds and effects…

For additional effects I use this little device loaded with interesting sound effects which I love (especially the reverb ones), the Zoom Multistomp MS 70-CDR, which is a stereo pedal.

I also have 2 more keyboards that I actually do not use, a Roland DS-61 (I used it when I was playing with a band) and a Casio MZ-X500, an interesting arranger with some cool features, but unfortunately Casio has stopped to update its firmware too soon.
CONCLUSION
Well, I hope I have satisfied your hunger for information! Now I’m off to work on room 25!
EXTRA 1
For those interested in AMOS Pro coding with the AMCAF extension, I published the HTML manual, the original was a big text file.
It was hard for me to search for things so I reorganized the manual.
You can browse it from my website or you can download the zip file for offline browsing.
Here is the link.
EXTRA 2

Above you can see an add-on that will greatly increase the default weapon’s power! but beware! Not all enemies are sensible to this weapon type!
Thank you all once more time for your support and your interest in this project!
Keep sending me your feedback, it will help me to deliver a better product!
