—    —  Home

   JLJac on March 17, 2015, 06:54:11 PM:

@Gimmy, my graphic pipeline is as follows: First all the "inside the level" sprites draw themselves on top of a black background. Then comes the level image, which does a grab pass before it draws itself. What it does is basically to decode the information of the level texture, which is the output of the level editor. In the level texture, pretty much the full range of a 32-bit rgb color is used to store information - the red channel stores depth and light circumstances, the green stores which effect color is active in the pixel, the blue stores how much of that effect color is in effect. This stuff is what makes the half page. If the depth of the pixel is less than a certain value the level image always get an alpha of 1, if it's greater it only gets an alpha of 1 if the grab texture is black in that pixel, otherwise alpha 0. Basically, everywhere where there is a sprite rendered in the room the level image has a "hole" punched through it so that the colors of the sprite can shine through. The shadow stuff uses a similar technique, looking up a pixel in the grab texture and deciding whether it should be shaded or not depending on if there's a sprite in that pixel. All of this needs to have direct access to the level texture, and much of it is interconnected, why it makes sense to do it in a single big shader. I don't have the 30 layers as separate textures, I just have one texture with the depth of each pixel is stored as a value 1-30.

#fire, idk, not out of the question. Some creature could perhaps create it. We don't have anything specific planned, it doesn't go all that well with the theme after all.

#glowing eyes, definitely! This is low hanging fruit. Maybe not for the lizards, as they have black eyes but a glowing head, but it's definitely an effect we should explore with some of the creepier darkness dwelling critters!

@markefus, I don't think I have a normal map actually, I just have a simple depth map Sad I've tried to mimic some normal map action in the most recent light shader by asking a neighbouring pixel for its depth value and compare (if it's greater, we probably have a tilted surface!) but I can't really do all that much fancy stuff...

@vitorlanna thank you Smiley Yeap, we have something like that planned, along with other creepy things lurking in the shadows!

Update 407

Sunlight overexposure is in!



Still not looking all too smooth, but the technical necessities are functional, now I just have to mess around with the numbers a bit.

I'm sorry progress is a bit slow these last couple of days, I've had to spend some time looking for an apartment as I'm spending a bit of time in the states. James and I have been able to have a couple of really productive talks though, so something good has been coming out of it! Now I've got an apartment though, and from tomorrow we should be up to normal speed again!  Hand Thumbs Up Left Hand Thumbs Up Left





   jamesprimate on March 17, 2015, 08:06:10 PM:


Sunlight overexposure is in!




OH MAN this is so nice  Tears of Joy





   jamesprimate on March 18, 2015, 07:13:12 AM:

YEP it is probably about time





   jamesprimate on March 18, 2015, 09:38:19 AM:

oh of course! ive been planning this moment for like 3 years, so pleeeenty of cool tricks lined up for the audio  Well, hello there!

if you guys havent already, take a read through the early devlog talking about audio parts of the old lingo build, which used a procedural approach to audio event triggering even then. one of my favorite bits was for the lizard growls and shrieks. I did a bunch of audio for each breed at various "threat levels" varying in intensity and character, then Joar took those waveforms and wrote a function that matched the actual lizard jaw movement to the physical shape of the sound wave.

depending on what was going on with that particular lizards AI (taking into account whether it was hunting/idle/frustrated/hurt etc.) the audio would play procedurally selected clips taken from that breeds threat level audio samples, so the result is lizard audio that fits the AI mood and actions of the moment, was never the same twice and each sound lined up with the lizards actions and animation.

thats suuuper cool stuff to play with and im really excited to do more now that we have a more robust sound engine! we want to take a similarly dynamic approach to ambient and weather audio as well. Ideally each region will have a pile of characteristic ambient audio separated into songs, weather sounds, atmospheric stuff, etc., and depending on things like rain cycle position and game narrative, these elements will get blended into a unique soundscape for that moment. If we have enough time to do it right, the player might never hear the same soundscape twice. Right now i have about 75 "songs" written for the soundtrack not  including ambient or atmospheric stuff, so i definitely think its possible!





   jamesprimate on March 18, 2015, 03:43:23 PM:

Has any other game gone as in-depth into procedural generation? I cant think of one.
The tech behind the music and sound effects sounds incredible. When you guys find time to sleep?

surprisingly i dont think any of this takes any longer than doing game audio any other way, you just have to prepare for it. like, as a sound designer, i'd be making and blending a ton of audio layers on my end to create atmospheric tracks anyways. this way just has the computer blending those layers of audio dynamically rather than me doing it by hand in my DAW. who knows, maybe we'll discover that there is some reason so few people use these techniques!  Blink

Had no doubt you'd deliver, James!

As a bit of an audio/field recording nerd, I'd really be interested in hearing a few of the samples you'll be using, just to get a feel for the character of the audio. Is that a thing you'd feel comfortable sharing with folks as of yet?

thanks! ill still be in "level building super crunch mode" for the next little while yet, but as it happens i was just showing Joar a bit of my process at PAX, so i have a kind of cool little progression on deck that i can show you guys!

Early in rain world days, when the game had more of a simple cartoon look, i was kind of skirting the chiptune style to match the 16bit graphics and platformer vibe. That was mostly low bit synthesis like pulsewave modulation (on physical soundchips, naturally), additive/subtractive synthesis, white noise and some formant or wavetable synthesis for more vowel like growls and grunts and such. Sounds cool but is BORING AS HECK to show because its literally just me sitting in my basement messing with some waveforms for hours and then writing a track with it.

As the game has developed into a deeper, more rich (and more procedural!) visual experience, ive been working a lot more with manipulating "junk audio", and that can be more dramatic to show, because you can hear each step. This track was written more just to show Joar the possibilities with this one technique, but the track wound up turning out pretty well! Should be perfect for a certain weird subterranean region... anyway, heres how it went:

Literally me recording us talking at the PAX booth and showing him the soundwave loading:
https://clyp.it/obyjx1dg

The same sample pitched down for effect and to create better material to grab from:
https://clyp.it/udnp13qu

Selecting audio points in that sample to capture from, i do this weird semi-randomized arpeggiated thing:
https://clyp.it/ddlxzmds

And from there the track takes shape. Adding percussion and other instruments (many of them also taken from that same audio clip, manipulated to suit my ends through sample and hold techniques or whatever):
https://clyp.it/v2v2et5r

I kind of dont like showing tracks outside of the context of the game, because this is just one piece of the audio puzzle, but imagine something like this fading in and out, blended with wind, rain, atmospheric and creature noises and you'll sorta get the drift!





   JLJac on March 18, 2015, 08:24:49 PM:

Isn't it goddamn genius you guys  Tears of Joy The last batch of tracks I got from James was all weird stuff, and all of it freaking fantastic, although in different ways. There's one long track which is somehow constantly out of sync with itself while at the same time managing to sound distinctly musical, which keeps you on the edge of your seat by never being quite predictable. And others are strange and beautiful in ways I can't really describe as I'm music illiterate, but yeah, all awesome stuff. I really really really can't wait to get sound running just because of the soundtrack aspect - just playing the game with the soundtrack running now adds some sort of... saturation that adds infinitely to the experience. And that's without ambient sounds or sound effects!

You remember yesterday when I said that as of today I'd be back to normal speed? That didn't end up happening... Instead I spent the day at a roadside rest stop while waiting for a mechanic to show up and fix the bus, and when that didn't work out for another bus to show up, etc. But now I'm arrived! Some work got done on the bus though, some art, some thinking, some mapping out how damage is going to work as a system (right now it's mostly a million special cases) and some coding as well, for as long as I had batteries. Normal speed as of tomorrow, promise!





   JLJac on March 19, 2015, 01:49:12 PM:

Oh, actually I have a grab texture AND a level texture, and I use information from both of them to render the final image. A raw level texture looks like this:



And this is the thing where all the channels are used to store different things. The image isn't very green as you can see, mostly red and blue, because I just use the first intervals of the green channel as of now. I like to know that I have some more room in the green channel in case I want to store something else in the future.

So I use this to get the depth of each pixel, and the grab texture to get where the sprites are currently at, and if the depth is greater than 6/30 (which is where the game objects are depth-wise) and there is a sprite, I "punch a hole" so that the sprite is visible.

The white shader bug I'm pretty sure was because of a rounding error when getting pixel coordinates, however I am concerned about some devices not liking the grab pass. I think there's a workaround, if I just divide the level image into two sprites - one on top of the game objects and one behind them. That'd sacrifice the dynamic shadows though, but perhaps run quicker. How to do the water without a grab pass however... I've no idea.

Thanks for the link! That's baaaasically what I'm doing for the light source shader, just simpler and more contextual for the specific thing I want to achieve. Really cool to know that it's possible though, I might need it later  Hand Thumbs Up Right Hand Thumbs Up Right Hand Thumbs Up Right

Your comments are always helpful, the most helpful, you practically made this game by now  Cheesy Thanks for hanging around, it's much appreciated!

Update 407

Finished some work I did on the bus yesterday, namely putting some scales on the heads of lizards as well as their bodies:



Nothing too complicated, just had to make sure that the sprites changed color as the lizard heads did to make it look like a part of the head. Also made these a little bit more rigid than the ones attached to the body, seems to make sense as the head is apparently of some sort of harder material. Right now I only have the two horns setup, but I might add other head decorations as well. Other decorations removed for clarity.

Other than that, messing around with the darkness stuff to make it tie in with the palette and palette fade systems already in place. Seems to work nicely!





   jamesprimate on March 19, 2015, 06:55:57 PM (Last Edit: March 19, 2015, 07:02:31 PM):

I had an idea the other day that may or may not have already been suggested. There's been discussions in the past as to whether or not there should be a visible timer for when the rain comes. I was thinking back to the backdrops of the out door areas, & how you can see the shadows of clouds crawling along the background. Well, why not have the amount of clouds, as well as the rate at which they move, slowly increasing until the entire background is engulfed in the shadow of the coming storm? This could be a subtle but entirely in game visual cue for when the rain is coming(for out door areas anyway). Has this been suggested already?

^ oh yes, thats in already! I wonder if its been shown yet actually? here is a shortened version of what it looks like now:



Cloud cycle becomes more intense, then it gets dark, rumbles, becomes obviously dangerous, then downpour.

I definitely think we'll want to improve on that though, especially the "death screen" aspect. Id like to see a more dynamic rain cycle happen, where you actually see some rain in the foreground and background building up while playing, and also some visible back layer fog / wind action.

this is an obviously super crude mockup i did in 5 minutes compositing stock "rain and fog" video:




now think of the two videos combined, plus some foreground rain that fades in and that should give some idea of what im thinking. I mean, the game is called "Rain World", so we really have to nail the rain dont we? BUT! This is sort of polish pass stuff. We have plenty of nuts and bolts hacking, creature design and level building stuff to get through before were there.

One thing we're still SORTA figuring out is how to telegraph the rain cycle death in various nonstandard regions like subterranean, water, aerial, etc. All the ideas are there (a flooding animation, some high winds animation, huge waves, etc etc) but we have yet to actually tackle it, so decisions on any of that might inform how we do the rest.

Anyway, im starting work on the first dark region called "shadow urban" and REALLY STOKED. The darkness mechanic has potential to be even more significant than the water mechanic IMHO, and im soooo glad it looks and works as well as it does already. PRAISE BE TO JOAR.





   jamesprimate on March 19, 2015, 07:37:43 PM:

^ oh most definitely. but the experience we're trying to create is something we'd very much like the player to go into blind and make their own connections. so other than possibly alluding to the narrative through technical stuff we show here, we're going to try to keep this a strict spoiler-free zone. the builds wont have any overt narrative content, etc etc.

When we get closer to release im sure we'll tease the opening scenes and drop some hints, but as i mentioned above, were still chopping wood for a good while yet here! for instance i have approx 400 more rooms to do...  Cry





   JLJac on March 20, 2015, 07:40:06 AM:

It's always been my intention that the story of rain world is that of the character, rather than that of the world, and that it is produced by the game engine rather than through writing. If you decide to take down a Vulture, and actually succeed, that is the story. If you save pups, or don't, or befriend some creature or kill some creature, that is the story.

That said, we do love our environments and of course we have ideas about what's what in the world, and we would like to try some "environmental storytelling." But don't expect to get some super clear linear array of events spelled out to you haha, we'll be hinting here and there but you'll have to do most of the work yourself.

The main character is a creature that's somewhere on the edge between animal and human thinking, meaning that it can only almost make sense of what it sees around it. It can maybe understand that the symbols on the wall bear meaning, but it can't understand the meaning. It can see that one machine connects to another through pipes, but it can't decipher the functionality much beyond that. It can guess that this big place might have served some big purpose, but it can never quite reach a clear understanding of that purpose. We want to mirror this experience in the player.

Man, NYC subway rats are such an awesome source of inspiration! It's exactly the thing - they live in a huge weird environment which they have no idea about why it looks like it does, and they mind their own business. I saw one yesterday that had its home in a drain pipe between the tracks, coming out between trains to look for cheetos and whatnot people might have thrown down there. Does the rat understand what a drain pipe is? Maybe some incredibly vague notion is in there, but a full understanding of what's going on will always be beyond reach. Still the pipe works as a place to live, and the intentions of the almighty creatures that once created the drain pipe isn't all that relevant to the rat at the end of the day - cheetos are.

So, if the back story is the complete architectural blueprint of a subway station, expect to understand about as much of it as a rat living between the tracks of said station Cheesy I'm joking, but yeah ~ we won't spoon feed you any back story for sure. You'll have to work really hard to piece stuff together, and even then you won't have a complete picture. Mystery is a huge part of the appeal, and if the entire back story was available on the internet a week after release that would sort of ruin the experience. Instead you'll get some scattered pieces to make your mind wander by itself  Smiley

Oh, another thing - Rain World isn't a planet lol  Cheesy Or I guess it might probably be on a planet, just as Lord of The Rings, Sex And The City, Zelda and Frankenstein's Monster are probably technically on a planet, but just as in those examples the planet aspect isn't really relevant at all. Rain World is more of a fantasy world or a dream world, not somewhere you can go in a space ship ~





   jamesprimate on March 20, 2015, 08:39:03 AM:

i see huge potential for a CheetosĀ® brand rain world DLC tie in! lemme get on the phone...

This discussion is conveniently timed with REroll's review of Shelter 2, which discusses the game's shortcomings with this exact animalistic feeling we want from the Rain World.

OHHHHHH this is a great link, thanks. i havent played any games with this sort of mechanic before, so really cool to hear such a passionate defense of that flavor. the reviewers perspective lines up exactly with my own.

as for UI and text, we're definitely going to have as little of that as possible and NONE if we can. definitely none that is in the game world. threats of predators and food scarcity should be motivation enough to push the player into the world without needing any real need for hand-holding or "go here!" signs, and once they are in it we can do all manner of things.

Right now there is only one instance of text where we dont have a solid solution for, and thats indicating to the player how many bats / foods you need for the next hibernation cycle and how many you have eaten. right now its just a little number that pops up, and while that does the job (and could be considered an acceptable design compromise as the easiest possible solution), i'd prefer a more stylish means if we can. but again, thats polish stuff down the line.

as for tutorial, im confident that we can just design early room challenges / set pieces that teach the basic controls and experience (this is a pole, you must learn to climb it to get out of this room. this is a shortcut, its the only way to the top so figure it out, etc etc) and let the player work through it. Pretty much every region adds new mechanics to learn, so the beginning rooms of each have a set of movement puzzles to introduce you to what will be needed to progress. Whats nice about having a big interconnected map is that we'll have multiple paths through the world, so if a player cant deal with the mechanics of one region, they can just find another way!

showing the most recent build at PAX was cool because for the first time we could actually just hand the controller to someone without a word and see how they made do. and even in this unfinished state it seemed like pretty much anyone who was willing to sit with it for more than a minute could figure it out just fine, which was a bit of a relief let me tell you!





   jamesprimate on March 20, 2015, 03:14:33 PM:

after a few crash and burn attempts at doing shadow urban "in the darkness" level design last night, it occurred to me that *maybe* doing levels without 1.) the illumination system in place 2.) any of the dark-specific creature ecology or 3.) any of the region tiles done... is probably a terrible idea. i was so excited though!!

switching gears a bit, going to focus on something we know exactly what were doing with, the second aerial region: sky islands.


detail:https://i.imgur.com/2fiTR1w.png

Joar whipped up some cool ornate looking ornamented tiles and has some radio antennae looking stuff in the works that will give this region a very unique look (think of a refined, brass-hued oasis set on scaffolding high above the clouds), and with that i should be able to get through a good chunk of this region while he's busy working on... dun dun dun... the dreaded and much put-off level editor overhaul.  My Word!





   JLJac on March 21, 2015, 07:06:14 AM:

We're really stoked about this region, because it's one that we've had a lot of ideas for for a long time. I also think it's pretty much the only region so far that we've had some pretty clear visual concepts for going into it, so let's see how that plays out. If it shows to be a super benefit we might want to do more concept art etc in the future before throwing ourselves into a new region. That said James has been improvising really solid visual identities for all the other regions (maybe with the exception of the first one, which was originally a bit here and there as James was learning as he made it, but which has been reeled in to a much more solid aesthetic identity in the last overhaul). So let's see what happens! I think that if James has been able to make as good looking regions as we've seen so far without much coordinated planning, this new region has potential to look really amazing just because of the fact that we had this visual idea, making sure that I was on the same wave length while making the tiles as James will be when composing the geometries.

And now I think there's no way to put off the inevitable any more... All of the candidates for next upcoming regions need rooms larger than 3 screens, so the overhaul has to happen. So, good bye for a couple of days! I'll write some small little progress reports I think, but probably not proper updates as there won't be all that much to talk about.





   jamesprimate on March 21, 2015, 09:00:34 AM:

I also think it's pretty much the only region so far that we've had some pretty clear visual concepts for going into it

ha! maybe the only region YOUVE had clear visual concepts for going into Roll Eyes ive had these regions planned for over a year! though its true we usually do new tiles later in the process. but its true sky islands should look pretty niiiiiiiiice. now i just have to live up to the hype O_O





   JLJac on March 21, 2015, 11:25:21 AM:

ㅋㅋㅋㅋㅋ granted! But earlier you've had to work with whatever random tiles I happened to throw together for that region (me being the one with no visual concept) whereas here we have a more coordinated idea of how things should look! Basically what I'm getting at is that "I also know what this area will look like!" ... which is obviously not true, as you always ends up using the tiles in unexpected ways...

One thing that is nice for sure though is to go into a region with the region specific tiles already in place! Usually you'll have gotten like 40% through before I manage to deliver the first batch  Shocked Man, tiles take sooo long... My latest estimation is two full days for a set of region specific tiles  Cry





   JLJac on March 21, 2015, 12:26:45 PM:

Some of the regions are loosely rooted in old concepts from the tiny world attached to the lingo build - in which a region was generally no bigger than 3-4 screens. For example the lingo world had a region called Chimney Canopy which actually looked more like what Sky Islands will look like, as well as some hints at Suburban and Garbage Waste like areas. But pretty much all of what you'll see in the final game will be James' creations, a majority of the areas James has come up with have no equivalent in the lingo build, and those that have have bloomed and developed vastly since. The lingo world was about 20 rooms if I remember correctly, whereas James estimates the Unity world to be around 700 rooms. So yeah, maybe there were some little sparks in there long ago, but for all practical purposes James has built this world ground-up.

For creatures, the ideas of the lingo-era were humble as well. Most of it has developed post-kickstarter, and quite a lot of the creature ideas are not solely mine any more, rather they're a blend of James' ideas for what would go well with the regions mixed up with the backer suggestions. We have quite a lot of backer suggestions, so we generally try to combine them with James' region-specific requests whenever possible. I definitely have the final touch and most of the control of how creatures will look and behave, but the seeds for the ideas generally come from elsewhere now. For example, the Vulture came out of James wanting a big flying predator for the aerial regions, but from this rather loose concept the actual creature grew out of back-and-forth between me and the computer, trying out what worked, what looked good, and so on. The designs are generally like this, not super goal oriented but rather a dance with the technical limitations.

I really like this, and think it's one of the great benefits of being both artist and programmer - I don't have to draw something and imagine exactly how it should be just to later be disappointed by the implementation, and conversely I don't have to try to program a creature that might not work technically in order to meet an artist's expectations. Instead I can explore a lot of technical possibilities while constantly re-evaluating the artistic idea in order to find the place where it looks best.

On the UI stuff, I don't quite know... I don't want to mess with the Slugcat's appearance too much, as its silhouette is kind of iconic and I wouldn't want it to spend the majority of its time distorted by status effects that might make it less aesthetically pleasing - this is after all the character you look at 90% of the time you play, and the proportions are quite fine-tuned to be where I like to have them, so if I can avoid skewing them I will. Also we have this thing with no health bar and no lasting status effect - I want your state to be binary dead/alive, because I think it feels freer and less claustrophobic that way. If you're alive, you have as good a chance as ever, if you're dead, you're dead. No weird grey areas in-between. The exception would be the leeches, they could be argued to be a sort of "status effect" as they slow you down in the water, but this follows a very clear causality which you can observe with your eyes.

But, haha, I don't really have any good ideas myself for the UI thing. Surely some sort of symbol (just 5 dots or similar) should be better than straight up arabic numerals, but hopefully there are other options as well. Just having the slugcat refuse to eat more bats once you've caught enough is a possibility, but that solution really communicates nothing but the absolute bare-bones tiniest amount of information you need to survive - it would be pretty nice to know what amount of bats you need as you set out on your hunt. Another possibility is to have it always be the same amount of bats, but I don't know how well that'd work with the level design.





   jamesprimate on March 22, 2015, 03:17:57 AM:

def have pondered over the "stomach UI" idea before, and it may be worth some further consideration when we get to that point. cant see your pics, but i havent been able to figure out a way to make it unobtrusive.

and dont worry, the bat calendar was in the old lingo alpha from a long time ago. not something were thinking of implementing in the actual game.





   JLJac on March 23, 2015, 06:10:53 AM:

Sorry about it being a bit quiet, I'm doing level editor overhaul!

It seems like anything that conveys the information well is obtrusive, and anything that's subtle doesn't convey the information well.

Hahaha this!

The animations could work if there were a little calendar in each of the shelters - Not a piece of ui, but a part of the environment, like a little panel full of rows of LEDs that tell you where you are in the rain season, and how many days are ahead of you.

It's a very strong theme throughout that the environment was not designed for you, and the intentions and motivations of the architects are completely separate from the intentions and motivations of the protagonist, so I don't know... The shelters do seem to be specifically a rain shelter though, so it would perhaps make sense. It would become a little bit more explicit than I'd be comfortable with though - it seems so slugcat convenient that people might start hypothesizing that slugcats are actually the architects or something.

When it comes to stomach growling etc, hahaha, idk, maybe I don't want the digestive functions of the protagonist to play that big a part in the experience. Hearing constant rumbles and growls from the slugcat intestine would tilt the game stylistically away from the pixelly/cartoony style into something else.

Between James and me there's this ongoing discussion, where I tend to think that it's stylistically cleaner to Accept Defeat and include some UI stuff as long as they're not on the screen constantly, and James believes in fighting on. Generally we do tend to solve problems if we decide to keep trying, so the fighting on idea makes sense. However I don't think that the exclusion of UI is worth any price, if it skews the style or mood or has to rely on incredibly forced in-world solutions I'd prefer to just throw some white circles in the corner or something. The jury is still out on this one!





   jamesprimate on March 23, 2015, 09:56:30 AM:

hey i just want to say that this has been some really great conversation. every time i look there is a great new post worthy of in-depth response, but am too slammed with levels to do the topics justice Tongue





   JLJac on March 24, 2015, 09:59:35 AM:

Sorry for not being very active in this discussion, I'm deep in level editor overhaul. But just wanted to let you know I'm following it, and there's a lot of interesting stuff popping up  Hand Thumbs Up Right

In overhaul news, I have just played the first ever 20-screen room in RW history! It takes something like 3-4 minutes of just running to get from one end to the other. Most of the level editor logistics become pretty awkward at this level size, but it technically works. I seriously doubt we'd want/need to go beyond 10 screens anywhere in the game, but it's cool to know that 20 is a theoretical possibility.

Note though that the mile stone here was that a 20 screen room was actually spit out by the editor and accepted by the game, not that everything is done and flawlessly working haha! Basically all the effects (rust, slime, plants) need to be adapted to the new rendering pipeline, and quite a lot of other stuff has to be sorted out as well. But hope is good and there's wind in the sails! Onward!