You're working late at the office and you are sooo tired you fall asleep. You wake up to the sound of an alarm and on your screen it says "SECURITY BREACHED". Solve the hacker's puzzles to get access to the servers back and be able to finally go home. Something seems off though…

IRL Day 11/10 (1 hour spent):
Today I tried to add a minigame that you can play when obtaining the usb stick, but I got side tracked and helped to organize a trip to 秋葉原 to do various activities like カラオケ and other stuff.

IRL Day 11/05 (~5 hours spent):
Today I started working on my arcade machine. I picked all my supplies, flashed the sd card for the pi with an OS and got the game running on the raspberry pi, while making some optimizations to make it run smoother on the raspberry pi.
IRL Day 11/06 (~10 hours spent):
Today I worked on assembling my arcade machine. I got the buttons mounted and the display as well (by getting the holes drilled and fixing it to the wood with screws). I did some soldering as well to connect the buttons and the joystick to the raspberry pi. I also spent like 3+ hours on sanding the wood for my arcade machine to prevent people from getting splinters and to make it silky smooth :).
IRL DAY 11/07 (~10 hours spent):
Today I spent more than half of the day on adding the compatibility for the arcade controls and making it run reliably on the pi. I had to resolder a couple of connections to make it work and because they ripped (this was great pain with leadless solder). But at the end of the day everything worked pretty much fine and I packaged it and taped everything to the bottom of the arcade machine.
IRL DAY 11/08 (~9 hours spent):
Today I put my arcade maching back together and got everything running at the venue. I fixed some bugs that I noticed. So that it was playable at the end of the day. I also added a cool design for around the controls (on the arcade machine) and some text to explain what they do (with some japanese translations). Additionally I added a new image that get shown when the monitor turns around and a jumpscare that shows the same image. The jumpscare gets triggered if the door stays open for too long, so you have to listen closely to the sound queue of the door openening
IRL DAY 11/09 (~5 hours spent):
Today I spent my time on changing the tutorial to make it make sense for the arcade machine controls. This included also changing the translations for it and I also fixed some final bugs that occurred. I moved my arcade machine to the other room and I added a restart button (in game/pause menu), which just quits the game and the autostart script is just a while true loop, which runs my game, so my game will always be running. I think I'm pretty much finished with my game and actually pretty happy with it for the state that it is.

Today I continue to work on translations. I finished the translations for the entirety of the 1. level, which was a lot of text. I am still working on the translations for level 2, but I think I am almost finished with them and then I'm basically finished with all of the translations.
I also fixed that random events happen during the tutorial, because they shouldn't happen there so I disabled them in the tutorial.

Today I mostly worked on translations. I finished the translations for the tutorial and I added the translations for the subtitle in the cutscene, the introduction popup and the file names for the first level including all of the possible values for the modified column and the counter for how many items a folder has.
I also fixed some stuff. First I made it so scrolling inside the file browser or notes file doesn't cycle through the focuses (like it did before). Secondly I made the windows/popups quite a bit less transparent to make it easier to read text.

IF YOU EXPERIENCE ANY ERRORS WHILE LOADING:
It's probably related to Threading Support being enabled for my game. Try a different browser or/and a different device (For me it works in Chrome everywhere). My game needs Threading Support enabled, because you will sometimes have annoying sound lags if it is not enabled!
Changes since last devlog:
Check the devlogs for all the stuff that has been added in this demo
Today I worked on controller support again. I added the support for the telephone and the container focus.
You can navigate the telephone using the joystick and you can select the currently selected button or receiver by clicking the A button (at least on an Xbox Controller).
For the container you can select the drawers by moving the joystick up or down and open them with the A button again. For open drawers you can additionally select the items by moving the joystick to the left or the right. Interacting with those selected items is again done by pressing the A button.
Now only the monitor screen and all the 2d controls need controller support (so maybe half-way done with this)
Today I worked on adding controller support for my game. You can look around, focus and unfocus and pause using a controller. Once you start using a controller, the cursor will get hidden and I will start pretending that the mouse is in the middle of the screen (to make hovering work). If you switch to using the mouse again though, then the cursor will be visible again and you can use the same controls as before. I also made some slight changes to how the areas that are responsible for handling the hovering and focusing get hidden and updated when you are focused or unfocused. Controller support is not complete at all and I still have to add a lot to make it work and then I also have to update the tutorial with the correct buttons.
Today I added some images for the icon/disk and the splash screen.
After that I added some more functionality to the musicbox. Now you can only use it once and after it finished playing and the chances for random events will increase. The key of the musicbox also bends to the side at the end and when you click on the musicbox again, then the key will move slightly and a rattling sound is played (making it obvious that the key is stuck).
The same rattling sound has been added as a rare sound that is played for the door knock random event.
I also made music a bit quieter, because it was actually pretty loud and you couldn't hear some sfx when you didn't change the volume in the options.
Additionally I added sound effects for the monitor look random event (for when the monitors turn) and I added 2 textures that get randomly displayed once the monitors finished turning around. More textures are going to come in the future.

IF YOU EXPERIENCE ANY ERRORS WHILE LOADING:
It might be something in connection to Threading Support being enabled for my game. Try a different browser or/and a different device. My game needs Threading Support enabled, because you will sometimes have annoying sound lags if it is not enabled!
Bug Fixes:
Changes since last devlog:
Short summary of changes since last demo:
Today I added a usb flash drive (including models and textures). It can be found in the top drawer of the container and it can be picked up. For that I added an item slot on the bottom left of the game screen, which displays the item you have currently picked up. When you have picked up the usb and you focus the monitor, a button will show up on the bottom right of the monitor screen. Clicking the button will result in the file browser displaying the files that are on the usb drive (similarly to what clicking on a server does). The usb should also work in both room qualities.
Today I first off change how my game scales when resized to prevent the font from becoming to small with big screen resolutions.
Next I continued to work on the musicbox. It can now be moved around by dragging and I added a label on the back that tells you the song name.
I also added some animations for taking off the note and for rotating the key of the musicbox (winding up when clicked and then rotating back slowly while the song is playing)
Additionally I added that the song gets played by the musicbox (The song was made during the shiba radio challenge). However I did add a new variant of that song for when you close the drawer to make it sound like the musicbox is actually inside there. The transitioning works similar to the system with the alarm, which doesn't actually use godot's built in effects, because they are not as performant on the web.
IF YOU EXPERIENCE ANY ERRORS WHILE LOADING:
It might be something in connection to Threading Support being enabled for my game. Try a different browser or/and a different device. My game needs Threading Support enabled, because you will sometimes have annoying sound lags if it is not enabled!
Bug Fixes:
Changes since last devlog:
Short summary of changes since last demo:
Today I had to change from using 1 area for the drawers (of the container) to 3 drawers (one for each), because I'll have to move the areas with the drawers. I also changed the model of the containers a bit to solve a visual bug with the outline.
The drawers can now also be clicked, which will cause them to either come out or go back in. How far the drawer comes out is slightly randomized and the position of the drawer will be saved as state, so that changing the room quality doesn't change its position. There are also sounds for the drawer coming out and going back in (3 variations each and a bit of randomized volume & pitch).
Additionally I added a new asset, which is the music box. It can be found in the container, but there is no functionality for it yet (Probably gonna add that tomorrow).
Today I worked on focusing mostly. First thing I added is inputs for cycling through the focuses (using scroll wheel or arrow keys) and also changed the tutorial to display these inputs. Next I made the chair rotation face the camera when unfocusing to ensure that the chair is always rotated correctly even after using the input methods to change the focus.
After that I added the container as focusable object and added the hover effect for the individual drawers.
I also had to port a lot of changes from the high quality room to the low quality room, because I forgot to do that. This is mostly relating to focus 2 (telephone) and focus 3 (container).
Today I just fixed a couple of spelling mistakes and a bug that occurred because I used z_index to focus window, which doesn't prioritize the input events. Now I just move the child to the end of the children to prioritize the input events as well as rendering the window on top of the other ones.
Additionally I worked on hints, which means I added the hints for level 2, added a Next button to the hints window to display the next hint and I move the hints to the config gdscript.
I changed the sound for calling a valid number a bit to make the sound shorter (even though there is no cooldown for calling)
And finally I added keyboard support to the telephone. You can now use the number keys and any ui_accept buttons to use the telephone.

IF YOU EXPERIENCE ANY ERRORS WHILE LOADING:
It might be something in connection to Threading Support being enabled for my game. Try a different browser or/and a different device. My game needs Threading Support enabled, because you will sometimes have annoying sound lags if it is not enabled!
Bug Fixes:
Changes since last devlog:
First off I added a 4th positional audio player, because sometimes I do need more than 3 in my game.
I transferred the config for the server files and the telephone actions to a global script.
I added a phone pickup sound effect that is played when a phone number has an action and I decreased the volume for the correct and wrong sound effects (when clicking unlock). I finished the functionality for the telephone actions and fixed it that you do a spin when you look to the right and then focus the telephone.
Also I changed my schedule function to use Callables instead of function names and an object.
Additionally I got a request to add a file to take notes, so I added a new file type for text editors and added a notes file to every server (and included it in the tutorial).
When opening a file it will also display the file's server in brackets behind the title, because you can probably get confused when you have multiple files from multiple servers open.
Finally I added another staff file which has different actions (and different type of actions) than the first.
Bug Fixes:
Changes since last devlog:
Summary of past devlog(s):
I just started the development of level 2. Because I am probably gonna reuse the shapes in most of the levels, I put them into a separate folder and I also made the shapes' backgrounds white so I can change the color using a specific theme override of buttons. I also added 2 more shapes, which are the star and the hexagon. Then I modified the copy of a popup scene to use for the unlock file in level 2 (because the mechanic will be different from level 1) and I added the image for the code file in level 2 (which is also different from level 1). The give me a hint file has also been added, but is still a placeholder at the moment. There is probably lots more to come tomorrow.

Changes since last devlog:
Summary of changes since last demo:
Today I added the telephone as a focusable object. It'll can be hovered similar to the monitor and will show an outline. When the telephone is focused, the telephone's buttons and receiver can be hovered and will also display an outline if done so. For the buttons I only use 1 Area3D and some math to avoid having to handle 12 Area3Ds.
Additionally I switched my old focus animation system (which used lerp and the _process function to interpolate between 2 transforms) to a system that now uses tweens, which was quite a lot of code refactoring.
Today I spent most of my time on changing the audio system in my game. I removed the positional audio option in my game, because I think the performance impact was negligible. Then I removed all AudioStreamPlayers in my game and move their functionality to a new global scene that I create. It has 3 positional audio players and 3 non positional ones (meaning 6 sounds could be played at a time, which should be enough). AudioStreams can be played and interacted with via the functions of the global script. I also move every AudioStream to this global scene, so I can change them more easily if I have to. This just makes it way more organized and easier to implement new stuff in the future.
After that I added a new random event just like the light flicker which is the door knock sound. The updated chances for the random events, which get rolled every 15 seconds, are 70% nothing, 20% light flicker, 10% door knock. There are 2 variations for the door knock sound (one has a 25% chance and one a 75% chance).

Today I added 3 more reports to the first level and I think I should be finished with level 1 now. (Continuing to work on level 2 when I get a good idea for a puzzle (I got some ideas, but I need to put them all together into a nice concept)) After that I added a custom theme for all of my controls to make it look more unique and maybe fit a little more to my game. I also implemented a system for random events. At the moment there is only the light flickering, which has a chance of 25% every 15 seconds to trigger. The light flickering also has 3 different sound effects (with a tad of pitch randomization) once it triggers.

Bug Fixes:
(- Hopefully audio crackles by doubling latency for web)
Changes:
Combined all the tutorials into one that can be played by clicking the "Tutorial" button on the title screen. Also there is a new default font.
From past devlogs (shortly summarized):
Set the show casting to off for almost all meshes and added custom meshes that look similar to the mesh, but have way less polygons and are set to shadow only. Because I figured that should reduce on time that it takes to process the lighting. Also I removed the baked lightmaps, because they were only used for indirect lighting, which I had disabled for all lights in my scene, because it looks better without.
Next I started to work on a title screen. I wanted to use a cube map for the background. Because my room setup is completely built in godot, I had to find to way to create a cube map in godot, which is not that easy. So I had to setup a square camera and save the image from the viewport for all 6 sides and then combine them to create a cube map. But at least I won't have to render the scene in the title screen, so it want need that much performance.
Additionally I searched for some fonts. I found some nice ones and set one for the title of the title screen and one for the "Security Breached" message after the first cutscene. But the title screen is still WIP.

Working on performance for the low quality room and a lot of debugging to find out that shadows might be part of the problem. Added baked lightmaps, removed shadow casting for certain objects, setting a lower shadow quality option for low quality scene.

Added more content (more reports) to the first level. The first level can actually be completed now and there is an animation and sound effects for the process of unlocking the server. The second level also contains only a single file that says that this is the current progress and that I will be adding more stuff in the future. (Because people got confused that they couldn't complete the first level)
Also I added mouse click sounds when clicking on the monitor during focus.
(Btw. I will continue to post devlogs before releasing a demo tomorrow. I just wanted to ship some stuff out that I have noticed gets criticized a lot in the playtests. So enjoy :))
Bug Fixes:
Features:
I added the option to change the quality of the room, so if you encounter performance issues, please change the room quality to low in the settings! (More options for performance are planned)
Summary of what was added:
I continued to work on the performance of my game. I duplicated the high quality room scene and replaced the high quality models with low quality counter parts. As visible in the image, I went from the 39k primitives in the high quality scene to 16K primitives in the low quality scene. So the low quality scene has about 41.5% the amount of primitives in comparison to the high quality scene. I hope I can solve the performance problems that some people have when playing my game.

Today I got another review saying that my game has bad performance, so I am working on adding multiple performance modes. As most of the performance goes into rendering 3d models, I had to separate the logic that is meant for the 3d room and the logic that is general for the game. As both were handled in the main.gd script and most of it was mixed together (for example pausing the game at the end of the starting tutorial starts the cutscene that follows (it won't actually start till the game is unpaused though)). So now I separated the room into a scene, so I can make multiple versions to improve performance for "low end pcs". Tomorrow I am probably gonna change the models to make them have less polygons.

Added the rough file&folder structure for the first level's server. I added the tutorial that explains what the game is about and how to play basically. Added a popup (scene) that is made to take a 4 digit code to unlock the server (not functional at the moment though). Added a code image that shows 4 shapes and added 3 reports (2 text reports and 1 image report). Added 3 more properties that I can use to configure every file: width, height and title of the popup that will be shown when the file is clicked (only for files not for folders). Changed the way how executable files work. (Before a callable was called on a basic popup. Now the callable is responsible of creating a popup and returning it (Now I can just load a scene that inherits from the ScreenPopup scene. Makes it at least 1% easier for the future!))

Fixed 2 bugs that I discovered after uploading the demo:
Summary of what has been added since the last demo (look at the devlogs for a bit more detail):
Added the ability to click on servers, which shows a file browser. There are several file types that can be opened in a custom popup (scene) on the monitor screen (text, image and executable). You can navigate through a folder structure. The popups and file browser can be moved, closed and can receive focus to display it above all other popups.
There is a story related text popup that opens shortly after the servers have been hacked.
A bit after that popup is shown, the tutorial for how to click on servers and when clicked on a server, the tutorial for how to use the file browser is shown.
Additionally, subtitles make some popping sound effects, when a subtitle is displayed.
Added sound effects to the subtitle show animation and switched from an animation player to a tween for that animation. I also added the tutorial for how to click on servers and how to use the file browser. If the file browser is reopened the tutorial will be removed.
Added the full functionality of the file browser. Including the 4 different icons for the file types, the ability to open folders and go back to the previous folder, open files (text, image and executable (basically a basic popup with a customizable callable called on it during initialization)) and the compatibility to work with multi "filesystems" of multiple servers.
A server's "filesystem" is displayed in the file browser, when a server is clicked. Clicking on the same server again will close the file browser again.
Added some margins to the right of the title label to prevent it from displaying text below the x button of the popup.
Added a text popup that gets displayed with a short delay after the servers have been hacked. I added a small schedule function to make delayed function calls to make it possible.
I added my own popups that I can use in the monitor viewport. I added several different types of these popups. There is the general one which is inherited by all other ones, one that displays text, one that displays images and one that displays a file browser. The popups have a title and can be closed by clicking the "X" on the top right. When making a popup visible there is an animation (the window is scaled from 0 to 1 and moved from the bottom left to it's position). Additionally the popups can be moved by clicking on the part where the title is displayed and dragging it around. The dragging is confined to the size of the monitor viewport. The functionality of the file browser popup is still WIP.

I added several music tracks for the start of the game and for after the first cutscene that get randomly picked once another track ends. The music gets switched during the cutscene with a fade out and fade in effect (using Tweens that I discoverd today :)). Options to change the volume of music and sound effects separately from the master volume have been added too.
There still is no gameplay though, but it is already planned for the next demo! And I'll be working on it from now on.
Changed the background of the monitor to a dark red once everything gets hacked (because someone suggested it and it honestly looks good). Also I changed up the sound effects for when servers get hacked to add more variety and I chose extra epic ones for the server on which you are on.
I just scrapped the idea that I had for the first level, because I don't think it fits what I am going for and I generally wasn't too happy with it from the start. I still added some stuff though. I added a tutorial for the 3d controls at the start of the game (which is skippable btw.). Also I changed up the animation where the servers get hacked so that some of the servers disappear with a sound effect when a server gets hacked. After the hacker hacks the server where you are, the hacker disappears. Additionally I changed the icon for your character (in the server overview) from the shield I used before to a man with a suit.
I created a separate menu for options and added the new drag mirrored option. I also started working on the 1. level, which is still work in progress. But I put the mesh of servers (which will be similar to level selection later) into separate scene and changed the mask walk animation slightly to stop in the middle of two servers. Then I created the scene for the first level, which dynamically loads the wall in the middle. I'll probably have to scale it up a bit, because it's a bit small.

Still not a lot to do here, but you can look at the animations that I made for the start of the game:
Drag on the screen with left mouse button pressed to look around
Hover your mouse over the monitor to see an outline
Click on the monitor to focus onto it
Press esc or right mouse button to either exit the focus or pause the game (because esc is annoying in the web)
Pausing makes it possible to change the drag sensitivity and audio volume
That alarm is really annoying, but that is how it's supposed to be, right 🔔🔔? I added the alarm sound for "SECURITY BREACHED". I made two versions, so I won't have to use the AudioEffects built into godot, because docs say it's bad. I also figured out how to send inputs to the monitor, when it is focused. Now you can select hacked servers. I am going to add the levels here soon, maybe tomorrow. Also the starting cutscene is now skippable (I no longer have to wait for it to finish, when testing :)).
I hope you don't feel "tire…" as well. Just finished adding the cutscene for the start of the game (My description finally makes some sense, yay).
For the animation I made utilities for subtitles on the bottom of the screen that have an animation for showing and hiding and the eye close and open animation. I wasted some time by not knowing that AnimationPlayer exists, but now I know 🙃
I should probably add sound effects or a start menu next
Still not a lot to do here:
Drag on the screen with left mouse button pressed to look around
Hover your mouse over the screen to see an outline
Click on the screen to focus onto it
Press ESC to either exit the focus or pause the game
Pausing makes it possible to change the drag sensitivity
Sitting like that is probably not good for your health 🤔. The camera is now moved to the monitor in a smooth motion when focusing it. I also added the potted plant on the left and combined the normal and hacked server into one scene and added an animation to switch between both states.
Are those Servers? The level selection menu has been added to the monitor scene. The servers are slightly animated and get connect with a line at the start of the game. Additionally, you can now hover over the monitor and an outline will be displayed. When clicking on the monitor, the camera will move to the monitor to make everything easier to see. When focusing the monitor ESC will no longer pause the game, but instead unfocus the monitor. Next I should animated the movement when focusing.

Is it supposed to say that? Today I didn't do much. I just labeled the buttons of the telephone, added a pause menu to change the drag sensitivity, probably fixed the dragging problem on mobile and added the SECURITY BREACHED alert to the monitor scene. Ah, right and I added the monitor viewport scene thingy too. Next is the game you can play on the monitor. For that I should probably do some sort of selection system for certain objects (I'll have to look at the docs in connection to raycasting again)

Reupload cause I messed up the panning max on y axis, while changing the sensitivity, so you could basically snap your neck if there were one.
Original Message:
Objective: Look at the cool room and get hypnotized by spinning in the chair for too long
Look around the room by panning (clicking left mouse button and moving the mouse) or screen dragging on phone should theoretically also work [if the sense isn't still too high], but didn't test that yet.
That's it… I know right… so much content
Objective: Look at the cool room and get hypnotized by spinning in the chair for too long
Look around the room by panning (clicking left mouse button and moving the mouse) or screen dragging on phone should theoretically also work, but didn't test that yet.
That's it… I know right… so much content
Wooo what's that kind of mood, huh? Today I worked on throwing together a main scene with the assets I made. I had to make a few more in the process (door, window, light, window wall) and I finally did the texturing for it all. In the main scene I did the lighting, added a dark environment and did the arrangement of all the assets in the room.
If I want to label the keyboard and/or telephone buttons I still have to do that though. The camera can now also be moved by just moving the mouse and to get out of the window you press escape (the chair will spin while you move btw.). I got a lot done, but also spent a lot of time
Even more assets!! Today I added the keyboard, monitor, shelf and container/drawer. Now all the basic 3D assets are done yeeeeEE. Next step is texturing and adding some actual content, so I can release a demo :)

Added some more assets and updated the test scene with them, yay! Today we got the telephone, paper, pen and mouse. I did the UV-unwrapping for all the models. Now I almost have all the models I need and then I can get started with texturing. (Also I need to figure out how to make the cable for the telephone moveable like giving it physics. I saw there are some tutorials, but that is for future me :) )

I created assets for a chair and table in blender and added them to a test scene. I still need to do the materials and uv unwrapping for the models though.

Expand Journey
Comments
No comments currently