Activity

vishalya

Shipped this project!

Hours: 35.66
Cookies: 🍪 932
Multiplier: 26.14 cookies/hr

I built a small crab dress up game! i made this project to practice my core coding skills by practicing concepts of loops, functions, dictionaries, etc through this game. i wasn’t expecting this project to take as long, but i’m glad i got to solve many problems and learnt why and how to fix them in godot :’)) it was definitely challenging figuring out how to initially set up the random order generation with the random crabs all in a single animation player, but it ended up working really well for my game! i’m really proud of my game overall, and can’t wait to keep adding more features to make it better. this game isn’t complete and there may be a few bugs(pause button menu only works on second press TT) or glitches, but please do leave some feedback for me to keep improving this game!

vishalya

last devlog for this game woohooo. i added another animation player on the home screen so now the crab’s shell changes every few seconds, giving it a more dress uppy feel before you even start the game. then i wanted to add an overlay menu when the pause button is pressed, it displays 2 buttons, one to go back to the home screen and one to view the credits. so i created a new canvas layer for the credits scene and decorated it with different shells and the robber crab >:)) that would be visible when the credits button was pressed, but i was facing some issues with the input process mode when paused. even though i set my area 2d inputs process mode to “when paused” or”always” it wouldn’t register the mouse clicks to the area 2d cryign so then to avoid that mess i created a new scene that it would direct you to, which isn’t ideal for mid gameplay, but it is what it is for now. i may change it in the future to have the credits on the home screen for less resources and just easier navigability.
once that was done, there came a new issue! on the first press of the pause button, the collision shapes didn’t disable! cryign i’m not really sure how to fix this, i used multiple methods like setting using deferred() to wait a frame, then enable it, using .input_pickable == true to let mouse clicks work in a paused game state, but it didn’t work out TT. i’ll take a break from this game, study for exams and come back to this and debug it properly
lastly, i fixed the glitch where the crab spawns on the screen briefly, then spawns again when the game first starts by resetting the animation track player position to the beginning of the track!
but yeah the core gameplay and necessities are all done!
i’l create the readme and upload to itch next before shipping later :DD

0
vishalya

Shipped this project!

Hours: 1.45
Cookies: 🍪 43
Multiplier: 29.8 cookies/hr

shipping again for the haunted sidequest! :))
i added more background lore for the story as to why some things happen (diary page rips) and fixed the global hardmode and normal mode save states when choosing them from the menu. lmk if you have any feedback overall <3

vishalya

i added a few changes! some of the playtesters mentioned that they were confused why the diary was ripped out in the first place and why we had to find them. so i added an extra line in the dialogue anim player in the attic that indicated who did it and why. I thought it would make most sense for the ex to rip is as they are obsessive and the diary lock is pretty simple.
then i was testing the game once again, and i noticed a bug, losing all 3 hearts in hard mode triggers easy mode shocked i don’t know why it breaks now because it was working fine before :((( i removed the else: return blocks completely as they didn’t do anything but might’ve changed the flow of the script somehow?? then i decided to use the web console, directly testing on itch to see if i could identify the problem, and turns out i never “selected” a mode?!? that meant the problem was in the menu scene, where you choose a mode. i created a bunch of save functions and other things to make sure the hard mode is applied everywhere until i actually read the code that emits the signal to the hardmode. i had written Global.hardmode == true instead of Global.hardmode = trueTT. i can’t believe that got past me lol. i’m not sure why godot let that slide, but that shows that exporting a webgl build of the game catches silent errors like those!

0
vishalya

yesterday i added a probability array to receive a special crab event, then i thought maybe we could apply that to the extras upgrades during shell orders and place them with dynamic pricing! so i modified the pool, the extra is chosen depending on what day the player is on. if the player is on day 7, they have a 50% chance to use their upgrade on a crab order to get a few extra pearls vs on the first 4 days the player has a 25% chance of being able to use their extra upgrade for extra pearls on a crab order. I also added more singular extras to each specific extra pool. so instead of the stars being a fixed set amount, the number of stars on the order increases your pearl count! but to keep it less of a chance to get that, i added more singular stars and barnacles to their respective build pool function.
then, i animated the wave on the menu and game page so it gives more life to it lol. i think i will try to animate the fish the crab is on or make the crabs claws on the menu move a little so theres a little more to look at.
after, i was updating the shop prices previously everything was under 600. but with the addition of bonus pearls from achievements, special events like rich crab, and pearls from correctly placed extras, it was too easy to get all the extras before day 10. so i increased prices from(100,600) to (150,1800), and it works! the last shop item is unlockable on day 8 or 9, and if you’re lucky and get visited by rich crab multiple times, even day 7 is possible!
i’m facing a few annoying bugsss, like the crab doesn’t leave when at the end day or the previous extras are showing on top of the robber crab, and achievements aren’t updating in the achievements tab anymore…
hopefully i can get all the bugs fixed up before flavortown ends and ship cryign

0
vishalya

achievements are now working!! 3_neodog_cute i used 2 array indexing to set the .text property to the correct display text in the global script. I removed my 2nd anim track to fade the achievement pop up and just added those key frames into the enter achievement popup to reduce code lines and keep it simpler lol. I also added if else statements when you click on the achievement toggle to check if you have unlocked an achievement, to set the text context of each achievement to unlocked based on the global script.
i ran into a few issues, for some reason my continue button to close the achievement panel isn’t workinggg TT. it works when i test it by itself at the start of the game, but when i test it mid game, the close button doesn’t work. I’m thinking some inputs are not allowing to click it, which doesn’t really make sense, as the collision shapes behind it have the process mode set to inherit, which shouldn’t be clickable when paused…. so i have to do a little digging to figure out how to fix that issue.
next, i added the 2 new crabs! i created a new export var @export var special_crab_textures: Array[Texture2D] to hold the rich and robber crab as not to mess with logic of the normal crab. then i created a probability array [0,0,0,0,0,0,1] with 1 being the chance to receive a special crab event. and if it lands on 1 then it randomly picks if its a robber crab or rich crab. i made the rich crab give out 60/30 pearls, and the robber take 25 pearls. i also started setting up the robber crab stealing purchased extras, but i’m just too tired to actually code it rn lol, will finish this up tomorrow morning! lastly, i took the anim player from the menu screen with the bubbles, edited the positions a little and placed them in the game screen!
this game is almost done, just a few more additions and tweaks, and it’ll be ready to ship!

0
vishalya

i set up the musiccc! i think the track i chose fits the vibe perfectly. i have to search for sfx for like ambient ocean noise or bubble noise and maybe when we earn pearls lol. i learnt how to use preload() when i was working on b4 i fade, my other game, and i had the chance to use it here for the music implementation 3_neodog_cute . it was kinda confusing setting the music to loop since the audio stream played doesn’t have a loop property in the inspector, but allows music.loop = true in code xD
i also started setting up an achievement panel, animations, and a global dictionary for unlocking the achievements. at first i set the achievement unlocking with classes, and i would create a new object for each achievement, but i’m lowk just learning classes in c++ at my college and don’t wanna confuse myself with gd script classes, so i just stuck to what i know best, dictionary. i created the name, desc, reward count, and unlocked for each achievement. maybe if i pass my next cs exam i’ll implement a class as tribute in my next game3-grook
since i didn’t implement classes, i wanted to see if there was a thing like dynamic memory allocation like in c++, but after researching a little, i found out that godot manages it memory and cleans up whatever is not being used!! i plan to use some of the variables for the achievement unlocking functions and set them to null when i’m done with it so it frees up the resources it’s holding. this way is wayyy easier than c’s dynamic memory allocation with malloc and calloc happi
i also created 2 animations a fade in + bounce achievement popup and a fade out achievement leaving. i was tracking time on lapse for the ifrst time today but i had some issue and it didn’t let me save the time :(( but anyways i made 2 new crabbiess, a robber crab and a rich crab! i plan to make the robber crab attack and steal your collected pearls maybe every couple of days and the rich crab will also randomly bless you with pearls!

0
vishalya

all order requests are OFFICIALLY not broken when hiding TT. last time i fixed the stars and barnacles, but i guess whatever i did to the bow didn’t apply. i set up the bow variable 3 different ways, through a bool, convert it to an int, and use a string to verify if it was a bow. i wasn’t really sure where exactly it was breaking, so i just changed all instances of a bow to rely on ints, 0 for false and 1 for true. that wasn’t really the source of the issue, but it did make it easier to debug! then i was searching through my code and was wondering why do i have 2 huge if else visibility control blocks for showing the order requests… and that’s where i saw the problem, i didn’t have an else: block for not showing the ribbon if it wasn’t true cryign. so no matter what, if i had a ribbon at the start, it wouldn’t hide later.
after i fixed that, i noticed a small bug with the collision shapes on the panel select, briefly enabling after a crab left, then re-enabling itself, so i added some code to disable the collision blocks so it wasn’t pressable when the crab was exiting and before a new crab came onto the screen.
lastly, i was fixing up the ending screen. i added 2 crabby dance anims! :DD and created new labels to show the final stats at the end of the game. but for some reason, when i was previewing the game, it kept placing the label where it wasn’t supposed ot. i found out my label didn’t have an anchor on it?!? TT idk how it didn’t have an anchor, but i found that you can set a custom anchor to where your current text is so it doesn’t mess with the formatting you have. i plan to ship soon so i can gather some feedback on the initial stage of this game!!

0
vishalya

omg i finally fixed the visibility issues with the crab order. thank you, past me, for writing detailed devlogs, because i just re read them and figured out how to fix the issue XD. in the last devlog, i created anim tracks for each shell type and deleted my huge code block for position, rotation, and scale of each object. after some testing today… i realized i needed that block back TT. because after the animation plays, there’s no way to reset the position in the anim player itself, so i used that code as a behind the scenes kind of reset for the next crab. now i need to go back and clean up some of the code where i’ve pasted the same function in different places ot try to target the problem cryign .
I also started implementing a ending screen, i plan to display the stats like total pearls earned, longest streak etc. i created new global vars for the streak and crab sales 3c.
the core gameplay system however is done!!
now i just need to make this game feel more dynamic rather than just a linear flow of crab spawn -> order -> recieve pears -> new day. but i’m not sure if that would be doable for a ship as flavortown ends in 9 days… we shall see :’))
but i’ll just add my ideas here for future reference:

  • Add achievements
  • Crab stay as long as want, can make crabs stay certain length then be angry instead of sad
  • Streak multiplier for pearls
  • ADD MORE ANIMATIONS, MAKE IT FLASHY
  • Rank system based on pearls, accuracy and streaks
Attachment
0
vishalya

fixed a few things, broke a few things… cryign! first off i fixed the mixed-up starfish and barncle swapped input. i had swapped the coll shape and the function signal it was emitting, and this was blocking input when pressing a starfish the barnacle would be disabled. next, i fixed the amount of time you can click on reset by creating a new var that stores the total upgrades when an order is generated. i also saw that i was setting my amount of bow to the total upgrades if the value was set to “none” which then that would always be true, setting even a “bow” from bow to 0, reducing the total extra upgrades by one. after fixing that, i then realized my hide extras on the customize panel functions was just hiding the colors and not the extras, so i edited that to actually target the extra upgrades lol. while testing, i was wondering why my extras weren’t animating with the crab leave when called. turns out if you set positions outside of the anim track it doesn’t create that smooth anim transition for move positions TT. so i deleted my huge setup for every rotation, position and scale for extra upgrades cryign and then i created a new anim player to not deal with any issues of calling the same player twice at the same time and created 3 separate tracks for each shell type. after i did that, i noticed the problem where stuff in the order request still shows up after the previous crab left again. ughhh i thought i fixed this bug, but i’ll take a look at it next time i work on this.

0
vishalya

today i started adjusting the ordering system for the crab when extras are unlocked by shop. i had it previously structured base shell -> colors. but now it’s not so linear if a extra is unlocked but color wasn’t asked in the order. so i created a few if else statements to identify these edge cases. the first was to check once the shell type was applied, if there was no color and no extras, then check the order. the second case was after the shell type was applied, and there wasn’t a color, then unlock the extras. and the last case was once the shell type applied, then applying colors becomes true!
i also had to restructure my customize panel script to account for the 3 new coll shapes i added. after that, i connected 3 functions to the main script _on_barnacle_selected(count), _on_bow_selected(enabled), and _on_stars_selected(count). these functions are a little different from my on color selected or on shape selected because those 2 relies on 1 number that would be chosen on random to choose what the shell type would be or the color. but with the extras, i’m displaying 3 extras on 1 screen with the possibility that you could have more than 3 extras on that crab at a single time. so instead of appending a string type, i used ints and bools!
in the video below, there are some visibility issues, i haven’t gotten there yet TT, but my next to-do will be to show the customize panel, which extra is supposed to be correctly displayed, and resetting the positions and visibility states once an order is done. i will also find some fitting music and put it on the game! :3

0
vishalya

Shipped this project!

Hours: 13.59
Cookies: 🍪 397
Multiplier: 29.22 cookies/hr

this is the 3rd ship for before i fade! i fixed quite a few bugs and tried to make the game more polished this time around based on previous feedback. some of these fixes include: making sure the character doesn’t go over the text box, decreasing sfx volume, making game instruction messages less explicit to provide freedom to the player, creating re readable diary pages, a few more bugs, and a bunch of typos! the game is a little more optimized compared to the last ship, so please expect a little loading time ><, but i really am proud of how far this game has come, and i really do hope you enjoy playing it! :DD

vishalya

i spent a lot of time trying to set up re enterable scenes so it doesn’t feel awkward when you’re exploring the house and want to go back just for fun. I set up some bool flags in the global script and tried to start with just making the bathroom re enterable from the bedroom. but the way i have my scene trigger structured relies heavily on what room you were just in, so if i was to mess with the scene triggers, the counters for the reusable bedroom2 would not be set to the correct thing when used. this feature honestly requires just restructuring the whole game setup, in simpler terms, remaking the entire game scene triggers…. which is something that doesn’t really seem feasible. so ughh yeah, as much as i really tried to incorporate a re enterable scene, it just won’t work out for this game :(( maybe next time though! I also cleaned up a few more bug fixes, like disabling the desk after the bedroom puzzle. some of the playtesters left feedback saying that when typing their name the puzzle lock would show up and it was because they were pressing e and the desk was still set to interactable.
the hallway puzzle has also been improved too! now the puzzle pieces no longer get stuck if you put a wrong piece with a right piece on top with mouse_filter = Control.MOUSE_FILTER_IGNORE . we also added a tint to the puzzle piece so you can see better which piece you’re holding. some og the playtests also said the x or check felt way too long, like 4-5 seconds, even though it was only set to 2 seconds, so that was adjusted to just 1.5 seconds. I also changed the explore labels to
“continue exploring the house” instead of “go to the kitchen” so it doesn’t ruin the suspense of finding out what room you’re going to before you go there. lastly, i bumped up the speed from 295 -> 300. i know i said i wouldn’t, but why not lol.

Attachment
0
vishalya

started working on the re readable diary entries per request of playtesters :3 !! I wanted to reuse my linked scenes so i can take advantage of bouncy animation for hover states of the arrows without having to create new ones. or so i thought… at first i had 1 area 2d with 2 different collision shapes and was tracking states on which arrow should be visible and pressable based on what was currently on the screen. but since it was only checking which one was visible and not what the input was, because 1 area 2d was triggering the input event regardless on it was left or right, this method wasn’t gonna work out. then i tried to use 2 different area2ds linked in the same script. i’ve tried this method before, and it had worked in the past for some small things like hovering states and things, but i faced a LOT of issues this time around. each area2d had 3 sets of signals connected to the same script, but for some reason, the left arrow collision shape would always be null when trying to press left > right > left. i think it has to do with which area2d is the “home” for the script, but i forgot one i duplicated first and set the script to, so i was a little lost on that TT. so both those methods failed… third times a charm! this time, instead of having a shared script just for the arrows. i just added the arrow control into an existing script, which controls the leave desk, so the arrows can easily appear once the dialogue is finished, and players can re read diary entries if they want or leave the desk and continue story progression. since the animation players also controlled the visibility state of my arrow sprite, and i was using hover to play the animation, and in multiple places to stop the animation, it was breaking in some areas. maybe later i’ll add them back if i have a little more time :33
i learned how to use set_deferred() to wait until a whole frame is done before triggering something else in the script

    right.set_deferred("disabled", true)
0
vishalya

i added more polish to the game! i fixed the living room and attic text collisions so the ghost can’t walk over that and decreased the sfx volume from 20 db to 10 db. 10 db is still pretty loud, but maybe i can add a volume slider so the player can choose what volume to set the music and sfx to. one of the playtesters mentioned that it was kinda disappointing for them when they remembered the code from the kitchen fridge scene but the game just told them the code was unscrambling the letters a,f,d,e to unlock the safe. i made a quick fix for it now, which is just displaying the memory fridge cutscene after you lose a life. but since we have now hard mode and easy mode i feel like there should just be a hints system implemented to live up to the hard and easy modes. i think that would take a LOT of time and restructuring scenes, which is not what i’m looking to do right now, but maybe in the summer, when i have more time i can add more to the story itself and revamp the game!
i also fixed up a few grammatical issues and typos lol as well as increasing the ghost speed from 280 to 295. i don’t want to make the ghost over 300 speed or that will be too fast.
lastly, in the bathroom scene i reordered some of the visibility in the nodes. before when the phone was ringing, you could walk in front of it, so i changed the ordering to be above the ghost. i’m also thinking of adding phones next to the ear of the friend and the past char so it’s understandable that they’re actually on call, i’m not sure if just the phone shake did justice. lastly, i made the comb behind the ghost so it feels more like you’re stepping on it rather than it being in front of you while playing.

0
vishalya

i figured out the issues from before, the collision shapes weren’t working because i was saving the scene and was already in the area where the new collision shapes were added TT, so i guess the game took it as the ghost not starting in the collision shape since it was already touching it. i added the new collision shapes to all the bedroom, bathroom, and hallway scenes, and then played it and realized the collision shape was blocking my area2d scene trigger collision shape cryign. so i just expanded the scene trigger collision shape over the static body collision shapes to fix this. and it’s better for the game too, as it cosmetically looks like it takes less time to load the next scene lol.
aghhh, was testing the bathroom scene again and my mirror is giving me more problems :(( it no longer registers if you double click to confirm your character if you choose girl > boy > girl or boy > girl > boy. the boy > boy and girl > girl are working fine but i can’t figure out for the life of me how to reset the state when switching the characters. i have tried bool flags, counters, and a lot of other methods and it just doesn’t workkkk :(( i fixed the visiblity though! before it was showing the girl ghost on the boy ghost when selected, but i really want to fix this issue. if i can’t figure it out, i might just add a “confirm your selection” button separately. i think the problem is that my input is registering twice per click rather than once, and i really have no idea to fix that.. if anyone has suggestions lmk :((
lastly, i also started setting up the kitchen collision shapes, a playtester mentioned to me the’d like to walk in front of the island too! i have no clue how to set up collision shapes on diff layers. right now, my ghost is behind the island sprite so it looks like the ghost can go behind it.

0
vishalya

i adjusted the collision shapes for the textbox from the start all the way to bathroom2. and while testing bathroom2, i saw the mirror scene didn’t have hover ability on the character ghost choices?!? the way my nodes were structured for that was 2 area2ds to supposedly control the hover and 2 texture button 2ds that control input for choosing the character connected back to the script on the area 2d 😵‍💫 it was way to hard to debug, so i just removed the texture buttons completely since those were eating the inputs the area2d needed for the hover anyways! at first i was gonna make another @onready var sprite for my 2nd area 2d sprite to hover, but i just reconnected the 2nd area 2d signals into the one connected with the script, and that fixed it!! and then i got a little stuck.. my signals were connected for an input, but the ghosts stopped appearing on the screen. so i had to look at my other scripts and remembered i needed to specify where the input was coming from TT. so i added an if statement that checks if the input was from a mouse left click, and the ghosts started appearing again!! yippee! while i was playtesting this part, i thought it felt a little bland so i added some fade in animations to it. honestly, i’m really trying to make this game next level, so wherever special effects can be added, i will add them :33
i also started working on the text collisions for bedroom 2 scene, but something’s going wrong. it doesn’t register the ghost as a body in the collision shape and the ghost just walks through the collision shape off the screen TT i’m not doing anything different from before, but i might have to just redo all the collision shapes in the static bodies to see if that works, and if not… maybe my partner will have a fix for this <3

0
vishalya

found a few more annoying bugs to fixxx. when failing the kitchen puzzle for the first time the color rect behind the ingredients to show contrast to players that the ingredients on the screen were missing TT so i changed up where i’m displaying the visibility to enable those color rects again! also found some weird stuff with my hard mode fail state. i think when i was copy pasting my code from normal mode to create the hard state mode i forgot to delete the scene global var fail to determine if the failed cutscene should play. and by doing so, when failing the hard mode, the fail cutscene didn’t play in the menu scene :(( so i went through all my puzzle scripts and replaced the scene global variable fail tracker to Global.hardmodefail i should’ve been a little suspicious at first to why that variable wasn’t being used, but oh well, it’s fixed now :’))
i’m still running into a problem when my cutscene is being played from the menu, there’s a short frame where the screen is gray even though i have my color rect keyframes set to visible and full opacity when scene starts. wait nvm, i just had an idea to set the opacity to full at the very start of the ready with $AnimationPlayer2/ColorRect.modulate = Color(1.0, 1.0, 1.0) i don’t really know why this makes a difference since all i have below that is just setting global vars to false?? maybe it takes time to process those vars for a whole frame? but anyways that problem is fixed now!
i received a couple of feedback from play testers that the ghost sometimes wen over the color rects where the text was being displayed and that they would like to flip through the diary pages as well! i have a couple of major exams this week, so i hope i can get to these issues after! :33

0
vishalya

added a couple of new features and quick bug fixes! the ghost character can now walk diagonally! :000, no more pressing only one key then switching to another key, you can press both keys at the same time to move in diagonal directions. there was a small bug in the phone control script in attic 2 for the second ending that kept failing and making the game break when playing in hard mode. turns out i forgot to set Global.hearts -=1 to subtract the global hearts count. but i was using each puzzle 3 hearts, which hard mode didn’t have access to, so it broke TT. we also added footsteps sound effects to the past characters when they walk to add more audio to the game and changed up our audio track! we added more ghostly songs to the music manager loop to add kinda a creepy vibe (?) to the game, since it is a murder mystery after all lol. lastly, i found a few more visibility issues to fix, like skip text label showing in the mirror scene during instructions. and i also got rid of the 2 sec unessecary long puase between finishing the dialogue and waiting for the hallway puzzle to start as well as removing the 2 second pause from reading the first diary entry to re enter the bathroom scene! lmk if you find any bugs, and i’ll fix them :33

0
vishalya

pause button now works!! i added more @export variables for the paused and normal sprite textures and set the texture to the paused or unpaused button, depending if the tree scene is paused or not. this time, i set the process mode to “always” so that the pause button is always clickable, so that the button always works :DD i don’t really have a popup for pause for ingame settings, at least not yet since i have my 2 setting displayed already: pause and music. but maybe to display days done so far, or total perals earned? i’m thinking maybe adding achievements too! but maybe that’s too far fetched lol.
i also set up the toggle for my music pause and resume button, but haven’t loaded any audio in yet, i need to find the perfect one :3
I also started working on setting up the extra upgrades for the rest of the shop items! since last time, my problem was with the position of the starting shells not being visible in the frame, i worked on that first. usually i would do node.position.x and .node.position.y to define the location of the node, but i found that using Vector2() can contain both the x and y position at the same time, reducing my positioning code lines by half! i also found that adding rotation to each node. i found it interesting that the inspector changes the rotation in values of degrees, but when assigning the rotation of a node, it rotates in radians instead :0 so i had to add _degrees to the script to make sure it rotates in degrees only!

0
vishalya

raised crab upgrade shop item prices by 50% hehehe. i was testing a few of the features and found this edge case for the shell display. if you get something wrong, the old shell stays on the crab and a new shell is added on top :( i fixed this by creating a helper function hide_all_crab_upgrades() and calling it when the order entry was wrong to hide all the crab upgrades to eliminate ANY chance of future bugs lol. i also found another bug that made the order request shells stay even after the crab left. turns out i was only visually resetting it but not resetting the code values for the order request. since i didn’t reset it in the code, my crab_order() function automatically updated the ui and displayed the past order when it wasn’t supposed to. ohh i also finally fixed the crab respawning even when the hour count was 24!! i switched from using an if statement that relied on “hours” tracked to a bool flag that tracked if the day was active. since my process() runs every frame to update and track the hours passed, i set that to control wheter my day would end or not if current_hour >= 24 and day_active:end_day() and i toggled the bool blag to day active = false inside the end day function for added safety nothing else in the script tries to break it, and it worked!!
i’m thinking i’ll add the pause system next since i just learned how to implement it in my previous projct, before i fade :333

0
vishalya

omg guys i finally figured out what the problem was with the selected colors not applying 😭😭. i set up a starting position for the base shells so that when they exit using the animation player, the position can be reset every new crab order! i spent so much time printing statements and deleting and rewriting code to figure out why the colored shells weren’t appearing, but then the next shells didn’t show after pressing the colored shell for the first time because i moved the position keyframe in the animation player, but never reset it!! it was such an easy fix, but took me so long to figure out TT. but i guess it’s a good thing in it’s own way, i restructured some of my code to be more readable and work better, to be less buggy! i fixed a bunch of my collision shape mapping, and migrated some items into arrays and for loops for reusability later in the game!
next, i HAVE to figure out why the crab isn’t leaving when the day is done. it’s probably a silly fix like the colors not showing, but we’ll see! hopefully it’ll be easier to add the rest of the accessory addons know that i know i need to apply a saved position for those :’)
i’m thinking to increase the items in the shop by a lottttt, to make playing the game lasting so you actually play for 20 days. and maybe even incorporating special events?? like a royal crab that gives you extra pearls or a events like a shark attack that messes up your stand and takes away one of your purchased accessories? lmk if you have any ideas to make this game epikkkk :3

0
vishalya

so i got the color apply function to kinda work TT (it only works when it wants to cryign ) i had to change up my shell selected script that emits a signal to match the collision shape rather than relying on area 2ds. previously, my cutomization panel script emits a signal for shell selected in the main script in an array of 3 items only… but now that i’m adding in upgrades like colors, i think i’ll just have to restructure the customization panel to an area 2d for each crab add on to make it easier to code TT. i replaced some of my huge blocks of code for turning visibility on and off with helper function calls and honestly, it makes it so so much more readable! now i’m running into an edge case for when the selected color is “none” but the game still expects you to input a color because “none” is in the color list.
when the colored shells do apply, some of them aren’t positioned properly, which i have to fix. but the color applies either when you press the shell correctly and the right color, or if you press the correct shell and the wrong color the color will appear when the crab leaves, orrrr it just won’t show at all. i really need to figure out how to fix this so i can move onto adding more features in this game 3c

0
vishalya

Shipped this project!

Hours: 59.6
Cookies: 🍪 1783
Multiplier: 29.92 cookies/hr

this is the 2nd ship for before i fade! :3
i added a lot more features(40+) and fixed a TON of bugs(60+) and incorporated everyone’s feedback from the last ship! some of the big changes are: adding w/a/s/d controls to the character, puzzles life system with hard mode and easy mode, a BUNCH of transitions with .modulate(), .lerp(), .sin(), and camera effects, restructuring scene trigger layout of the house, adding navigation arrows, adding “e” to interact with objects, in game pause menu, and many many more!!
many of you last time pointed out that some of the click interactions were buggy, and that has all been fixed now after a long time of debugging :))
I really learnt a whole new side of godot as i tried implementing new features that i wasn’t familiar with before like audio buses, linked scenes, godot’s scene process modes, and how to add ogv video overlays!
if there was one thing i could go back and change when i first started was to NOT use canvas layers. something i’ve learned while working on this game is that canvas layers are easy to use but then a pain to deal with when trying ot incorporate something new or debug. i spent a lot of time restructuring some of my scenes due to this to make new features work!
i also worked on adding a lot more visual effects this time to make the game more interesting and appealing i think my favorite was figuring out how to use the sin() to modulate character opacity to make the ghostly xD
check out my devlogs for a more detailed summary of what i did each coding session and please please please do leave any feedback for the game so we can keep making it better :333

vishalya

think i’m finally ready to ship!! i learnt how to set up and use godot audio buses to so i can mute my sound effects when the music was turned off! but doing this kinda broke my partner’s music manager script TT. so i had to find a workaround… each audio stream player by default is set to the “master” soundbus, so i just connected the music into an audio stream player to the master bus and toggled it on and off in the toggle music func! var bus_idx = AudioServer.get_bus_index("Master") if bus_idx != -1:AudioServer.set_bus_mute(bus_idx, not music_on)
honestly, if the game was structured better, creating manual buses would have been super useful and easy to use. maybe in the future, when adding separate toggles for music and sfx instead of combined, i’ll try audio buses again!
i also added page turn sfx to the diary entries, just a tiny extra feature to make it interesting 3_neodog_cute
after that, i was in a constant battle of bug fixes and exporting the game. i’d export the game, upload on itch, play it, find a few bugs, fix in godot, re export and so on >< but i think i’ve fixed all the bugs (hopefully) if there’s any more, maybe my partner will catch them, but oh well!
turn your audio on to see the sfx being muted by the music off button in settings in attachment belowwww!

0
vishalya

hey guyss, new update! hard mode is officially added >:) how does this work? now in the menu screen, you have an option, easy mode: 3 hearts per puzzle and losing all 3 will reset you to each room scene or hard mode: 3 hearts per ENTIRE GAME, and losing all 3 will reset you to the menu screen. I had to merge my previous animation player of just a fade in color rect with the fail reset puzzle anim player so that there isn’t a weird color glitch when playing from the start. the actual hard mode implementation was pretty easy but really tedious to add ot all the scenes TT i created 3 new global vars: var hardmode = true, var hearts = 3, and var hardmodefail=false the first one is to detect in the puzzles if hard mode was enabled from the menu in each puzzle. the second var is to subtract the hearts when getting something wrong or when the timer finishes in the puzzle. since losing all 3 hearts will go to the menu on hard mode, i added the fail puzzle cutscene to the menu and used the 3rd global var to detect if the player was coming from a hard mode failed puzzle. after that, later on in the menu script, i set the hard mode failed var to false so going to the menu won’t accidentally trigger it again. i also set it to false when going to the menu from in game setting menu and the end credits scene. so technically i didn’t have to disable it in the menu script itself lol.
i also got my brother to playtest the game so far and fixed up a few tiny bugs like making collision shapes bigger so the ghost isn’t walking on the text or changing the ordering of the talking character sprites. one big thing i noticed was that losing a heart in one scene doesn’t actually change the heart visibility on the other scenes TTT. i changed my if-if-if blocks to if-elif-else, and that correctly detected what global.heart count i was on!
i think my next goal is to find a way to mute the extra sfx that’s not in the global music manager^^

0
vishalya

finally working on adding extra features to make this game cool after all those bug fixes :)) today i mainly focused on visual effects like animations and fade ins.
whenever you obtain a diary page from puzzles its just a static overlay. i wanted to make it more visually interesting so i added a small scale and rotate to it, to give it a floating ghostly effect ! and since i had already used the sin() func when creating a ghost modulation on the character, i used that for the rotation on the diary page too $Diarypage.rotation = sin(ghost_t * 1.5) * 0.08!! and since i took care of making all the diary page appearances a linked scene yesterday, i only had to do this once :3 i used the Vector2() for the scale amount since i’m dealing with x and y coordinates and want the scaling to be uniform.
after that, i was experimenting with cameras again. i really wanted to have more panning and zooming around when characters enter and leave scenes to make it dramatic, but my current scene structure really doesn’t allow for it :(( i’d have to change up a lot of the code if i wanted to incorporate camera effects in. oh well, maybe next game i’ll have better scene structuring :((
i added a fade into the page when you read the diary. so when it’s open, it has the previous page, and it looks like the new page is magically appearing on top!! i did this by adding an if statement in the process() to check if the diary node was visible and the fading var was set to true, and then used the lerp() to set a final and initial value and set the speed of the modulation with a delta multiplier! i added a helper function for diaryentry3 and diaryentry4 scenes because i had more than 1 diary entry sprite. I also made a blank page diary entry so it looks like the back of the previous page.
my partner and I shortlisted our “nice to add features” to see which ones were actually realistically doable to add into the game, and we’ve narrowed it down to 6! The game is almost done~

0
vishalya

so i was trying to adjust the colors of my color rects for the diary, puzzle, and menupause overlays, but gave up after 3 scenes. i really see the importance of linked scenes now TT. so if i wanted to change the color and update it everywhere in the future, i wanted to fix this problem now to avoid dealing with it later lol. i went through each scene, deleted multiple nodes, and replaced it with canvas layer, menupause, and diary overlay nodes. i got to experiment with node layers a little bit too so my overlays would be above items in prev layers, like the ghost character. i was curious if doing this has any benefits, rather than just making the scene structure more organized, like faster runtime, or game optimization. but turns out linking each scene just instantiates it in each scene and is virtually the same as having multiple nodes and not a linked scene :’)
but i did get to learn about preload() and load(). preload() seems really useful, actually! to run items before the scene starts so they are available when the scene starts with no delay with assets that are used frequently.
i also cleaned up the rest of the files so there are no more script files in the scene folder lol. (my partner is really happy about this)
this is probably a big reach for this game, but i think it would bre pretty cool to get into file saving and loading so game progress isn’t temporary. i would be using config files for this but since my game is hosted on itch and not a downloadable (as of now) i’m not really sure how the file saving would work on browsers. i’ll look more into this saving thing at the very end, probably, when i’m done with game polish :D

0
vishalya

omg major gameplay changes! previously, when walking across scenes to move through rooms, you would have to switch walking directions as our placement of doors was kinda wonky. we had a door on the left screen, and once you enter the door, you are placed on the left side of the screen again on the next scene. (see 2nd attachment to see what i mean^^). I moved the scene trigger collision shapes around so the flow through the rooms is simpler and easier to play :D
after simplifying the rooms flow, i play tested from the start and found a LOT of bugs, 20 to be exact. :’)))) most of them were ui visibility issued like hiding a label after an animation or hiding the hearts after a puzzle. so i quickly fixed all of those. some scenes were also missing the arrows to exit/enter rooms, like the first bathroom. also after moving all the scene trigger coll shapes, i forgot to move the arrows pointing to them as well TT so lots and lots of adjustment was needed to position the arrows around the rooms.
I also removed the interact with click for the bedroom puzzle (hoping that was the last one🙏). but pretty much just fixing lots of bugs based on visibility issues.

  • Fix arrow pos
  • Hide skip text bathroom b4 interact mirror
  • Arrow to exit 1st bathroom
  • Move door down bedrrom2
  • Bedroom2 leave desk hover
  • Disable click on bedroom puzzle desk
  • Move up hallway wall coll
  • Fix timer in hallway
  • Fully cover the the hallway with reset scene
  • Center huh what’s that note hallway
  • Flip MC in kitchen when talking to aunt
  • Hide ingredient panel until press start
  • Hide timer label and timer sprite kitchen
  • Make coll shape shorter on kitchen counter island
  • Add quotation mark end of omg why…
  • Move aunt letter down (first line cut off)
  • Skip text on bedroom diary 3
  • Theme override timer color in attic
  • Text formatting after attic puzzle
  • Hover on ending choices

i hope now i can for real for real start implementing my extra features :’3

Attachment
0
vishalya

worked on a few things~ some of the buttons in diary entry scenes weren’t hoverable. turns out, the didn’t have sprite textures loaded into the onready var cryign. then i had to manually reconnect signals to each script, i must have forgotten back when i first started working on this game lol.
and since all the bugs are fixed… i’m starting to add extra features to make the games even more cooler. since the player is a ghost i wanted to add a fade in fade out effect on the player to give it a more ghostly feel. i never thought i would be using actual math in this game, but i used a sin func TT, which is used to oscillate values between -1, 1, making it perfect for the ghost modulations even though i’m not planning to use -1 for opacity lol. i used var alpha = 0.95 + sin(ghost_t * 2.0) * 0.07 in called in the process() to update every frame. i didn’t want it to be TOO dramatic so i set the base value to 0.95 opacity of the ghost and let it vary from +- 0.07 from 0.95 opacity over a 2 second interval! lmk if you think this looks cool or i just make it less variation in opacity ^^ i’m thinking of adding this sin() to other areas to make things slightly scale or grow without having to rely on anim players, just to give the game a little more life :3

0
vishalya

more bug fixes doneee
I adjusted some of the static body 2d collision shapes in the living room to make it easier to walk and also so you don’t have multiple floating e’s at once. i also moved all the canvas modulate items in a canvas layer to just canvas modulate and used a for loop with .modulate property to change the colors!
i also figured out how to make the interact label less buggy! before i was using a await get_tree().create_timer(2.0).timeoutto manually show label then change it. but this led to problems when multiple items were being pressed fast and delay of labels visible due to creating a new timer each interaction. to solve this i created a physical timer node in the scene and set it to 2 sec and one shot (to only run once and not reset). then i connected my timer var with the node using reset_timer.timeout.connect(_on_reset_timeout). i also created a bool flag is_interacting = false to lock items when interacting for a one label show on same objects. at the very end of my on_object_clicked func, i reset the timer by reset_timer.start() if you hadn’t pressed every object so the label would update back to the instructions.
but im really happy with this feature and have implemented it all the explore scenes! :3
i think my next goals are to fix some puzzle music reset states and fix the credit scene formatting and hopefully that will fix all the bugs! doing that will basically clear all my todos and hopefully i can start adding features from my nice to add list to take this game next lvl!!

0
vishalya

still working on fixing bugs! I worked on the kitchen scene first and also had to restructure the canvas modulate furniture out of the canvas layer. i’m trying to stop relying on canvas layers entirely because they’re such a pain to change. my e interact bubble was inside a node so it wasn’t showing up on top of the furniture in a canvas layer. so i had to move things out of the node into separate layers and doing so broke some of my animation player tracks… TTT. whenever this happens i always just remake the animation from scratch, but today I figured out how to restore the animation 🙏🙏. since animation players create their anim tracks relative to the scene roots layers, just deleting one canvas layer can affect the root structure. you can edit each anim track’s path to the anim players name.property:bool flag to fix this! i really wish i had known this sooner. oh the hours it would have saved me…
I was also editing the bedroom4 diary entry and fixed some ui visibility bugs <3 and corrected the anim tracks to play the right things.
I was playing through the 2nd ending, and i think it still needs to be longer… idk what i should add though, but i dont want it to feel too rushed.

1

Comments

_d3f4ult._.cracka_
_d3f4ult._.cracka_ about 2 months ago

No way, I love it

vishalya

worked on a LOT of bug fixes these past 3 hours. i wanted to fix all these before working on anything new or else i may forget about it and i want this game to have areally good experience for the users too! :D
starting off, in bathroom 3, i fixed the white tile puzzle reset state, before it was only visually changing the colors, now i reset the tile string state in the code itself. and i added the exit arrow after the scene was done, as well as changing the labels to use interact with rather than click, and fixing ui visibilities in some spots!
i had to restructure some of my other scenes to stop relying on the canvas modulate to change the color because it didn’t have a canvas layer to stop the modulations affecting the ghost. i did this by creating an array of the sprites and using a for loop to access each item to modulate it. previously, i was using .color to change the canvas color which affected each children. but since some of the children were tilemaps which only have a .modulate property, so i used that instead!!

for item in furniture:
    item.modulate = Color(0.0, 0.994, 0.816)
for item in doors:
    item.modulate= Color(0.094, 0.322, 0.278)

i changed the name input from a text in the bedroom puzzle to a tool tip because it was annoying to manually delete then type the name in. I also optimized some collision shapes in bedroomdiaryentry2plus to hit diary from the first click. i removed shape_idx == 0from the click input since it’s accessed from the e input. then, i changed multiple ifs to an if else and fixed shape_idx == 2 to shape_idx==1. idk why it was set at 3 coll shapes when there were only 2 TT.
lastly, i fixed some hallway bugs to hide some ui features in the end_dialogue()!

0
vishalya

i went back and updated the explore part of the scenes to set label instructions for press with e on the floor level and click for desk level items.
i must have not checked the shake was working in bedroom 2 because i got a bunch of errors TT. apparently canvas modulate layers don’t have an offset property, which is what i was using to shake the scene nodes. only ui nodes have an offset property like control panels, labels, buttons, but gameplay nodes like node2d, sprite 2d, etc use position instead. i thought this was pretty interesting because i used the offset property for a sprite 2d to animate the arrow directions. turns out the offset in a sprite2d moves the texture itself not the actual node :0 so to fix my problem, i created an array of my items in the canvas modulate and used a for loop to access those items and apply the shake property on them with for item in furniture: item.offset = shake_offset
I didn’t want it to be too confusing to players because we don’t have any ui boxes for instructions. before, after you pressed an object, the “click on this” would just be lost. so i added a await get_tree().create_timer(2.0).timeout narration_label.text= 'Investigate the bedroom by pressing "E" to interact with objects.' so i can reset the label to show the instructions if they forgot what to do, because i’m using the same label and updating it with the object descriptions! i also added a label.text change when interacting with the desk area to let users know to click rather than press e. and while doing this i cut a really bad bug TT, the girl ghosts anim.play name was set to dairy instead of diary… if you played girl ghost before and encountered this bug i’m so sorryyyyy :((( it’s all fixed now though <3
also found so many bugs from playtesting the whole game:(( i thought it was almost done, but i’ll keep making it better. turns out i never actually reset the color of the tiles in bathroom 3, i only visibly reset it but not in the code.

0
vishalya

did a few things today: adding hearts system into bathroom 3 puzzle, adding furniture to camera shakes, and adding a bedroom zoom and pan transition.
i had to restructure some of my scenes when adding the camera to stop relying on canvas layers and self modulate each furniture item itself since camera2d doesn’t affect any canvas layer children :(( but now the furniture shakes too in the modulating scenes, so it really does look like a shake! I also added zoom and pan transition to the bedroom opening scene, but since my player was in a canvas layer, i found a work around by placing a non animated player sprite over the player and turning the visibility off when the animation was done and resetting the player position in case someone tried pressing the arrow keys during the cut scene lol.
I did learn something new today. whenever i create a new script it always has a extends node at the top of it and i had no clue what it was until today. extends in script basically means it inherits all the base functions. this could be really helpful in the future where i can call functions from the base node without having to send signals to connect them! i’m also getting really comfortable accessing godot in editor documentation, and i love reading more about each function or object xD

0
vishalya

i’ve finally finished adding all the puzzle lives systems in the remaining scenes!

  • attic 2 puzzle hearts
  • bedroom 4 puzzle hearts
  • attic puzzle hearts
  • living room puzzle hearts
    I also got to clean up some of the scenes and found some bugs that hopefully none of you experienced in the past ship :(( but they’re fixed now! a lot of my text formatting was really off, so i adjusted those too.
    lastly, i added the hearts puzzle info to the menu scene! so players can know a little about what they’re getting into lol.
    tommorow i’m planning on fixing up the camera shake as it doesn’t target some of the canvas layers where other furniture is one and repositioning the ui “e” cue around so it looks better in each scene!
0
vishalya

3 scenes now officially have a working lives system woohooo! there are only 4 more to go, living room, attic, attic2, bedroom4.
today i learnt something so so so so useful and i WISH i had found out about this before, how to make animation players when copy pasted from another scene local. whenever i copy pasted animation players in the past and tried to edit a track or rename something, it would delete the keyframed tracks and give me a “this is only read me” warning. and i had no clue about what read only property even was until i added the linked scene for the arrow a few days ago. so when i tried copy pasting the anim player today and got that warning, i tried to find how to make it local and i found out how to! pressing manage animations on the anim player and saving it as a local anim does this trick! :33 i’m so so happy, this would have saved me so many hours in the past just making text animations but now it’ll save me hours in the future. 🙏
i added a fade in and fade out audio func when the little reset cutscene happens to add dramatic effects using the tween() function with tween.tween_property(MusicManager.music_player, "volume_db", 0, 8.0)! <- this means the audio will take 8 seconds to come back to normal sound levels again.
lastly i went through some of the text animations and cleaned up the formatting a little, so it looks nicer when playing through, all centered.

0
vishalya

been working on a life system for the puzzles, so it’s not a free loop of just a try until you get it right kinda puzzle. I added a global variable to track if the puzzle has failed. if the puzzle has been failed then it’ll change scenes back to bedroom 2 and start it over, but this time with 2 extra additions. i added a linked scene (yipeee) animation that says “i need to know the truth, one more time…” so that plays if the global var bedroom failed is set to true! and the linked scene has modulation animationsss. i’m really having fun adding animation effects, and will plan on adding to more things in the game so it looks more professional! I also added hearts and broken hearts for a visual cue to know how many tries you have left until the puzzle’s failed state shows.
additionally, i edited the actual puzzle scene itself so it’s structured better for users to play. now, the timer only starts after you’ve read the little dialogue and seen a closeup of the bed to see the colors better! also i added a hint for this first puzzle to make it easier for players^^ and adjusted the player position after the dialogues ot move to the bed, so you have to walk a little to enter the code lol.
after that, i made a dictionary in bedroom 2 with a list of messages to display after the cutscene finished and used a .pick_random() to display random messages in the text animation by setting the text label to the randomized message. I also learned that you could use single quotes to hold a string if you want the quotation marks to show in the text label!
lastly, i also edited the music to only speed up the music using lerp() in the last 10 seconds. previously the music started going faster as soon as the continue was pressed but not the puzzle music is normal at 0.75 and then only speeds up when under 11 seconds :33

0
vishalya

super great news with this devlog!! on the last devlog i was improving the bathroom puzzle because some comments said some of the clicks/collisions were buggy. I know the major source of these issues was from trying to read the diary entries and the play button at the very start. they have finally been fixed!! so sorry for not figuring out what was wrong before :(((
since i was using a counter and checking which coll shape was pressed it took 2+ clicks to press the actual diary entry when in the desk. i changed my if , elif structure to multiple if statments to constantly check input to correctly drop the correct overlay. alsoo, since we are now using interact with “e” in some areas only the second coll shape pressed matters, so i just made the first if to pass :D
i hope those were the big buggy parts of the game >< but all has been fixed now so moving onto more featuresss!

0
vishalya

i spent this past hour debugging why some of my bathroom 3 puzzle tiles worked taking in input or only taking in input in some specific areas :’) since this was one of the first puzzles made for the games, none of the ui nodes, like color rect were set to mouse filter ignore. so the color rect was taking in some of the input area of the collision shape. another thing was that there was an active texture2dbutton right behind my collision shape😭😭 so that took some input from the area 2d as well. i disabled that and also redid the green tile script to rely on a color variable rather than a counter. the counter ver was making me have to click the tile twice to set it from green to white. but since i have a script for white and green i just set it turn on off based on the current color. some of the feedback from the last ship was to to fix the buggy interact or clicks so i’m def gonna work on that :)) edit: omg i attached the wrong video TTT here’s my commit if you’d like to check that out!

0
vishalya

from the new read all votes feature, i saw feedback that many people thought it was a little confusing to move around. so i added arrows!! in a linked scene this time lol. i was struggling at first because i made an animated arrow with keyframes of position, but i found out that it locks in the position across the scene itself and using an offset keyframe could move the arrow around based on relative position instead!! i thought using linked scenes would just mean it would update all the linked scene instances when added to each scene, but i had to make each child node editable to rotate the arrows and put them near different doors. so i’m not too sure how the linked scene effectiveness still stands… i also learned how to use get_tree of the current scene if get_tree().current_scene.scene_file_path == "res://scenes/kitchen4.tscn": $ghostlayer/Node2D/arrow.play("arrow")
because some of my scenes have the same script so this was useful to add to show what arrow is at which door based on what scene is currently playing :) i have one more scene to implement this arrow when my partner is done adding in the interact with e in one last sceneee

0
vishalya

been working on the pause menu featureee! and guess whatttt, it’s now incorporated in all the scenes! i had to manually add each element and copy the script components into each scene script and reconnect signals. Only halfway through did I think about adding them all in one scene and linking the 1 pause menu scene to all the other scenes…. but what’s done is done. if i have future implementations like that i’ll take the scene link path then :’))
one thing i did learn though, is why i had to disconnect and reconnect each signal for each scene. because signals are for individual scene instances, it doesn’t automatically copy scene signals when copying the nodes to new scenes :0 this was really annoying to implement but i do think a single scene link would have made this A LOT easier and simpler without having to reconnect each singal to its assigned script…
i did a little file cleanup too. moved some of the scripts from assets and scene folders to the proper script folder :’))
ALSO added more controls!! i got some feedback from my past ship to add in w/a/s/d for movement, so the assets have been added in the controls section. they haven’t actually been implemented in the game itself yet, but soon! also we are slowly adding in interact with “e”, so you have to move across the room to explore, otherwise it’s kinda a cheat to stand in the room and press each object during exploring.
but i’m this game is almost done! there are 7 more big changes that still needs to be implemented, so stay tunedddd :D

0
vishalya

new update!! I added a blink text color when the timer on the puzzle gets closer to zero, starting from around 10 seconds till puzzle end for each puzzle! apparently since my text is being updated in the process node, i can’t simply use the modulate and. Color properties to alter the color. So, to solve this problem, I used add_theme_color_override("font_color" to manually change the color from the process function. I also had to restructure some of the puzzle’s timeout funcs because there was an issue with the timer not starting in the helper func of the timeout func soooo i just move the timer.start() back into the timeout func :)
oh btw, to change the colors from red to black originally i was gonna just do time left % 2 and do if it’s 0, set it to black, and if not, red. but since i’m using time in milliseconds, i had to use int(Time.get_ticks_msec() / 300) % 3 to access the time left in milliseconds and then divide by 300 ms to get a 1 decimal time value! and i did modulo 3 because it looked better than modulo 2 lolzz

0
vishalya

today i worked on something big :0 i started adding a pause menu!! this is my first time incorporating a pause menu so i learnt a lot too! usually, i avoid using control nodes but I used them today because i learnt that they are specifically for ui. I used a detect inut event to find it i press ui cancel(the escape key) to trigger the pause menu. and godot already has an inbuilt pause system with get_tree().paused = !get_tree().pausedwhich is sooooo useful.
I also learnt about different godot processing today. when i tried to implement the buttons to work when paused, they failed because godot sets them to inherit process mode automatically pauses all the nodes of the parent node when paused game. howeverrrr, you can change these to process mode: when paused!! so that those nodes only work when the game is paused, which is exactly what a menu in a pause screen needs!! :DD
last thing, previously i’ve been creating multiple area2d scripts for input events but there is a pressed() signal for area2d in node, signals inspector TT. which makes me feel kinda dumb for not knowing this earlier but i’ll be using that from now on rather than creating 100+ scripts. i’m also gonna add a 2nd page to controls, now that i have new ones like:space to skip, esc to view settings

0
vishalya

added shake function to hallway and fixed up some ui display bugs with labels showing up before the modulate done. i also made a few different script versions of the camera shake because each scene is structured different like the player is in one canvas layer and sometimes some of the furniture is in another canvas layer so to account for all those difference some of the cameras use different scripts. the contents of the script are the same just the nodes it triggers changes! i realize after recording this video i need to add the new script to effect the hallway furniture ooops :( i’ll do that next time.
alsooo maybe it would be cool to have a sfx for the transition?

0
vishalya

this past hour i worked on trying to make the past message from ghost more interesting! i wanted to add some kind of grain filter and learnt that i could use godots control videostream player but then found out it only support ogv formats TT. I coverted the video type and played around with the opacity and was going to figure out how to use shaders because the video is green screen bg. but since my ghost color scheme is already a blue greenish color, i just lowered the opacity and it seemed to work!
also i changed some of the asset that’s gender specific to be neutral so i can use it for both chars! and lastly i added animation player for my record screen bg to make it look like its blinking recording so it adds some depth in that scene. maybe ill try adding character walking back and forth later? but for now that’s enough. alsoooo, we finally have kinda scary music for all the puzzles :DD

0
vishalya

i finally fixed up the attic 2 puzzle scene. kinda forgot about it after trying to implement a bunch of other features lol. turns out i had 2 timeout funcs in the maid script and the area 2d will my phone coll shapes. i also had to re enable shapes during reset states so the phone would actually work. i have no clue how i missed that before LOL. but i added that and fixed some visibility issues after puzzle ended!
my current puzzle structure is keep going until timeout, and reset, or if it’s wrong, reset. but it gets kinda confusing which one you’re on and if you have to restart, so i’m thinking incorporating some kind of life system? idk yet but hopefully something to make it more distinct!!

0
vishalya

adding some special effects to the scenes using camera 2d!! i had no clue how to use the camera as my partner did all camera related stuff for past games so this was pretty new for me :3
i used randf() to get a shake vars between the inputted args(strenght and length) and applied the offset on both the normal scene and the canvas layer for the player. because for some reason canvas layer blocks all camera ui input so i made that workaround! planning on adding easing in the next test so it’s not as sharp (?)
I also updated the idle anim assets because they looked a little too wonky and slowed down the idle speed for the characters as well.
lastly, i fixed some grammar mistakes in the text animations xD

0
vishalya

i started working on the crabs ordering shells with colors! i need to find out why the colored shell isn’t showing though when you press the color :’))
i modified my on_shell_selected func with an if else to check normal flow vs flow with colors then added 2 helper funcs to apply the colors!
today i also learnt you could set properties based on bool results of other vars than just true/false!
purplepanel.visible = Global.upgrades["purple"]
which is soooo useful i’ll def be using more of this in the rest of the game

there are a fdew bugs i’m encountering, im just writing them here so i can reference them later when trying to fix it :D

  • start button re enables after done purchasing from shop
  • crabs spawning when hour = 24
  • new crabs appear over the last spawned buggy crab, need to reset states of the last crab and make hidden
0
vishalya

revamped the start game section and added a title screen!! added animation player for ghost flickering and fading away and candle animations :D and a overall fade transition into next scene where it fades in. I replaced the menu card used in all the puzzels so the home screen could take up more space and not feel as cramped (?) lastly, i added few boxes as well so the controls and sub text could be more visible against the current background

0
vishalya

created the last puzzle for this game!! previously, ending 2 just had a cutscene of the phone opening and went straight into the police and ending. now i’ve implemented interactive phone screens to dial the cops and then record on the phone using area 2d coll shapes and connection signals :3
need to clean up a few visibility issues and this scene will be done!

0
vishalya

Shipped this project!

Hours: 19.13
Cookies: 🍪 450
Multiplier: 23.54 cookies/hr

I built a 2d pixel game for a game jam! the hours logged here are after the initial submission and when i found out about flavortown for improving and adding more features! one of the hardest things i worked on was creating a dialogue manager system with my text animations. it took forever to try to find a suitable way to implement that, but i found that using seek() in animation players and awaiting input can give the same output!! please leave me any feedback so i can keep making the game even better!! :33

vishalya

now that i now exactly where to add and implement the skip text code snippets, it’s easier to put it in other scenes :) hopefully i can do it faster because there are soooo many scenes still left to edit

0
vishalya

i fixed the dialogue issues!! turns out nothing was printing despite my numerous print statements because i had godot output disabled 😭
added some helper functions so that once the dialogue ends, it exits that function instead of doing it all in one. also added visibility flags in next index of animation and during end animation because if i did set it to false in the animation player, the last paused segment would be blank.

0
vishalya

fixing up the base text animation code!
added some bool flags to turn animation to false and pause it regardless of whether a user presses ui accept or it reached the end of a segment. this works in my scene with 2 animation dialogues, now i have to transfer it to the scenes with lots of dialogues 🫠

Attachment
0
vishalya

Shipped this project!

Hours: 7.72
Cookies: 🍪 216
Multiplier: 27.96 cookies/hr

i built a cute valentine’s website for me and my boyfriend! but made it cats on the main branch instead. I made all of the assets on figma and exported into the project. the hardest part was maintaining 2 branches at the same time. I didn’t actually try it yet, but I think a solution would be to create a pull request and only merge the necessary items (?) I also learnt how to use “aria” and “role” html elements. this is my first time making a very javascript heavy website and I learnt a lot about dom manipulation like adding onto classlists and removing them to edit the same contents all in one page. laslty, i learned a little about music in javascript by adding my own audio and calling 1 function .play()!
overall, i’m really really happy with creating this website right before valentine’s day ♪(^∇^*)

vishalya

added a readme and learnt how to make “code blocks” to add in ascii art hehe. also created an editable figma file for others wanting to edit the assets and clone the repo for their valentine <3

Attachment
Attachment
0
vishalya

fixed some media responsiveness so it looks better on phones/tablets? it’s still a little wonky, but it looks better :)
created a music loop in javascript and loaded audio so the site is more fun! lastly, added some clamps for width so the heart modal fits in screens better?

Attachment
Attachment
Attachment
0
vishalya

removed the add to order from menu page so you can only add orders from the tables update order
added a edit section to edit menu contents globally so it affects the table update menu items

Attachment
0
vishalya

Shipped this project!

Hours: 11.13
Cookies: 🍪 238
Multiplier: 21.37 cookies/hr

I built a point of sale system for Mai Shan Yun! A restaurant at college station, TX. Features included: saving and creating table layouts, dynamic kitchen ticket printing, and sales analytics of dishes. I’m so happy to say that we won the figma track at tamu hack 26! somethign i learnt was how to deploy a react website to vercel :’)
additionally, connecting variables between pages for the dynamic kitchen printing. I’m really proud of this project and hope to continue improving it in the future! btw it’s not media responsive (YET)

vishalya

worked on a LOT of things. first added our logo into the favicon. connected the table order to the kitchen for dynamic printing every time an order updates or changed the ticket reprints with new info!
next, make the menu header back button and headings sticky so it’s easier to navigate btwn pages while still in the menu. Also corrected the ghost table numbering and created new hoverstates for buttons :D
lastly, added a couch table so the restaurant has more options to customize their layout!!
OH also added a time elapsed since order placed so kitchen knows what’s priority

Changelog

Attachment
0
vishalya

Reordganized the menu into categories specifically from the tables page so it’s easier to add things into order

fixed a few dependency issues and redeployed like 50 times
but finally got a live site working!!

https://maipos.vercel.app/
:3333

project is almost doneee
just needa tweak and adjust a few more things!

Attachment
0
vishalya

added yes or yes interactions to the final pageeeeee!
was literally fighting for my life with the modal logic, but somehow figured it out and fixed some nasty bugs. i’m going to add more media responsiveness and add a few more css transitions for easing and smooth animations :3
but website is almost ready for my bf!

Attachment
0
vishalya

added the rest of the continue buttons and implemented more tracks in the music manager, so it doesn’t just loop on the same one over and over and over again :)
lastly, started adding in a skip text using seek() function. i’m running into a few bugs, but I think this might be the best way to use a skip text without having to completely restructure my whole game!

Changelog

Attachment
0
vishalya

added a time-based wait for the text to change and appear 1 more candy heart. once pressed the modal bg becomes transparent and displays a question with 2 options: yes or yes :D
it was a little hard trying ot maintain both branches at the same time to do 2 different things, but the personal pranch has the same updates too!
next i’m gonna add click interactions to the yes heart candies to go the final screen section!!!
website almooooost done yippeeee

Attachment
Attachment
0
vishalya

Added media responsiveness for the first few sections so everything is in frame and not missing :’)

Attachment
0
vishalya

I made 2 separate branches for the cat photos and for personal photos and created more animations and a modal overlay to open and close the heart closeups! used a lot of js to manipulate the dom by changing the text attributes and images. i also learned how to use the data attribute to easily access and edit things in js/css. lastly, i’ve been experimenting a little with html aria and role tags. this is the first time i’ve done a mostly js dependant project with no extra pages for routing, so i’m learning a lot!

Attachment
Attachment
0
vishalya

added landing page styling and a few animations so the box and candy hearts move smoothly while falling out~! Used javascript to toggle the box pressed states and to update the subtitles. I have 2 versions of the website, one with cute cat photos and one specifically for my bf. I think I might need to use branches? to host the 2 diff sites. I’ll keep researching how to do that :))

Attachment
Attachment
Attachment
0
vishalya

started by creating all my assets on figma and made screen design layouts. next, I started making the base html structure for the home page.

Attachment
Attachment
0
vishalya

created figma design layouts and converted it into code. Added a landing page, tables, kitchen, and menu pages.
table pages let you move and save table layouts and add markers to see what order status is on each table. there is also a section to add and delete menu items to order, which will send a new ticket to the kitchen for cooking purposes. The menu section also has an allergy tab and a special request.
I plan to add more, fix up small bugs and connect the printer dynamically and host on a site for the next few devlogs! :))

Attachment
0
vishalya

Shipped this project!

Hours: 5.5
Cookies: 🍪 94
Multiplier: 17.04 cookies/hr

I made a static website for a craft club! I designed all the assets in figma and added animations and interactions so the site would be super cute and cozy. It has a landing page, about, events, officers section, and contact. later i’d love to add an intragram feed into our website and maybe even a admin/guest page. I learned how to properly deal with absolute position and mobile responsiveness properly. There are more things to clean up and tweak, but i’m pretty happy with the website :))

vishalya

learnt how to add a favicon using a link tag in the head of the html

Attachment
0
vishalya

created the officer section. added some fun hover effects too! struggled for a bit because I was trying to edit a id instead of a class object😂 Fixed some of the sizing in the media queries as well and fixed a few layout issues.

Attachment
0
vishalya

finished adding the basic necessities to the website. I also added media responsiveness for most of the breakpoints. I have to go back and fix the formatting of the text and find a way for it to wrap naturally. Lastly, I will add a meet the officers section after designing the layout! website almost done :3

Attachment
0
vishalya

coded the about events section! and added the correct formatting on the landing page using an absolutely positioned container enclosed in a relative container, so things won’t break as badly when it’s time to apply media query. had some issues with the containers filling, then removed a percentage height in individual containers to fix it.

Attachment
0
vishalya

Created a base layout and started working on the hero and nav section! Created my own assets in Figma and am working on adding them in the website while paying attention to mobile responsiveness so I don’t break anything :’)

Attachment
0
vishalya

Added a few continue buttons to avoid relying on a timer to move between screens. Spent a LOT of time debugging why my area2d’s weren’t working and figured out how to filter input in texture buttons as well as color rects.

Attachment
0
vishalya

created a functional shop system that subtracts total pearls earned when you buy something. i did this by creating a global variable that tracks your pearls earned per order and subtracting that peral amount when pressing an area2d in the shop overlay! I currently have 3 colors: purple, yellow, pink, starfish, seaweed bows, and barnacles available to purchase on the shop! I also implemented a pick random function for the colors only if you’ve purchased them, so they show up in the order request. next, i’m going to add the color showing on the crab shell and check order logic for the crab colors.

0
vishalya

Reordered the scene structures and moved nodes into canvas layers to add the shells into animation players, where they would still be behind the crab. Then I separated the happy and sad crab orders and only gave 5 pearls if the crab was sad. If you give the crab the wrong order, then instead of just leaving, it allows you to retry giving a good shell. Lastly, I also started setting up the end day screen with the shop and next day.

0
vishalya

I created texture arrays for my 3 types of crabs and arrays for my shells, and learned about pick_random() function to randomly choose which crab appears and which shell is being ordered. I set up enter and leave animations for the crab through an animation player with visibility and position tracks, as well as updating the global pearl count variable if the order is correct or incorrect, 10 if correct on first try, 5 if correct on 2+ tries. My next goal is to animate the shells so they drop and store the starting position in a variable to reset when a new crab arrives.

0
vishalya

I set up hover states using @export variables in the script for my area 2d buttons by loading in textures for the hover and normal states in the inspector. I also set up the game scene layout with 4 major sections: the crab. the order stand and accessories, the customize panel, and shop! Lastly, I added the scene changes from my menu screen to the game welcome screen.

Attachment
Attachment
Attachment
0
vishalya

hi guys! i created a tonn of assets for the game in figma and set up the menu screen in godot. i added little floating bubble animations to make it look a little cool! :3 also experimented with godot splash screen and kept it as the water background. hopefully, if my game isn’t too heavy, it can stay that bg so the loading doesn’t take too long, and it just looks like it starts on the menu screen!

Attachment
1

Comments

Vishy
Vishy 4 months ago

You made that! That’s crazy, since I started this week learning it has been a bit hard, good luck!