~Links~ BSky Personal BlogYoutubeTwitter (I don't use this)
Last active 2 hours ago
Don't wanna be here? Send us removal request.
Text
Interloper Devlog #2 - May 2025
Once more i return.
This month i spent mostly on art, sorta.
It was less specific art pieces and more concepts for how the game will look and the vibe/style it'll have.
Now while this was more concept stuff i did put these things into the game to see how it looks in the wild.
I'll go over each of these styles separately.
'Not Undertale™'
=======================
This first style was appropriately named 'Not Undertale™' by my friend, this style while obviously taking inspiration from Undertale was mainly born from two things.
1: Not knowing what style I wanted.
2: It was easy to make.
The way I handle menu drawing makes simple menus like this far easier to create than the other two, combine that with not having a set style in mind and I'm sure you can see how I ended up with it.
Windows Aero
=======================
The second style is based around the windows aero theme, I was actually fairly confident that this would be the theme I would go with, so much so that I ended up making some more art for it.
(Upscaled for visibility)
While I like the style I don't think it would've fit the games desired tone so I ended up moving on from it.
Cyberpunk Theme
=======================
Onto the final theme that I'm actually going to go with moving forward. I am a huge fan of Cyberpunk! The aesthetic, CDPR game, and the themes that come with it! I always envisioned the story being Cyberpunk-esque so I'm not sure why it took me this long to decide on this style.
I went through and stylized two menus with the Cyberpunk theme.
The item inventory.
And the equipment menu! Or part of it, I imagine that after selecting an option it would bring you to a screen like the item inv.
I do actually have some more fleshed out concept art for the equipment menu!
I'm thinking that when certain equipment slot is filled the corresponding body segment would glow/pulse red. I also would like to eventually figure out shaders, not only because shaders are cool but because i think having menus like this blur the game world would make it easier to read the text!
Other stuff
=======================
While I spent alotta this month on concept art and styles I did do some coding.
One of the first things I did was slope collision!
In this gif I am not moving the player diagonally, the player is SLIDING ALONG THE SLOPE!!!!
THIS TOOK SO LONG AND WAS SUCH A HEADACHE!!!
I WAS TAKING CRYPTIC NOTES!!!!
LOOK AT THIS!!!!!
Besides all of THAT, I also changed saving and loading (although loading doesn't work quite right)
Before I was using JSON formatting but now I'm using INI files!
Granted I still am converting to JSON before saving into an INI file which I don't imagine is the smartest idea so I'll change this soon, but generally I prefer it to look like this as its far more organized.
I don't want to get too into the code but i am pretty proud of this. It basically cycles an array containing the info that needs to be saved and saves it. Pretty sure I gotta use a DS Map if i want it to really work right but I'm still proud of this solution and I'm going to immortalize it here.
That's basically all I've done this month, while i wish i had done more I'm still happy with the progress. As we head into June I wanna wish anyone reading this a happy Pride Month :)
Also play DELTARUNE, its only like 7 tomorrows away.
0 notes
Text
Interloper Devlog #1 - April 2025
I am BACK!
My move was successful and my computer remained unharmed so i was able to get back to work on the game!
This month I spent working on various things but mostly systems stuff.
Save and load
================
I want to start with the saving and loading first since its the simplest.
Both Saving and Loading are separated into their own scripts that can be called whenever I need (such as save points)
Here is the code for Saving! I'll explain what each part does since its so short.
Set the "currentSaveFile" variable to open a specific file when called. In this case "Save.sav"
Set the "currentSaveJson" variable to a different variable "global.currentSave" that has been converted into JSON text.
Open the "Save.sav" file by referencing "currentSaveFile" then save the JSON text to the file by referencing "currentSaveJson"
Close the file.
Then do that again for saving options.
Now loading is basically the same, just read the JSON text then convert it back to a variable.
I'm not going to bother with a step by step here given the similar nature, something of note however is Line 2. Line 2 checks to make sure the file exists before attempting to load it, otherwise the game would crash if the file didn't exist.
Menu stuff
=============
Now its time to get into the goooood stuff, MENUS!
I looooved working on these so I'm quite excited to explain what I've done. Now most of what I've done is more systems stuff.
The menus are fairly fragmented across a few different objects and scripts so I'll have to be a bit more vague about the code.
So this is a menu, this is all the code needed to create one. If you wanted to create a menu for really anything this is what you'd type. This array contains 4 more arrays, with the following format.
[X,Y,Color,Text or Sprite],
Now there is more going on under the hood here, this alone wouldn't do anything. I have a fairly simple script that will auto draw each button by repeating multiple times per frame, the script will extract the length of the array and use the length as the repeat number. Each time it finishes drawing a button it'll go to the next button till its done all of them.
This code creates the background for the menu in a similar fashion. The format is slightly different but nearly the same.
[X1,Y1,X2,Y2,Color],
This will create a rectangle with the dimensions and color you want! The 'menuCMenu' rectangles create a black box with white outline!.
Now it should be noted that the position of the boxes in the array is VERY important. For the buttons the game uses the positions to decide which button to select next while navigating the menu, the background boxes use the order to decide which box is covered by another.
Putting both of these code snippets in actions gives us THIS!
You may have noticed (or maybe not) that the "Items" text is yellow in this screenshot while the code states that it should be white. During the rendering process of the buttons i do a check, if a certain button is selected then make the text color yellow instead of whatever it's supposed to be.
Dialogue
===========
While not a total rework i did end up changing how dialogue works.
Dialogue was always formatted in a similar way to the menus however I did end up changing it slightly. Before each line was just floating around in what was destined to become a huge variable. Now that soon to be huge variable contains smaller variables that contain the dialogue trees!. So let me explain this code snippet.
[Face,Emotion,Text,Next Dialogue Line],
Lets start with the Face. The face is as simple as it sounds, type in the sprite you want to appear in the dialogue box, i.e "Face_August"
Now sometimes you don't want a face to appear so in those cases you would input "Face_Steve". This face does exist and has a corresponding sprite, the only reason its used here to display no face is because it's kinda funny. The code that draws the dialogue will see the "Face_Steve" input and will draw a different box with no face.
The Emotion refers to the sprites index. So if Emotion was 1 then it would change "Face_August" to display frame 1 of the index.
Text is self explanatory, only thing of note is that you can type "\n" to start a new line.
Next Dialogue Line refers to the specific position in the array. Arrays start counting at 0 i.e 0, 1, 2. So referencing Line 1 would cause the second line to start. Now you'd need to stop the dialogue eventually so in that case you'd type in -1 since you can't go negative in array positions.
Misc Stuff
=============
I have a few more things to mention, very minor however.
I have an object whose only job is to create other objects such as "Obj_Controls"
The controls object basically checks for inputs and will update global variables every frame based on the input data.
I have an object that creates a camera, that's about it.
and finally i have an object for Dev testing which contains some code for drawing debug info and what not.
Final Notes
============
I don't have too many things to say here other than Thank You for taking time out of your day to read! Have a nice day :)
3 notes
·
View notes
Text
Interloper Devlog #0 - March 2025
I wanted to make this post to kinda get anyone who's interested up to speed on the current (as of March 17th 2025) status of the game.
A bit of preamble here to make a few terms clear.
I will be using 2 terms throughout this. Scripting, and Coding.
Scripting will refer to visual scripting such as drag and drop or spreadsheet scripting. Coding will refer to the traditional kind of coding where each line is typed out individually. While i firmly believe both are coding just in different forms, making this distinction will be helpful later on in the post.
I initially started this project on the game engine GDevelop which uses scripting. I've been using GDevelop for about 2 years if the 3 months of 2025 are included so I've gotten fairly good at it. I've never really been able to code until recently so i didn't have many options for game engines to learn, but GDevelop being regularly updated with a decent community was perfect for me.
I started development around the beginning of March maybe late February, and it was going fairly well.
I got dialogue working
A good modular menu system
Saves
Even a little arcade game
----------
But I quickly faced a problem that I've had with GDevelop many times before. I became completely overwhelmed! Not by the scope of the project or any feature i didn't know how to script, just by how big the scripting was.
The scripting page just becomes so long so quickly and it becomes tiring to look through. Now there is a decent remedy for this in GDevelop called "External Events" which let you split scripts into their own little segments. While this is good it only helps for so long, eventually you'll have some huge External Event (in my experience).
I figured I'd just deal with it and kept going, until I on a whim decided to try out Game Maker Studio 2. I had never been able to code before so I figured I would just poke around and give up like the many attempts at trying to code before.
But I didn't! I actually picked up GML (Game Makers coding language) very quickly. After only 1 tutorial (and half of one that I didn't really pay attention to) I was quickly able to make a little dialogue system that would not only display text but also show the corresponding face and emotion!
So after a bit of tinkering with coding in a 'test' project I decided I shouldn't waste this opportunity and went all in on Game Maker. I quickly made a new project and set up movement and interaction, I remade the dialogue system from the first 'test' project and even managed to give it scrolling text. I made a nice modular menu system and room transitions (with fading!)
---------------------
So to recap the current state of the game:
Working dialogue
Modular menu system (Easy menu making)
Room Transitions
Player Movement with collisions
As a bit of clarity this blog will be almost exclusively about Interloper with the exceptions being when my personal life cause changes with development. Such as PC troubles, moving, etc. etc.
Along with small posts here and there about art or music for the game I hope to make one of these at least every other month (although monthly is the goal). So if you're interested then the end of each month would be the best time to check here.
Finally so I can end this post, I will be moving within the next few weeks and thus won't be able to work on the game or post any substantial updates (quite the way to open a blog like this) I should have everything set up by the end of March / Early April. I am still aiming for a Devlog by the end of April assuming nothing goes wrong such as my PC breaking during transport.
Have a wonderful day!
3 notes
·
View notes