Bringing My Cozy Isometric Game to Life | Hooked DEVLOG #2

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Okay, so a few months ago, I posted my  first devlog for "Hooked" on this channel,   in which I shared the beginning of development on  my dream game: a casual, cozy isometric fishing   game inspired by titles like "A Short Hike,"  "Stardew Valley", and "Eastward". And the amount of positive feedback and support I received  from you guys on that video was really incredible,   and I just want to say thank you to all of you  for joining me on this journey. I'm really excited because in this video, we'll take a look at all  the progress I've made over the last few months   and how the game has completely changed since  the last video. We'll talk about the journey to reach this point, because there have been  quite a few challenges along the way, about the future plans for the game and I've also got some  really exciting announcements to make later on. Hey everyone and thanks for joining me for another  devlog for "Hooked"!   It's Wednesday morning, I've just finished making myself a cup of coffee and  got down to my computer. So, in our last devlog, we kicked things off by creating a quick mockup  of the game because it was an easy way for us to   get a general idea of how the game might look.  And after importing those assets into Unity, we  jumped right into building a simple version of the main scene, where players will be spending most of their time. But I'll be honest, the art we used  was just some basic shapes slapped together.  You guys were incredibly supportive anyway and said  it looked great, which I really appreciate. But, I think it's time to take it to the next level and  make it even better. So I started off by gathering a ton of references from artists I admire and  games that inspire me, and began creating some   simple stuff like terrain, grass, rocks, and so  on, but I quickly realized that the game lacked an art style. And so, creating assets that not only  looked good but also felt cohesive and matched my   vision turned out to be quite challenging and  also time consuming. In fact, it took me a few weeks and multiple iterations until I finally  had something I was happy with. And the thing is that I tend to be quite self-critical, which  has its advantages because it constantly pushes   me to improve, but on the flip side, it also means  that I often find myself getting stuck in a loop,   trying to perfect what I'm working on. Despite all  of that, I managed to get our island looking like   this and, honestly, I think it looks a lot better.  Of course, there's always room for improvement   and as the game development continues, the art  will naturally change and evolve - that's to be expected. And we're actually gonna come back later  in the video, improve these assets and create even more. But now that I had some art in place, I  started thinking about gameplay. I have a whole list of features I want to implement, including  a complex fishing system, the ability to collect,   store, and sell items, raise animals, grow crops,  and all that good stuff. But let's pause for a moment here because there's something missing from our scene, and that's the player character.   Now, I've spent a lot of time reworking the art  and creating animations for our character but   what I've realized is that before we can bring  those into the game, there are some problems we need to address. If you remember from the last devlog, we stopped when it came to adding collisions to our map, which can be tricky  because simple box colliders that would work perfectly in a top-down game just don't make sense  in "Hooked" where the art is drawn in an isometric perspective. Now, finding a solution should've  been pretty much straightforward, but since I   haven't dealt with isometric perspective before,  it didn't seem that way. I was a little bit scared   honestly, and my initial reaction was to avoid  colliders altogether. And that may sound strange because we still need to prevent the player from walking through buildings, trees, fences, and all that stuff.  Well, here's the solution I came up with: What if, instead of using WASD to control the character, we implement a new system  where you have to select a tile on the map with   your cursor in order to move around? The character  would then find the shortest path to that tile and   start moving towards it using the grid from our  tilemap. Okay, but what about those tiles with props  on them? Well, we would give those a "blocked" property that the path-finding script would use  to determine where the character can or cannot walk and so we wouldn't need to use colliders. On paper, this sounded like a good idea [It wasn't...], so I got down to work   and started implementing the system. But since  it was my first time dealing with path-finding   algorithms, writing all the code took me a while.  It actually took me about two weeks just to get   the basics working, and even then, there were  still things that needed improvement. For example, I mentioned earlier that our character would  take the shortest path to the selected tile. And while that makes sense most of the time, it  may not always be what we want. Here, for example, we have a path, and it would look more natural for the character to walk on it instead of going off-road through the grass, just for the sake  of a shorter (or simpler) route.  So what I did was introduce a priority value for each tile. Now, if the character has to pick between a grass tile and a dirt path tile, it will choose the path because of its higher priority. And this change worked great, but I still had to spend some time fixing a ton  of bugs related to the character's movement,   sorting issues, and overall behavior. Finally though, after a full month of work, the system was finally complete! No more bugs, no more issues. It was time to test it in the game. Well, it didn't work out the way I hoped. The  movement system felt completely out of place,   and I didn't know why. You see, while moving  around isn't the main focus of a video game,   if that's all you could do in a game -  just walk around and explore - it needs   to be somewhat enjoyable or at least not  annoying. Because when testing the game,   while my character was moving to the selected  tile, I found myself clicking on multiple tiles   along the way just to interact with the  game more because I was getting bored. So what I did is that I started looking at other  games that use a similar movement system and asked   myself what the issue was. And something I noticed  is that all those games had one thing in common: they involved some form of strategy. And that's  when it hit me - the reason I think it works in   those games and not here is because, in strategy  games, while your character or units move to the   selected position, you actively think about your  strategy, plan your next move, and think about how   to beat the level. But in my game... there are no  levels. And while it's true that every player will   come up with a general strategy for earning more,  improving relationships with other characters,   building their place, or simply deciding how to  spend their day, those are not things that need   constant attention. So, from the moment you click  on a tile to the moment your character gets there,   you're left staring at the screen, waiting. But  the last thing you want in a video game is to   take away the player's input and have them just  watch the screen without participating in any way. And now that I think about it, it all makes  sense. Though, before implementing the system,   those things were not that obvious to me. But now I was faced with a big decision: either keep the existing setup, accept it as it is, and move on to the next task, or throw a month's worth of work   out the window and spend more time implementing a  WASD movement system and dealing with collisions and sorting order problems that come with it.  And it wasn't an easy decision at all because I spent so much time on the system, but, in the  end, I realized that holding onto something that  didn't fit the game would only harm the project  in the long run. And even though it can be hard, sometimes it's better to just let go of the work you've done rather than damaging what you're working on. So, I made the call to start over. And here I was, once again, back to square one. This time, however, I felt more confident because  I had a clearer understanding of what my game   needed and that you can't just borrow mechanics  from other games without thinking about whether   they would fit your own or not. So, I started by  bringing back the script that allows us to move   the character in eight directions using the  WASD keys and after that, I spent some time   polishing the animations I mentioned earlier  and imported them into the game. And honestly, I think this new character looks a lot better  than what we had before – it's definitely cuter. Still a little bit rough around the edges, but as my pixel art skills improve, we'll definitely come back and make adjustments. Now, it's important to keep in mind that once we implement a character creation system, players  will be able to customize their character's   appearance, from hair, skin color, clothing, and  so on. I think that would be a great way to let   the players express themselves. And speaking of  expression, while working on the character design,   I also began experimenting with facial  expressions, which I thought could be   incredibly useful in the future for cutscenes and  various interactions throughout the game. But, I was a little bit unsure whether the character's  face should have a mouth or not, so I reached out   for feedback. And after reading what you guys  had to say, which was a lot of great feedback, I ended up choosing to keep things more clean  and clear by not including one, even though we can still use them in certain cases where it makes  sense, in order to better sell an emotion. Now, going back to the player's character for a second,  if you don't want to create a custom one, you'll have the option to play as Mandy, the game's  main character. Here's a cute chibi version of   Mandy but we're gonna come back to her in a bit  and show you some digital art I've created that   should give an even better idea of the character  design which, of course, was used to create these   chibi emotes for our Discord server and will  also be the basis for her in-game pixel art. But now that I finally had the character in the  game, I began working on implementing collisions,   and to my surprise, it wasn't as difficult as  I had initially thought. What I needed to do   was use polygon colliders, which allowed me to  create custom-shaped colliders for each sprite,   regardless of its shape. But when it comes  to sorting objects in isometric games, things   are not as straightforward as in games that use a  top-down perspective, and here's why. In 2D games,   we usually sort sprites based on a pivot point,  most of the time located at their base where the   object would touch the ground. For instance, if  my character's pivot point is positioned above   the pivot point of this rock, the game renders my  character behind it. But if the position is lower,   then the character appears in front. And that's a  great way to sort 2D sprites, but unfortunately,   it doesn't work quite as well in an isometric  perspective. And that's because on larger sprites   we can't really define where our object would  touch the ground using a single point, and there's   no such thing as having multiple pivot points.  Now, one possible solution to this problem would   be to split all the large sprites into smaller  pieces, each with its own pivot point. But   that approach would be not only inefficient but  also very inconvenient when designing the map or   building once the building system is implemented.  Just imagine having to place 20 individual sprites   on the map for a single house instead of one,  it's just not practical. And because Unity   doesn't offer a built-in solution for handling 2D  isometric sorting, I began doing some research and   here's how I ultimately solved it: With the help  of a script, each object in the game is now sorted   based on either a point or a line defined by two  points. And the line acts just like a pivot point,   but instead of comparing the character's position  relative to a point, we compare it relative   to a line. And that works incredibly well and  actually solves all of our sorting problems. Now, one of the things I really wanted for this  game to have was a way to track the time within   the game, allowing us to have days, months and  years pass. And having a way to tell the time   would not only make the player feel more  immersed in the game's world, but it would   also allow us later on to create routines for  NPCs, make businesses automatically open and   close at specific times, and so much more. Now,  implementing this was pretty straightforward:   as long as the game is not paused, we count the  seconds that pass and increment the minutes,   hours, days, and so on. However, I didn't want a  day to last 24 hours like in real life, so I made   a few adjustments to the code, where each in-game  minute now lasts 0.7 seconds instead of 60.  This effectively shortens an in-game day to about  sixty and a half minutes, which I think works a lot better. But we definitely don't want players  feeling like they're constantly racing against the clock. And when a minute goes by in less than a  second, seeing the time in the UI updating becomes super stressful. Suddenly, instead of enjoying  a peaceful morning at the lake, players would   be constantly reminded by the UI that time  is passing and they need to move on to other tasks. To fix this I changed the code so that  now, the UI only updates every 5 in-game minutes,   making it look a lot better and less overwhelming.  And I wrote the code in such a way that it can   be easily updated, so if we decide later on  that the days should be longer or shorter,   we can definitely make that change. And even  though the UI isn't our main priority right now,   I went ahead and added a calendar in the top  right corner which shows the current day,   with each month having 28 days,  and each season lasting one month. Now, having the time change is great, but there  isn't something in the game that actually shows   the fact that time passes, except for  the UI. And so I started implementing   a day-night cycle by creating a script that  changes the lighting in the scene based on the   in-game time. And I did that by dividing a day  into four parts: morning, afternoon, evening,   and night, assigned a different light color to  each and created transitions between them. The   best part is that this system is customizable  and it allows us to easily adjust the color   and timing of each phase. For instance, we can  make the sun rise quickly from 5 AM to 6 AM,   and set more slowly from 8 PM to 10 PM. And this  will be especially useful in the future when we   need to fine-tune the day-night cycles based  on the season, when we add those into the game. But as you can see, the nights in the game are  pretty dark, and I intentionally made them that   way, because along with the strange sounds players  will hear, it's a good way to communicate that   staying outside at night can be dangerous, and  they'd better go home and get some sleep.  However, I didn't want to exaggerate with that, and so I've  created some light poles that will not only light   up the area around your house, but will also  be found on the streets, in the town, and other   places where characters live. Now, while working  on these lamps, I was really undecided about which   type of lighting to choose between these two,  so I asked you guys for feedback on Twitter, our   Discord server, and Reddit as well, and the amount  of feedback I received was just insane. Everyone had a preference, but overall many suggested that  version A would fit better for a cozy and relaxing   game like "Hooked", while the one on the right  would be more suitable for a creepy and horror game. And these are things that sometimes I  can't see myself, so I'm really grateful for   the feedback - I completely agree with that idea,  so I ended up using the first type of lighting.   And having day-night cycles in the game really  started to make it feel more dynamic, but at the   same time, kind of emphasized how empty the world  is. Now, I do plan on adding NPCs later on (and I   have some exciting news about that a bit later),  but in the meantime, I thought it would be a great   idea to add some animals around to make the world  feel more alive. To begin with, I wanted to create   some birds, as they seemed like a good starting  point. So, as always, I started by working on the art. At first, I went for a more realistic look,  though to be honest, it didn't look that great   because it didn't capture the cute and fluffy  aesthetic I had in mind. But, after some trial   and error, I managed to give it a more stylized  look that I really love. The rounded body,   while not completely realistic, I think it makes  the bird look really cute. And I believe this is   something that will carry over to other animals  as well as part of the game's art style.  Now, because everyone needs a friend, I also made a few  variations of this bird, which will give us some   variety when placed in the scene. As for their  behavior, I first created a spawner that spawns   a bird every few seconds and once one spawns, it  calculates a target position on the map and starts   flying towards it. I made sure that they avoid  colliders when finding a spot to fly to since we   don't want them to fly inside of one. Now, when a  bird reaches its destination, it either stays idle   or starts eating for a few seconds before flying  away. And once it's outside the map, it despawns. But you may have already noticed the red  circle around each bird and they have a purpose:   if, while a bird is on the ground, the player gets  too close and enters the circle around it, the   bird will get scared fly away. This way, you can  watch them, but you'll have to be careful and keep   some distance to avoid scaring them. Later on, we  could add more complex behavior, such as having   them walk around or get closer to other birds  that might be nearby, and so on. But for now,   I think they are really cute and they do their job  of bringing the game to life a little bit. And the   reason I say "a little bit" is because the only  problem we have here is that these birds are not   always around. You might see one here and another  there, but they don't spend too much time around   before flying away. So, it was the perfect time to  add a new animal: chickens. I first went outside, took some photos as references, and then  started working on the pixel art.   And these chubby chickens are what I ended up with - they  are really cute, especially when you put a lot of them together. What's even cuter though is when  they start following you. Because, yes, in the   final version of the game you'll be able to have  one as a pet that will follow you around. Sure, there will also be options for a dog or a cat, but  having a chicken as a pet is pretty cool. However, the other ones, those which are not your pet, will  simply wander around and eat and... they also have   a circle around them, which by the way is not  visible when playing the game, but they won't get   scared and run away from you like the birds do.  Instead, these circles show the area in which each   chicken is allowed to move. And it's customizable,  so if we decide to build an enclosure,   we can easily limit the area in which they can  move by adjusting the radius of the circle. Now, all those things we've added so far are  great, and they really make the game come to life.  However, it's becoming clear that our old  and small island won't be able to fit everything.   There's barely enough space to move around and  I believe the idea of having floating islands in   the sky itself is kinda bad. The reason is that  there is a lot of unused empty space around,   and so I've made the decision to shift from  that to plain terrain, which gives us a lot of   advantages in terms of map design. Of course, I've  also added collisions to prevent the player from   going outside the map and in the future, we might  even add some mountains or something like that,   so that the map boundaries are not just some  invisible walls but part of the environment. Now, since this part of the map is where players  will spend most of their time growing crops,   raising animals, fishing, building, and  so on, my main focus was to make sure   that there's enough space for all of that  and that the place looks nice. So next, I began designing the map using both the assets  we created earlier and some new ones as well.   And after placing everything in the scene,  I brought back the bird spawner and added   some chickens around. Now, it's important to  note that these chickens won't remain here forever. Because even though you'll see them and  other animals on the farms of other characters,   if you decide to raise animals to get eggs, milk,  and so on, you'll have to purchase your own. But now, let's take a look at the map. Up  here at the top, we have the player's house, and   this entire area surrounded by the fence is  basically your farm. Now, as you can see, it's not   in great shape. In fact, the fence is all broken,  some parts are missing, the grass is overgrown,   and this "FOR SALE" sign makes it clear that  nobody has been here for a while. And this ties   into the game's story, which we won't get into  right now, but at the beginning of the game,   this cozy place in the middle of the forest is the  one players will buy to start their journey. As we   look around the farm, we can see some dirt roads  and one of them will lead to the town, while the   other will take you to the mines in the mountains.  And those areas will be created in separate scenes later on. If we look up, we can also see a small  lake, but the main one is down here. This is where   you'll do most of your fishing, at least until  you gather enough resources to build your own   boat and venture out to sea. And to add some  visual interest, I've added some water lilies   in the lake, some water animations, and placed  a light pole near the pier to create those cozy   vibes during nighttime. Around the lake, there are  loads of trees, tree trunks, mushrooms, rocks and   so on — resources that you'll be able to collect  and use to craft different items. Moving down from   here, we can find another path that will lead to  the beach, and on the left side, we have some old   rail tracks. Now, I still need to figure out where  to place the train station, probably not on this   part of the map, but once it's set up, players  will be able to use it to send the fish they catch   out of town and sell it in the big cities. It'll  bring you more money than just selling locally,   but that's something you'll get to do later on in  the game as your fishing business grows. You'll   also be able to produce and sell all sorts of  canned fish, which is part of the entire fishing   system I'm really excited about it, and we'll get  into the details really soon. Okay, at this point, the scene is already looking pretty nice, but  since in this devlog I decided to focus more on   visuals, environment, and the overall world of the  game, I wanted to create some effects to add more   depth to it. And I began by creating some clouds  using Unity's particle system that spawn at the   edge of the map, move diagonally across it, and  disappear when they get too far away. I also added   some flying leaves in the scene, swaying and being  pushed around by the wind, and these effects are   nothing crazy, but they help a lot at creating a  nice atmosphere. From here I could've gone crazy   with all kinds of effects like fireflies at  night and dust particles when you walk around,   but those felt more like polishing touches,  and I didn't want to get too much into that just yet. However, I did want to create one last  effect to give a glimpse of the weather system   we'll implement later on: a rain effect. And  it took some time to get it to look just right,   but I'm really happy with the end result.  The raindrops look great, and there are also   animated splashes when a drop hits the ground,  which helps create that sense of a 3D world. Now, having a cute art style, a good  color palette, and nice visual effects   are great ways to make the game feel cozy and  inviting, which is what I'm aiming for. However, something is missing, and that is music and  sound effects. Because no matter how fun or   good-looking a game is, it's the audio that  really takes it to the next level. The problem   is... I don't know how to make music. There is  some good news because after the last devlog,   someone who is actually part of this community  offered to help with that! We've been talking   a lot lately, trying to figure things out,  and hopefully, in one of the next devlogs,   we'll start seeing some actual progress with  that. I'm really excited about this because adding those will  be a huge step in bringing our cozy game to life. But if we have to wait a little bit for  music and sound effects, there is something   for which we don't and that is the official  Steam page of the game!  This is so exciting to me because I've never gone through the process of making one before. So, being my first time,   it was a little bit complicated, and getting the  artwork and everything ready took a while, but   I'm incredibly happy to finally have it out now.  What that means is that if you like the concept   of the game and would like to play "Hooked" once  it comes out, wishlisting it on Steam is honestly   one of the best ways to support and motivate me  to keep going. The first link in the description   takes you straight to that page, where you can add  it to your wishlist and also read more about it. Now, this game is a passion project, something  very special to me. So I'm doing my best to make   sure that it's coming along nicely and that you  guys like it. That's why sometimes I get stuck   on perfecting the smallest things because I'm  trying to get the best out of me. The game has   come a long way since the last devlog, though,  when all we had was basically a mockup. There's   been a lot of trial and error, especially with  the art, but I'm really happy with how it looks   now and excited for what's coming up in the next  devlogs. There's more progress that has been made   than what I've shown in this video - and here's a  small sneak peek of that - I just didn't want this   video to get too long, so I've decided to save  the rest for the next one, which will come out   really soon. Now, working on the game comes with  challenges because I'm doing everything on my own,   from taking care of the art, coding, game  design, writing, YouTube, and so on. I love it,   but it takes a ton of time to get everything done.  And that's one of the reasons why it took me so   long to release this devlog because, ideally, I  would like to publish at least one every month.   It can be frustrating at times because I have so  many ideas that I want to implement and work on,   from gameplay systems, story, visuals, audio,  and because I really love this game, I would   like to be able to have enough time to work on  those and make sure that the game is going in the right direction. But I can't do that alone. So for those of you who are excited about "Hooked"  and would like to support the game, I've just launched a Patreon page! Supporting me in that way would mean the world to me. It would allow me to dedicate more time to develop "Hooked" and turn   what we have now into a fully complete game that  we can play and enjoy. Because, at the end of the   day, that's the goal. Now, for those of you who  decide to join the Patreon, I've included a bunch   of benefits like early access to videos, exclusive  access to scripts and art assets, special roles   on our Discord server, private chat rooms, access  to polls where you get to vote on gameplay ideas,   art, music, and on top of that, early access  to beta versions of "Hooked" as soon as I   start releasing them, which will be very soon. So  you'll be able to play and enjoy the game, while   providing feedback and helping its development.  I've also added some higher tiers that I don't   expect anyone to choose, but if you do, you'll  be able to actually work with me to create and   name custom fish species that will be added to the  game or even work on a custom NPC character, from   character design, name, personality, along with,  of course, having your name in the credits.  Now, the number of people who can join these higher  tiers is limited, so just know - they won't be available forever. And if you decide to join the Patreon I just want you to know that you have my deepest gratitude. By doing so, you'll be helping me bring "Hooked" to life and create the best   content I can for everyone. Thank you very much.  But if joining Patreon isn't something you can do,   that's totally fine. Just giving this  video a like, subscribing to the channel,   or wishlisting the game, those are also great ways  to support me and my work. You guys have been very supportive here on YouTube, Discord, Twitter, and Reddit as well, always providing me with valuable   feedback and motivating me to move forward. For  that, I can only say thank you. I would love to   hear your thoughts on all the progress we've made  so far. If you have any feedback or ideas, please   let me know in the comments bellow because I  answer to each and every one of you. And... don't   forget to wishlist the game! Thank you guys for  your time, I appreciate your stay, and much love!
Info
Channel: Lost Game Dev
Views: 130,288
Rating: undefined out of 5
Keywords: gamedev, development, programming, pixel art, lost game dev, devlogs, games, indie games, 2022, first game, game jam, new, dev, not a real game, Not A Real Game, devlog, first game ever, indie life, there is no game, david, beginner, professional, my game, indie gamedev, game development, unity, motivational, how to, lgd, game dev, how to make your game, make games, hooked, devlog 2, #2, fishing game, isometric game, isometric pixel art, indie game, development progress
Id: NlmKvV3_pgU
Channel Id: undefined
Length: 22min 9sec (1329 seconds)
Published: Mon Aug 21 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.