—    —  Home

   JLJac on November 12, 2014, 11:52:23 PM:

Update 354

Today's gif is pretty monstrous, so I'm actually gonna link it rather than embed it.

http://gfycat.com/EvenCircularDevilfish
http://giant.gfycat.com/EvenCircularDevilfish.gif (gif version, warning! 40 MB!)

Effects for approaching rain!

Other than that, today has included a lot of polish in various areas. Added screen shakes for when heavy objects impact the terrain, sparks when weapons hit the walls, fixed a bug where the player's hands were invisible, and so on an so forth.

Oh, and maybe more important than that stuff - I made the picking up / throwing / putting down of items work. It's a pretty complex system that takes a lot into consideration - the basic idea is that you have two hands and can carry a thing in each (fly, rock, spear), but there are many special cases. For example, you can't dual wield two spears, but one spear and one other object is allowed. And flies have lower priority - if you are standing on a weapon holding a fly, the fly should be released in favor of the weapon, but only if you don't have a free hand to use instead. If you hit the throw button and are holding a rock and a fly, you probably want to throw the rock, not the fly... And so on. Basically a huge amount of special cases where the game should cater to the player and try to be user friendly.





   JLJac on November 14, 2014, 12:51:27 AM (Last Edit: November 14, 2014, 04:44:03 AM):

Anyone second switching to gyfcat? I don't think they can be embedded, so I'm afraid the devlog might look a bit boring if all the animations are hidden behind links... Maybe for the bigger ones?

Update 355
Painstakingly re-added effect colors to the Unity Build! This took me on an epic journey through the two things that are my cryptonite - Adobe Director and Shaders. But it worked out in the end!


(that little red stuff along the edge of the wall... No idea what that is! Have to hunt it down.)

Each effect color is actually no less than eight colors:



The upper four pixels of one of these segments are: The color when it's close, and lit. Then close, and shadowed. Below that, distant and lit, distant and shadowed. Under each such block is the same thing repeated, but for the dark palette when the rain is getting closer. Here the left and right columns are the same, because there shouldn't be any light around anyways.

For the distance factor, the shader simply lerps between the colors depending on the depth of the specific pixel, making the colors a bit more washed out if they are further off into the fog.

The difference between the first and the second color here is that the second one is glowing in the dark - its "shadowed" colors are the same as its lit colors. I'm pretty happy to have that amount of control - it means there's a lot of potential to fine-tune the aesthetical experience.

The colors themselves are not tuned yet though, and very much subject to change, but the system is up and working!

Going into the level editor I also fixed a few things in the level save method - now it saves fly hives again. Another thing that made a comeback for the first time in the unity version is that the level recognizes "back walls", ie terrain that is behind the "play layer" but close enough for wall climbers to crawl on.

Other changes include some polish of swimming controls. Now you can get into the "wall slide" position while in the water, which allows you to do a little wall jump. The lack of this feature had annoyed me for a while. There was also a weird glitch where you could exploit the water physics by rapidly tapping the jump button while swimming at the surface, the slugcat would somehow build up a wave and ride it, going faster and faster. I messed around with that a bit, adding a delay on the jump from the water surface, and balancing its forces a bit. While I was in the swimming code, I also added a potentially fun little feature - if you press the jump button while under water, you can get a little speed boost in exchange for a small amount of the air in your lungs. It isn't really worth it in most cases, at least not with my play style, but I always enjoy giving the player some extra options to make choices have even more depth. In some situation it might be just the thing.

Last for today, I got started on having the game recognize bat hives, grouping them properly etc. After that stuff is done, I hope to get to bat swarm behavior.





   JLJac on November 17, 2014, 12:14:59 AM:

Hm, ok... Maybe I'll hide the gifs behind links if they surpass 20 or 30 GB or something? Again, if anyone else has an opinion on this, speak up. I know there are quite a lot of lurkers ~ and as no one has said anything yet I've assumed that people are happy with the format, so I think I'll have to keep it the same unless more than one person wants to change it.

Update 356
James and I have decided to do a push on adding back the core features to the game - we want to "catch up" with the lingo version ASAP. Catch up is a weird wording, as the unity version is insanely more advanced and complex than the lingo version already, but some of the more mundane features have been lagging behind. So, today I present to you: fly eating!



It's interesting how many things you forget has to be implented - for example I spent a couple of hours today adding the ability for flies to be dead, which was pretty necessary to proceed haha. The amount of weird little things like this, that seem to be so obvious that you tend to overlook them, has also increased further with the addition of water. Basically everything I do, I have to do twice now. How does a fly move? And how does it move when in water? How does it move when dead? How does it move when dead and in water?

For most land creatures the water behaviors are reduced to just a couple of lines that basically describe "panicked writhing" so it's not really as bad as it sounds. The problem is that there are a lot of these scenarios. A few days back I made spear and rock behavior for underwater conditions, and the flies and lizards seem to be handling it OK as well though the lizard AI really needs to be more careful not to fall in. The scary thing is that whenever I think of something that was in the old version, or something we've promised to put in the new version, there's also the big question mark of how it'll interact with water. Pups + water? No idea, haven't given it any thought yet o___0

I think keeping most of these interactions simple will be the best route. And despite all this, James and I are super agreed that adding the water was worth it - it does add a bit of extra work, but it adds way more in terms of gameplay depth.





   jamesprimate on November 17, 2014, 07:39:50 AM:

As for pups, I had always envisioned them as kind of helpless. Maybe they can't swim? So you'd have to carry them underwater, or it could lead to some tense scenarios where you have to make a desperate dive to save a pup that fell into water.

totally agree!





   jamesprimate on November 17, 2014, 02:13:40 PM:

hahah i love RPS! why do they always talk about game maker though??? we've never touched game maker, rofl. (not that im going to complain about awesome enthusiastic coverage though! they can call it whatever they want)

thanks Graham Smiley





   jamesprimate on November 17, 2014, 06:15:58 PM:

Joar could answer this way better than me obviously, but basically everything is custom Joar work. Engine was build from scratch TWICE, first in lingo and now in C# using the code-centric futile framework for unity (so you are right, no unity workflow at all.) the level editor, also hand rolled, is still in lingo actually and has to run instanced from inside director haha





   JLJac on November 18, 2014, 12:21:39 AM:

It's not too obtrusive but I still don't feel like it fits with the atmosphere of the game. It feels artificial in a game that (as far as I've seen) is entirely organic.

I'd like to revisit the idea of bugs to show a player there's a shortcut nearby. It might be interesting to use a swarm of bugs settling or being agitated as a player gets close to designate a shortcut.

A main theme at play here is the contrast between artificial and organic. You might have noticed how the environments are very industrial, but the creatures living in them are not. So the digital vibe from the shortcuts are not a problem to me because of that reason. What is a bit problematic is that we want to keep working machines to a minimum - you're supposed to look at old machinery, but not interact with it a lot. The shortcuts as they are are obviously an exception to that.

I'm not the hugest fan of the bug idea because it would introduce a living element to every room, always. The palettes of moods we can create is limited if we can't have just an empty room with nothing living in it. As the world is rather barren, and creatures are generally the only objects allowed to move, creatures become natural focal points with a lot of gravity to them. I want to keep it that way - if you spot something living you should be cautious and intrigued - living things shouldn't be scattered all over every level.

Update 357
WIP death rain. Doing it as a shader this time around, which is kind of difficult.



Hm, the gif capturer really went hard on this one... With the full framerate, it appears denser, and has a downwards movement going through it - making it look like it's falling rather than flickering between different images, hehe. The unpleasantness of it comes through though!





   jamesprimate on November 18, 2014, 06:06:10 AM (Last Edit: November 18, 2014, 06:15:01 AM):

death rain is looking suitably brutal! you seem to be all in on shader black magick, very nice. Wizard

as for the long going shortcut debate, i think it will make a LOT more visual sense in actual game context than in the default rooms Joar is using for test purposes. wait and seeeeee! coloration and brightness is certainly something worth considering though.

Seeing the youtube with music adds very much to to the experience of this devlog. I read the log often and I am used to seeing the gifs only. I would love to read (or hear) a bit about the development of the music. It gives so much depth to the scenes.

thank you! i feel the same way, ahah. yes there is a lot to talk about for that O_O, but we will probably wait until we have the audio engine implemented before going too much into it here. right now i have about 100 tracks in various stages of completion, but they are kind of on the shelf for now until we have the regions constructed and the specific scenarios / narrative stuff all nailed down tight. dont want to put TOO much cart before horse, etc.

But long story short for all of that, the focus is going to be on atmosphere, audio being a blend of ambient textures and "music-like" elements woven through, with more "song-like" elements used to set mood for specific locations / scenarios. I imagine "washes of sound and strange music" that weave in and out of the gameplay. Also we have a notion for some procedural-esque properties with how the audio is handled, so perhaps you never quite hear the same audio environment twice.

Anyway, hope that answers the question a little, or perhaps tantalizes for future interest!





   JLJac on November 18, 2014, 05:50:00 PM:

James, I know you're kind of in the zone with the level editor stuff now, but once you re-surface I'm pretty sure people would be interested in a more in-depth description of your creative process with the music. Like, I tend to describe how I make everything down to the tiniest detail, but with the music we've pretty much only published finished results so far. Would it be possible to make some step-by-step display of how a piece of music/ambience comes into existence? I'm not all that sure how you'd display something non visual like that... But it would be cool to provide a bit more detail in that area too!





   JLJac on November 18, 2014, 11:47:03 PM:

Update 358

Game over screen finished enough for now!



The sound is pretty important for this one. As the level becomes darker, there is a violent rain sound that becomes louder and louder. When the screen suddenly turns black, there's a drum-like sound, and then everything is quiet. This contrast makes for a pretty dramatic effect! Then, in the quiet, you hear the first couple of rain drops hit the ground, and then the real death rain comes very suddenly, with a deafening noise. In the lingo version this transition was really sudden, but here I have given the transition to the death rain a little more build up - I don't really know which one is preferable. It was kind of cool to have the wall of white rain suddenly just be there, but this build up approach seems more organic.

The next thing I'm moving on to is flies swarming behavior. The bad news about this is that I need to re-visit the dreaded Prebaked AI Code, because flies need to save the distance to their hives within the same framework as they use to save distances to room exits. Going in there again this time the code has been behaving mostly civil though, so with some good luck it might not be too bad. If I can just create a special case for the fly creature template to make it store a few extra dijkstra maps per room, that ought to do it - and I see no reason why that shouldn't work out.





   jamesprimate on November 19, 2014, 08:14:18 AM (Last Edit: November 19, 2014, 08:25:07 AM):

PRETTY BIG NEWS: the first region of the game world actually is up and running!  Hand Metal Right

For the past few months I've been planning out and constructing the first playable area of the game world, a somewhat self-contained 30-ish room "suburban" region. Joar and I have been calling it "vanilla rain world", as its all about the vibe and scope of the original rain world game concept, before the game branches out and begins exploring interactions with new areas, mechanics, creatures, etc.

Anyway, the process to get it all rendered and connected and working with the new engine has been a bit tricky (to say nothing of the work actually constructing it!), requiring multiple updates to the level editor and tons of fiddling with fussy details in the individual rooms etc. But this morning after a new build and some time fiddling, it booted up smoothly and OMG IT FINALLY WORKS:



See those colored squares at the top? That means the whole region, all 30 rooms, are up and running and interconnected and talking to each-other, just like they're supposed to. You can move fluidly from room to room and it all works without a hitch. It's one thing to know that *theoretically* it should work, and totally another to have the pieces come together and it actually happen. If I had ten bottles of champagne i'd pop them all right now.

There is still quite a bit of polish to add, some of the rooms are still connecting a bit funky, but this is some solid progress. And now Im going to go get a meatball sub to celebrate!





   jamesprimate on November 19, 2014, 01:42:08 PM:

its probably been a while since we actually talked about the function of the rain huh? the rain is a perpetual cycle. "Rain World" and all that. basically you have X amount of time to go out into the world, gather food and return to your shelter and hibernate before the the rain strikes. if you dont gather enough food for that cycle, you starve. if you get caught in the rain, the above happens. if you get eaten by some other hungry creature... well thats obvious. but that is the basic game mechanics in a nutshell!

Any chance we could get a video of the death rain? Sounds like you really need to hear it to get the full effect

audio engine isn't implemented yet, but certainly we will post video when it is!

I prefer the build-up version of the rain!

the black screen rain is the kill screen basically ("game over! continue?"), with the build-up being the indication of impending doom while still playable. So 2 sides of the same coin!





   jamesprimate on November 19, 2014, 05:39:11 PM:

Yep! The bat nests that are your main food source deplete as you consume them, forcing you to journey further into the world each cycle in search of new things to eat.





   JLJac on November 20, 2014, 02:48:42 AM:

Update 359
Running around in the world James has been working on was amazing! I put on some rain world OST and just ran around exploring, and that's a pretty cool experience just that - no lizards or anything added yet. It's a lot of fun to for the first time play the game without having made the levels myself, the anticipation and curiosity obviously becomes much greater. 30 rooms feels big, I spent quite a lot of time just running around and trying to create a mental map of the place.

In other news, bats can now dive down and disappear in their weird "bat grass", only to pop up in the grass somewhere else. The animation isn't really gif-worthy yet, but the basic mechanic is in there. Next up would be room-to-room migration, I believe. Saving extra dijkstra maps to the level files proved to be less of a horror than feared and anticipated.





   JLJac on November 21, 2014, 12:25:33 AM:

Update 360
Started on a big scary thing called Flies World AI. This entity is supposed to coordinate flies on a world level, through abstract and realized rooms alike.

What it can do so far is create dijsktra maps in the abstract world, mapping the distance to each swarm room for each room. Any room (or node actually) can ask the world AI for a "migration direction", ie a neighboring room that flies in this room should migrate towards. Depending on what mode the World AI is in, it will calculate this migration direction depending on different criteria.

Right now I have two such modes set up: spread and swarm. In the spread mode, the migration direction of any room will be the neighboring room with the least flies in it. This means that the flies will spread evenly throughout the entire world. The swarm behavior has flies move towards the nearest swarm room.

Both of these seem to work nicely! I can have a lot of flies gather in a room, and then go to the next room and start the "spread" behavior. Soon flies will come out of the swarm room, and spread out in every direction. Then if I switch back, I can see them emerge from all over to gather in the swarm room again.

Next step is to create some swarming behaviors that actually make sense, and tie them to the rain cycle.





   JLJac on November 23, 2014, 06:04:02 PM:

Update 361
Did some work over the weekend - mostly revisiting the Quantified Creature stuff. Quantified creatures are creatures where the individuality of the creature is irrelevant, meaning the game doesn't save health and stuff like that for the critter when in abstract space. Right now bats are the only quantified creature. Basically the game does not save these creatures in the abstract creature framework, but just saves the amount of creatures per room (actually node) as an integer.

The problem was that there were some loop holes when changing between the realized and quantified states - meaning that the populations weren't consistent. Sometimes bats would disappear or appear in the transitions between the states, and there'd be situations with schrödinger's bats, bats existing and then suddenly not existing, or the other way around. After re working the system, it seems it's water tight; 50 bats is 50 bats, and they only disappear or appear when eaten or spawned.

With that down, I could actually get started on bat migration patterns.

Right now I have a pretty simple system. Bats spawn in their swarm rooms, and hang around there. Every now and then the game checks all the swarm rooms, and finds out which is #1 and #2 in amount of bats.

#1 is assigned a "spread" behavior, where bats will move out of the room and spread into neighboring areas. When they get close to another swarm room, they'll start gravitating towards that one.

#2 is assigned a "migrate" behavior, where another swarm room is picked at random and the bats start moving towards it. On their way there, they'll most likely hit another swarm room's proximity, and start gravitating towards that one.

As this goes on for a while, #1 and #2 will be more or less emptied, while other swarm rooms will gain bats. Then the same process hits again, and a new #1 and #2 will be assigned.

The effect is that bats seem to move around between swarm rooms at random. If you're out in the world, between swarm rooms, you'll sometimes see little flocks of bats passing through your room on their way to some other place. This is the key feature, as it'll allow the player to follow those stray bats and end up in an active swarm room.

It will take some playtesting before we know the system really works. But I'm happy with the fact that the system can potentially lead the player towards swarm rooms without necessarily catering too much; the bats are not trying to help you actively, they're just going about their own business and if you're clever you can take advantage of that behavior.

Today I'll fine tune it a bit further, and see how it plays out. Maybe if stray bats become too sparse, so you very seldom have any to follow, I'll add a phase at the very start of the cycle where migration is more common.





   jamesprimate on November 23, 2014, 06:41:52 PM:

^ super excited about this. we'll have to do a bit of testing how it works in-game, but having such an elegant, natural solution to the "how do we unobtrusively push players toward swarm rooms" problem would feel like a real victory for the mood were trying to create.





   JLJac on November 24, 2014, 04:43:30 AM:

Update 362
Huuuuge step. Got the entire world up and running, with migrating bats and lizards spawning in their dens, later emerging to hunt, and then returning as the rain approaches.

Good news and bad news. Good news are that YYYAAAYYYY it's up and running! Everything basically seems to work - the creatures spawn, move about, you can encounter them, they don't disappear or randomly appear, the ai seems to be able to somewhat handle most situations.

Bad news are not really anything unexpected, it's just that in this new - vastly more complex - context every little glitch and lack of polish becomes more prominent. The lizards getting stuck, the AI throwing missing reference exceptions, the AI not always making the best decisions, all of that is now way more visible. In my previous test environment there was just a single room, or a few interconnected ones, and I'd hit restart over and over while testing stuff. Now we have way longer sessions of gameplay, making every error stick around for a longer time and becoming more visible. This, in combination with the environments and situations being generally more complex and error-prone, makes for a generally more glitchy experience.

But, as I said, this was pretty much expected. Now the glitchy stuff is there, all visible, and I'll just have to hunt the issues down one by one. Everything essential and important is working.

It's probably too early to say anything about the game design implications of this new environment, I just haven't had enough time to play the game. I've noticed a few things, such as despite sprinkling the world with what seemed like quite a lot of lizards, lizard encounters seem sparse while moving through the world. Maybe this has to do with the amount of lizards, but I rather think its about their mobility. I might want them to move more between rooms.

Gonna play the game a bit more! Brb!





   JLJac on November 25, 2014, 03:11:33 AM:

Yeah that was the original idea, but I think James have had some other thoughts since then. James?

Update 363
Another significant step - the room loader. This is the thing that loads rooms that are near to you and unloads rooms left behind. Right now it'll light up all neighbors to where you are (there is a limit, so not infinitely many rooms), and if too many rooms are active it'll start shutting them down. Then it goes by stuff like how long ago the room was viewed, and how many screen transitions ago.

Neighboring rooms that are activated and then never visited are unloaded on the next room transition. The system seems to run well! Performance wise it's smooth enough so far, and having all neighboring rooms loaded creates the nice effect that whatever room you're entering has been loaded a little while. Earlier the creatures would display a few frames of "I've just been loaded and will now try to act like I was here all along", but now when you first encounter them their animation states are already looking natural.

Other stuff of today's progress include:

* James requested being able to define some rooms and room connections as off-limits to bat migration, in order to be able to exercise a little more control over how bats move in the world. So I got some functionality for that in.

* The dripping water from the ceilings would be much more intense in small rooms, because it worked by picking a random ceiling tile every now and then and creating a water drip at it. Smaller ceiling, more concentrated dripping. I fixed this so the ceiling dripping appears a bit more even.

* You could wait at a shortcut entrance and eat an infinity of bats as they popped out of it. This obviously kind of broke the game. The hack I put in place is that bats now shoot out of shortcuts pretty fast, and have a few frames of "uncatchability" - the in canon idea being that they're swishing out of there too fast to catch or something.

* There was an error with effect colors (colors on plants, signs etc) where the last room's effect color would carry over when moving between rooms. Fixed that.

* Some minor animation quirks with the player character ~ there are more of those, but they're not really game breaking so they don't have the absolutely highest priority.

* Made the debug stuff (ugly map and ugly mouse cursor) hideable with a button. Long time coming, this one!

* Made it so that you can start the game in any room in the world, hopefully making level design a bit less painful for James as he won't have to actually walk all the way to the level he's working with in order to try it out. 

So, that's one chunk of quirks down! The most scary stuff though, the lizard related glitches, I haven't gotten around to yet. Maybe tomorrow!





   jamesprimate on November 25, 2014, 07:19:14 AM:

So I take it the challenge rooms you can play in single player or multiplayer (after having had discovered them) will be tied to the "swarm rooms" then? I remember James I think saying the challenge levels are based around rooms with bats in them. 

still planning on that! though it looks like we are having some multi-screen swarm rooms, which would be impossible to do 4-player multi on, so im thinking rather than "every swarm room is also a multiplayer room" we maybe just choose the best ones (we will probably have QUITE A FEW to choose from) and make a bunch of multi-player specific ones down the road as well.

Many of the rooms seem to be open (as in, no ceiling), are bats capable of leaving one room this way and entering through another?

we just talked about this actually! i think it would be really cool for mood, but Joar rightly points out that it might break the usefulness of migration as a "guide". So we'll see? Maybe there is a clever way to do both. But I think we'll aim to get the build fun and functional first. (it is getting there though!)