—    —  Home

   JLJac on March 24, 2015, 02:32:03 PM (Last Edit: March 24, 2015, 02:50:38 PM):

Question: Will the transitions between screens always be "panel jumps"? I remember you had a slugcat camera tracker way back. Do you have plans on implementing this so that moving through screens will be smooth?

Yup, sorry! If you look at for example the water, you see that the levels have a bit of 2.5D perspective rendered into them, and this stuff needs to be rendered from a specific camera position. That's why we can't just render the room from a bunch of camera positions and then graft the pieces together into a continuously scrolling unit. There was a moment when we played around with the idea of having each of the 30 layers be its own separate sprite in order to scroll, but that would put each room at about 10-15 MB (per screen!) and slow down the rendering quite a bit, possibly to the point where that would be the only cool graphical effect we could do. Basically everything we have now that's good looking shader-wise (water, shadows, darkness, etc etc) relies on the level being a single texture. So it's been a bit of a trade-off, and definitely a decision we have seriously considered before making, but now it's made and it's gonna be fixed screens, with jarring jumps between them. If you play in wide screen there's a bit of an overlap, which makes it somewhat better because at least you know a few tiles of the terrain you're headed into. Buuuut yeah, we know this is maybe not strictly optimal, yet we consider it worth it after carefully weighing the options.

Shelter 2 review seemed super relevant!

As for the stomach stuff, I realize when reading the stuff you guys are discussing that I've never really considered the actual bat eating a full-fledged, interesting mechanic in its own right. Subconsciously the bat hunting has always been just a "reason to play", while the actual interesting gameplay is the predator encounters. Under this logic it made sense to just say "catch this many bats or you'll starve" - that's the minimum needed to actually propel the player out into the world. This might be a problem! Catching bats is what you do, after all ~ so it should probably be interesting enough in itself. However, this might be a pretty common video game trope? In Mario you win by reaching the flag at the end of the stage - the flag reaching itself is actually pretty anticlimactic, you just... reach the flag. What's interesting is the problems facing you in order to get there. To a degree I think this is desirable and/or unavoidable, in a video game it will always be the obstacles that are interesting rather than the goals themselves. However, because of the nature of our game, the obstacles can't really be guaranteed - predators roam as they please, and a certain percent of cycles you'll be able to go get the bats without actually encountering any, or only encounter them in easily avoidable situations. For these scenarios, we probably need to make the bat hunting interesting in itself.

I'm still not sold on making the slugcat stomach an entire intricate sub-system, though. I think it's bat hunting that needs to be made more interesting, not bat ... eh ... digestion. When it comes to starvation states that stuff is certainly interesting, but there'd really be no way to do it without punishing a player who's performing poorly. Nature generally punishes the weak (if you're starving you become slow and dumb, if you're born poor you have fewer opportunities, etc etc) but a video game should do the opposite (the further back you are in mario kart, the better power ups you get). This combines with the design guideline that the slugcat should generally not be affected by status effects too much - the slugcat is this little blank-eyed, completely white silhouette, it's a blank slate to project yourself onto, and only through controlling it you can make it succeed or fail. It shouldn't be bogged down or beefed up by lasting "stats", it's defined only in the moment, by the situation it's currently in and by the player controlling it. The slugcat does things rather than is things. Starved and fat are adjectives rather than verbs, and for that reason I'm not sure they fit the slugcat character.

But this is sort of a separate branch of the UI discussion. As for the strictly UI related discussion, I would definitely love to do it without throwing symbols on the screen. The problem is that most solutions seem to require stylistical diversions. A stomach rumbling animation or burping bubbles is a little too goofy for the somewhat grim and creepy atmosphere in the game. Where the slugcat looks and what idle animations it has is probably too subtle, and it veers into the adjective territory. I doubt naturalistic sound cues would work as there'll be a quite a bit of weird stomach-growly ambient sounds going on, and artificial sound cues such as an upwards DIIING if you have enough and a downwards BEEENG if you don't is essentially just as HUD as an on-screen HUD, just coming through your speakers instead of on the screen. Having the character change color would work, but then it'd have to be really clear to effectively communicate what's going on, and might mess with the art style. And what about coop and multiplayer? For proper multiplayer, aka Sandbox, we'll probably have to give in an add actual UI either way because there'll be game rules and stuff going on, and support for 4 players. That's okay though, as Sandbox isn't really canon - it's just for fun. But coop is a strange mid-case.

My favorite option so far is to just evade the problem entirely by having the required amount of bats always be the same, but I don't know if that is James' from a level design viewpoint. Also it still doesn't solve the problem of conveying how many of the required bats you've caught so far.

Not trying to shoot your ideas down btw, I'm really interested in this discussion and there has been a lot of great stuff coming up - just haven't seen The One idea just yet. Awesome talk though  Hand Thumbs Up Left Well, hello there! Hand Thumbs Up Right





   jamesprimate on March 24, 2015, 03:56:40 PM:

Ohhhhh I'm really into Gimmy's bat idea. Joar had plans for something similar using move timing and an "adrenalin" system to unlock more advanced move sets (which I really liked the idea of), but the bats as a perpetually available version of the same makes perfect sense, solves a bunch of problems and is already built in. See this is why you're our lead designer G. 





   JLJac on March 25, 2015, 05:43:49 AM:

@Tiredvd, Hi, welcome! Okay, I'll try to clarify. You know the basic laws of perspective, right? Lines converge at the horizon. Imagine standing on a street, pointing a camera down the road and shooting a picture. Then you take ten crab-steps strafing to the left, and shoot another picture.

Each screen in our game is such a "photo" of a small voxel-based 3D world. The reason why we can't just put one next to the other and scroll between them is because the perspective is different. In the camera example, imagine trying to combine the two photos into a panorama. It wouldn't work, because everything in the photo will have moved a different amount depending on its distance from the camera. The lamp post right in front of you will have moved all over the picture from one end to the other. The tree two blocks down will have just inched a tiny bit to the right. And the same phenomena applies to every single point in the picture. The perspectives are not  compatible.

This shows the overlapping area between two "screens" in a room from the game. Note that in the middle, you see the same structure, but it's rendered at different angles because the perspective is different.



This is the reason why not several screens can be attached to each other to create a scrolling continuum.

Also just to highlight a valid point that Torchkas raised earlier, that I feel you might have missed.

Totally didn't miss that, just hoped for it to pass under the radar  Cheesy

#bubbles, if the bubbles change their appearance a lot to show different states of the slugcat, that sort of takes them beyond the point where they'd make any sort of physical sense, and don't we just have ordinary good old HUD then, but presented in a slightly different way?

Another way of showing the character state would be the closeup that can be shown at the beginning of every cycle. Imagine level of detail similar to the logo artwork, maybe even with some animation, that shows the state of the character.

I'm really into this idea!  Grin This provides a perfect opportunity to get to know your character a little more intimately than just as a tiny cluster of pixels on the screen! I've wanted to include more artwork in the game for a long time, but because of the minimalist UI etc I haven't really seen any opportunity - but this is it! While being in the den you are sort of half in-game, half not, so it's the perfect context to include something like this. A little could go far with this I think - just some illustrations of the slugcat sleeping in the shelter as a "win screen", maybe with the pups if you have any, would really add a lot of narrative quality to the game without really intruding on the actual game, because in the den you're half out of the game anyways!

Oh man oh man so much cool stuff! On cycle start, there could be some events that could happen, communicated through pictures. For example that one of the pups is sick or starved. Maybe the cycle starts with a black screen where you can see an illustration of each member of your little pack waking up. Under each illustration is a row of bat symbols (which is okay, because this is not a HUD overlaying the game, this is just the cycle's establishing screen!) and if one individual is sick or starved or something that's communicated through the illustration and reflected in that they need a few more bats. Then the intro screen fades out, and you start playing in the shelter!

I'm really enthusiastic about this Who, Me? Gotta see what James has to say though, and run it through some discussions with him to see if it holds up, but I'm digging it!





   JLJac on March 25, 2015, 08:18:04 AM:

EDIT: Or, for that matter, maintaining the vanishing point in the same place relative to the world and panning the camera around independently? That would allow the "walls floor and ceiling" to still show at the edges. Lots of traditional 2D animation backgrounds work like this, as do the side-scrolling painted backgrounds in fighting games, eg:

This is how we're going to have to do it for split screen and some platforms with smaller screens (when the viewport is smaller than an in game "screen" we'll have to scroll stuff around within that camera position), and I'm sure it'll work out okay. Doing it for multi-screen rooms becomes problematic though, because at the edges stuff becomes so skewed you lose your player avatar behind extruding terrain. The alternative is to have the edges always be the same amount of skew, but in that case the central screens become completely flat. Unity has a texture size cap that's way below the rooms sizes we want as well - and the room textures are actually pretty large memory wise.

oblique projection, yeah, totally considered it. It would open up some technical possibilities for sure. Actually the level editor can spit these out super easily, just have to change a few lines of code:



It has benefits, the rooms might be a little easier to read visually. But it's less aesthetically interesting according to me, because you only get either the lit or the shaded sides of each surface, which makes the image look flatter and gives less room for visual contrast. Also it looks more technical and video-gamey rather than the wonky and slightly unsettling perspective. It's an art style choice, I guess!





   JLJac on March 26, 2015, 07:38:44 AM:

Thanks! Yeah that's my thinking as well, the visual style is such an important component we don't necessarily want to compromise it.

Update 408
Took a small pause from overhaul to implement a bloom filter for the Sky Islands palette:



The shader is active, so when stuff moves in front of it the bloom is affected by the sprites:



It's most prominent towards the top/left corner of the screen (where the light source is). Still needs some tuning, I think it might be a bit too much right now.

The shader only adds, never subtracts, meaning that any given color can only be made lighter, not darker. This is why the black vulture gets affected by the bloom, but not the white slugcat.

I don't know if you can notice, but this time around I made the blur check for neighbors diagonally rather than in the straight lateral directions, which looks a bit nicer IMO. The truly ideal case would probably be a circular gaussian blur, but that'd be several times as expensive, so I don't know if it's worth it. I suspect my computer has a pretty strong graphics card, so I have to be careful not to program the shaders too heavy to actually work on most machines.





   JLJac on March 26, 2015, 08:42:36 AM:

Yup it's definitely not all the way there yet! But it's a start for getting a better picture of what the area might look like. I agree that the diagonal rays are a bit too jarring... I should probably try a square blur - though that'd be twice as expensive. I could make the blur radius smaller though to save some cycles, which is perhaps not a bad thing actually.






   JLJac on March 26, 2015, 09:32:05 AM:

Oh, this room is actually just a room I threw together for James to demo the tiles. It has aaaall the ornament tiles in it, and no slime or rust effects, so it totally doesn't look Rain World enough for Rain World. The actual rooms James has been making are  more worn down and less fairy tale-ey. They do have a bit of that quality though, and at least I think that's an interesting visual contrast - as the huge antennae rise towards the sky they take on a lighter and more ethereal quality.

@Christian, yeah it's some sort of antennae and relay technology. Some sort of signal is being broadcast or received. In this area there'll be less heavy machines and pipes, and instead more fine machinery (assumedly more information technology rather than heavy industrial technology)





   jamesprimate on March 26, 2015, 12:08:26 PM:

oh snap! that bloom is going to look great. i just bothered him about it when comparing one of the old sky islands concept rooms from the lingo to the updated one:

old:

detail: https://i.imgur.com/olhAtS0.jpg

new WIP:

detail: https://i.imgur.com/vorCIjt.png

clearly the bloom is a big part of the mood for the original, so ill be psyched to have it in the toolkit!

SKY ISLANDSS

Talking levels ehh? its like the Bat James signal! for the actual sky island rooms, lets take a look at what we've got going so far...

scaling some large antennae:

detail: https://i.imgur.com/qhVExHB.png

crumbling information relay structures:

detail: https://i.imgur.com/MqZX9Yz.png

and finally, a taste of the sky islands themselves:

detail: https://i.imgur.com/wZY9fYM.jpg






   JLJac on March 27, 2015, 05:24:24 AM:

Quote from: JLJac
-snip-

While this doesn't seem like a terrible idea, I do think there is a significant problem with it. Namely, that it sounds like you will be showing the illustration with the bat symbols once at the very start. The player will then need to remember how many bats they needs to eat, as well as how many they have already eaten, through the rest of the cycle with no feedback to indicate when they have had enough. Add in the number of bats each pup needs to eat, and try to keep track of how much each has already eaten and it become very easy to lose track and have someone starve.

Will you have loading screens or something similar where you can reinforce and update the information about how many bats each character still needs? I don't think that telling the player once at the start of each cycle is going to cut it.

I don't believe that's what he means. He wasn't addressing the U.I. problem with the bats; rather, he was addressing our comments about the slugcats looking hungry, or fat, etcetera. Previously, it seems like he wanted to do this, but didn't want to compromise the visuals during gameplay, and this seems like a good solution.

With this in mind, I would guess that he plans on implementing "soft hunger", or rather, the ability to not quite catch the total of bats, but still scrape through with the requirement of catching more in the next hunt. I'm sure testing will show whether this will be enough to do away with the bat u.i. entirely, but I have a feeling it's going to stick around in some form or another.

Yep yep!

"Soft hunger" - yeah maybe? Don't want it to be too floaty though. Maybe you could have it so that you can get away with exactly one fewer bats than required. The problem of having a penalty such as having to catch one more the next hunt is that the hibernation is also where the game saves, so then you could potentially have your game saved into an if not unwinnable at least dire situation. Contrary if you have no penalty, it's effectually just a matter of the UI showing one more bat than you actually need. Also a penalty would punish players who're performing badly, which is something I'm hesitant about. Obviously not in the short time scale, like if you miss a jump you fall down, that sort of "penalty" should be in there definitely. But bogging down a player who's not performing well with some lasting punishment that bleeds over into the next cycle seems unfair to me.

Bloom - yeah, I know about the two-pass technique, but it's not applicable here. Because I don't blur the entire image, I just want to blur out from whatever pixels are the palette defined sky color. If I did first a vertical blur, then when it was time for the horizontal all the pixels would be muddied up and there'd be no clean sky color pixels left.

What's box blur? Sounds interesting!

My friend recently sent me a link to an article about how you can do cheap gaussian, and I'll look into that to see if there's anything I can extract. The tricky part is that I'm actually not just doing a straight up blur, I need to have only some specific pixels emit the blur...





   JLJac on March 27, 2015, 02:00:07 PM:

The idea that you can under-eat once, but not twice in a row, seems to make sense! But how to communicate it? It seems a little harsh that first you survive eating too little, but the next time BAM total binary death haha!

So box blur is essentially just about scaling a texture? Do you do that in the shader language, or somewhere else?

Yep, know that the bloom is a bit too much in that gif  Who, Me?

Thanks jimbert!

Update 409

In other news, huge milestone reached! The overhauled editor is now on par with the old editor! Basically meaning that nothing (that wasn't already, hehe) is broken, and the editor can do everything the old one could and then some - it can for example spit out huuuuuge rooms, and James now has control over the screen skewing effect going on rather than it being random, and some minor UI stuff and misc little errors are fixed.

I still estimate that it will be a couple of days more before we're actually through to the other side of the overhaul, but from here on the overhaul will be about adding new stuff rather than adapting the rendering pipeline to accommodate for larger rooms.

What new stuff? I have two things I want to do, though their actual level editor implementation might be somewhat merged. The first one is the Prop Editor.

Currently everything you see in RW is a "tile", which is basically a graphical asset that can be placed on top of terrain and will then be rendered. Tiles have specific terrain requirements, one might be 2*3 tiles large for example, and require each of these tiles to be solid except the top left corner, which should be a slope. This way James can first create a "geometry" (lots of RW editor lingo here, sorry - it's a very limited little set of technical terms used pretty much only by James and me), which is a map of the room where it's visible where there is solid terrain, where there is not, where there are slopes, etc. Then he "tiles" the geometry in another editor, by adding these graphical assets in places where their terrain requirements makes them fit. Basically this process guarantees that what looks like solid terrain will also be solid terrain.

The problem with this is that all the graphics are strictly on the grid, and can never be rotated. The Prop Editor will allow for adding "props", which will basically work just like the current graphical assets except that they will be more free - you will be able to rotate them and place them anywhere, not only on the grid.

Yes, this has the potential of messing things up by allowing for placement of stuff that looks like solid terrain in areas where there isn't any solid terrain. I trust James to be responsible with it though - if the props go mainly in the background layers or in out-of-reach areas this won't pose a problem. What it will do is allow us to explore new and more interesting visual possibilities. Think of it, it's actually infinitely impressive that he has been able to create the impression of decay and destruction without ever being able to place any object at an angle  Who, Me? This tool will allow for fallen down structures resting against other structures, bent shapes, and also non-destruction based stuff such as just cogs and gears sitting along different angles.

The other editor I want to add is the Decal Editor. This one will allow to place assets in the world in a similar manner, but instead of rendering as actual objects, they will render as custom color on top of the surfaces behind them. This one will probably be used pretty sparsely, because Rain World's art style relies on the backgrounds being sort of monochrome with the colored creatures standing out against it. But we have a couple of ideas for which some custom color is needed, and I think it will add some spice to the world with a little color here and there.

Not all of these colors will necessarily be "colorful", either. The decal editor will also be able to do stuff such as a brown-grey line along the edge of a basin, indicating where the water level might once have been, and similar little touches.

So, now to doing it  Cheesy Wish me luck!





   jamesprimate on March 27, 2015, 03:03:15 PM:

YYYYAAAAAAAAAAAY!





seriously this is something that has been looming over our heads for almost a year, and so big big big deal in our little world. great job homie!

timing wound up bring pretty much perfect too. the large multi-screen rooms start to become a significant game mechanic development as you go deeper into the world, so up until now we've been working on the regions that they dont appear in or at least dont feature prominently. Heavy Industry features one, but only as a transition set piece into the Shadow Urban region, so adding that in later on a second pass is no problem. Sky Islands starts to introduce them as actual functional pieces in the region layout, but i would have still wanted time to develop the look and style of the region before digging into that. and thats how it happened! so basically....

~~~ >>>----------> ((o)) bullseye!

only problem is that now i have to actually DO them and am anticipating that these large multiscreens will each take some serious time. perhaps 2ish days each, and the rendering will be pretty painful. but nothing to do other than just get into it. ill start out tonight with a 2x2 and see how it goes!





   jamesprimate on March 27, 2015, 04:58:00 PM:

Quote from: JLJac
Yes, this has the potential of messing things up by allowing for placement of stuff that looks like solid terrain in areas where there isn't any solid terrain. I trust James to be responsible with it though - if the props go mainly in the background layers or in out-of-reach areas this won't pose a problem. What it will do is allow us to explore new and more interesting visual possibilities. Think of it, it's actually infinitely impressive that he has been able to create the impression of decay and destruction without ever being able to place any object at an angle  Who, Me? This tool will allow for fallen down structures resting against other structures, bent shapes, and also non-destruction based stuff such as just cogs and gears sitting along different angles.

YEAH. def. considering how established the visual style is at this point, adding this whole new universe of angles has to be done pretty subtly. Ill admit im a little apprehensive about it tbh. The region its "intended" for (in my mind) is the Garbage Wastes, in which having angular junk sticking out in the background is just a good look, and if that winds up having a more unique look to it as a result then so much the better. so anyway i'll have a bit of a prop editor sandbox to play in and develop technique with it before applying it elsewhere. if we can get some cool stuff out of it there, i'll go back and add them in to the regions already done in a 2nd/3rd pass.





   JLJac on March 28, 2015, 08:03:50 AM:

Quote
The idea that you can under-eat once, but not twice in a row, seems to make sense! But how to communicate it? It seems a little harsh that first you survive eating too little, but the next time BAM total binary death haha!

I think that's where your establishing pictures might take over. Say you return from a hunt under-fed, when you settle down to go to sleep you either get a picture/animation showing the slugcat returning happily and healthily, or you get one showing the slugcat exhausted and hungry. This lets players know that something is up. Maybe the bat symbols fill up to show how many you ended up with, like a score screen?

Then before you start the next round, you either see the slugcat getting up looking healthy and ready to go, or the slugcat is looking pretty rough and possibly slightly emaciated (ribs showing or something, but nothing that would have to show up on the character avatar itself). Maybe the bat symbols are outlined in red this time, to let you know it’s serious?

If you return under-fed this time, the end-picture would of course be the slugcat returning looking incredibly exhausted and starved, and then some sort of death-screen to demonstrate that the slugcat had starved during hibernation.

If there's still room for confusion about how the slugcat could be all emaciated after just going to sleep, perhaps the timeframe could be illustrated by an animation/illustration montage showing the rains coming and a week or (or however long a rain cycle is) so passing? That might be a nice break between hunting cycles, providing a little downbeat to punctuate gameplay.

I dunno, that might be way more illustration than you'd want to actually have (I think it has the potential to be really beautiful), but it's an example of one way you might go about it.

This sounds about right! Hand Thumbs Up Right Hand Thumbs Up Right Hand Thumbs Up Right Hand Thumbs Up Right Hand Thumbs Up Right

We have been discussing maybe taking in an illustrator, and I think that if we end up going down this route it might actually be necessary, because my own visual art skills are super rusty by now haha! Also after a year of programming and almost no drawing, my procedural animation skills have developed simultaneously as my drawing has rusted away, so I don't really know if I could make illustrations that could live up to the level of the in-game graphics. And then comes the issue of time o_0 The problem is of course that I'm super particular with the style... We'll see how it goes! Lots of programming to do before this is on the table!

Also, congrats! I'm super excited to see what James does with this new toolkit you will heroically pull together Joar!
Thanks! Just a small edit there  Cheesy

YEAH. def. considering how established the visual style is at this point, adding this whole new universe of angles has to be done pretty subtly. Ill admit im a little apprehensive about it tbh. The region its "intended" for (in my mind) is the Garbage Wastes, in which having angular junk sticking out in the background is just a good look, and if that winds up having a more unique look to it as a result then so much the better. so anyway i'll have a bit of a prop editor sandbox to play in and develop technique with it before applying it elsewhere. if we can get some cool stuff out of it there, i'll go back and add them in to the regions already done in a 2nd/3rd pass.

I'm actually happy to hear that you're a bit apprehensive, because I feel that cautiously is the right way to go into this. We do have an art style that's well defined and appreciated by a lot of people, and this is definitely going to change things up, so let's be careful about it. That said, I think just little touches (such as having 4 columns in the background, of which one is broken and resting against its neighbor) can really spice things up. Everything being aligned to the grid gives the world a sort of consistency and rigor that's probably needed in order to make the environments feel like something you can understand and navigate. Stuff that's not on the grid will definitely need to be the exception rather than the rule, or it will get too visually noisy. Let's experiment with it and see where it goes!





   jamesprimate on March 30, 2015, 02:14:20 PM (Last Edit: March 30, 2015, 02:22:09 PM):

Was thinking about the illustrations a bit over the weekend, and ended up producing some fan art!



this looks AMAZING. you have twitter? can i tweet it from the RW account? want to properly credit!





   jamesprimate on March 31, 2015, 02:19:34 AM:

Quote from: tortoiseandcrow
Shucks! Thanks so much James, and everyone else who said nice things. I've got a twitter account for my podcast, but I prefer to keep it separate from my design work. You're welcome to tweet it if you like, though! If you want to credit it, my name is Kirk.

posted! liked and re-tweeted by many :D https://twitter.com/RainWorldGame/status/582716976407175169

New kickstarter update posted, if anyone is interested in a summary of the past months progress: https://www.kickstarter.com/projects/rain-world/project-rain-world/posts/1183701

kickstarter's handling of gifs seems to have really gone down the drain in the last overhaul im sad to say. the new UI is pretty bad too. worse than before if thats even possible :/

Things have been a little slow in level land. trying to get the new editor up and running was some fits and starts, but looks like the bugs have been worked out and 2x2s are on the menu. Joar made some good progress with the prop editor as well, and early test images with it seem to suggest that a lot is possible that wasnt before.  Hand Metal Right Hand Metal Right Hand Metal Right

also we talked out a new creature that had been needed for Sky Islands that im pretty excited about, but i'll let him fill you in and show off demos when hes on Smiley






   JLJac on April 01, 2015, 07:33:29 AM:

 Shocked Shocked Shocked Shocked Shocked
That is nothing short of amazing! Thank you soooo much  Grin

Prop editor is coming together!



This isn't actual art, just me testing that the rotating props are working. A lot of potential though  Hand Thumbs Up Right Hand Thumbs Up Right Hand Thumbs Up Right





   JLJac on April 01, 2015, 07:52:07 AM:

Haha yeah  Cheesy The real art James comes up with will probably look a lot different though.

Update 410

Sorry about it being a bit quiet! James and I have had several long talks about the direction of the game, and have decided on some pretty fundamental changes.

The big change is about the slugcats offensive abilities. We definitely felt that the game was lacking something, and it took us a while to figure out what. However, we came up with some ideas, and I've started on some basic implementations:



Not really done yet, I want to add some flying shells as well, but I'm really happy about the lighting effects  Smiley Obviously there should be sparks on impact as well, but I need to get some basic infra structure for the bullet physics down first.

Other than rocks and spears, we want to expand the slugcat arsenal in order to give the gameplay more variety. We want the new equipment to work with the world, so instead of just adding standard weaponry we have some ideas that are more in line. I don't want to give too much away, but other than this (admittedly fairly standard) machine gun, we want some sort of weapon that shoots spears as well - basically a spear bazooka. I've also made a few sketches of a rock grenade, basically a bomb that shoots rocks in all directions upon detonating.

This is really gonna change things up  Shocked Will be super interesting to see how these new pieces interact with the existing enemies. In order to make the enemies challenging, we will probably have to equip some or most of them with new offensive capabilities as well. I'd like for the lizards to have head-mounted machine guns, but we'll see what works.

Lot's of exciting stuff coming up!





   JLJac on April 02, 2015, 08:51:37 AM:

Upon closer consideration, we decided to go back to the original plan  Wink Hand Thumbs Up Right

Update 411
Apart from the editor I have been working on a new creature. I haven't made updates yet because I've been working on the behavior and haven't yet skinned it, and I know that what you guys want to see is gifs of stuff other than moving little boxes. However, the behavior is starting to finish up, so I thought I'd give you a little update on what's going on with that.

The new creature is based on a backer suggestion, and basically a mix between a flying squid and a cicada. It's roughly slugcat-sized and a very quick and proficient flyer. Here are some sketches, even though judging by how things have been going so far the actual implementation tends to end up not looking a whole lot like the sketches.




When experimenting I tried to make it so that it flies with its head up because the vulture already flies with its head down, but it looked a bit goofy and totally lost the squid-like quality, so I settled for a head-down design. A lot of what we had planned for the "buzzer", including quite a bit of how it actually looks, have ended up going into this creature instead. For the buzzer we have other plans, but as for how it will look that's a bit in the blue right now as this one ended up stealing a lot of its design particulars.

There are still a few things that are not decided on, such as exactly how the tentacles/legs will look like, and how long they will be.

However, the behavior is coming along nicely!

What I'm most excited about with this creature is that they're the first one that actively and purposefully migrates through the world on a large scale. Cicadas eat bats, and upon spawning in specific cicada den rooms they map out a route to a closeby active swarm room. Then they move there, through abstract or realized space. In the swarm room they hang out, hunting some bats. They can't eat bats on the fly like the slugcat, but rather have to bring them back to stow them in their dens similarly to how the lizards stow you in their dens and then re-emerges to hunt some more. After storing a bat, they head back to hunt some more if the rain timer permits it.

This means that between the cicada rooms and the swarm rooms there's a traffic of cicadas, travelling in one direction with bats in their clutches and in the other without. This stuff really works  Tears of Joy

The cicadas can catch bats in abstract space, dispose of bats in abstract space and move with bats through abstract space. So there can be quite long migration routes through several rooms, not all of which have to be realized, and traffic will still keep flowing. My early testing with this stuff is something I'm super excited about! Entering a room where cicadas are flying back and forth gives so much life to the game world, and following the route in either direction to see them hunt or dispose of their prey really adds to the sense of scale. You can feel that there's a process going on that is larger than just one room, and this is something I'm super happy to finally have implemented. Naturally you can also use this to your advantage by following the cicadas to the swarm room. Only problem is that then you end up in a swarm room which has cicadas, which is pretty annoying...

The cicada-player relationship is based around the cicadas viewing you as a rival in their bat-hunting. They won't actually hunt you, because they're too small to eat you, but they'll antagonize you. Their standard method of harassment is bumping into you with a quick charge attack or grabbing on to you and pulling you in some random direction, both of which is actually really dangerous in the Sky Island terrain where it's easy to fall to your death.

One thing I'm not done with in their behavior is that I want them to only attack you if you're actually close to a swarm room, but for that I need to do something I call Dynamic Relationships, which is a small AI rewrite I haven't gotten around to. Basically right now the creature relationships are all defined on startup and can never change during play - if one creature views another creature as prey it will always do so, for example. With the dynamic relationships I want to take that data and filter it through some context, such as "attack this creature only if it's close to a room of this specific type" or similar. This same system will also run stuff like the Vulture Mask (if you're holding it lizards are scared of you, otherwise they hunt you) as well as the individual traits (stuff like aggression can be weighted through the individuals specific setup) and the individual relationships (if you save the life of an individual, that individual might stop hunting you). Lots of exciting stuff when I get around to that, which will be soon!

As for now, when a cicada stores a bat in its den a new bat is spawned randomly in one of the active swarm rooms to keep bat populations up. For all of you food-web purists out there, sorry  Wink I'm fully aware I can't make this system balanced, and it's more important to me to keep the world active and looking like a balanced system rather than it actually being one.

The last note on the cicadas is that you can pick them up, similarly to how snails can be picked up. When you hold the cicada it will try to fly, and this grants you the ability to do long, floaty jumps. As it carries you, the cicada loses stamina, which is replenished when you're on the ground and it doesn't have to actively carry you. This means that you can't use the cicada as an infinite parachute, which is both a gameplay limitation and a rationalization of the fact that you still die from fall damage if your fall off the sky islands.

We've been talking a bit about how easy it should be to catch the cicadas, and we think we have an idea but it'll need some tinkering for sure. I don't want you to be able to just run into them and grab them as they're actively attacking you, or they'd sort of lose their role as a threat. The current idea is that when they're buzzing their wings you can't catch them, but if they're sitting on a wall or momentarily stunned you can.





   JLJac on April 03, 2015, 08:22:26 AM:

Instead of (or in addition to) them being agressive towards you in certain rooms I'd suggest adding some reactions to the player behavior. For instance, if they see you catching a bat they will try to take it from you, instead of catching their own, and they will pull you away from bats in general, if you get too close.

Although those kinds of behaviors should really depend on their numbers. How many cicadas can we expect to be in a room simultaneously? If 1-3, then being generally agressive would make sense, but if more than that, then it may be a bit overwhelming to the player.

Also, do lizards and vultures eat them?

Edit: Also also, do their wings have to be so so cicada-like? I think it would be more interesting to make them a mix of dragonfly's long and thin dual wings and cuttlefish's single floppy surface.

Having AI creatures be able to read player behavior is something I'm really interested in, but it's really really difficult stuff. Like, proper academically researched difficult stuff. It's similar to voice and image recognition software in that it takes a bunch of fuzzy data and tries to boil it down to a hard-lined concept, which computers are not naturally inclined to. Like, trying to have the AI figure out if the player is aggressive towards a specific creature - how would you start? Maybe by checking if the player is moving towards the creature, that seems like a decent starting point. But from there on it gets very difficult. Trying to interpret more complex intentions from the player actions is even harder. I'll probably give some of this a little bit of a go though, but don't expect too much!

White lizards eat cicadas, catching them with the tongue. Vultures might snag one if there's truly no other option available.

I think the creature is cuttlefish-like enough, and the little fins wouldn't really make sense for air flying, right?

If the bats are spawned randomly in any of the swarm rooms, does this mean that cicadas can decrease the population of any specific swarm room that they frequent (while the global population remains the same)? I kind of like the idea of being forced to move shelters because the cicadas have out-competed you on the swarm rooms nearest to your current home base.

Also, april fools joking aside, as far as offensive/defensive capacities go I find myself imagining scenarios where it would be awesome to have the ability to stab with a spear without releasing it, such as being trapped in a corner and trying to defend yourself/the pups from a vulture or something.

Also also, speaking of Dynamic Relationships, is there a point where if you cause enough trouble/pain for a predator such as the vulture that they'll cut their losses and retreat?

Theoretically yes, but the bats migrate around the world so it wouldn't be super clear. The bats converge and dissipate in different swarm rooms all the time.

We've been talking about stabbing and decided on no. Throwing the spear is a bit of an investment, if you could stab every creature encounter would just be about tap-tap-tapping the button, and it'd feel like a fighting game. I think an important feature of Rain World is that it is a game that features fighting, but it's not a game about fighting. Violence is just one of the mechanics.

When dynamic relationships are in it's really low hanging fruit to have a predator be afraid of you after you've induced enough harm on it! So yeah, that's exactly the kind of thing I want to do with the system  Hand Thumbs Up Right Hand Thumbs Up Right

Don't forget that n creatures is interactions, it's exponential. Even though there is generalization that limit the number of link, it increase the scope of the game greatly, I hope you have planned for it? How many creatures there is in total? Maybe after a certain threshold required (such as backer's) you should set hard limit and treat everything beyond has bonus, as you might exhaust. It can be mitigated by creating and enforcing scenario that limit different species in the same place according to interactions limit.

In the lingo build, this was the case as I made all interactions manually. After adding like, 4 creatures things got pretty rough  Shocked C# build has a system where I can define creature relationships and give them categories such as "Eats", "IsAfraidOf", "FightsForTerritory", etc. The relationships can also have different strengths.

Then I try to keep basic behavior such as hunting or fleeing as general as possible, so that they can work with any two creatures. For example, say that a blue lizard is fleeing. It will use the data of the creature it's fleeing from, and depending on that the flight AI module will behave a bit differently. Fleeing from a Green Lizard will make the floor tiles seem more dangerous, maybe causing it to climb up a wall. Fleeing from a vulture will make narrow spaces seem safer. All of this stuff is basically just about interpreting the AI bake maps and other available data in a dynamic manner, so I actually don't have to write any creature-specific code to get these behaviors.

Using this, I can define most creature interactions in a single line of code. When adding the cicada, for example, the only code I wrote to make it interact with the Vulture specifically was this:

        EstablishRelationship(CreatureTemplate.Type.Vulture, CreatureTemplate.Type.Cicada, new CreatureTemplate.Relationship(CreatureTemplate.Relationship.Type.Eats, 0.1f));
        EstablishRelationship(CreatureTemplate.Type.Cicada, CreatureTemplate.Type.Vulture, new CreatureTemplate.Relationship(CreatureTemplate.Relationship.Type.Afraid, 0.7f));

Vultures can eat cicadas, but are pretty disinterested. Cicadas on the other hand are afraid of vultures (because they're huge). To my delight, both the hunting of the vulture and the fleeing of the cicada seemed to work out like expected.

So even if the number of interactions will grow with n^2, that's actually sort of acceptable if it's only two lines of code for each interaction. Soon it's getting close to the point where I need to make a huge sheet of paper and put the creatures as rows and columns to plot it all out though. It's a lot of fun, as this is where the weird emergent behavior happens.

Then of course some creature relationships are more custom. Snails and leeches, for example, have a bit of code going on between just the two of them. But these special cases won't grow exponentially, they'll just be thrown in here and there when we have some specific idea.

This brings to mind the mobbing behaviours of small birds like starlings. Squabbling one on one with competitor species, harassing hawks in a large mob to drive them away. It'd be neat to have them be a pain to compete with, but have them also be kind of beneficial to have around in large groups because they can sometimes drive away a vulture.

Maybe it could be pretty cool to have cicadas harass vultures like this... I'll try it out Smiley


Some moving boxes! It's pretty murky what's going on right now as there are no animations, when skinning them I want to add visual indicators for when they're charging, grabbing you etc so you have a more clear understanding of what's going on.



The cicada jump! Obviously the player should actually be holding on at all times haha - more animation work to be done!






   jamesprimate on April 06, 2015, 05:30:53 PM:

^^^^ ROFL