Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411423 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 19, 2024, 04:13:00 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsWobbledogs
Pages: 1 ... 24 25 [26] 27 28 ... 37
Print
Author Topic: Wobbledogs  (Read 232016 times)
Bricabrac
Level 2
**


Fail again. Fail better.


View Profile
« Reply #500 on: June 15, 2017, 02:26:53 AM »

Your devlogs are always interesting. And a bit creepy.
As for your doubts regarding gameplay features, have you ever played the Creatures series? It has many elements you talked about, like genetic injections and a simple way to teach commands to your creatures. It might have some interesting ideas to recycle, maybe?

(For example, I remember you teach a command to a creature by clicking on an item while typying a word. Through repetition, the creature learn to associate the word with the command.
Sometimes.
They were pretty stupid.)
Logged

Selling Sunlight - Wandering Merchant RPG
0koko0
Level 0
*


View Profile
« Reply #501 on: June 15, 2017, 04:30:29 PM »

hello, i read your entire devlog a few days ago and i really like how this game's coming along!
and you should take a look at viva piñata too, wobbledogs reminded me of it because it also has a cute and colorful aesthetic.
Logged
ActualDog
Level 3
***



View Profile WWW
« Reply #502 on: June 20, 2017, 04:54:22 PM »

Great work as always.

I really want there to be dogs that have less smarts, it would remind me of my own dog  Cheesy

I have a design for procedural personalities, I just haven't gotten around to implementing it yet. Hopefully I can make it work!

It'd be interesting if they could squeeze a little, changing their scale a bit, to try to pass through places smaller than their bodies! I think it would add to the cartooness of it and is also something that sort of actually happens considering fur and soft tissue and all.

Anyway, looking good!

I love the idea but that's not super simple to put in since ultimately everything here is just using rigidbody physics. There are probably some angles I could explore but I probably won't end up going down that route. Fun to think about though!

I'd actually prefer to see the bamboos/trees to bend instead, but simply making the dogs get frustrated and give up is fine too.

I'd like to have bendable plants but I'm gonna have to be fairly careful with that so I don't eat up a ton more of my physics budget. I'm already a little worried that the way I'm doing trees is too expensive if there's a bunch. Might explore some shader jiggle for stalks and smaller plants.

Your devlogs are always interesting. And a bit creepy.
As for your doubts regarding gameplay features, have you ever played the Creatures series? It has many elements you talked about, like genetic injections and a simple way to teach commands to your creatures. It might have some interesting ideas to recycle, maybe?

(For example, I remember you teach a command to a creature by clicking on an item while typying a word. Through repetition, the creature learn to associate the word with the command.
Sometimes.
They were pretty stupid.)

Thank you! I'm definitely aware of Creatures but never actually played it. tbh I've been avoiding learning too much about it so I don't unconsciously copy it, but I'm probably overthinking things and it would maybe be a good idea to look into it and see what I can learn.

hello, i read your entire devlog a few days ago and i really like how this game's coming along!
and you should take a look at viva piñata too, wobbledogs reminded me of it because it also has a cute and colorful aesthetic.

Thanks! I've never played it but I've poked around at some reference pictures at points to see what I could learn from its art style. It'd be cool to check it out at some point though. I've never owned an xbox so it's just never really been something I've had an opportunity to play.

---

Hmmm so let's see. Decent amount of plant progress. First of all I made it so that when dogs chomp onto trees they shake, when foliage gets shook it drops leaves, and I did a real pass at plant life so that if dogs bite 'em too much they break apart.



This also means that the game finally has sticks in it. Classic dog interactable.

And then I played around with getting trees to grow procedurally rather than just all at once.





Different tree types are defined by different spacing and growth rules and different sets of modular tree parts (I only have 1 for testing right now but the system supports whatever I want). Branches don't grow/expand if there's no space so you can get some fun variations. It's nothing too complex but it's enough to support a decent variety of trees and it's already fun to play with even though the parameters are limited.

Lastly, I took a pass at updating pathfinding to use boxcasts instead of raycasts. This has turned out to be a bit of a rabbithole. Not because my solution didn't work, the boxcasts fixed what they needed to, but fixing these bugs sort of exposed a whole mess of other issues that I had never really run into before because the object density was lower.

This is basically my issue:



How is a dog supposed to interact with this? Which plants are available for biting? Which parts of available plants are actually available for biting, and from which angles? Also, at what point should a plant start blockign line of sight? Does it need to be a certain height for that? A certain thickness? If the dog's standing directly in front of this little grove and doesn't need a specific target, none of this is a huge deal to figure out. If the dog is two pens over and decides it wants to bite a random plant, however, it's super not trivial to figure out which one of these it can bite and where specifically it needs to go to bite it.

So... I've got some things to think about. There are lots of ways to solve problems like this but I need to decide which is best for me and which trade-offs I'm willing to live with. All I can say for sure right now is that my current approach to pathfinding and targeting is pushed past its limit now that I'm explore denser groups of objects (which I'd really like to support). Even if my answer to all this is just that I can't support dense groups of objects, I'd like to explore things a bit and take a firm stance so I know my limitations going forward. Hopefully this is something I can figure out soon!


Oh, and one more thing. I gave a super quick talk last week on the genetic algorithm and it just got put online. Nothing super new if you've been following this devlog closely, and I simplify things a bit, but it's probably the most concise I've ever been when talking about that stuff before so in case anyone's interested:





I also highly recommend checking out the other talks from that night (they're on the same channel). Some really interesting stuff!
« Last Edit: June 20, 2017, 05:12:53 PM by ActualDog » Logged

ProgramGamer
Administrator
Level 10
******


aka Mireille


View Profile
« Reply #503 on: June 20, 2017, 04:59:47 PM »

Quote

Too adorbs.
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #504 on: June 21, 2017, 12:58:12 AM »

I can't believe we are 26 pages into this devlog and nobody thought of sticks before! Shocked
Logged
jctwood
Level 10
*****



View Profile WWW
« Reply #505 on: June 21, 2017, 01:06:57 AM »

Sticks change everything.

I love the growing trees, also really great talk ActualDog!
Logged

ActualDog
Level 3
***



View Profile WWW
« Reply #506 on: June 22, 2017, 06:09:43 PM »

Too adorbs.

Their ability to fall asleep in pretty much any situation is one of my favorite things about them right now. Whenever I get around to personalities, I wanna have some sort of "good sleeper" trait that stops them from being woken up by noise or jostling.

I can't believe we are 26 pages into this devlog and nobody thought of sticks before! Shocked

lol, I know! You guys are slacking...

Sticks change everything.

I love the growing trees, also really great talk ActualDog!

Thanks!

---

I'm making some pretty good progress towards solving my object density issues. I've got an, uh, interesting strategy but I'm feeling fairly confident so far.

Basically, I'm melding my existing pathfinding and association node system with unity's navmesh system. Until now I've rolled my own pathfinding and navigation system. Dogs drop nodes as they explore their world and they keep track of objects and locations they've witnessed. This means that dogs each have a unique perception of their space and it can often be inaccurate. They might think that an area has food even though all that food has since been moved, or they might not know about a new room you just built because they haven't been near it yet.

I think this feature is cool, but it presents some issues. A big one is that pathfinding is a little tricky. Since their internal "navmesh" is dynamically generated based on their POV, there are lots of edge cases and those edge cases multiply like crazy the more dense the stage layout is. This model works well for getting dogs to keep track of what locations and objects they know about but has proven super bad at getting them to smoothly pathfind and route.

So, dogs still keep their internal models as before, but now instead of pathfinding using their internal sets of nodes, they pathfind using a central, shared navmesh that's guaranteed to be objective and correct about the state of the world. Dogs still can't interact with objects or locations they don't know about, because they only consider nodes and objects that they have internally mapped and connected to their POV of the space, but once it comes time to actually move to a specific location, a shared navmesh should keep things much more accurate (and also much easier to debug).

Once I decided on this model, my next step was to figure out the best way to implement it. Since Unity already has a navmesh and pathfinding system, it seemed like the right call to see if I could hijack that rather than implement my own from the ground up. The first limitation I ran into was that Unity doesn't currently support live navmesh updates, something I absolutely require. However, I found an unreleased version of some navmesh system updates that allows for this(https://github.com/Unity-Technologies/NavMeshComponents), and so far it all seems to be working well and relatively quickly.

Since I'm only using the navmesh system to generate a mesh and find a path, it wasn't too wild to get it hooked up to my existing movement system, though there was some refactoring involved.



There's been a lot of bug fixing involved in this update now that I'm really stressing my navigation code, but there's one issue in the above gif that's unrelated to my own implementation of things, and that's that the path Unity generates hugs the navmesh corners super tight.

This isn't necessarily a problem in general use-cases of this system, but since I'm moving things with inaccurate dog physics, hugging geometry makes it even harder to accurately follow a path. Rounding corners becomes a nightmare.

BUT, after thinking about it for a bit I came up with a way to smooth paths away from corners, and so far it seems to be working super well. The basic idea is that I loop through the generated path and look at groups of 3 connected points. I try to move the middle point outwards and as long as the new point is still on the navmesh and has the same closest navmesh edge as the original point, it should theoretically be safe.

I don't know if that explanation makes a ton of sense, but hopefully these images demonstrate what I'm doing.







The nodes are the new, smoothed, path, and the red lines show how the navpoints were pushed outwards. The solution seems to be holding up so far even with denser geometry like in that last image, and it's doing a great job giving dogs easier paths to follow. They get stuck way less often.

This refactor isn't done yet, I still have to figure out a good way of dealing with pipes and there are some bugs I have to fix, but it's already feeling better than what I had before so I'm calling this a success! After this I still need to give dogs some more ways of turning around (there are certain configurations where they basically get stuck forever), but I'm feeling very good about all this.
« Last Edit: June 22, 2017, 06:52:29 PM by ActualDog » Logged

ActualDog
Level 3
***



View Profile WWW
« Reply #507 on: June 29, 2017, 05:44:31 PM »

Phew, lots of progress, ok let's see.

Foliage now disappears after dropping too many leaves. If it's attached to a branch it'll regrow but if it's on the ground it's gone for good. This stops the pen from getting overly cluttered when trees break and it's also a nice visual.

I also put fruit into the game. It grows on trees every so often and falls out when its owning foliage goes away, or randomly when a dog shakes the tree at all. Dogs can eat it or toss it around or whatever they wanna do. Eventually I'll want some way to turn fruit into another plant but I'm fine with where it's at for now.



I also fully implemented plant save/load, which was a bit time consuming because of the object complexity but it's working fine now. Another reason to be happy I started figuring this stuff out now rather than waiting on persistence work.

Since I've been dealing with routing updates I've also fixed a ton of pathing and behavior bugs/weirdness (like targeting fruit that's still in a tree and out of reach or not ending a path early if we come in contact with the target before we expect), so that's just generally feeling much nicer. I also got pathfinding to dynamically update the agent radius to match the dog doing the path request.



I was testing that here but there was another bug (again, now fixed) making dogs walk into walls. Bad in context, good as a gif.

I also threw motion blur back into the game with the caveat that it turns off temporarily whenever the camera moves. Good compromise I think because it looks nice when dogs are wobbling about but was making me motion sick when I'd rotate the camera around.

Plants aren't done but they're in an acceptable place for now so I'm gonna move on from them. Very happy with what they've added to the game and with the larger pathing changes they forced me to make.



Finally, I made some changes to dog turning. I was having trouble getting a good gif of this but essentially dogs can now do planted turns using either their front or back legs depending on if they have blocking objects nearby. If there are blocking objects on both sides of their body, they just buck instead, which should eventually move 'em somewhere reasonable. This means they get stuck way less often and they're much better little navigators when in compact spaces!

There's still one thing I have to do for the pathing refactor but I don't have a great plan yet. The new system doesn't work with pipes and it's not super straightforward to add support for them because where they take dogs isn't really deterministic. I might just have to store linked rooms and then re-plan paths every time a dog moves between them. Definitely solvable, I just have to figure out the right strategy.

Anyways, I'm ending the post with a nice little all-inclusive gif that has dog movement I'm very pleased with, as well as a link to a bonus gif because the source file is on my laptop and I'm too lazy to power that on and re-upload.

Logged

JobLeonard
Level 10
*****



View Profile
« Reply #508 on: June 30, 2017, 02:33:16 AM »

It's like one of those gifs that makes you feel depth perception by gently moving back and forth around a central pivot.
Logged
jctwood
Level 10
*****



View Profile WWW
« Reply #509 on: June 30, 2017, 04:04:17 AM »

I love those leaf particles and cannot get over how nice the trees look. Is there any ambient occlusion happening?
Logged

ActualDog
Level 3
***



View Profile WWW
« Reply #510 on: June 30, 2017, 08:47:50 AM »

It's like one of those gifs that makes you feel depth perception by gently moving back and forth around a central pivot.

haha yeah that's what I was going for. Pretty pleased with how it came out since I didn't have a script ready and just dragged the camera by hand.

I love those leaf particles and cannot get over how nice the trees look. Is there any ambient occlusion happening?

Thanks! I was trying to keep their first pass graphics fairly prototype-y (they're just textureless cones and spheres right now) so I'm happy they look as nice as they do. I have AO turned on in the unity post FX stack and it really makes a difference, especially with objects like these with overlapping geometry. It looks even better without the gif compression.
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #511 on: June 30, 2017, 10:52:59 AM »

It's like one of those gifs that makes you feel depth perception by gently moving back and forth around a central pivot.

haha yeah that's what I was going for. Pretty pleased with how it came out since I didn't have a script ready and just dragged the camera by hand.
Could be a cool screenshot feature! Well, export-to-gif feature
Logged
ActualDog
Level 3
***



View Profile WWW
« Reply #512 on: July 03, 2017, 03:35:39 PM »

It's like one of those gifs that makes you feel depth perception by gently moving back and forth around a central pivot.

haha yeah that's what I was going for. Pretty pleased with how it came out since I didn't have a script ready and just dragged the camera by hand.
Could be a cool screenshot feature! Well, export-to-gif feature

Yeah, it'd be super nice to have stuff like this eventually. Mostly depends on how efficient I can get an internal gif exporter to be. What The internal one I'm using to avoid missing moments right now is ridiculously slow, haha.

---

Tiny update today. I have a strategy for pathing through pipes. It works for the time being but we'll see how it holds up. I think the underlying idea is sound but I might have to shore up my actual flow for it eventually--it's a little messy right now.

Anyways, the first step was to get the navmesh to stop flowing through pipes. Dogs shouldn't think they can navigate through them freely. They're non-deterministic portals. So pipe entrances and exits now have invisible blocking colliders that only affect navmesh generation and LOS raycasting (so dogs don't think they can walk straight at something on the other end).



The second step is to do what I already am for every path, use a dog's rough association node model of the world to generate a node path to the object we're trying to interact with.



This path has no issues moving through pipes (though it takes direction into account as appropriate), so it leaves me with me with a valid (although not very precise), path.

I then go through this generated path and check for pipes. If none exist, I just proceed as normal and generate a navmesh path to the target. If any do exist, however, then I stop at the first one and request a navmesh plan to that pipe's entrance instead. Once that finishes, I tack on an additional routing point to the end of the path that leads dogs directly into the pipe in question.



This gets the dog into the first pipe, but there's still one more problem to solve and that's figuring out the appropriate time to re-plan after exiting this pipe. To do that I add a callback to the last segment in the pipe we're trying to enter. The callback triggers as the dog leaves that segment, and that triggers a new coroutine that continuously checks the dog's current association node. Once the dog has a new, valid, node not associated with any pipes, we're allowed to replan to our stored target.



This works pretty well for now, but it's a little hacked together so I'm sure I'll have to revisit it again later. The main other issue with it is that the requested replan gets cleared very liberally to avoid stale data, which means there are lots of cases where the dog can lose its initial action before finishing the entire multi-step path. I'm ok with this for now since if it's anything super important the dog's AI should correctly get it to retry, but it'd be nice to have a little more safety built in there.

Anyways, that wraps up this routing refactor! Phew.
Logged

garfield_game_dev
Level 0
**


gamedev cat


View Profile WWW
« Reply #513 on: July 03, 2017, 03:40:10 PM »

i hate dogs.

why does this game not have cats instead? that would be so much better.

i'll even allow you to use my likeness if that's required.
Logged

-garfield
ActualDog
Level 3
***



View Profile WWW
« Reply #514 on: July 07, 2017, 05:51:54 PM »

Not a ton of updates today. I took the 4th off but otherwise I've mostly been fixing bugs and doing some prototyping stuff I don't want to show yet. Main new thing is that I made a decision to get rid of the transparent pen walls.



They were causing some weird graphical bugs (particularly with particles) and I actually really like the more contained feeling you get with opaque walls. Plus at this point I'm pretty sold on having lots of wallpaper and flooring options for people to choose from.

Anyways, other than that I just have a few gifs to drop off.






Logged

JobLeonard
Level 10
*****



View Profile
« Reply #515 on: July 07, 2017, 11:50:08 PM »


This needs a soundtrack
Logged
ActualDog
Level 3
***



View Profile WWW
« Reply #516 on: July 18, 2017, 04:25:23 PM »

Back again to bring you this important update.



After nearly 1 1/2 years of development, you can finally pet the dogs. For now it's fairly basic--it lowers their stress and anger levels as you pet them and they go through a little statemachine of movements the longer you keep at it. Eventually I think I'd like to do something with preferred body parts, dogs that like/disklike petting to various degrees based off personality, and I should probably add leg twitches in there as well for if you're hitting a sweet spot. I'm undecided so far if I wanna make petting reinforce behaviors the dog was just running or if that should be a separate "good dog" style command. Gotta think on it. I also want to add some legit cursors to this game at some point and I'll have something special for when you're patting a pooch.

In other news, I've started prototyping out some legit mechanics. I want to get a little further with it before I talk about it in detail, in case things don't work out (though I'm cautiously optimistic), but here's a preview.



I also did some brief work to make dogs feel weightier when falling. Essentially they just double their personal gravity when I detect they're for sure in the air. This makes flinging them around much more satisfying and they feel more in line with other objects physically, without sacrificing any of their ground movements.



And then finally, here's me playing catch with some fruit and stacking things on a heavy sleeper.





Hope to have more gameplay info soon!
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #517 on: July 19, 2017, 11:09:54 AM »

Will there be belly rubs?
Logged
Itharius
Level 0
**


View Profile WWW
« Reply #518 on: July 19, 2017, 12:23:34 PM »

Looks neat! Will these dogs receive some customization like color changing, clothes etc.?
Logged
ActualDog
Level 3
***



View Profile WWW
« Reply #519 on: July 20, 2017, 06:18:22 PM »

Will there be belly rubs?

Squeezed in a little work on context sensitive petting at the end of the day today! Eventually I think I wanna try giving dogs individual preferences for where they like being petted but for now it's just global. I don't know when I'll tackle it but I'm very excited to get a custom cursor in place for this. I think it's really gonna go the extra mile towards selling this interaction.



Looks neat! Will these dogs receive some customization like color changing, clothes etc.?

Definitely! I already have a lot of variation in what dogs you can get and I hope to add a ton more before this project's over. Clothes/accessories is definitely something I wanna try and implement as well at some point.

--

Other than the above petting update I've been working more on my prototype gameplay stuff. Still not ready to talk in more detail about it but hopefully soon.
Logged

Pages: 1 ... 24 25 [26] 27 28 ... 37
Print
Jump to:  

Theme orange-lt created by panic