DOGGO can now clean up his own mess! That's a good boy!
Worked a lot on polishing the grabbing system. And making the trash system more dynamic. Fixed a couple of bugs as well.
First off, one was able to influence the players path towards the highlighted item if keys were pressed at certain intervals. Had to write small new functions to get this working correctly. You can also see that there's now a small animation a piece of trash has been thrown away in the bin. Everything works way more smooth now.
Then we've added a small new obstacle for DOGGO, some moving boxes convieniently placed in the back yard. Since a lot of the main programming has been done, there's mostly level design that we need to fix up, and of course, different events both interactive and cutscenes.
In the past couple of days, we've been working on improving the feel to Doggo's mechanics in terms of camera, movement and jumping to make sure it's as fluent as possible, as well as making it's animations flow a little bit more cleanly.
Apart from that we have two new mechanics added, one where you can actually throw out trash that's laying around the house (video 1) and the very first real cutscene (video 2).
The trash mechanic is an adorable little mechanic that we just really wanted to include in our project. It gives the player some more options and interactivity when in the house. We are thinking of maybe including certain achievements for certain tasks but we are not at a point in development where this is all clear yet. Overal I think the trash mechanic looks and works really neatly and it's a nice addition to the environment, and again the players interactions with this environment.
Then we got the cutscene where we once again fully use the abilities of the Cinemachine virtual camera. Using this it's really easy to switch between cameras and add small effects. The Unity Timeline component was really useful for this operation as well. With this cutscene we also made sure there's a general area manager and different area components that communicate what happens where and if a cutscene like this should be initiated. If this is the case it plays a cutscene and makes sure it remembers that this particular cutscene was played.
Doggo can now go outside! Not only that, the music changes with him once he does. With that comes a brand new lamp and a couple of small altered details to gameplay.
Doggo can finally leave his home and actually go outside, although, not far (yet). As you see, the music changes with him once he does and if he goes back inside the house, it turns more houselike again. We thought it would be a cool idea to implement this mechanic so we could bring more atmosphere to the game and it's individual areas with one of the most atmosphere-defining components to videogames: music!
I wrote two scripts for this where there's one global areamanager holding things like functions and overal behaviour, and one Area class that can get attached to multiple empty gameobjects in the scene. These have colliders defining their areas and just like that we change music. I am thinking of implementing this same system for different things like cutscenes when first entering a certain area or changing camera angle in a way so different places really feel more different. Maybe even adding lighting when changing scenes who knows?
With that I've also done quite some tweaking to the player character in terms of code. There were a few minor bugs I really wanted gone and I'm happy to say that Doggo as a character plays close to perfect now. There is still some stuff I want to do for him but most of it is in there!
Then, we also got a lamp. First I was thinking of using SpriteShape to make the splines move according to whenever Doggo hit the lamp passing the velocity he hit the lamp with. Turns out I had to do a lot of research and it simply seemed out of scope as of now. Might return to it later if time allows me to. For now, I just went with some simple distance joints which already delivers a neat effect. :)
Cutscenes! Yes cutscenes! Though not always popular with the general audience I personally learned how to easily implement the Cinemachine and Timeline components in Unity in a way that we get smooth, dynamic cutscenes when a certain event is triggered. For example, Doggo bringing the ball to his owner.
As said before, I implemented cinemachine in a way to correspond with the animation of Doggos owned. I've experimented quite a bit with both cinemachine2D and Unity Timeline. Never tried working with timeline before but it's quite convenient! Expect more timeline/cutscene/cinemachine related things in the future. So far I love all of it!
Doggo can now proudly carry items with him by simply grabbing them! This will contribute a fair amount to Doggos gameplay. Since it's all dynamic expect a lot of objects to be draggable. Sometimes these objects will be used in a sense where Doggo needs them to progress, or as part of a puzzle.
There are several things to note about this mechanic. First of all, even though I am quite pleased with how it turned out, there's still some polishing and cleanup to be done around this mechanic. Nothing major but some small tweaks in terms of animation when a object is grabbed and it's exact behaviour.
With that I want to talk a bit about the highlighting of objects. As you can see there is some color transitioning going on which I thought was a nice addition to grabbable objects, as well as made them stand out more. You can see that the most nearby object gets highlighted. This hold true even when an object is already grabbed. We're not sure yet whether to keep this in or turn off the highlighting altogether when an object is already grabbed. If we would objects that won't be around everywhere could be hard to miss if another object is already grabbed. If we do leave things like this things might get slightly confusing for the player. Still thinking this over.
Then there's the overal grabbing part. I wanted it to move smoothly with character movement which is still a work in progress, but overal I think results aren't too bad so far. I also thought it'd be cool if the ball (or other grabbable components) could collide with other item objects (like the broken vase or the couch) that Doggo himself could not. Makes items feel a bit more "in scene" even when Doggo can't stand or collide with them.
There are interactable events coming for Doggo. As mentioned previously these grabbables are not only for fun, some of them will be needed to progress through the game by fixing puzzles, acting as keys and much more. Stay tuned for next update will most definitely feature this first interaction.
Doggo now has a quite fleshed out living room section where you can see his owner hanging out on the sofa. With that a lot of lighting has been added. Did some very precise tweaking on the Cinemachine 2D component as well, which explains the better camera movement.
It's been a little while since last time so we're sorry for the LateUpdate(). However there hasn't been much to show recently so we thought we'd take our time instead of filling this page with a large amount of tiny updates per day.
First thing you might notice is the new and improved camera movement. This is all done through Cinemachine! No code even though I personally expected I'd have to write something for the camera to look ahead of doggo. Luckily I had time to actually look ahead myself and mess with different settings to find that there was literally a... lookahead option. Must've gone over my head before but hey now it works and with some tweaking I'd even go as far to say that it works beautifully!
With that we've also made sure the room looks a bit more lively. We added a couple of props (more to come) as well as DOGGO's owner lounging around. Aside from the very cool art made by my partner I also put a lot of time into experimenting with and in the end implementing lighting. What I ended up doing was simply making sprites that somewhat resembled the way objects such as the phone and TV would emit light. This way with some color variations and some small scripts we managed to make this particular part of the scene have it's own feel and vibe.
Doggo now has some background music in his home, as well as smooth camera following.
Time for some Cinemachine 2D! I've been wanting to mess around with this component and I love the results so far. Sure it will still need a lot of tweaking as well as me figuring out how we are going to implement this in a smooth transition when moving to different parts of the game (going outside for instance needs to be way less zoomed in). It's definitely still a work in progress but I'm excited to see how much we can do with the easy to use Cinemachine2D.
With that you might also have noticed that there is a cute little background track going on. Composed and mixed by yours truly. I thought this game would also be a nice opportunity for me to work on my music skills, so I took it. I plan to keep things simple and cute for the largest part of this game but we'll see where things go from here.
Doggo can now break vases! Hooray! If you've always wanted to vandalise your home through the eyes of a dog, now you can.
In all seriousness we've been trying to polish the physics and implement some of the art assets as you can see in the video. We've had to talk about what fits where and how but in the end I feel like we're developing a really nice, cosy style that isn't seen in too many games. More assets are still in the works and being tweaked, as well as gameplay mechanics.
DOGGO now jumps according to his rotation on the Sprite Shape. Because of this he will get different velocity based on at what angle he's exactly standing on the ground. Also added a small script that makes him rotate back to his normal position over time when in the air. This doesn't only make the landing smoother, but has a really nice visual effect as well.
In this little video you'll see two new raycasts. One is green and the other is red. If you are curious about the cyan one, read the info from November 2nd. :) The green raycast simply returns a normal so we know at which angle the dog is currently standing. This has a small delay (as seen by the small spaces in between the raycasts) so the dog will not try and read the raycast right after he jumped for a second time. The red line simply shows the angle the dog jumped at.
Fun little note though, as of now DOGGO only has the first few frames of his jump going in that angle while the rest of the jump (when holding the jump button) simply move him more up. Still tweaking a lot about the physics and not sure if we want to keep this in or change it so that the held jump will also move DOGGO in that direction.
Finally really got to work with Sprite Shape and I'm even more impressed than I thought I'd be. It's ridiculously easy to change tiles and tilepaths to your liking. With that I've also implemented a simple script for the player to be able to move along the actual curve of the Sprite Shape component, as showcased below.
This was done with a simple raycasting script where the player will raycast down to the ground whenever grounded. From the RaycastHit2D we grab the normal and rotate our dog accordingly. This makes for an already pretty smooth effect especially when taking the dogs animation into account. Although it's not yet to my liking completely, things are slowly but surely coming along nicely. With that a lot of art has been added as well which will absolutely be implemented in a future update.
Babysteps, but we're getting there! We've been working on both the Animation and 2D physics for the dog, as well as trying to implement them as neatly as possible.
As you can see we tried making the animation really sync with what the dog is doing. This way we're trying to make DOGGO feel silky smooth when playing through the game which is something that I personally always really enjoy. Now I have always loved the Animation and Animator Components in Unity and once again it was a GREAT help. Accessing different variables through script and making them flow nicely with the extensive amount of options in the Animator component is always a neat way of working.
Obviously this is still a work in progress and small details to this are likely to be different in the final product. There's also part in the video where DOGGO jumps high at the start, and then does a couple of shorthops. This is completely intentional! We thought giving the player the option to hold jump to jump higher. This way the player has more control over the dog while also having more options to choose from during different sections in the game.
A Unity challenge! Sounds like a lot of fun. Let's see what we can make of DOGGOs world in a small amount of time, using the awesome new Unity 2D features!
So the brainstorming starts. Talking led to a tiny sprite animation that we both fell in love with:
This made us go in back and forths about this "dog game" and about the "doggo". Hence the title. Finally we decided on what we wanted. A platformer that's mostly about an exciting environment, cute animation, small puzzles and of course, clean and most importantly fun platforming sections!
Making babysteps towards something playable in terms of both animation and mechanics. We want the dog to feel really nice in terms of both animation and gameplay. Here's a cute bit of animation to showcase the style we've been going for:
We will try to update you on this project as much as possible so be sure to follow our social media and stay up to date on this page! :)