Activity

diceysnikey

I finished the first minigame task! I decided to do the budget one first, because it seemed to be the easiest. The hardest part was the dragging and resizing of the pillars. It would sometimes resize in the wrong direction or not move at all, but i figured it out later.
I also came up with a few new task ideas. Attached them all in the screenshot. As always, if you have any suggestions, ideas, whatever, don’t hesitate to tell me!

Attachment
0
diceysnikey

I am back from my (way too long) break!
I just didn’t really have any motivation, but now I want to keep grinding.
And my game idea is:

  • You have to complete short minigames that appear as popups to score points
  • Let too many popups accumulate and you lose
  • A little cat gremlin tries to distract you from the tasks
    Let me know what you think! The main vibe i want to go for with the appearances is an old windows xp style. I attached a little drawing i made to show my current task ideas. I want to at least have 5, feel free to give me some ideas. But yeah, thats basically it. I didn’t really do much godot-wise, needed to get some tasks.
Attachment
Attachment
0
diceysnikey

Hey, i’m back! And i did quite a few things.
First of all, I separated the dragging logic from the patty script to its own script and inherit it. This is so i can possibly add other food items later on, and so its not that complex to look at.
Then I fixed a bug with the detection if the grill is currently occupied or not. I repurposed the ZIndexSystem autoload to be a PrepArea autoload, meaning it also holds the global variable for the grill occupation, making it easier. This let me save some signals.
Lastly, I added a coooking sound and made the audio to be 2d spatial. My camera has a AudioListener2D as a child, and the patty has a AudioPlayer2D. So when the camera is faced up, the cooking audio gets quieter.
And thanks to Flavortown-utils, i can also show my code here without long screenshots. I’ll test this one time to see if its better:
lol
The body was too long so i couldn’t fit all the code. Next time i’ll do the screenshots again. If you have a better way, please tell me

0
diceysnikey

Motivation is still not back 100%, but at least i did something.
I added a main menu and the “Pitch button”. The pitch button is supposed to keep the monster away with a high pitched sound. Because I don’t want to destroy my ears when testing this thing, I put a placeholder in its place.
As always, please give me any suggestions about literally anything. QoL, gameplay, whatever. Although I will focus on any visual stuff very late in dev.

Attachment
Attachment
Attachment
Attachment
0
diceysnikey

I implemented snapping to the grill, and a z-index sorter. Not much to talk about since it went pretty fine. The grill snapping was a bit hard to figure out, but i just used some signals to see if the grill is already occupied and if it can snap to it.
The z-index sorter is literally 3 lines of code. I also did some misc fixes yesterday but i honestly forget what those were.
Also, based on the code or video, I would be pretty happy about some suggestions for gameplay and/or Quality of Life changes!

Attachment
Attachment
Attachment
Attachment
0
diceysnikey

I added the order system!
The part i was most stuck on was figuring out what an “order” is exactly. I needed a global list of current active orders. I tried to do this with a dictionary first. The problem with a dictionary though, is that you can’t have duplicate keys. Meaning if i have a “Patty” order with the value of “2” and another with the value of “1”, that just wouldn’t work because the dictionary would overwrite the current “Patty” order with the new one, because it cant have duplicate names.
So then i tried it with nested arrays. One order would be an array of the name and value, thats then nested inside the global orders array. I think that could have maybe worked, but the nesting was too complex. And i found out about a new, better thing:
Custom classes! So I made an OrderEntry class that has a string and integer for the name and value of the Order. This was so much easier to implement everywhere instead of a dictionary or nested arrays.
Also, while writing this current text, I noticed that i used a nested array in the monitor script. I thought i had a good reason for doing so, but after looking at the code, it seems like i could just get rid of the nesting and access the order values directly. I’ll do that next devlog.
Also (2), I redeemed the smolhaj. I thought i needed to mention that. It definitely gives me motivation for the project, ;)

Attachment
Attachment
Attachment
0
diceysnikey

This is a small one today. Didn’t really have the motivation to do something big, so i just laid down the foundation for the order system so I can start coding it tomorrow.
I guess I’m just a little tired from yesterday

Attachment
Attachment
0
diceysnikey

This took waaaay longer than it should have.
First of all, i switched to the very new Godot 4.6 (yipee). Then i also made the camera smooth, forgot to show that in the video.
But the real time eater was adding a simple border for the patty to collide against. It was all so confusing and slightly off and bla bla bla that my head actually began hurting. The issue is, for some reason i decided that a few days ago, the areas aren’t centered at the top left, but at the top center?? When i wanted to change that, i was already too deep into writing code for this version that i just gave that up. I spend like actually an hour figuring out why there was a fricking small distance between the patty and the walls, only to see that I didn’t apply the 0.771 scale for the sprite. I’m just happy that this thing is finally done. Next up is ACTUALLY the order system, I got carried away, hard.

Attachment
0
diceysnikey

I added a cooking and disposing system for the patties. There are three states a patty can be in depending on their cookedMeter:

  1. Raw (cookedMeter < 50)
  2. Grilled (50 < cookedMeter < 80)
  3. Burnt (cookedMeter = 80)
    You can cook the patty by placing it on the grill, and dispose of it by placing it on the bin.
    Next up is probably the order system
Attachment
Attachment
Attachment
Attachment
1

Comments

diceysnikey
diceysnikey about 1 month ago

Note to myself: Change the upperviews colorect to ignore mouse

diceysnikey

First devlog of this game! I want to start off with saying that all visuals are placeholders. Like my previous game, i will focus on the visuals when the gameplay is fully done.

The core game idea I want to go for is: A horror game inspired by Portaboy, where you have to cook and simultaneously keep some kind of monster away from you. The lower area is the prep area, and the upper one is the monster view.

I started off with making the two areas. The blue borders are for the maximized window, so it doesn’t show black bars. Then i made a camera that you can move with W&S to move up or down.

The second thing I added was the burger patty. You can drag it around and drop it. This took a little bit, because of a bug where you could drag the patty from anywhere. I fixed it though.

The last thing was the patty spawner. Clicking it will, like the name says, spawn a patty. This was a bit annoying because the spawner was a button at first, but due to overlapping collisions, the spawner was always picked over the patty. So when clicking the patty while its on the spawner, it would trigger the spawner. I fixed this by turning the spawner from a button to an area2d.

And that’s pretty much it for this one. I plan to add a cooking and burning system next.

Attachment
Attachment
Attachment
Attachment
1

Comments

diceysnikey
diceysnikey about 1 month ago

Also, for any future devlogs: Ignore the print functions. They are just for debugging and i forget to remove them sometimes

diceysnikey

Changed all this:

  • Added a music toggle
  • Fixed the triggered mouth variable not resetting when pulling asteroid from pool
  • Fixed the colorblind button not displaying right
  • Enlarged the player scoring hitbox
  • Changed the game over menu’s “Restart” to “Main Menu”
Attachment
0
diceysnikey

I added support for color blindness in the main menu. A playtester had some problems distinguishing the asteroids, this should be better

Attachment
0
diceysnikey

Shipped this project!

Hours: 24.01
Cookies: 🍪 497
Multiplier: 20.7 cookies/hr

My first game! I definitely learned the basics to make other games now, more coming soon ;)

The Gameplay is very simple and arcade-y. You need to catch the green asteroids and dodge the red ones. I would love to hear your people’s high-scores. Mine is 37.

It was a very fun experience, and it’s not really programming, but I’m proud of the music too.

diceysnikey

Added a tutorial and music. I made the music completely myself, in Renoise.
The game is now in a state where I am comfortable with shipping it, which I will probably do now.
What a ride! :)

Attachment
0
diceysnikey

VISUAL OVERHAUL PART 3 (Sound effects):
Added three sound effects for catching asteroids, one for selecting buttons, and one for dying.
Next up will be the music. I don’t know how long that will take. Still a newbie to Renoise

Attachment
0
diceysnikey

VISUAL OVERHAUL PART 2 (Sprites and Fonts):
With the NES-NTSC color pallete, I updates all sprites. And with the Mr Robot font, I updated all the text in the game, also using the sprites colors. Let me know what you think!
Next up would be the sound effects and music. But I have to figure out how to make Renoise run on Linux first.

3

Comments

Sim Dev
Sim Dev about 1 month ago

very cool game <3

Sim Dev
Sim Dev about 1 month ago

cool animations

diceysnikey
diceysnikey about 1 month ago

Thank you!

diceysnikey

VISUAL OVERHAUL PART 1 (Background):

This took 2 days because i couldn’t really figure out what exactly i wanted to do with the visuals. My first inspiration was Moonpong and its trippy background, but i’m not really hyped about learning a whole shader language. So i wasted some time trying that.
Then I found this game called “VVVVVV”. This and ss14 are the inspirations for the space parallax background, and I will use VVVVVV as a color reference for the next sprite changes.

Attachment
Attachment
1

Comments

diceysnikey
diceysnikey about 1 month ago

Forgot that the closer stars should be faster and the farther ones slower, not the other way around. lol, going to fix it next update

diceysnikey
  1. Added fullscreen support. I decided I can add it after all since windowed players won’t have and advantage anymore thanks to:
  2. Changed movement from mouse, back to W & S keys.
  3. Added a booster system, allowing the player to double their speed for a short amount of time
Attachment
1

Comments

diceysnikey
diceysnikey about 1 month ago

No fix for the stutters yet. Still waiting for a response from the godot forums

diceysnikey

I am actually going psychotic.
First, i wanted to add a fullscreen, but after testing, I didn’t include one because windowed players would have an advantage.
Then, i tried to fix the dreaded occasional frame drops. I implemented a whole pooling system just to fix it, only for the stutters to still be there. I included a stutter tracker that shows the stutters in the console. Please, if someone could clone the repo, look at the project themselves and tell me what is going wrong, PLEASE tell me. I wasted 1 hour (2 hours because godot just closed in the middle of editing) for a fix that didn’t do anything.

Attachment
0
diceysnikey

Changed a few variables names and fixed the bug where the time in between Asteroid spawns would decrease infinitely until 0, essentialy making it unplayable.
Before I get on with the “Complete Visual and Audio Overhaul”, i want to make sure the Gameplay is as good as it can be. If you have any Gameplay related ideas i could add, please tell me! The current Gameplay is in a video from the previous devlog. I will also set up a repo for the game in a minute so you can playtest it yourself.

Attachment
0
diceysnikey

I added a system that increases the difficulty over time. It took so long because there are so many timers to keep track of, and i had to rewrite some code to fit that.
The video shows how the difficulty of the game gets harder as time goes on. The console shows some useful information for you guys.

Attachment
Attachment
Attachment
1

Comments

diceysnikey
diceysnikey about 2 months ago

I should probably change some variable and script names next time to make it more clear

diceysnikey

I added a high score and the automatic saving of it. I didn’t really run into issues so there isn’t much to say about that.
But i had a bug: When detecting if a badAsteroid entered the player collision, it would use the parents name as reference. This wasn’t good because Godot names instances like this “Node2D@10”. So sometimes my detection just didn’t work because of the name. I fixed this by adding a new badAsteroids group and setting the detection to reference this instead.
The video showcases the high score and saving features even when closing the project.

Attachment
0
diceysnikey

Added the bad asteroids and a Game Over screen. It pauses the game and shows to options. Either to restart, or to exit. This whole process was relatively easy to implement.
The next game play addition will probably be the difficulty rising over time. And a high score

Attachment
Attachment
0
diceysnikey

To prepare for the main menu, i restructured all my nodes. So now i basically have the main node that instances the menu, then the spawner, and the spawner instances the rest.
The video shows in the remote tab how the main node instances the menu, the menu deleting itself, and the spawner being added

Attachment
Attachment
Attachment
0
diceysnikey

This one took waaaay longer than expected. My first goal was to change the movement from keyboard keys to following the mouse. When starting that one, it led me to the first fix:

  1. Because i set the player position by the viewport, it caused a coordination deviation with the mouse position. I fixed it by placing the player at 0.0 and moving it to the start location by code.
  2. Then i could change the movement to the mouse. This took a while because I used the previous keyboard code as template, but this caused the player to jitter up and down when reaching the mouse because of the way i coded the velocity. It works good now
  3. I noticed that there is an option to “Snap 2D Transforms to pixel”, turning it on to make my texture snap to the pixel grid. I recommend turning this on too for people who have pixel-art textures.
  4. In the previous devlog, i added the signalbus. But i missed the signal connection between the player and ui, so i added a signal for it to the bus and changed it.

If next time there aren’t a million deviations like today, i will definitely add the main menu. And if the main menu coding goes by fast, then I’ll add the dangerous asteroid causing a game-over too

Attachment
Attachment
Attachment
2

Comments

TheEpicStudent
TheEpicStudent about 2 months ago

I like it; you should add an animation so when the astroid is close enough they get sucked into the players mouth.

diceysnikey
diceysnikey about 2 months ago

The ‘get sucked into the mouth’ part would be hard to implement because of the inner collision-outer collision mechanic, but i could add a crushing animation. I’ll definitely add it in the visual overhaul soon, thanks!

diceysnikey

I am getting more and more used to Godot, and its starting to get smooth.
This time, i fixed two bugs:

  1. Asteroid not being cleared when out of view
  2. Asteroid being eaten even when it didn’t touch the outer collision yet.
    The second bug took the most time. I had to setup a signal bus, and to my previous self-devlog: I understand signals 100% now :)
    But now I am kind of stuck, because I almost can’t think of anything new to add. I will do a complete visual overhaul, but only when I am sure that the gameplay is done. The only things remaining from the original scratch game are the main menu, increasing difficulty over time, and ‘bad asteroids’ leading to a game-over.
Attachment
Attachment
2

Comments

Kajmix
Kajmix about 2 months ago

Hi ^^
I think you should add an animated space background and maybe some dangerous asteroids. If you eat one, it could explode and you die.

diceysnikey
diceysnikey about 2 months ago

The animated background is a really good idea! When doing the visual overhaul sometime in the future, i’ll definitely do one. I already had the dangerous asteroid idea planned, coming probably in the next one :)

diceysnikey

I didn’t have much time today so this is a short one.
I modified the spawner so it now spawns multiple asteroids, at different y-positions inside the viewport, and different times between 1.5 and 2.5 seconds.
The only thing i was ‘stuck’ on for a moment was getting the random y-position to work, but I’m surprised at how quick i was able to make it work.
Next time I’ll fix the player collisions so only asteroids that passed the outer collision can get accepted by the inner collision as a point (see image for reference)
I am slowly running out of ideas to add. so feel free to give suggestions please!

Attachment
0
diceysnikey

The reason this took me so long is because signals were hard to understand. And it didn’t help that i kept seeing different results for godot 3 and godot 4 when googling for help.
What I added was two collisions to the player, one outer collision (changes to the open mouth sprite) and a inner collision (changes to the closed mouth sprite and emits a signal to the scoreboard) that get activated when the asteroid enters them.
I’m still not sure if I understand signals 100%, but at least i have something. You have to make it exist first to make it good later, right?

0
diceysnikey

I added the asteroid this time. It took a while because I am still figuring out Godot and all its stuff, but it worked!
Figuring out the instancing was my biggest problem, because I didn’t know that I had the player scene as the main scene, and so my spawner script didn’t instance. I fixed this by moving the spawner into the player scene. I tried setting my main node as the main scene, but the asteroid visibilty was a bit weird. Next time i’ll fix it, i dont know what stopped me really.
Right now the asteroid moves to the right, but doesn’t have any interaction whatsoever, it just slides forever to the right.
If there are any ways to do stuff better, then please comment! I am still learning, so any help is appreciated

Attachment
Attachment
0
diceysnikey

As an introduction, i want to explain the game idea I want to go for. It is based on a game I made in scratch a few years ago.
The player can control a character that can only move up and down on the y-axis. With that movement, the player has to catch objects that spawn from the left side.
I first made the sprite for the player and set up the movement. Getting into GDScript took a bit, but setting up the movement was relatively easy. Only problem is that the sprite looks weird for a few frames sometimes, you should be able to see that in the video. If anyone has any ideas on how to fix it, please tell me.

Attachment
Attachment
0