Pirate Cats
- 10 Devlogs
- 57 Total hours
Pirate Cats
Pirate Cats
Hello everyone, I have completed two more minigames for my game pirate cat, and only have one last game to create. I have been very productive, and learned how to code more efficiently, as I finished two minigames yesterday. Without further to do, lets get into the first minigame I finished.
By the name you might get what the scrubber cat does, the scrubber cat is the cat/pirate that will be scrubbing and cleaning the decks/the ship. So for a minigame I have created one where you scrub the dirt to get rid. I still need to make the colors more vibrant but the logic is done, and I did have some few bugs but we will start about the game. So for the game, for each round there are a certain amount of stains. Each stain gets its own button and each button has mouse entered and mouse exited which goes to a variable. The variable is either false or true. So if mouse entered the variable is true otherwise it is false. Then in the beginning I call round 1, in round I check if the items are visible, then I check if the mouse entered is true and if the mouse is moving, because I have a variable called mose pos, and in the ready is set it to the mouse position, and then I compare it with the current mouse position when round 1 goes, then i set it to mose pos. Then if the mouse is moving, and the variable is true. The stain looses some of its visiblity, like its going away. I am going to find out how to make the cursor a scrubber, but for now its not. And the user will do this for 3 different round.
So if you saw the video you might have saw the constellation game, I recommend you watch the video to understand what I say. So there are two different types of constellations, human constellations, and cat constellations. So the goal is the user to always pick the cat constellations. So there is 2 sides, one side is the cat and the other is the human, the sides will switch, and you have to pick the cat one, if you dont, that round restarts. I had so many bugs with this, and the main one wasthe timer. In godot I had no clue that you have to stop a timer after it timed out. This created a majority of the bugs. And since it was basically the same logic for most of it, I did copy and pasting and because of this I forgot to change some of the variables, so it did changes to things that did not need changes, and did not do changes to things that did changes. I am going to finish up this game soon and submit it. Bye guys!
Hello guys, this devlog is going to be max characters and if its not I have so much to complain about… I have worked so long today and dont so much, and I think that everything I have done was very great. So without much to do lets get into todays progress.
So I am going to talk about what I did before I started the powder monkey minigame. So today, before I ate lunch I was working on other stuff, like not minigames but the travel, so now users can travel around the boat, to the parrot area (in the front), powder monkeys area (going to be discussed in todays devlog and its on the side) the back of the ship which has both the cooking cat, and also the fishing cat. And then there is one more side of the boat, which is the other side, side view 2 which has the scrubber cat (I am going to save the scrubber cat for tomorrow when I start working on him and his mini game). So now that I have explained what I spent the first 1 and a half hours on lets get into the Powder Monkey Minigame.
Okay guys now we are going to start talking about the powder monkey’s minigame. So if you see the video you might start to see where the video game is going. But if you don’t understand the video or have not seen the video (due to personal reasons) then let me explain. Ever see those fake mobile ads that don’t let you play the game but give you a preview? Well I am building that fake mobile ad, im not trying to say it’s fake, but this time you can actually now play the one level until you beat it. So the game is like you drag the different colored balls into the different beakers and try to get beakers with only one of the same colored balls. So I spent 5 hours creating the logic, then I realized i made the game wrong 😭 Then I had to get rid of this one part of a line in 45 lines, then I deleted it and then it didnt save and I had to redo it, and that took 30 minutes already, then redoing it made it an hour. So the line I said that I deleted checked if the when placing a ball (we will call the different objects you can move a ball) so when moving the balls i made it so you had to place it in either an empty beaker or ontop of a ball of the same type. I didnt know that it could be placed on different types. So then after deleting that line of code when running there are still some bugs here and there that dont allow one of the coconuts and one of the ballons to move. I have checked 2000 LINES OF CODE 15 TIMES, MAYBE MORE. And me not finding this bug is annoying because I still have to write the check feature. Anyways I will try to fix the bugs, but here is yesterdays video https://www.youtube.com/shorts/7UFbDQq-l0Q and by guys see you later!
Hello guys, we have spent another 5 hours on this game. I have got to say, I am starting to love this game. Day by day, the more I do the more I get drawn in. I have got to say at the beginning I didn’t really feel like doing this game. But now after I see everything I am amazed. As usual if you want to see yesterdays progress on the captains room you can see it on Vishy Labs or https://www.youtube.com/shorts/0w2feNxZQ5A
For the past few day’s I have been working on the map scene, if you see it, it may not look complicated but I have spent longer than the fishing minigame to create this, let me explain why. So there are 6 maps, and 6 panels. One panel for each map. If you place a map in the panel, either that is the right panel to place it in or the wrong one. There is over 40 variables for this scene, since there are 6 buttons, we have 6 of placed 1-6 and 6 of map 1-6, (now these are for dragging the maps) 6 offsets 1-6 6 dragging 1-6, 6 inzone 1-6 and for the panels 6 pan 1-6. So this makes it hard to keep track of all of them. And let me talk about the logic, so when you press a button like hold it down you have to change the position with the offset and the mouses position, but now we have to check if the piece of the map is intersecting with the panel, and if it is, which panel is it intersecting, then if there is already a panel there. And it gets ever more complicated, if there is a map intersecting or above 2 panels, then you have to subtract the values from all the panels and see which one is the closest from the center of the map, because in godot for some reason it likes putting its point in the top left. And I have made over 8 different functions not including the button up and down or godot made functions just for this. This has got to be one of the most complicated minigames yet but im glad I did it. We have function snap map which gets the center of the panel and places the center of the map there, and this only works if that panel doesn’t have a map and the map was placed there. We also have func_panel_taken you input the panel which in my case is closest because that is what I have put for the closest panel in the code, and you also input which map your moving, so it ignores that when it does the check for intersection. But the process_function is the most complicated to keep track of. Since it does 60 times per second, you have to make sure everything doesnt run more than once by having variables that become true when the condition is false. And you have to make sure what your doing is supposed to be checked, because if it is not and the values get changed, then you have to find a new way to implament it. If you guys saw the attachment I have showed a little of the sideview1 and I will get more into that tomorrow. Bye guys!
Hello everyone I have done 7 hours yesterday and devloged 3 of them with the crabfight and the others hours now. I have been very productive and had a lot of progres on my game pirate cats. I have finished major parts of scenes.
First I would like to talk about the Captains Room, this is the first part of the video and you see a lot of things start to move when I put my mouse over them, that is the hover. You can do it with a button 2d with mouse entered and exited, in the start I had it as mouse entered meant animation played and mouse exited mean animation stopped on a button. and if you watched the video, you saw that my camera moved when the mouse was on the side of the view. To do this I used a camera, and put two button 2d’s on the edge, and I had mouse exited for the left side was left camera move = true and I set it false when it was exited, I did the same with the right side button and had a variable called right camera move = false. You might wonder how just having variables would move the camera, it doesn’t. In the process code (which runs 60 frames per second) there is this var delta, which means run at 60 frames per second. So for the camera to move left I did $Camera2D.global_position : Vector2 = -1 * Speed * Delta I could set speed to whatever I wanted such as 300 and then when it was for the right side I just switched -1 to 1. This was all working I had no bugs, but in the scene tree the camera is at the bottom. So the buttons are children of the camera, and there are other buttons above it such as the ones I use to hover. So when I was moving the camera my cursor landed on one of the other items that hover, and the camera stopped moving. It was very annoying and I didn’t know how to fix it. It turns out you can use area 2D’s they have a mouse entered, mouse exited, and a click function. The only difference is you can not see the area 2d’s like if you are putting an icon or text or style on the button like a panel you wont see it. But luckily for me I but the button over the assets. So this was a big problem I solved.
I have started working, just the back part. That is the second part of the video, when it goes to that new scene after pressing the arrow. I have the fisher and the cook there. So as you see the arrows are what guides the players, and there is a camera and some items to hover at the back of the ship and I am using area 2d’s.
If you want to see my crab mini game in Pirate Cats, or previous history you can see it on Vishy Labs on Instagramhttps://www.youtube.com/shorts/dKRGESaI7ss I will continue working on the map part, where the user has to put the map together after getting all the pieces. See you guys later!
Hello everyone it’s getting close to the day when I get to submit, Pirate Cats, and as usual if you want to view my game’s previous progress you can see it on youtube https://youtu.be/XgYkeBUyqbE?si=mVQkA0oVtBkzSB1x Well now I have currently finished the crab fight. I usually only devlog after the day is done, but for pirate cats I devlog when I finish one minigame, so now today I have finished the crab fight minigame, so I will be explaining all about it. I dont have the dialouge and the text or the home pages or settings done yet, but I will be submiting on the 30th. I think i might need to go back and fix the assets for some other items, as like the fishing game the place holders are still there and the cannon doesn’t really look like a cannon, but let’s get started and talk about my progress.
So now it is time for me to talk on what I have been doing for the past 2 days, well I have been working on the actual minigame as always, if you watched the video and have any suggestions please comment it, I will take it into account! So for the crabs, there are 3 crabs, they dont really do anything just different colored hats for variety but what happens is that there are 3 groups, left right and middle, I do a randi function randi_range(1,2) if it is 1 the crabs in the first group are not part of the first round if it is 2 they are part of the first round. Then I do an function for each group and do an if statment to see which crab color should be visible then in that I do the calculations. Alright you might be wondering, what are the calculations? Well the calculations are how much the crab has to move each time. So I have to take account the height of the waves, how much room I have between waves, and how many times the crabs will pop up. So in the code I make the crab go up, then go down. I use the tween function to move the crab, since using an animation player and you can only run 1 animation at a time, it would be a pain to keep track of all the animation players, so I use tween as I have said before tween moves the item smootly so it is not teleporting. Then I do either of two things, one if the crab gets all the way to the bottom then the players screen flashes red, then it repeats the process.
So in godot, you can add inputs, I added left, right, and space. So then in the code I did in the process, using direction and inputted left and right. The first one inputed is -1 second is 1 and if both or none is being pressed then direction is 0. This is built into godot so I got lucky, because it saved some time in the coding process. Then I have a speed, which I set to 200-300. Then in process I did ~$Cannon.global_position = direction * speed * delta` this makes it so that it moves every esecond something is being held down. Now that I have explained how the cannon is working I will explain how the cannon ball works.
So everyone, the cannon ball is a new scene, I can just call it every time and this makes it so I dont have to make alot of them, because I don’t know how many the user will use, so it would be hard to make so many. So in the new scene I have a panel on the cannon ball, as my other mini games. The panel on the crabs and the panel on the cannon ball interact, this happens when they are in direct contact, I check if that crab is visible, and then if that crab should be caught, it can only be caught if it is above the wave (if it is not above the wave then it is hiding but can still be triggered, not visible) then I make that group not visible, and do it for all the other crabs that got hit. I use tween to make the cannon move up by 300. The work I have done in the past few days were alot more complicated, but I will keep doing more, my goal is to reach 50 hours by the end of this month and submit. Thank you guys, if you want to see progress itsVishy Labs on both youtube and instagram. See you guys!
Hello everyone it has been some time since I have posted a devlog, like 4 days but here I am with some exciting news to share. I have finished the parrot feeding scene and made the check feature for the cooking scene. If you want to see what I did it is on https://youtube.com/shorts/XgYkeBUyqbE?si=7PP_u8wK7GwFHCAd
For the parrot scene the user is supposed to feed the parrot cookies, because i dont really know anything more interesting if you guys do please tell me. So to feed the parrot cookies I have to make the cookies dragable so they can give it to the parrot, and doing this will play a cool extra animation of the parrot chewing. Since I already did the cooking scene making the dragging part was already really easy, since I just add a button and a panel. I told you guys last time what the button does it has the button up and down function so it can detect when the button is being held down and released and when the mouse is moving so I can drag the item. So then I have a panel on both the item and the parrot, and I check that when button is let go and they are making contact, then if they are it is not visible and the parrot chewing animation plays, and I did this for pretty much all of them.
So we did some more things for the cooking scene, so I was working on a check feature, then I was moving all my data to a new computer, and I accidently commited on both computers for same scene to github, and they both overrid eachother and all my progress was lost, then after spending some time researching I realized I can pull back commits by reverting and I got my progress on the checking part back. Then after this I checked if the items on the plate, and assigned each one to a variable, if it is visible or not then this variable is true or false, and i did that both for the order and the plate. The actual checking feature is it checks if both of the variables for the same item are the same then if they are the light for that item becomes visible, I show it in the video attached so if you want to see please watch.
So there are a few things I need to make and I need help from you guys, so what should the powder monkey do, and what should the captain do, it was thought that the map puzzle piece will just be in the captains poket, and users will have to set up the cannon for the pirate monkey, if you guys have anything else more interesting please share! Bye guys!
Hello everyone, it might be a day or two since I have devloged, since I finished the fishing game mechanics, I wanted to take a short break and now I am back and starting the cooking minigame for the cook cat whose name is BISCUITS Thats right everybody, lets give it up for our cook cat buiscuits, and for the fisher cat, I forgot to put names back then, so his name is now Minnow If you guys have any suggestions for names I will take it in for my game! So without further to do, lets get into Pirate Cats, Cooking! (And if you wanted to see yesterdays progress you can view it on https://www.youtube.com/shorts/XgLbwD1cwBg)
If you saw the video (I put the link above) I made it yesterday, which is when I made the logic. So for each item, like the cakes shown in yesterday’s video, or the plates, sand castles, and toppings shown in today’s video. They all have a base node of a Sprite. But you might be thinking "How can a sprite 2D be draggable?" Well to make this possible, we added a button and code, so the button takes up the whole sprite space (where ever you want the user to be able to click and let it drag the item). So you add a script to your base layer, keep in mind you can do this to anything by just adding a button and script to it. In my script I had an offset, the global position and the global mouse position. I made the offset 0,0, which is where the item or sprite in my case starts off (Im just going to start referring the item using sprite from now on). Then on the button, you don’t do a button pressed signal, you do a button down and button up signal (this is to imitate the button being held down and dragged). Then you create another variable which is dragging and if you want you can have can_drag. When button is down dragging = true and when it is up dragging = false. Then in the process you subtract the offset from the global position of the mouse and the global position. And for the items to make them visible on the plate I had a plate that had all the items already there, and a panel. Because an area 2d does not react with a panel, every draggable item had to have a panel, and in their process it had when their panel interacted with the other panel, it will check if they already have it, can they have it, and it will do it, this will make the items on the plate appear and the off plate draggable’s disapear.
As I have already told you guys, we are using figma. It makes the art look way better than my pixel art for other games. I guess it is just your opinion/the person. Anyways I think it all looks way better. But one thing that really weighed me down is that im not getting much support on youtube and instagram for Vishy Labs for progress on my game, and I was even accused of having my game as a copy. So I am persevering and making this game better than any game out there. If you want to support me I am Vishy Labs on youtube and instagram. Stay tunned for more progress!
Hello everyone, today is the best day for me! So many things happened and I can’t wait to share it. So please watch the video added below because it is basically all I did today. If you would like to know what I did yesterday, im on Vishy Labs on Youtube and Instagram, with that said lets get into todays progress.
I basically am done with the fishing game, but there were major things in the logic that had to be changed, and I would like to talk about it. So first I have different rarity fish. At the beginning I just made it so it pulls a random fish, but that doesn’t really aid the term rarity, and in the last devlog I was talking about how a fish was chosen, by the randi function. So to actually turn it into a rarity I just made the randi range longer, from 1-3 to 1-7, so the first fish takes number 1 2 and 3, the second takes 4 and 5, the third takes 6, the golden takes 7. Alot of places in my code, I forgot to change it because in the original code I had made it so there were only 1-3 so then in the new code when a number past 3 came, it didn’t know what to do and it ended there. I would also like to learn about this new thing I learned, clamping. $Outside/Slider.position.x = clamp(
$Outside/Slider.position.x,
0,
$Outside.size.x - $Outside/Slider.size.x this is clamping. There are 3 inputs, value, minimum, and maximum. You might be wondering how did I use it in my game. Well for the slider, I need to make sure that the slider does not go past the barrier/border/past the edge of the outside panel. Because if it does, it decreases the value of the game (by the value I mean it doesn’t look good for the user). So I just made the value the position of the slider, and the minimum is 0 and the maximum is the big bar, subtract the slider size (all x values). This all makes it so the slider can not escape the barrier, because I am changing the position with tween, so it moves, and since the position is manually changed it doesn’t mean that it can have contact with the collision body. I would also like to take about tween. Tween is built in godot, and there are many ways to use it, I just used it so that when I change the position of the slider it is smooth and I do not have to use an animation player ( animation player would not work because then in is all predictable). So for the tween I put what I want to smooth, and what duration, and then in the code I set the distance. All theses little features is what makes my game look better and more playable. And that is it for the logic.
If you saw the video, I think you will be very pleased with the visuals. All of this is being made in figma, as it is much easier to make than libre sprite. So the waves are just the waves from the first scene, but just stacked. Then the brown stuff is not a dock, it is the ship (like you are on the edge fishing). Then everything else is pretty much self explanatory. So to make it replaced from last time, the only thing I did was add a background, change the bobber, and scale the fishing line to be attached. And because of this, in my code I am resizing the button, so the user can not press on the dock when fishing but when clicking for the actual game part, they can. That is it for today, by tomorrow I am pretty sure the whole fishing mini game will be done, with the fish popping up with a banner, and I will most likely be starting the next game.
Hello everyone, today was a big day, as you can see I spent over 6 hours again. I have alot to say, alot to announce, and a new limit for me while I also unbox new scenes. If you want to check out my progress you can see it on Vishy Labs, on Instagram or Youtube, https://www.youtube.com/channel/UCv318x8ryMI-l4kxYvwhLog
Well since I just started there were not many bugs, but there was one very annoying one that bothered me so much. Everything in Godot was blurry. At first I thought it was because the assets were getting made small and imported, but that was not the case. Even after scaling the assets up by a lot and re-importing it and scaling it down, you can tell it was still very blurry. I thought all the settings were correct because I put the texture/render to linear, because it is not a pixel game, so linear is the right texture for our game. But it turns out it was the view port… I set it to view_port instead of canvas_items. View port is meant to match you screen size, while canvas items matches your godot size (how you import it, basically how you make the game, just keeping the same size), now that this bug is fixed (or should I say mystery solved) let me get into what progress I made today.
So now it is time to get into our fishing mini game. If you saw the video you either might think, “wow that is hard to build” or “that looks so bad, what even is that”. Well if you were impressed, im just building a blue print, but if you thought it was bad, don’t worry, im just planning it out. You might wonder what it is or how it works. So this is a fishing mini game, the goal of this is to find the fish with the map, and use the map piece to get the final map which leads to the treassure (I covered this last devlog) if you want to know more on how my game will work, read my last devlog. Anyways, so in this game, the user is going to cast the rod (fishing line) and then have to wait for the fish to get hooked, and when it does, they have to beat the mini game. The minigame is hard to understand but if you watch the video it will make sense. So the mini game is that there is a slider, and it is moving, left (constantly) and you goal is to not let it stay out of the safe zone for too long, or let it touch the border once, if it does you lose that fish you will have to fish more, and that fish wont add to your stats (how many fish you fish). So basically what I did I made the whole screen a button, when the user clicks the screen they cast the rod, if they click again and there is no fish caught they reel the rod in (bring it back). If they catch a fish, there is a function, it is either the fish starts to jerk, or moves slowly. If the fish jerks it will make the bar move left 40 (different based on level of the fish) if it is slow moving or idling, then the bar moves 15 (might be different for the fish types). To make this look smooth, since I am not using an animation player, I am using the godot function tween, this allows it to move smoothly and not be rapid, making my game more like a game instead of a twitch. I am mainly using randi functions (randi functions are basically random functions, if you input items into them they will choose a random item from that list). So I am randomly choosing, the time the user waits, and if their fish will be jerking or idling at the moment. Now that I have explained this I want to talk about my save manager.
Hello everyone, I am officially introducing pirate cats. Pirate cats is a 2d game, including pirates and cats with the theme of summer. Users will be helping cats find their long lost tressure (Cats love this). I am of course making this game in godot, along side with pirate cats I am also working on a hack pad and I am having a lot of trouble, so this month we are staying motivated! This game is still being planned but currently I have thought out alot of it and came up with a detailed plan which is still a work in progress.
There were a lot of ideas in circulation and I still might include them but here were the ideas Cat Dress up Previously for another hackclub event called flavortown I made a game called demegorgon dressup, it was ment for the new stranger things season and it went pretty well. I was planning on making it like you give cats different accessories and fufill customer orders and that was going to be a part of the game. Keep in mind, I was planning on making a large long game. Idea number two Icecream serving I was planning on making an ice cream serving game, because ice cream relates to summer and you would have a time limit and put certain toppings on a cone. That was also going to be another part of the game not a full game. Finally my last idea Treasure Finding What if there were cats which were actually pirates trying to find treasure.
Now that we came to the present idea that is in making, I will explain how this game will function, and currently its core features. In this game, you are not a cat you are the human. The human’s goal is to find missing pieces of the treasure map, help them defeat raids and invasions, gain loyalty and trust (may be a sidequest) and read the ancient language (english) which only humans can understand. There are different types of cats, and you must help them solve their problem so they willingly offer you the piece of the map that they somehow have. Currently the cats are Captain, Fisher, Cook, Scrubber, and Powder Monkey.
The game starts you off looking at a moving ship with a pirate cat logo. Then you meet the scrubber cat, and the powder monkey rats you off. This leads you to the captain, which explains their map problem and you agree to help. You must defeat the crabs, this will be done by blasting cannon balls at them, possibly destroying the ship. Then you have to help the scrubber cat scrub the deck, and that helps you get a piece of the map. For the powder monkey, it is still being decided how you get the piece of a map, either you will untangle the ropes of the cannon, or set fuse to the correct barrel, and the paper will be lodged inside. For the cook, you must creat sandcastles cakes and cookies. There will be a map piece hiding behind a dish.
For the fisher, you will be on the plank fishing, when a fish pops up you have to click them, one of the fish will have a map inside them. Also if you get the golden fish, you gains cats loyalty. The captains part is still being thought of, and if you have any ideas, it would be good. The captains parrot also has a piece, it needs you to answer a question correctly, and feed it, to get the piece back. After putting the pieces on the table, the human which is you will have to make sense of the ancient text and unscrammble the map. This leads them to find the ancient treasure making the cats happy again.
I have done alot of work, I dont have much space left to talk about it, but currently I have had the parallax 2d backgrounds made, so it makes the background look more live when the ship is moving past. Also I was spending alot of time today on working with the animation player so that when the menu is open, it will be clear so you can see behind it and the ship will be moving. I have much more to say but I have reached the MAX CHARACTER LENGTH, so I will explain in next devlog, bye!