—    —  Home

   jamesprimate on February 04, 2015, 10:51:45 PM:

thanks all! and congrats to you as well mr moonman :D

Oh, and James & Joar, a little suggestion: maybe you want to update the Rain World site? Or maybe start a Rain World Tumblr?

The site has a lot of outdated images, doesn't have the Humble links, or latest footage, or that it was successfully Kickstarted or picked up by Adult Swim

this is all so true, but both of us are so beyond overworked that even the idea of a website update makes my eyes twitch  Cry

maybe we need to hire someone for that, idk. id love to just throw someone a bunch of stuff and be like "ok make it nice"





   JLJac on February 05, 2015, 03:57:21 AM:

Thank you thank you thank you everybody :D Such an honor!

It's going to be really funny if this bring new traffic to the thread right now in the midst of Path Finding Week  Cheesy "THIS won!?"
Promise though, it'll be more exciting stuff again shortly.

And such an honor to win two times in a row! Let's just hope that next year we're not a part of the competition haha!

Yeah, the site needs updating badly... Right now the kickstarter updates seem like a more presentable link to send people, and that's upside down for sure. But as James say, neither of us really feel like taking time out of development to work on presentation... When we get closer to release that might make more sense, so it'll get an update some time ~

Thanks again everybody! It really means a lot to know that all of you are reading and appreciating the devlog.





   jamesprimate on February 05, 2015, 10:48:35 AM:

i made http://rainworldgame.tumblr.com/ ! Im just too busy to do anything with it XD There would be so much to catch up on uhghh. Too many things to update! We should actually make the dang game





   jamesprimate on February 08, 2015, 08:47:47 AM:

thanks to all!  Gentleman of course we win the award then immediately disappear for a few days. *real nice devlog guys*

quite a bit of progress IS happening, but much of it is finicky stuff or un-breaking things that you would think would already be working, but Joar seems to be hacking his way through that list pretty steadily, so fingers crossed.

on the level front, i just put together the world file for the 4th region, Chimney Canopy, which was a tricky endeavor. The CC region is situated between 3 other distinct regions and had a bunch strong ideas we wanted to explore, both visually and geometry-wise. Plus the Vulture came out so strong that we wanted to dedicate some serious space to that. Trying to make all these components work together and have a coherent look/feel was quite a challenge!

Early in the game world planning stage, this region was to have around 15 screens, but as it is put together now it has 59(!!!) bringing the total number of screens for the first 4 regions to 192(!!!!), or close to what I had assumed would be for the entire game  Cry That said, I think Joar and I both agree this region is the the strongest yet, and its really fun to play. From my perspective the larger the world the better, so I'm thinking its worth all the time spent banging my head against the wall! No one will ever say that Rain World is light on content.










   jamesprimate on February 08, 2015, 10:06:15 AM:

Looking awesome. Is there a plan to do any additional/updated alpha demos?

yep! we are currently putting together a 4-region build for PAX East, and if that works out well we will likely make that available to the alpha backers. Still quite a few kinks to work out, so no promises yet!

Questions: we know Rain World is coming to Vita. What about PS4 and PS3? The initial Adult Swim announcement mentioned “PSN, PS Vita, and well beyond”. Just curious if that means consoles as well. (Mainly cause I want to update the NeoGAF thread title with confirmed platforms)

Chris was spot on with his comment. There is a bunch of big console news coming up, but that's all Adult Swim publisher business stuff to announce when they have it all worked out. We're just focused on building the damn thing! Wink





   JLJac on February 09, 2015, 01:30:14 AM:

Update 393

Doing the actual promised "roaming of the skies" now. That essentially means moving the vulture around through abstract space at semi-random until it comes upon something, like the player. The vulture stays a little bit in each room before moving on, which in the case of realized rooms is usually spent on the edge of the room or slightly outside it. So you can actually see the shadow of one of them sweep by and be successful in hiding, in which case it'll move on to the next room.

I think that when sound goes in, it could be pretty nice to have some sound cue when they enter the room, so you get a chance to scurry under cover.

Technically the vulture is able to "teleport" from anywhere to anywhere, but I've tried to cluster the prey search a little bit. Essentially it works like this - it picks the room it's in, and searches it. Then it searches the neighboring rooms (as connected by actual connections, if you count sky highway all rooms are "neighbors") and search them in a random order. When done, it repeats this process - but this time current room will be one of the neighbors. So, that way it'll vacuum the environment at semi-random, and hopefully there'll be a feel that it "is in an area" rather than wildly teleporting around.

There is a 1/10 chance though that it'll just take off to any sky accessible room, to mix stuff up a little bit.

As the vulture is a beast performance wise, I think I'll also add some kind of inter-species grumpyness to them. Two of them can run simultaneously on my computer, but when three are tentacling around it can get a little framy, so having them prefer not to all hang out in the same spot might be a good idea.

Soon James will have his hands on the first vulture build, and you guys can hear his first impressions Smiley





   JLJac on February 09, 2015, 06:17:33 AM:

Yeah def! Would probably go under the same framework as lizard infighting, which I haven't gotten to yet. But it's a confirmed feature!

I also had this idea that if you hit the Vulture in the head it could lose its mask, and an unmasked individual would be attacked by other vultures. Still haven't really decided on that one though.

Update 394

Working on vulture-lizard interaction. Here's a gif, there's quite a bit going on here so I'll do some explaining below ~



What the heatmap shows is the anticipated threat level for each tile in the lizard's threat tracker (note that I don't store this data, I generate it on the fly. So the framerate drops quite a bit with this visualization, but when the AI uses it it doesn't ask for every tile, just for relevant ones).

The lizard is inside the little box, which is open in both ends. This box is a sort of temporary shelter, because the vulture can reach in there with its neck - but it's juuust short of being able to reach the whole width of the box.

Basically the lizard merges two sets of data to get this map, the distance to the threat (naturally) and an Accessibility Map. See how the tiles close to terrain are bluer? And the tiles inside the box as well? That's one of the pre baked AI maps, the Accessibility Map, for the vulture. It allows the lizard to understand that inside the box is more safe than outside it. As you can see it's staying in the box, although nervously.

Also you might notice that all terrain has some bluer tiles around it - that's just because the vulture is big and close-to-terrain tiles are considered inaccessible to it for that reason. This might actually need fixing, because just because the vulture's center of mass can get close to a floor doesn't mean its neck is unable to.

The amount with which the Accessibility Map weights in on the final threat map scales with distance. You can see this particularly clearly when the vulture moves down towards the lower-right platform, the "safety" of the tiles surrounding the platform is removed.

This is the same effect that also finally drives the lizard out of the box. When the vulture does its peek-a-boo over at the left side, it's much closer and the safety of the box interior is disrupted. Now the danger gradient inside the box is steep enough for it to be worth it to dash for the other exit. So the lizard goes for it and heads for the room exit up in the corner instead.

You can also see how the lizard's perception of the vulture's position is only updated when there's visual contact, which is why the heatmap is static while the vulture is moving below the box. In actuality the map shouldn't be still during that time, it should move with a Ghost of the vulture that the lizard tracks. But right now the Tracker has some problems with creatures that can move on big 2D planes - it considers each tile 4-way branch and immediately spawns up ghosts to follow all of them, hits the ghost cap and makes the ghosts stop. So it becomes more of a simple "where did I last see the creature" kind of thing. I'll get around to it.





   JLJac on February 10, 2015, 12:44:58 AM:

Tanks guys!

@tanis,

Here's an old gif of the tracker in action:



some stuff has happened to it since, but the basic principle is the same. Basically each ghost represents a "guess" for where the tracked creature probably is, and the search behavior consists of checking them one by one in order of likeliness.

While we're on this topic, how do you let the vulture know that he can drag his body in a certain area because there's enough room for it?
It can only path through tiles that are at least one tile removed from any terrain - as you can see in the heatmap thingie. A kind of blunt way of doing it, but it's been working so far.

And why is the lizard going to that platform instead of fleeing down for example? Is it due to the heat maps that you already baked with the information about which places are favorable for predators?
It's due to a million things  Tired The behaviors are such tangled messes by now that I rarely have the slightest what's going on any more. When fleeing, the lizard considers heading to some place on the map, or heading to the exit. Each of these considerations are weighted with how dangerous they're considered, and one is chosen. Then the path finder is told to find a path to that destination. When path finding starts, each tile it paths through is asked how dangerous it is, meaning that the threat tracker influences the path finder. The path finder, in turn, may take the creature on one route or another, which influences the Tracker by having the creature see or not see other creatures. The tracker influences the threat tracker ~~~ And each of these steps interact with some other modules as well. Debugging is always a delight.

Update 395
Cleaning up some vulture stuff, mainly. I've been trying to have the vulture picking up the player, and make its way with the player back to its den with the camera following it. I'm getting there, I hope, but there are some problems still. The vulture seems to have trouble actually finding its way to the den once entering a room. My theory is that this is because the room does abstract space path finding even though it's actually realized... But I don't know yet.





   JLJac on February 10, 2015, 07:05:00 AM:

@JLJac thanks for the super detailed answer!

Quote
Basically each ghost represents a "guess" for where the tracked creature probably is

How do you actually guess the different positions for the ghosts? Is it random or are you taking into consideration the speed and direction of the tracked creature?


Quote
The behaviors are such tangled messes by now that I rarely have the slightest what's going on any more

Eheheh! I soooo understand you there! Been there, done that! :D

Quote
When fleeing, the lizard considers heading to some place on the map, or heading to the exit. Each of these considerations are weighted with how dangerous they're considered, and one is chosen. Then the path finder is told to find a path to that destination. When path finding starts, each tile it paths through is asked how dangerous it is, meaning that the threat tracker influences the path finder. The path finder, in turn, may take the creature on one route or another, which influences the Tracker by having the creature see or not see other creatures. The tracker influences the threat tracker ~~~ And each of these steps interact with some other modules as well.

How often are you reevaluating the path? I suppose you're not doing that each frame as it would probably be overkill. Do you do it in the same game loop as the rest of the "brain" of the creature or are you using a different thread for such operations?


It starts at where it last saw the creature, and moves in the creatures last seen movement direction. At each division in the path, it creates a copy, meaning that the more the path forks the more copies, which is why an open plane makes it hit the cap right away. Copies that go in directions similar to the last seen direction get a higher score, as well as copies generally closer to the last seen position, and some other factors.

The path finding algorithm doesn't really do cycles as in calculating an entire path and then wait a couple of frames - rather it churns along constantly as the game is running, meaning that the creature is following one path as the next is being generated. Path cells have a "generation" parameter, and the creature always follows the newest paths.



Yeah def! Would probably go under the same framework as lizard infighting, which I haven't gotten to yet. But it's a confirmed feature!

I also had this idea that if you hit the Vulture in the head it could lose its mask, and an unmasked individual would be attacked by other vultures. Still haven't really decided on that one though.
You could do both. Masked Vultures fight not to kill, but to establish dominance: once they understand who's stronger, the weaker one leaves. Unmasked Vulture is a target they want to kill.

Although, to be honest, losable mask doesn't really make a good sense from biology perspective, especially if it brings such serious consequences for the creature. It would be more sensible if it could become cracked, which would make creature lose recognition and force previously established social position to be re-established, forcing more fights between them.

Alternatively, you could use detachable mask not as much as debuff of the vulture (you lose position in the hierarchy, but you're not hunted to death), but as a rare item for the player. I imagine it being used to scare other creatures away.

This is a good idea, though I think the subtlety of lethal/non lethal combat between non-player entities might really be lost in the wind. Maybe if they both have masks they could "dance" to establish who gets to scram, but if the mask is off it becomes actual fighting. Buuuuuut this is extra cool stuff, not something to get into when crunching a convention build.

I sent this mockup to James a while ago:



but I don't quite know. Sure, it looks pretty cool, but I'm super hesitant to humanize the slugcat further. Wielding the spear already reduces its animal nature quite a lot, and having it actually dress up in little outfits puts the last nail in the anthropomorphism coffin. Idk...  Huh?





   jamesprimate on February 10, 2015, 09:02:58 AM:

definitely not an essential topic just yet, but dragging around creature parts and, uh, corpses, for various effects/interactions with other creatures is a game mechanic that we've talked about for a long while, so the vulture mask seems as good a place to start as any!





   jamesprimate on February 10, 2015, 11:23:33 AM:

^ all the pathfinding stuff is talked about super in-depth earlier in the devlog. take a look through!





   JLJac on February 10, 2015, 07:04:35 PM:

Sure, it looks pretty cool, but I'm super hesitant to humanize the slugcat further. Wielding the spear already reduces its animal nature quite a lot, and having it actually dress up in little outfits puts the last nail in the anthropomorphism coffin. Idk...  Huh?
IMO:
It's not wearing the mask, it's holding it in both hands so it makes quite an impact on mobility, and also wobbles back and forth a bit. It scares other creatures on sight, but they soon realise there's no vulture attached to it and resume their normal behaviour. It's not a smart bomb or invincibility shield, but it could be worth dragging one for a few screens to shoo away a particularly recalcitrant lizard. But because it restricts mobility, you probably have to drop it in order to take advantage of its effects.

In terms of intelligence, the slugcat doesn't think of it as "wearing a mask" or assuming an identity, just that carrying the object has an effect.

EDIT: I should post here first instead of on Gaf :D

This is excellent! It gets the point across without turning the game into an equipment game, and it ties in super neatly with the item carrying mechanics already in place. It can also make the mask sufficiently powerful to make the effect clearly noticeable without breaking the game, as it occupies both your hands. Thank you very much, I'll go ahead and do it just like that if you don't mind  Grin

In other news  Tears of Joy Tears of Joy Tears of Joy The incredibly unrewarding trudge through vulture path finding stuff seems to have actually come to an end :D This morning I found a bug that seems to have been causing quite a lot of the problems, and after that stuff started to untangle. Just a few minutes ago I saw for the first time a vulture catch me in an enclosed area, and carry me outside (with the camera following us through the room exits), take off, and arrive at the place where it had its den. Then stow me in the den and emerge a bit later, taking to the skies again. It was beautiful  Tears of Joy





   jamesprimate on February 10, 2015, 07:50:18 PM:

^ fair warning though: there are still a few biiiiig hurdles. tonight im going to attempt to run all 4 regions connected together and see what the hell happens. this is one of those big "well i sure hope this all works" sort of moments, so if my computer doesnt explode ill report back with findings!





   jamesprimate on February 11, 2015, 02:26:59 AM (Last Edit: February 11, 2015, 09:19:33 AM):

mega_world region combining update:

so the good news is that my computer didnt blow up, even a little bit! running rain world with the 4 simultaneous regions was totally possible, and even playable to a certain extent. but the bad news is that, unsurprisingly, running 100+ interconnected rooms simultaneously with dozens and dozens of active AIs all moving about creates some pretty serious performance drag. and if that's only 1/3rd of the content were aiming for, seems like zoning or a more region-based AI realization is almost certainly necessary.

fortunately we've planned for this. the game is already divided into large regions which we know work just fine, and in fact just this evening we were discussing the aesthetics of region transition gates which will be implemented anyway, so everything is there for zoning already. other than some vague "world spanning event" ideas discussed, this doesnt change anything really. plus, even if the huge perpetual world concept DID wind up somehow working for PC, we very likely would have had to go this route anyways for some of the consoles we are planning for, so seems like this is the right direction to build in regardless.

joar is checking it out to make sure that its not randomly something else that's creating the slowdowns, and after that we'll talk it over and make a plan!

anyway, here is a screen of the abstracted room overlay when running the 4 regions:


and thats only what would fit on the screen of course! it goes on and on and on XD

***UPDATE**
Apparently in Joar's build, these slowdowns aren't a problem. So that is a good sign! Perhaps the slowdowns I'm seeing are related to some other issue that has since been fixed. That would be quite nice! There are other minor issues, but at least for the time being we may not have to chop up the world just yet. Which is GOOD because we have plenty of other things to do Tongue





   jamesprimate on February 11, 2015, 09:56:57 AM:

But I already have Norton Antivirus installed?? Wink





   jamesprimate on February 11, 2015, 01:59:23 PM (Last Edit: February 11, 2015, 04:19:57 PM):

as ambitious as it may sound, yep thats the idea! or as near to that as we can reasonably get. Joar's concept is the entire world active as a constant interactive and autonomous ecosystem that is steadily roiling around in the background as you play through: creatures hunting creatures in distant lands as you make your way through, so by the time you arrive all manner of unexpected strangeness has happened. All that effort spent in the engine creation months ago on abstracting off-screen AI behavior to state descriptions was to make this concept (hopefully) CPU feasible when scaled up.

Hiccups in this 4-region test aside, i think thats still generally the game plan. There may not *really* be a need for the game to keep track of 600ish eventual rooms filled with creatures existing at every moment though, so thats something to get a plan for. But, ideally we could tackle that at a time when we're not already super crunching to get a stable build together for PAX  Tired

back to questions about the interconnected map stuff, if you are interested here is an older working concept world map. things have evolved far enough from this that im comfortable sharing it without fear of spoilers or anything, and it shows you the general idea of the large interconnected world:



Each color represents a region, and each square a screen, with grouped squares being multi-screen rooms. The regions geographically located next to each other are all connected, but there are also a number of fast-travel-esque connections between distant regions as well. The concept is that each room is a sort of movement puzzle to get through, and each region is its own puzzle of those puzzles, exploring various gameplay elements, geometries and creature territories, and then to get through the world you basically have to navigate a puzzle of puzzle of puzzles.

But as it is now, the 4 regions we currently have hooked up are roughly equivalent in size and complexity to the scope of this entire map!  Shocked

i think the final version will probably keep people occupied for a while.





   JLJac on February 12, 2015, 02:01:21 AM:

Haha yeah, as James says, we are about at the scope we originally planned for the entire game right now, and we don't have half the areas yet. More like, a fourth. So ... That's that. This thing is gonna be vast o___0

Update 396

I've been running the MEGA WORLD today, and doing some profiling etc. My basic take away is that at this size, it would be theoretically possible to have the entire world run simultaneously, but it's really an edge case - and with more content coming up, we're going to have to divide it somehow. Either that or some sort of lazy loading of rooms. I'm not all that keen on either, because they do mean more systems that can entangle themselves in other systems, bug out, etc etc. The cleanest possible solution for this would be best. Abstract space/realized space division is already a mess, and adding one more layer of abstraction like that seems bad.

What slows stuff down is basically two things: creatures finding paths offscreen, which is kind of expected and not very problematic - I've not optimized that stuff at all, and there's potentially a lot that can be done - and loading of rooms files from the folder. This latter one puzzles me. It should take exactly as long to load a file whether there's a big world or a small world hanging out in RAM, to my knowledge.

The other weird thing is this - if I have a small world, and 5 rooms realized in it, everything runs as supposed to. But a huge world, with still only 5 rooms, it will spend twice as long updating those rooms. In the method's "self" - not delegating anywhere. I have no idea what's going on here. Could it be that having all of the abstract rooms in RAM somehow... idk, makes the processor slower? The rooms already have waaaay more data stored in their AI maps than the abstract rooms put together can ever compare to, so it really is an enigma.

Other than that, fixing, brushing up, sorting out. Today I spent some time messing with bats getting stuck at room borders, which became a lot of trouble in the new Chimney Canopy area which has a lot of open room borders. Also tried to make bats get stuck less in terrain and look overall a little more competent. Don't know quite how successful I was, but some stuff got better, definitely.

And, widescreen:



Playing in widescreen is pretty damn sweet actually! It feels like my eyes were opened for the very first time! I'll probably never be able to go back without suffering horrible claustrophobia.

Still some work to do on the widescreen stuff - water isn't completely comfortable with it yet, and the shaders need a little bit of adaption.





   jamesprimate on February 12, 2015, 03:21:18 AM:

Uh... aren't you guys afraid of feature creep at all?

oh make no mistake: we are most certainly, definitely, 100% squarely in the sticky clutches of feature creep. not so much as a result of any recent things, rather promises made to backers during the heady rush of the kickstarter.

the game world being large is neither here nor there. It will take a while to get through doing all the levels for sure, but that at least is a clear grind path for me and the cost:benefit is fairly high. but we have yet to work out some big technical stuff, things like large multi-screens, darkness and split-screen co-op, plus there is a list of backer-suggested creatures a mile long each of which will take a decent amount of time as Joar (quite understandably) only wants well-thought-out, well-realized creatures in this game we've been agonizing over for years.

that said, from there everything else has been going pretty much to plan, almost shockingly so. as its just two people sometimes linear progress can seem a bit slow, but we are definitely chugging along!  Gentleman





   jamesprimate on February 12, 2015, 12:20:26 PM:

Seriously, though. I love how you guys are like "this was the whole map for the old game" and now are like "well, the new game already covers that map... it's gonna be like 5 times bigger than that old one. We hare way over our heads." Tongue I kid.


well, i mean, TRUEE... but also that was concept stuff put together before we had done any level work done. Actually putting together a region and getting a feel for the scale we wanted to convey was much more important than my little boxy map sketch Wink Once we had the SU map put together it was pretty apparent that this was the way things were going to go.

so Joar just mentioned the widescreen addition casually in the last update, but WOW was that a huuuuuuuuuge addition. The entire game has been built around 16:9 format from the start, the geometry of every room and screen was structured around it, but I think we were so used to our little 4:3 alpha window that we didnt even realize what we were missing. Fortunately our earlier selves planned this out well!

Long story short: the game plays SO MUCH BETTER in 16:9, how its supposed to be. You see paths and lizards and creatures that were previously off-screen, sometimes before they see you, giving you time to plan actual sneaks or escapes like you are supposed to! Plus you can finally really watch the ecosystem interactions that Joar has been working forever on, things like spotting a vulture and waiting for it to to swoop down on a group of pink lizards before you make your move through a tricky room, etc.



Plus the scale just POPS. I've been building these rooms in 16:9 but other than in a little schematic preview window in the editor, havent been able to see the full picture until now. tears of joy  Tears of Joy



This does, however, mean that I now have tons of touching up to do on the levels. Surprisingly (to me!) most look prettttty good, but there are definitely a few that have un-tiled portions or some other unfinished aspect out there in the wings where I couldn't see before. Also, it highlights a few other ares of roughness like the camera switching which could use some polish.

But that said, HUGE step forward.






   jamesprimate on February 12, 2015, 01:54:27 PM (Last Edit: February 12, 2015, 02:42:15 PM):

it is a little tricky to visualize I imagine, and is complicated further by the multi-screen rooms. i dont have time to do a full write up on it today, but here is a quick and dirty screenshot comparison:

*ignore what looks like a difference in height between screenchots, thats just the limits of TIGS image preview width. widescreen will be the same height obv, just W I D E R*

4:3




16:9





now for single-screen rooms, its not that big of a difference other than the added scale and visual canvas size that the widescreen camera shows. the playable area remains the same in both 4:3 and 16:9 regardless, etc etc. but it becomes a big deal for multi-screen rooms which are more the focus of the game as it progresses.

previously (as you know from the alpha), you would switch the cameras in multi-screen rooms by going off-screen just to the left or the right (or up/down, but not relevant to this example), the camera just follows you at the edge of screen border and it works okaaaay. but when hungry lizards or other creatures might be waiting just off-screen to snatch you up, you'll sometimes just get eaten unfairly. with the widescreen 16:9 you can see well beyond the camera switch point to avoid nasty surprises and have room / time to plan your moves accordingly. also it allows for better platforming, as room movement puzzles can take up more physical space, you can jump from one camera to another and see where you are going/landing, etc. all in all just *everything is better in widescreen*

whats interesting though is that because of some of the consoles we are targeting (PS Vita for instance with that tiny screen), we have to develop everything for 4:3 and 16:9 simultaneously. So its probably good that we spent as much time with 4:3 as we did. Now is the time for 16:9 to shine though!

ok, enough of me putting off these room touch-ups. back to the level editor pit!