Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411588 Posts in 69386 Topics- by 58443 Members - Latest Member: Mansreign

May 06, 2024, 10:50:04 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsWobbledogs
Pages: 1 ... 21 22 [23] 24 25 ... 37
Print
Author Topic: Wobbledogs  (Read 232942 times)
JobLeonard
Level 10
*****



View Profile
« Reply #440 on: February 18, 2017, 06:42:03 AM »





Relevant to your interests?
Logged
Torchkas
Level 10
*****


collects sawdust


View Profile WWW
« Reply #441 on: February 18, 2017, 10:33:41 AM »

so is this going to be more than tamagotchi with some machine learning added in? will there be a way to customize or change the manner in which a pet is going to develop? how deep will the individual characteristics go? if everything is just dogs it might get stale.

the project looks very interesting though. lots of promising stuff. you seem to know what you're doing, so I'm not going to pressure you too much into deviating from your vision.
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #442 on: February 18, 2017, 11:37:26 AM »

you seem to know what you're doing, so I'm not going to pressure you too much into deviating from your vision.
How gracious of you! I'm sure ActualDog feels much better now that he has your approval to do his own thing.
Logged
utkiupe
Level 0
**



View Profile WWW
« Reply #443 on: February 18, 2017, 01:20:04 PM »

I know I keep repeating myself, but this is the best devlog ever. The. Absolute. Best.
yep
Logged

I make games at Kiupe // check our future game: Eiwee - a game about playing and learning music
noeinz
Level 0
**


View Profile
« Reply #444 on: February 19, 2017, 08:10:10 PM »

real life reference for wobble dogs

http://i.imgur.com/cPXj1c3.gifv

Logged
ActualDog
Level 3
***



View Profile WWW
« Reply #445 on: February 27, 2017, 11:20:48 AM »

Fixation / Distraction sounds like a great approach. I love how expressive the dogs are already, just the mouth related actions add so much.

Thanks! It's already giving me much more interesting and readable behaviors and I'm feeling pretty confident about the direction.





Relevant to your interests?

Very much so! This is fascinating stuff, though it doesn't seem like it's done in real time and is probably not really actionable for me. Super cool though, I love seeing different approaches to motion.

so is this going to be more than tamagotchi with some machine learning added in? will there be a way to customize or change the manner in which a pet is going to develop? how deep will the individual characteristics go? if everything is just dogs it might get stale.

the project looks very interesting though. lots of promising stuff. you seem to know what you're doing, so I'm not going to pressure you too much into deviating from your vision.

Totally fair concern tbh. It's something I'm super conscious of and I have some ideas but nothing I want to talk too much about until I've had a chance to play around with them a bit. This is a super tech heavy project and I'm kinda forced to build up a lot of that stuff before it's possible to meaningfully implement or experiment too much with some of the mechanics I've been thinking of. I'd really like there to be more to this project than just having it be a dog sandbox but that IS actually my fallback option. I still feel confident that I can make that part of it worthwhile and interesting enough for the right crowd, but I'm going to at least try and make it into something more.

real life reference for wobble dogs

http://i.imgur.com/cPXj1c3.gifv

Haha, people keep sending this too me. Very accurate.

--

So, I actually don't have a ton of new stuff to show even though it's been a little. I only got in 2 real days of work last week because of some other things that came up and the week before was taken up mostly with some overdue bug fixing and performance work. I did get a few fun things in though.

Firstly, some fun emergent behavior. Dogs can hold things in their mouths now, so when wanting to grab hold of large stuff like food blocks they can inhibit their own movement and it's really fun to watch.



I also made a quick Valentine's Day gif but it got me thinking a bit and I'm considering something like this for autonomous breeding. Nothing's implemented for this at the moment but it'd be a relatively readable and reasonable way to get dogs to cross their genes. It's essentially the bite behavior with different particle effects. Though as people pointed out to me this looks a little too much like torrents of gushing blood and those hearts should probably float upwards.



I also did a huge fix to how grabbing works. The original code was buggy and temporarily turned off mouth/object collisions to avoid physics freakouts from clipping geometry but I was able to fix that stuff up and get much more accurate face/object snapping.

I encountered my fair share of bugs along the way though...





Since I've been doing work on grabbing objects, the dogs' lack of neck movement has become more obvious and I decided to go and fix that since it's been something I've wanted for a while now anyways. Since I went in and added rigging to the heads a while back, none of this was too crazy to do.

First up I added neck movement to emotes.



And then I went in and let dogs focus their heads on things that were of interest to them.



This actually added a ton IMO. It makes it more obvious what specifically the dogs are focused on (especially in the case of something low to the ground like an egg) and it makes them feel more alive and reactionary.

I think this gif below showcases it pretty well.



The fact that the head can focus on something even as the body falls away is huge because that happens so often with these guys. It gives a readability boost to something that previously was a little hard to interpret if you hadn't been watching from the beginning.

Anyways, that's about it for now. I still need to add more positive dog/dog behaviors to balance out all the biting and throwing that they do to each other at the moment, and I need to put in the personality system, but I'm considering doing another deep dive into their base movement again and overhauling all that before going any further with the rest of the game. I'm not excited about rebuilding that stuff but the dogs fall over a LOT right now, can't turn very well, and have low potential for varied motions at the moment. I have some promising ideas I want to play with and since I'm in this for the long haul, if I can spend a month now and get this stuff working better it's probably worth doing. We'll see...
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #446 on: February 27, 2017, 11:43:51 AM »

Quote
So, I actually don't have a ton of new stuff to show even though it's been a little.

<Proceeds to dump a boatload of amazing gifs>
Logged
TitoOliveira
Level 2
**



View Profile WWW
« Reply #447 on: February 27, 2017, 11:48:32 AM »

Quote
So, I actually don't have a ton of new stuff to show even though it's been a little.

<Proceeds to dump a boatload of amazing gifs>

Setting expectations 101.
Logged


ActualDog
Level 3
***



View Profile WWW
« Reply #448 on: March 01, 2017, 04:35:37 PM »

Quote
So, I actually don't have a ton of new stuff to show even though it's been a little.

<Proceeds to dump a boatload of amazing gifs>

Haha, well the # of gifs doesn't necessarily directly correspond to how much work I've done, BUT I'm glad I can continue to deliver quality content regardless.

--

So, I was all geared up to do a deep dive into base movement, walking, and stabilization, but after some experimentation I'm moving forward with a much cheaper fix for unsteady dogs for the time being.

I started to explore movement based entirely on joint motors rather than torques, which is still something I'm considering using for certain things later on down the line, but I think at this point it'd be too much reworking for it to be worth it. Especially since I'm not even sure if I can make it work.



I did get a pretty good gif out of this experimentation, but stability was an even bigger issue than usual with this approach and this is about as far as I got. In the above gif I locked rigidbody rotation in the x and y directions for the body segments. I was trying to get something viable in 2 dimensions before adding in the third, so none of this is really accurate to how it'd look in context. This game would be a lot easier to make in 2D...

Anyways, after trying a bunch of stuff I threw in some quick code to just try and correct body roll rotation while walking. It works very similarly to how legs try and stabilize, and it only happens if the body's rotation is off from its target rotation by < 35 degrees. Dogs will still get knocked off balance and fall over but they get some extra help in normal situations. The effect is unnoticeable but the dogs fall over way less often while walking now, which is ultimately all I was trying to achieve. They're still not the best, but they're good enough for me to be happy with this solution for now.

After putting this in I also tested them out on a slight incline and was super pleasantly surprised to see them be able to deal with it to this extent.



I also did a quick pass at the eating particle bursts that I've been using for way too long now. Finally replaced those default unity fuzz spheres with something nicer.



Doubt this is completely final (I want to add some offset wiggle to the bursts so they don't happen as uniformly at the very least) but it's very nice to get rid of the old ones.

And here's a bonus dog that I was very surprised to see being able to actually move around and exist.



The two major remaining things I want to do now are to finish my AI overhaul and add some new construction mode features. After those things are further along... I might be in a place to start legit experimenting with and getting in some more game-y mechanics without getting distracted by base systems that don't exist or don't function as well as they need to? Fingers crossed!
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #449 on: March 02, 2017, 02:13:43 AM »

I recall reading something about emergent robotic movement in the early nineties, mainly about how surprisingly effective very basic feedback with self-correction schemes turned out to be at adapting to, say, missing a leg.

Do the limbs in any way coordinate?
Logged
ActualDog
Level 3
***



View Profile WWW
« Reply #450 on: March 03, 2017, 06:24:11 PM »

I recall reading something about emergent robotic movement in the early nineties, mainly about how surprisingly effective very basic feedback with self-correction schemes turned out to be at adapting to, say, missing a leg.

Do the limbs in any way coordinate?

For the most part they don't really coordinate beyond walk cycle offsets, but I do have systems in place to get legs to compensate for weaker limbs or limbs that have given out due to injury or lack of strength, and those systems could probably work pretty well for missing limbs. I haven't played with those systems much in a while so I'm sure there's some drift but once I get into diseases and genetic defects I think I'll be able to get some real use out of them.

---

Quick update today. Been observing and cleaning up AI. My main goal right now is to get rid of Dog War, which is pretty much perpetual at the moment. As part of that I added some angry eyes and steam particle effects so it's easier to tell when a dog is mad.



Beyond just balancing, I do have some other strategies I'm excited to try in order to reduce inter-dog tension. Hopefully I'll be able to get some of those working soon without too much trouble!

I also captured this gif of a dog falling asleep while still holding onto another one, which I thought was pretty cute.



Just grabbing hold of an object (as opposed to biting or throwing it) is seen as a positive behavior internally at the moment, so you can assume they're friends.
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #451 on: March 04, 2017, 06:10:00 AM »

Check this out, it includes source code:

http://www.ouroboros.org/evo_gaits.html


Also:

http://rednuht.org/genetic_walkers/
Logged
ActualDog
Level 3
***



View Profile WWW
« Reply #452 on: March 10, 2017, 06:00:55 PM »


Appreciate the links, thanks! That first one is new to me!

--

As I've been tuning and fixing up AI I've been getting fun and unexpected little moments at a higher rate than before (this past Monday was the first day in a while where I wasn't completely frustrated with the state of this project), so I spent a little time setting up some auto-gif recording. I'm using this (https://github.com/Chman/Moments) as a base. It's capturing the last 10 seconds of the game at all times from the main camera's view, and whenever I want to I can hit a key command to save off a gif from that data. It's already saved me once and I'm very happy to have it set up! The only downside is that it takes ~5 minutes or so to save off a usable gif at a decent resolution. If I use the code's compression system at all it destroys my colors, so this is what I'm stuck with for now. The code is set up such that it runs threaded, so it doesn't slow down the game at all and it'll even finish processing after the game closes, which means it's not really a productivity issue at least, but I am passively on the lookout for better solutions.

Here's one of the situations I was able to catch with the above autogif system! A dog finished a block of food before it was ready to be done eating and so it got angry.



The situations I missed due to not having this system set up yet were both involving throwing cubes. First I saw a dog toss a cube and another nearby dog caught it mid-air. The second situation was where a dog tossed a cube and it landed stacked perfectly on top of another cube. Hopefully I won't miss any more things like this going forward!

In other news, I also added some visuals surrounding the "scared" emotional state.



The actual functionality for this still needs work but it's already way easier to debug now that I can directly see when it's present.

And then today I spent some time adding a new type of turning. I've been frustrated because dogs will often get themselves into positions where they're directly in front of an object but aren't exactly facing it. With traditional turning they tend to just bounce the sides of their heads against the object and fall over a lot. I needed a way for dogs to make tighter, more accurate turns.

What I came up with is very much within the realm of cheat physics, but I'm far beyond caring about that at this point and I think it's going to end up working nicely.



Essentially I joint their front feet to a board that only rotates along the ground axis. The idea's to give them a way of pivoting without falling over.



I can then have the board steadily change its target rotation towards the angle we want, and the dog kinda bounces along with it. The above gif was taken before I had added additional back leg control, but I now also give their back legs some directions to kick off a bit to help with the torque and minimize that initial "I'm being dragged" effect you see when the rotation first starts.

In practice it's not really any more egregious than their current turns (it looks nicer in a lot of cases). If you look closely you can see some of the dogs doing it here.



Dogs only do this kind of turn if they're within 5 meters of the object they're trying to face. It still needs work before I'll be completely happy with how it looks and is implemented, but it's promising and already quicker and more reliable than what they were previously doing at close quarters (which was mostly getting stuck and falling down). Dog efficiency is at an all-time high.

Anyways that's it for now. Here is a dog that really likes its cube.



And here is a screenshot that I like.


« Last Edit: March 10, 2017, 06:11:21 PM by ActualDog » Logged

ActualDog
Level 3
***



View Profile WWW
« Reply #453 on: March 13, 2017, 05:44:53 PM »

Playing around with some graphics for base food blocks.



I've been thinking a lot about Scandinavian candies recently. Lots of gummies and little things with layers and fillings. They're just generally nice to look at.


I was considering going even more in-depth and adding physics to these things for some give but I think it's prudent to limit my physics expenditure where I can, especially for functionally simple objects, because the dog physics simulation is already expensive enough as is.

I'd love a nice variety of edibles eventually, and it was nice to sort of prove out a flow for adding a new one like this. I updated the eating particle burst effects to auto-detect the color of the thing they're emitting from and update accordingly, and I also finally went in and added a bigger burst for the last bite of something. A few other fixes and changes surrounding this stuff as well. The system will need more love when I really dive into content creation but it's at least a tiny bit more robust now, and I'm glad to be rid of the stock unity cubes.
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #454 on: March 14, 2017, 05:43:22 AM »

Oh god, it's finally happened. I started to narrate what I thought were the wobbledog's thoughts as I watched the gif...

"What's this? What's this? Is it tasty? Can I eat it? NOM! NOM!"

<it starts raining food>

"Yay!"


Your gifs are reaching critical levels of adorable ActualDog. Are you going to pay for my insulin bills?
Logged
jctwood
Level 10
*****



View Profile WWW
« Reply #455 on: March 14, 2017, 06:08:10 AM »

Wobble Dogs is definitely my favourite place on the internet just now. Having spent a lot of time fighting with physics recently I appreciate how clever the tied down turn implementation is. I love the giant candy food blocks too! I can imagine coming back next week and you'll have implemented an entire flavour system for procedurally generated candies with dog preferences over what they will eat. Looking forward to more, thank you for sharing!
Logged

Zorg
Level 9
****



View Profile
« Reply #456 on: March 14, 2017, 02:39:41 PM »

Candy as dog food suits the game perfectly. Smiley
Logged
TheLastBanana
Level 9
****



View Profile WWW
« Reply #457 on: March 14, 2017, 09:17:51 PM »

I saw this thread quite a few months ago and thought it looked neat at the time. Coming back now, I love the progress you've made and the direction you're going with the game. Everything about this is super cool! Your attention to detail really shows.

Makes me wish I had more time for little side projects of my own so I could mess around with stuff like this.  Smiley
Logged
supermega_peter
Level 1
*


cool


View Profile WWW
« Reply #458 on: March 15, 2017, 11:50:10 PM »

haven't checked in here for a long time. i can't believe the progress you are making! the dogs are so charming and full of personality

and yes for candy food, so good!
Logged

ActualDog
Level 3
***



View Profile WWW
« Reply #459 on: March 16, 2017, 05:44:51 PM »

Oh god, it's finally happened. I started to narrate what I thought were the wobbledog's thoughts as I watched the gif...

"What's this? What's this? Is it tasty? Can I eat it? NOM! NOM!"

<it starts raining food>

"Yay!"


Your gifs are reaching critical levels of adorable ActualDog. Are you going to pay for my insulin bills?

Haha, perfect. If people can look at the dogs and put thoughts to their actions, I've done my job!

Wobble Dogs is definitely my favourite place on the internet just now. Having spent a lot of time fighting with physics recently I appreciate how clever the tied down turn implementation is. I love the giant candy food blocks too! I can imagine coming back next week and you'll have implemented an entire flavour system for procedurally generated candies with dog preferences over what they will eat. Looking forward to more, thank you for sharing!

Don't give me any ideas!!

Candy as dog food suits the game perfectly. Smiley

Glad it's not just me! Excited to get some more fun foods in.

I saw this thread quite a few months ago and thought it looked neat at the time. Coming back now, I love the progress you've made and the direction you're going with the game. Everything about this is super cool! Your attention to detail really shows.

Makes me wish I had more time for little side projects of my own so I could mess around with stuff like this.  Smiley

Thanks so much. Attention to detail slows me down a ton but I hope it ends up paying off in the end. With something so focused on one specific entity it seems worth it to me.

haven't checked in here for a long time. i can't believe the progress you are making! the dogs are so charming and full of personality

and yes for candy food, so good!

Thank you! I'm trying really hard to keep momentum on this thing.

---

Nice beefy update today!

So first of all, I finally got around to putting in some visualization for when you grab something and drag it around. It was always super hard to tell where exactly a dragged object was in 3D space and I had this task on my list for a while.



My first pass got the basics in and it was functional enough. A cylinder model with a simple shader to fade alpha from the hit point to the origin that moves with the mouse, some highlighting on the first hit object, and a yellow circle around our collision point.

Polishing it up a bit more got me here.



The circle was impossible to see when put on taller objects, and it looked bad when it hung off the collision point anyways. Now the circle always stays anchored to the stage floor. The circle also changes size to reflect the held object's bounding box, and it eases in and out. And of course, the main beam is thinner. I'm pretty happy with this for now! I might end up thinning the circle a bit but I'm undecided. Gonna let it sit for a while and see how it feels. At the very least, this makes dragging things around way way more readable.

And then for the bigger change, I explored bounce removal. I've been irritated at my physics for a long time because things don't feel super weighty. I built this game at a sort of large scale (standard dogs are around 6 feet tall), which turned out to be a good decision in terms of being able to actually scale things down for puppies and tiny legs (physX doesn't operate well when scales are too low), but it also means that things fall slower than you expect because it's not clear how big the world is.

One thing that I felt I could actually address is bouncing. No matter how much I make my objects weigh, they still really love to bounce around on collision and it makes them look super light and floaty. I looked up this issue a bit to see how other people solved it and as far as I could tell it's just sort of a problem baked into PhysX. I read over some other solutions people had been using and came up with a relatively simple script to limit bouncing.



The basic idea is that it zeros out an object's y velocity if its value is greater than zero but less than its mass. There's more to it than that, just zeroing out y velocity every FixedUpdate() if it's within a threshold causes weird velocity shifts and other issues, but it's still pretty simple.

This change of course only limits vertical bouncing, it doesn't help at all with objects bouncing off of walls, but addressing this gets rid of 90% of the weird floaty physics cases in the game and I wasn't having any luck damping bounces in other dimensions (using this or other strats like damping velocity along the collision normal), so I'm very happy.

After getting this working with generic objects, I decided to try and apply this to dogs as well.



As you can see, there were some issues. It made it super hard for the dogs to stand back up after being knocked down. They'd try to push themselves up but their velocity would keep getting damped and they'd just flail around. The way the script works, this velocity damping only happens for a certain amount of time after a collision that I detect as something that's causing the object to bounce. If, however, I allow the damping to stop early in the case that the affected rigidbody no longer has a y velocity within the bounce threshold, then the bounces are still damped but controlled rigidbodies like the dogs can break out of that once they've stopped their initial bounce.



Not sure how visible this is to people who aren't me because there's no direct comparison gif, but after making the above changes dogs are still perfectly mobile but way more weighty than before! There are also some planted turns going on there, just FYI, which means feet are actually jointed to the ground sometimes. That's separate from this damping. A long time ago I had the dogs feeling weightier like this but I had to add springiness to their joints to solve other issues, and that caused them to be super bouncy. Now, however, I have the best of both worlds. They feel heavier but the springs in their steps are still in tact. I wish I had a better direct comparison, but you'll just have to take my word that this feels a ton better. Rest assured, they're still very wobbly, they just no longer feel like they have the mass of a butterfly.

That's about it for changes, but I did also want to share a gif that got me really excited.



I like this gif because it's a perfect example of the type of emergent behavior I'd love for this game to be filled with. I didn't program this situation into the game, and I didn't realize this could happen before it did. I'm basically playing fetch with the dog and it's just a result of my systems working together.
Logged

Pages: 1 ... 21 22 [23] 24 25 ... 37
Print
Jump to:  

Theme orange-lt created by panic