Lately I’ve worked hard on level design, testing maps and fixing small bugs.
I’m pretty happy because all seem to work as expected without strange bugs or unexpected behaviours 🙂
During the last month I completed Map 2 and 3 and I’m currently working on Map 4 but “how many maps are in this game?” someone may ask: the answer is “a lot of maps”, I’ve a rough idea and I think that at least 30-40 maps should be included.
The stuff that consume the most of the time is the graphics: drawing characters, and little animations mean to me a lot of efforts since I’m not a pixel artist and I hope that the results are, at least, acceptable!
In the header image you can see my latest creation: she is the girl that will welcome us once we enter the “Raw Cell Institute”.
I also created two more main characters: Robert Garret and Sara Dinet (I posted about a misterious woman same days ago):
But the most expensive activity (in my energy units) is writing the dialogues: since dialogues vary depending on the situation, I have to carefully plan the dialogue scripts trying to cover all the possible cases.
I’ve also added random phrases that may tell you something important so it’s better to talk to any character more than a single time!
NEW FEATURES
I had the need to simulate a terminal crash so I added some more commands to the terminal scripting language to achieve the result I wanted:
– A command to place the cursor at a random position [CURS=-1,-1]
– A command to print a single random character (ASCII code 30 is interpreted as a random character by the parser)
LOADING SCREEN
I added a simple screen that is displayed during the loading of the map we are entering, the transition between maps is not too long but even if it lasts for only one second it’s better with something to view instead of a black screen!
The dark blue area will show the name of the map we are exiting and the name of the map we are entering while the 5 squares on the bottom left will be used to show the loading process, like a progress bar but using yellow shades that fill the dark boxes.
PERSISTANCE & LOAD/SAVE GAME
I’ve implemented “persistance”: this means that if you return to a visited map you will find the situation as you left it. Things actually managed by this system are load/save of global & map variables, doors and furnitures (including terminals, which are a sub set of the furniture objects).
With this first part implemented I’ve also done the first step for the game saves. They will be handled using save slots, with 3 slots available (but can be increased at will), something like we often see in console game: at the start of the game you select an empty slot to start a new game or a not empty slot to load a saved game. Of course you will be able to clear the slots if you need to.
I’ve picked the ‘slots’ solution because in these slots will be dumped all the changes done to the original map, so, when a map is loaded, the engine is able to look for changes for that map in the current slot and if it detects changes it will apply them on top of the original map.
This is a fast solution and pretty clean to handle, to complete the save process I only need to save the player inventory, the current map and his position within the map: simple and straightful process.
NEW COMMAND FOR THE DIALOGUE SYSTEM
I realized that I needed a couple of additional commands during dialogues, so I added:
[GETDOC …] and [GETKEY …].
These two commands allow the dialogue scripts to add documents and keys to the player’s inventory, for example an NPC could give you a key to open a specific door after a conversation and the [GETKEY …] command is used to perform this action.
GRAPHICS
As you may have seen from my previous posts I reworked Kal’s portraits (the main character) giving him a bigger and a nicer face, at least I hope you liked him with his new face!
TERMINAL COMMANDS
I saw that terminal scripts can easily become bigger and bigger increasing a bit the load and parsing time so I added some commands to reduce the characters used and to reduce a bit the script’s size.
For example I’m using “-” do draw lines like this “———-” so I decided to add the command [HLINE] to draw an horizontal line at the cursor’s position and get rid of the dashes sequence.
Since I was there I also added [HLINE2] that draw an horizontal double-line and [BOX …] which draw a filled or empty box.
FIXES
Here are some of the most evident bugs I fixed lately:
- When a dialogue ended, the green pointer (the arrow on top of the character used to point who is speaking) was removed after the dialogue screen was moved out: it was really ugly to see, so now the arrow is first removed and then the dialogue screen is moved out with a much nicer effect.
- Color index 12 is used by the copper for a rainbow effect on the HUD screen, when the MENU was displayed and than removed, the color 12 wasn’t restored correctly, instead it was set to black.
SUPPORT
Thanks again to all the nice people supporting me, both with paid and free subscriptions! It means a lot to me! If you have questions or if you want to comment, please do it! I’ll be very happy interact with any you 🙂
Since I’m struggling to find more supporter here is a video of the first level, there is no shootings yet because map 1-4 are an introduction to the story which will really unfold starting from level 4, when the hero enters the Raw Cell Institute to visit Doct.Sara Dinet, the one who hired Kal to carry out investigations regarding his missing friend and colleague.
The video has been recorded using WinUAE with Cycle Exact flag set and with my big surprise it runs very nice without slowdowns!
Unfortunately my PC isn’t powerful enough to run WinUAE and record the video at the same time, which is why it seems a little laggy, but I can assure you that without the recording program the game runs very smoothly!