—    —  Home

   JLJac on October 01, 2015, 12:27:18 PM:

Yeah I think so too! The maze game is perhaps not quite as strong as the platforming game, but it is suspenseful and fun when there are a few lizards around, and it's a very welcome change of pace. Suddenly the game becomes way more about planning and thinking rather than quick reflexes.

Update 485

More tile work! This is a little bit more exciting, so I'll leave it to James to show it off properly in an environment in a couple of days!





   jamesprimate on October 03, 2015, 02:47:33 AM:

GOING DEEP!

Past week or so we've been working on materials and structure for the 11th (and penultimate) region on our to-do list: Subterranean! Probably won't get into too much detail with the specifics of it since its among the final regions the player will encounter, but suffice to say that its underground, so totally happy to show off some of the deep cave-like elements we've been messing with for the top layer subregion.

Joar has whipped up a *fantastic* new (procedural?) dirt tile material and a pair of dark-ish cave palettes to get us going. Worth noting is that we spent a few days fretting on how to make these work, as both aspects are potentially a bit of a departure from how things have been done so far, but i think it came out really well:



detail: http://i.imgur.com/8wndxmd.png

This sub-region is "Near Surface Subterranean", so occasionally you come across areas where the cave ceiling has given way and shafts of saturated light shine down, illuminating the walls. So we needed a palette that would work with various lighting types and could also be blended with other "outside" palettes for when transitioning to other surface regions. No easy trick, and Joar did an amazing job! I know its subtle stuff, but definitely worth pointing out as I think its the best palette work in the game so far. Here is the same palette, but deeper underground and with only player lighting:



detail: http://i.imgur.com/gyl3kYY.png



experimentations continue... so more soon!





   JLJac on October 05, 2015, 01:19:49 PM:

Update 485

Doing some interesting experimentation. This material allows the user (James) to draw a "destruction gradient", making it so that in one end of the room the tiles might be orderly and in the other chaotic.



Also I've been making a bunch of big tiles. We'll see, they'll probably pop up here at one point or another! I'm sort of leaving it to James to decide what parts are to be considered "spoiler" and what parts of the region he's comfortable showing off, that's the reason for the vague wording  Wink





   JLJac on October 06, 2015, 10:34:30 AM:

Does your destruction gradient also apply texture overlays to simulate wear/tear/destruction, or is it mainly concerned with positioning and edge effects?

It's separate - we already have several erosion effect in place. In the example I made it so that there was most erosion in the same place as where the tiles are the most displaced as that seems like what would make sense in most cases. I wanted to de-couple them to give James that little extra bit of control though!

Update 486

Starting on save files. Today I started out in one region, moved to another and got into a shelter, and then was spawned in that region instead. Milestone!





   jamesprimate on October 06, 2015, 01:48:07 PM:

^ this is so huge. its basically the hinge point of the entire progression mechanic, hahaha. with this functional, rain world is OFFICIALLY A VIDEOGAME.

you would think that something so essential we would have done before, in the past 2 years, right? Hey, better late than never!





   jamesprimate on October 06, 2015, 02:08:11 PM (Last Edit: October 06, 2015, 02:46:43 PM):

thats because hes only showing a quick mock-up room specifically to demonstrate those new ceramic tiles and the new "ceramic chaos" tile effect. as im sure you can tell from the previous screenshots of actual game content, weve got toooooons of erosion and distortion tools at our disposal (like, an absurd amount), they are just not being used in this demo room. 


per the save state question, even though its early and joar will probably have much more to say on this, i can tell you that the creature AIs are based out of hundreds (thousands?) of "dens" scattered throughout the world, which are nodes that the creatures use as nests basically to drop off food and find shelter, etc. The creatures themselves perpetually exist in abstract space throughout the current region the player is in, so they will be moving around, hunting each other, etc. off-screen, before eventually having to find a den to take shelter in when the rain cycle comes (or die.) so long story short, im guessing that the save state of the creatures will be based on their den position.

couple this mechanic with Joars individualized random-seed creatures, and there is a ton of cool stuff we can potentially do with this: creature migrations, ecosystem evolution based on survival rates, etc etc., but first things first!





   JLJac on October 07, 2015, 01:16:50 PM:

Because the checkpoints are bound to the rain cycles, I won't have to save the position of every single object down to float space vectors - for the creatures that made it back to their hiding holes I can just save the den coordinate, and the rest I can throw away as dead  Hand Thumbs Up Right

Update 487

Swarm room depletion. I have it set up now so that if you are eating from swarm rooms they deplete, and that data is stored to the save file. At the moment it's set up so that each cycle you can only deplete one swarm room, which will hopefully create a nice pace to forcefully propel you to explore new areas.

From my few test runs, it seems like the situation becomes pretty dire pretty quickly Who, Me? This is going to need some balancing! There are many things that can be done though - such as spawning slightly more flies in the swarm rooms that are left when they get fewer, or lower the starvation threshold. Really fun to actually be playing this as a real game!





   JLJac on October 08, 2015, 10:40:31 AM:

Welcome! Yeah, agreed on all points! The "carry over" of bats has been a thing that has been up since "maze runner" days, and it's not at all out of the question. Would just have to come up with some UI solution for it that seems clean enough, and some kind of cap so you don't manage to get 55 bats through some exploit in one run and then don't ever have to hunt again.

Suicidal exploration should be kept at a minimum. One VERY rough measure that could be taken against this could be some kind of extra penalty if you die two times in a row - such as throwing you two save points back (naturally with a corresponding lowering of general game difficulty). That's... rough, though. The idea is that you should have enough time to both search and catch bats within the same cycle - if that's viable there won't really be any reason to do the suicide missions.

In later versions it has been made a bit simpler to catch the bats when you are in the swarm room. The idea behind this is that the bulk of the time should be spent exploring looking for the swarm room, not jumping around in frustration trying to catch some elusive bats once you've actually gotten there. Together with a lower bat quota I think we have been taking some steps in the right direction since alpha days.

Visual indicators (UI or in-world) leading you towards the bats might become necessary, but if it's possible we'd like to do without it. Would be a shame to impose on the atmosphere of the rooms with some ever-present visual element like that.

All of these ideas are totally possible, and it's a lot of fun to finally have arrived at the point where we're implementing and balancing stuff like this!





   jamesprimate on October 08, 2015, 07:08:44 PM (Last Edit: October 08, 2015, 07:17:28 PM):

You could counter the possible exploitation by making slugcat fatter and slower the more he overeats in a single cycle.

i was thinking the opposite actually, like you can survive a single cycle without enough food, but you go into a weakened "starvation mode" until you make up the food debt. over-feeding carries over a capped amount of food into the next round (the cap could easily be done, just have the slugcat shake its head and refuse to eat more that a certain amount.) then a player could balance "hunting rounds" to maintain health and "exploration rounds" to progress.

a potential solution for that might be to have some sort of food meter system, etc etc., where the first tier is "starvation", second tier is "safe zone" and third is "carryover." This would probably be helpful anyways when the pups come into play, which the player will have to feed.

                              fed   
starvation [ - - - - | - - - - | - - - ] full


anyway, in this example a rain cycle would require 5 foods to survive and maintain a "healthy slugcat." less than that you can survive one cycle in a shelter, but with a negative "starvation" status effect. and if you consume more than that (up to 3 here) the additional food will carry over into the next cycle. Now obviously im talking about a stylized solution and not text with words and Xs, but something like this would be the baseline you want to see:


                               fed
starvation [ X X X X | X X - - | - - -] full



idk, i think previously we had been trying to avoid both status effects and UI, but its time to contemplate it! its interesting, at this point we have the things that we wanted to do with the game pretty well nailed down: the ecosystem, the look, the mood and the huge world exploration, but now its a matter of adjusting the gamification variables and presenting it in a way to encourage the player to continue through. i guess this what happens when you start with an art project and then work "a game" into it!


Along those lines, Joar and I were just discussing how we might maintain the players interest in keeping little sluggie surviving in such a death-filled environment. Especially since its (to a degree) a timed play-cycle, how do we make it so that the player doesnt want to just kill themselves to restart if their exploration or hunt isnt immediately going well?

This food meter system might offer a solution to that as well, if we think of the regions in a more traditional "level" fashion. With the region gates we have built in "level start" points and the shelters can act as checkpoints. A death when "fed" restarts the player at the the shelter, but a death when "starving" returns the player to the region gate that they entered, scrubbing any progression and giving strong incentive to keep sluggie alive and fed throughout.


Then hopefully something like this would allow enough "open world" to keep the gameplay from becoming too forced and linear, but also offers incentive for players that want to progress through the narrative and exploration. Also of course simply adding some sort of "CYCLE 7 SURVIVED" high-score count / achievements at the end of cycles could help further gamify this as well.


thoughts?





   JLJac on October 09, 2015, 08:45:19 AM:

Yeah this stuff requires some thought. In the old game, you only had one shelter and thus eating and surviving was the natural goal. Now when there are many shelters it's easy that the standard play cycle becomes way more about trying to get to the next shelter than about surviving and returning to the same shelter. The priorities has kind of been switched, instead of moving as a means to survive you survive as a means of movement.

There are plenty of possible solutions though. The "carry over" of bats could do part of it - in that case it might become worth it to hang out in the same spot to farm some bats for 2 or 3 cycles. Another way could be to penalize death a bit harder (either just death, or something like dying twice in a row). That we'd have to be careful with though, as we don't want to penalize players for failing too much. Ideally such a penalty wouldn't be a penalty that puts you back as much as something that keeps you from progressing too quickly into areas you can't handle until you have learnt to handle the area you're in.

One option we've been thinking about is that instead of having the game be one very long session, it could be a couple of smaller sessions, where surviving (or "winning") a session is rewarded by some more options for your next play. Sort of like how the "rogue-lightes" such as Binding of Isaac and Nuclear Throne and that whole family of games are doing. Like, slightly shorter sessions but accumulation over sessions.

What do you guys think? Do you prefer games with one long session, or games where you play a bunch of shorter sessions and have something build up over the course of them?

However it goes, we would like to have the player feel a certain satisfaction after the average successful hunt, when you return to your shelter with enough bats to survive. In a situation like that the player would feel the most as one with the slugcat nature, who is all about eating, sleeping and staying alive. When slugcat is happy, the player should be happy too!





   JLJac on October 12, 2015, 09:56:40 AM:

Thanks so much for your input guys! Will be taken into careful consideration. These game mechanic decisions are mostly going to be in a later phase where we try to balance the game and create a good flow, so there is still some time to figure it out. Maybe we can find some kind of golden balance where we can get a little bit of the goodies from a couple of models.

Right now it's kind of silent here because I am doing art for the last region in the game, which we wouldn't want to spoil! I will however spoil that the mockups James has sent me are looking AMAZING!





   JLJac on October 14, 2015, 12:11:16 AM:

The current idea is that if you save the pups, you will be able to play as them (grown up) in new game plus. One idea we were talking about was that each pup would have some increased skill but also come with an increased difficulty (faster/shorter cycles, stronger/more enemies and the like). All of this is very much up for change though as we get to the actual game balancing stuff. It is hard to know what works before having it in front of you and trying it out, and no early ideas are holy in the face of actually getting a good game flow.





   JLJac on October 14, 2015, 02:17:42 AM:

Code question! I'm working on the save states. Currently the save data of a region looks like this:

Code:
<A>REGIONSTATE: REGIONNAME_SU<B>SWARMROOMS_111111<B>POPULATION_Slugcat<D>ID.0.0.0<D>0.0<D><C>GreenLizard<D>ID.3364.0.0<D>198.2<D><C>PinkLizard<D>ID.3363.0.0<D>0.0<D><C>GreenLizard<D>ID.3371.0.0<D>199.2<D><C>PinkLizard<D>ID.3374.0.0<D>203.2<D><C>PinkLizard<D>ID.3367.0.0<D>0.0<D><C>GreenLizard<D>ID.3362.0.0<D>207.2<D><C>PinkLizard<D>ID.3372.0.0<D>199.3<D><C>PinkLizard<D>ID.3365.0.0<D>214.3<D><C>PinkLizard<D>ID.3366.0.0<D>214.4<D><C>GreenLizard<D>ID.3368.0.0<D>215.2<D><C>PinkLizard<D>ID.3373.0.0<D>217.2<D><C>PinkLizard<D>ID.3370.0.0<D>221.4<D><C>GreenLizard<D>ID.3369.0.0<D>221.3<D><C>GreenLizard<D>ID.3375.0.0<D>225.2<D><C><B><A>

The <A> <B> <C> etc are markers for where to split the string as I decode it.

I have opted for this way of doing it contrary to serialization because I feel way more in control - I know exactly what I'm storing, how I'm storing it, and if anything goes wrong I can actually track down the bug. Also it makes sure that I don't store anything more than necessary - with serialization I would worry that some reference somewhere would pull with it an entire chunk of data which I wouldn't actually want to save.

So, right now a creature save looks like this:
<C>GreenLizard<D>ID.3371.0.0<D>199.2<C>
with the key being
<C>Creature Type<D>Identification Number<D>Spawn coordinates<C>

At the end of this, I need to apply the data of something I call a "Creature State". The creature state contains info on the critter's health, and a bunch of other stuff. Some critters have social memory which they use to keep track of relationships to you and each other - this also goes in the creature state.

The problem is that different critters have derived state classes that may contain some extra critter-specific info.

So now I'm thinking, should I just tough it out and write a state-to-string method and a string-to-state method for each critter type, or should I serialize this specific piece of data? Then I'd get a mixture of clear text and binary serialization in the saved creature, like this:

<C>GreenLizard<D>ID.3371.0.0<D>199.2<D>MQCAACbAgAA0wEoBINARYoSERIALIZATIONoSTRINGoAAAwCAAAAAgAA7<C>

My question is - is that just too ugly to even consider? And would it actually do me any good?





   jamesprimate on October 14, 2015, 05:02:54 AM (Last Edit: October 14, 2015, 06:11:55 AM):

Think it's great that you guys are keeping the last region to yourselves. Gives us all the opportunity to find something that we don't know anything about which is always a good thing in a game.

the problem is that im SO STOKED about the stuff going on in this region that its extremely hard to keep it locked up Ninja. no exaggeration that this region is next-level in quite a few ways.... and then we have an arguably even CRAZIER region after that which will also be kept secret! but as you say, i think the resulting player experience of being able to see these for the first time in-game, in context, with the right setup and music and vibe, will be totally worth not spoiling.

my apologies if the devlog gets boring as a result though





   jamesprimate on October 14, 2015, 02:40:19 PM:

ah, easy to misunderstand! the region we are currently working on is the last region that the player will encounter, hence "the final region". But there is one more region for us to make after this one. We did them in this order for some technical reasons, as the other region will have some important visuals-heavy set-pieces, so we want to use this region as practice before getting there.

so yes, even more content! we are content crazy!





   jamesprimate on October 15, 2015, 03:37:43 AM:


Man, what will my TIGSource browsing be without a Rain World devlog to look forward to...




oh dont worry, we'll be here for a while yet im afraid  Cry





   JLJac on October 15, 2015, 07:35:35 AM:

Update 488
Save states are coming together! It remembers what den you're in, what swarm rooms are depleted, and now also a bunch of stuff concerning the critters. Health state is saved, as well as den position. Just now I managed to write to and from text methods for the social memory. I spawned a jet fish in the horrible dry landscape of Suburban region, and pulled it with me to the den. When spawning on the next cycle, it still remembered it was angry with me!

This social memory doesn't have all that much use so far, which is mostly because I have yet to write some little engine that can recognize social events. A negative social event would be throwing a rock at a critter, a positive one might be feeding it or saving its life from a predator. Having the AI understand what's what will take some code that isn't in yet - for example it should be negative for you to throw a rock towards a critter unless you are hitting (or clearly aiming for) a vulture that is currently swooping down on it, in which case it should be positive. The jet fish get angry when you carry them which is very easy for the code to recognize, which is why that is in there already.

This code is nothing I'm too worried about though - it will be a day or so of work and will then be generally applicable on all creatures. What I was worried about was the saving of the social memories, and now that hurdle is cleared.

We don't yet know to what extent we want to work with this stuff, as it will probably only be noticeable to very advanced players. It would be a lot of fun though to slowly build up a friendship or an antagonistic relationship with some creature you often come by - that would be exactly the kind of emergent narrative we want to embrace!





   jamesprimate on October 15, 2015, 10:29:10 PM:

From Del: "backgrounds and things.... soon to contain cats and lizards! @RainWorldGame #wip #gameart"

https://twitter.com/miimows/status/654835748164603904




This WIP is *spot on* Chimney Canopy! And i know that room, its CC_A08! Even specific tile work is there! Speaking as the person who made that room, i could not be happier. Tears of Joy

Since Joar and I are busy with... well, everything... we've asked her to just go wild for a bit and spend some time getting style ideas down, trying out concepts, etc. Considering this is her first proper attempt and its already awesome, im pretty dang excited to see how things develop from here. Ill post a follow up when she finishes it, ofc.





   JLJac on October 16, 2015, 10:55:45 AM:

Yeah. So stoked.  Who, Me?

In other news, after messing with the save states for a bit I will be diving back into some  Wizardlast region secret stuff Wizard so I'm sorry to say you'll have to look forward to some more devlog silence. It's all for you though, when you're actually playing we want to have stuff in there you weren't prepared for that can send your jaw to the floor. Thanks for your patience!





   JLJac on October 20, 2015, 12:28:45 PM:

Update 489

A secret creature is implemented! This one is specific for the last region, and I'd like it to not reach you guys before you're actually playing (and playing and playing and playing, until you get to that area), so you have something to be excited for! The only thing I will say is that it is certainly among the more visually complex creatures of the game so far. Took me about 4 days all in all, and feels like a cool investment.