Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

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

April 19, 2024, 11:51:05 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsProject Rain World
Pages: 1 ... 95 96 [97] 98 99 ... 367
Print
Author Topic: Project Rain World  (Read 1443784 times)
jamesprimate
Level 10
*****


wave emoji


View Profile WWW
« Reply #1920 on: August 09, 2014, 09:08:26 AM »

I love it when devlogs get real like this, with people breaking out the the graphs and the log and the curve functions
Logged

JLJac
Level 10
*****



View Profile
« Reply #1921 on: August 11, 2014, 08:02:09 AM »

Oh, but the point is that after the plateaux it should become a 1/x type of curve, that approaches 0 but never gets to it ... I really love your graph tool! Which one is it?

Update 286
Today wasn't the best day, as I spent quite a lot of it messing with flight tickets and online payment and stuff. Still got somewhere though! Tied together some lose ends in the Tracker module, and fixed a few errors where it would throw null reference exceptions. Also made it able to call out to its parent AI when a creature is spotted, with a distinction between first time spottings and spotting a creature that it's already aware of.

With this a pretty cool mile stone is reached - the shared AI assets are done! That would be the Path Finder and the Tracker, which are AI modules that are going to be used by pretty much every AI creature. There's an asterisk after done, as they will be revisited to accommodate for the needs of the individual creatures, but they are done as far as they can be before starting on making the creatures. This means that the next step is a step away from these boring generic functions - now I can actually start creating some content! The first creature up is the lizard, I imagine. Stay tuned!
Logged
JLJac
Level 10
*****



View Profile
« Reply #1922 on: August 12, 2014, 08:08:43 AM »

Update 287
Lizard animations are slowly coming together. But also I spent 40 minutes chasing my own tail (WHHHHHYYYYYYY DOEEEEEEESSSSS THISSSSSS VARRRRRIIIIABLLLEEEE CHAAAAAAAAAAAANNNNGEEEE!!!?!?!?!?!?)before finding out that I had put a 1 instead of a 2 in a specific spot - the line was copied from another place and I hadn't gotten around to change that specific digit. By the time I found out I had commented out pretty much every line in the entire game, disabling physics, gravity, and the very force that holds creatures together. The game was reduced to some floating body parts drifting in and out through the walls. So then I had to repair everything after my furious bug hunt.

It's crazy how focused I get when something like that happens... Nothing matters except squashing that one bug.

Speaking of bugs, another old friend has returned: when enabling the lizard flip (when they turn 180 degrees on a flat floor) the good old behavior where they just LOVE to do that flip over and over has resurfaced. They'll see me, do a flip for fun, another flip in the other direction, then one more just for the hell of it, and then they need to do a last one so they'll actually face the correct direction before they start moving. It looks ridiculous. Giving the flip animation a pathing weight corresponding to walking seven times around the world doesn't seem to work, they just love the flipping all that much. Last time I came up with some weird solution where I wouldn't allow it to flip close to where it flipped the last time, but that was a hack, this time I'll try to find out what's actually going on...
Logged
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #1923 on: August 12, 2014, 09:06:14 AM »

another bug to squash you are turning into some rainworld animals Who, Me? the game is autobiographic?
Logged

jamesprimate
Level 10
*****


wave emoji


View Profile WWW
« Reply #1924 on: August 12, 2014, 07:55:59 PM »

id say thats a fair assessment
Logged

JLJac
Level 10
*****



View Profile
« Reply #1925 on: August 13, 2014, 11:34:46 AM »

98% autobiographic.

Update 288
Ok, got some good progress today, even though it isn't much to look at. Quite a lot of the lizard animations are in now - it's able to walk, climb, crawl, turn on flat surfaces, reach across gaps horizontally and vertically, and drop down to floors below it (though not very gracefully). Coming up is the ability to drop to pipes and grab them mid air, this always fails miserably as it is. I might have to nail the upper body to the grab spot for a few frames so the lower body can do a cool swinging motion before the lizard gains control and gets up on the pipe.

What's cool here is that the creature is made into a physical object with forces pulling it along, rather than just a ghost like sprite floating along. It's really fun already to throw spears at it and see how it tries to re-adjust and find new footing to continue moving.

The body physics are going to be cooler than in the old game. Whenever no body segment is inside a tile that's considered legal to that lizard, a "framesInLegalTerrain" counter is set to 0. When any segment is legal, it starts ticking.

If this "framesInLegalTerrain" is above 10 (numbers are subject to change/diversity between lizard breeds) the physics behave differently - it is assumed that the lizard is in total control of its situation, and the velocities of the body segments are slowed down each frame, and they aren't affected by gravity. The body basically "floats" around. If the value is less than 10 though, the body behaves as any physical body in the game, and can be tossed around the level. Basically I'm trying to get a good balance between the lizard being an agent and a physical body, where it's supposed to behave like a little bit of both.

In this gif I'm tossing a lizard around as it tries to traverse this courtyard - whenever I press a button it's pulled towards the mouse pointer. The idea is that it should be able to continue moving towards its goal despite being antagonized like this - it shouldn't get stuck or be unable to adapt to a new situation.

Logged
JLJac
Level 10
*****



View Profile
« Reply #1926 on: August 14, 2014, 11:10:39 AM »

Update 289
Lizard movement is now basically working as I intended it to. Dropping from ledges, grabbing, and all that stuff is in and reasonably cool looking for pink boxes.

Other than that efforts have been somewhat unfocused today - I've started many things and finished few. Flipping back and forth has been sorted by having the lizard have a counter set to something like 2 seconds when flipping, and during that time the path finder will assign the flip move a last resort status.

The embryo of an engine that will understand when the creature has gotten stuck is started on but not more. The idea here is that when a creature gets stuck it will be able to understand where and possibly even why it got stuck, and then be able to actually do something else rather than just trying the same thing over and over. It's actually a little bit of learning, but it will basically boil down to "not getting stuck as much" rather than anything mind blowing. More on that when I actually get to it.

The last unfinished effort of the day was starting on the system for dividing the lizard into separate breeds. This took some thinking; where to put the division in the code? The current solution is that each lizard breed has its own Creature Template, all of which inherit from a parent Creature Template, and that they also own a Type Object containing some breed-specific parameters. We'll see how that works out!
Logged
JLJac
Level 10
*****



View Profile
« Reply #1927 on: August 15, 2014, 11:01:21 AM »

Update 290
Got some lizard breeds in! It's funny how just some small differences in speed, size etc drastically change the personalities you project on these boxes. They still suffer from quite a lot of getting stuck everywhere, but it's getting there!



Also, these inheritance based generalized systems... wow. Having laid out the general frame work, it really is super fast to define stuff! If I'm going to want another lizard breed down the line, it'll be like a day to add it!
Logged
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #1928 on: August 15, 2014, 12:01:18 PM »

disco ceiling dance is awesome
Logged

Slader16
Level 8
***



View Profile
« Reply #1929 on: August 15, 2014, 05:53:35 PM »

It's looking more and more like Rain World with every update!

Quick question though, it seems like for the A.I./Slugcat/Pathfinding/etc you are creating new solutions, completely different from the Lingo build. My question is, why? Is it because you're using Unity now? Or maybe that you realized that the Lingo version was inefficient? (I've been wondering this for a while now, so I hope it's not confusing Tongue)
Logged

jamesprimate
Level 10
*****


wave emoji


View Profile WWW
« Reply #1930 on: August 15, 2014, 07:49:36 PM »

Update 290
Got some lizard breeds in! It's funny how just some small differences in speed, size etc drastically change the personalities you project on these boxes. They still suffer from quite a lot of getting stuck everywhere, but it's getting there!



Also, these inheritance based generalized systems... wow. Having laid out the general frame work, it really is super fast to define stuff! If I'm going to want another lizard breed down the line, it'll be like a day to add it!

Joar, you don't even know how happy this gif makes me  Tears of Joy
Logged

JLJac
Level 10
*****



View Profile
« Reply #1931 on: August 16, 2014, 01:17:37 AM »

Joar, you don't even know how happy this gif makes me  Tears of Joy
Hand Thumbs Up Left Cool

It's looking more and more like Rain World with every update!

Quick question though, it seems like for the A.I./Slugcat/Pathfinding/etc you are creating new solutions, completely different from the Lingo build. My question is, why? Is it because you're using Unity now? Or maybe that you realized that the Lingo version was inefficient? (I've been wondering this for a while now, so I hope it's not confusing Tongue)
The reason why I'm re-working a lot of the solutions is that in the old build, I never intended to have more content. Everything I added was "the last thing before I'm gonna ship this", meaning that I never did generally applicable solutions, only patch work and quick fixes for whatever I had in front of me at the time. In the end the bulk of the game ended up being band-aids on band-aids, meaning that the machinery worked alright, but whenever something was to be changed or added, it was a mess.

This time around, I'm making generalized systems for everything, such as path finding. This means that down the line, if I want to for example add a creature, I can just plug in the path finder, and bam, it's up and running (after three hours of tweaking, so maybe not BAM, but way faster than building it from the ground up). If there is a bug in said path finder, it will have to be fixed in just one place, rather than one for each creature.

And when I'm at it, of course I'm taking the re-write as an opportunity to do some optimizations. I'm not really "using Unity" from how I understand it, I'm using it for rendering sprites and I use some of its C# library, but I'm not doing anything in the Unity editor. However I am converting the game, from Lingo to C#, so while I can glance at the old code I in fact have to re-write everything. For the slugcat I did a straight port of the old movement behavior, but with the lizard I'm not quite as thrilled about the old physics, so I'm taking this opportunity to do some changes.

Edit: Oh, and a question for you seasoned programmers out there - I think I have an infinite loop somewhere in my code. Unity just freezes, and it's really hard to find what's causing it because each time I have to force exit with the task manager and restart everything. It's somewhere in the lizard code, because it only happens when there are lizards... Are there any ways to find infinite loops? Can you for example tell the monodevelop debugger to throw an exception if any loop has run more than 1000 times, so I can find where this thing is hiding?
« Last Edit: August 16, 2014, 01:25:51 AM by JLJac » Logged
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #1932 on: August 16, 2014, 08:05:56 AM »

http://feedback.unity3d.com/suggestions/editor-panic-button-for-infinit

http://answers.unity3d.com/questions/180154/debugging-infinite-loops.html

http://forum.unity3d.com/threads/stopping-the-game-in-case-of-infinite-loop.20900/

http://answers.unity3d.com/questions/32826/can-the-unity-editor-break-out-of-an-infinite-loop.html >>> contain some sort of a solution

http://forum.unity3d.com/threads/breaking-out-of-an-infinite-loop-using-monodevelop.248826/ >>> there too
Logged

iambored
Level 0
**


View Profile
« Reply #1933 on: August 17, 2014, 12:07:42 PM »

Hello! I can already tell that this is another blog that I will be obsessively refreshing in times of crisis (boredom).
I wanted to ask- the link you posted in your previous log, with a playable prototype, is dead. Where can I play this? Do you maybe have some old versions lying around that you would be willing to share? I'd be grateful! + I want to throw some money in your face, something like a preorder, where can I do that?
Logged

Nico May
Level 0
***



View Profile WWW
« Reply #1934 on: August 17, 2014, 04:56:12 PM »

It was re-posted somewhere, maybe sometime in the page 90's.....
Logged

iambored
Level 0
**


View Profile
« Reply #1935 on: August 18, 2014, 12:25:25 AM »

I looked through 88-104, couldn't find a thing. I really wanna play this game! I mean, if Joar doesn't want us to play it at this stage, I completely respect that, but if he does, I'm willing to comply.
Logged

jamesprimate
Level 10
*****


wave emoji


View Profile WWW
« Reply #1936 on: August 18, 2014, 01:56:36 AM »

the thing that was posted was WAAAAY old (like, years) and wouldnt be any sort of representation. even the builds we're showing at PAX and such are 6-7 months old at this point and in a completely other programming language! a lot has changed, so let us get rain world to a point where we are proud to show it!
Logged

iambored
Level 0
**


View Profile
« Reply #1937 on: August 18, 2014, 06:16:51 AM »

So there's no prototype at the moment. OK, that's fine. You take your time and make the best darn game you can!
Logged

JLJac
Level 10
*****



View Profile
« Reply #1938 on: August 18, 2014, 06:45:32 AM »

Absolutely  Grin

Update 291
Found that darn bug! Thanks to Gimym JIMBERT, as always! In one place I made a division with a counter that could, at times, be 0. Contrary to throwing an error, as I'm used to from director, it set the value to NaN. In this case that value was the vertical velocity, which was then applied to the vertical position, and then at the end of the frame when it wanted to check terrain collision it had to loop through all the tiles from negative infinity to where the object was at, and that's the infinite loop. It wasn't really infinite though, given a few years it might have completed  Cheesy

Other than that, further work on assorted anti-getting-stuck measures. The current task - if having moved into a dead end, the lizard should start moving backwards, and continue moving backwards through bends and corners until it reaches an intersection and can pick another direction. Proved to be somewhat tricky, but I have a few ideas!
Logged
JLJac
Level 10
*****



View Profile
« Reply #1939 on: August 19, 2014, 11:32:54 AM »

Update 292
Finally I've gotten to work on the lizard cosmetics!



There is some kind of tail now!

James and I have also been having a few talks today. One of them was about was about individual variation on creatures. We both like the idea that each creature should have slight individual deviances, probably from a random seed, to make them look less like clones.

The problem as I see it is this - we have the breeds of lizards. The idea is that the player should be able to learn the behavior of each breed. "Greens are slow and dumb" for example, or "Blues can't take much abuse, but can climb walls". What I worry about is two scenarios. One is that individual differences drowns the breed traits, so that everything becomes a random sludge. The other is that in order to not end up in the random sludge, we will need to make the individual traits so very small that they are actually not significant in any way, and then the effort was in vain.

One solution is to have the differences be purely cosmetic. Short tail, long tail, that sort of stuff. This is safe, so I think we might do this kind of stuff regardless.

Another is to have somewhat rare, but very clear unique individuals that appear late in the game when you've already come to know the categories. That would be stuff like "It is very clearly a blue lizard in every part of its behavior, but it's large as a green lizard". The kind of stuff that can be easily understood by an experienced player. This solution would probably take on a bit of a flavor of "bosses", as these deviant individuals are likely going to be mostly harder than regulars, and the element of unfamiliarity and surprise will play in their favor either way.

The jury is still out on this one, and luckily the jury probably have quite a lot of time to think about it before it's time for an implementation. But it's never a bad thing to plan ahead!

What do you guys think?
Logged
Pages: 1 ... 95 96 [97] 98 99 ... 367
Print
Jump to:  

Theme orange-lt created by panic