—    —  Home

   JLJac on May 30, 2013, 01:44:29 AM (Last Edit: May 30, 2013, 08:27:49 AM):

Man, that image is incredible. Are the fans on the side animated?
Sorry, nothing is animated :/ The whole thing is just one big picture, that takes about 10 minutes to render. The sunlight is able to fade back and forth though.

Would this possibly be used while the game is loading, too? It'd make a cute loading icon!

Excellent idea lad!
At this point there's no loading time longer than one or two seconds, so hopefully that won't be necessary.

Update 147
I've been doing a lot of work, but it hasn't been the interesting kind of work, which is why I haven't been posting. For example I re-wrote the code for how lizards behave in relation to eggs, so now it's more or less working again. I also moved one of the filters that's applied to the levels - earlier it was applied when saving the level, now it's applied when tha game loads it. It adds a few fractions of a second to the loading times, but it cuts the size of the level files in half.

Other than that I've been doing a little bit of level design, for the tutorial levels actually:



There will be three of them, and they'll teach you how to run, crawl, jump and climb. When you're finished with them you'll enter the hub world, and won't be able to return.

Apart from all this I've started to modify the level editor in order to support a big change - a function that will render all the levels in one long go. The process will probably be several hours, but I hope that it'll be able to do it in the background while I use the computer for other stuff. What I've gotten done so far is: 1, the level editor is now able to render a level without showing it on the screen, speeding up the process somewhat. 2, the level editor now saves and loads the light mask. Earlier you had to re-draw what parts of the level you wanted to be lit and what parts should be in shadow every time you wanted to render it. Being able to render a large number of levels with the press of one button will make the creation and modification of bigger chunks of the hub world much more effective.

Edit: The mass renderer is up and running! I can select an entire list of levels and it works its way through them. I figure it's torture to the processor and RAM, but it's possible to do other stuff (such as writing this) while it's rendering. It's always an awesome feeling when you get a powerful dev tool working.

Edit edit: Aaaaand there's a bug. -.- Gotta track it down.





   JLJac on May 31, 2013, 05:31:34 AM:

Hehe! Got it to work Tongue

Another interesting thing that happened yesterday was that an extension I used suddenly became aware that it's actually a trial version, out of nowhere. And for the trial version I'm only allowed to use two functions, so I was robbed of the cryptation function I'd been using for the save games.

However, I used my brain and decided that I was perfectly able to understand how basic string cryptation works, and wrote the functions myself. Basically, I convert each character to its ASCII number, and add to that number the corresponding character in the key string. The decryptation works the same way, but with subtraction.

I'm pretty sure there's a way to decrypt this, especially if the key is short enough to see it repeat, but honestly, if you're gonna go through that trouble you're welcome to mess with your save file. The only thing I want is for it not to be too tempting to just open up the save and give yourself 10 000 spears.





   JLJac on June 01, 2013, 10:45:18 AM:

Update 148
Created some counters for stuff such as kills and eggs captured. If you throw a spear on a player or a lizard it's counted as your kill. If you throw a rock at a player or a lizard causing it to fall off the map it's also counted as your kill. If you throw a rock at another player and he's eaten by a lizard before his stun wears off it's your kill, but I don't know about that one as there are many other ways to kill a player indirectly, which are much harder for the computer to recognize. For example you can kill someone by blocking a corridor, and then the question is raised whether that kill should somehow be attributed to you as well? idk...






   JLJac on June 03, 2013, 12:56:55 PM:

Lizard-egg behaviour:






   JLJac on June 05, 2013, 03:07:44 AM:

If people are interested, I could go into more detail. The very basics of it is very... basic. You only need two functions: one to determine the distance between two points and one to give the direction as a vector from one point to another. With that you can emulate "chains", i.e. points moving about freely but being stuck to other points at certain distances.

So in my game, the player consists of two such points (upper/lower body) and the lizard consists of 3. Then I attatch to that additional points for limbs and so on. For example the tails of the creatures are several such points chained together.

On top of this stuff I draw the creatures, using simple sprite mechanics such as rotation. For example, the arm of a creature is drawn at the shoulder and then rotated towards the location of the hand point.

This is the reason why the creatures are one, solid color. In fact they consist of several sprites overlapping each other in awkward ways, and if there was any kind of shading on the sprites this would be visible. If I worked in a more reasonable software I could compile the whole body of the creature to one picture and then shade it, but I'm not, so the flat colors are staying. Instead I've tried to adapt my style so that it'll look ok.

When it comes to the more specific movement of limbs and so on it's a great deal of faking going on. The lizards for example do not grab on to stuff and pull themselves forward. Instead they move about with a magical force pushing them in whatever direction they are going. When a limb is too far behind the body it goes into a "search mode", looking for possible grasps in front of the lizard. Such a thing might be a wall, a pole, a platform or whatever. When it finds one, the limb connects to it, and then passively stays there until it's left behind by the body again. The magical propulsion force of the body is dependent on how many limbs are currently connected to terrain, making the speed of movement uneven and synced to the movement of the limbs (few limbs grasping - slow movement of the body).

If there is demand, I could make a more in-depth technical tutorial.





   JLJac on July 02, 2013, 02:07:13 AM:

I'm sorry this thread has been hibernating a while now - I'm going home in a few days, and because I've needed to finish a lot of stuff up before that date I've been very busy. Once I'm home the situation will be very different though (lots of time for development). You'll see the next update some time next week, when I've gotten home and settled down after 7 months of africa.

I would happily take a more technical tutorial! that is awesome that you wrote up what you have already though, and it works somewhat like I suspected it did! Kinda sorta IK implementation. One question that pops to mind though, if you have a propulsion force that is based on the number of limbs down, but that is unpredictable, are all of the character speeds in the game unpredictable? Or is there some other driving force at a higher level? Also, are these the same systems that drive the player characters in the game?
I'll write one up for you!
The variable movement speed is only for the lizards, the player has a constant speed and the movement of the limbs is purely cosmetic. For the lizards though, the answer is yes, the speed is unpredictable. However they do have a weak propulsion force even when no limbs are connecting at all, to not get stuck.





   JLJac on July 10, 2013, 07:06:47 AM:

Update 149
We're still stuck in UI hell, but at least something's happening. Because I don't seem to be able to create the design, I thought I'd skip ahead to the raw functionality, and that has been working better. Here's the "den screen", i.e. the screen you look at between levels:



What's going on here is this -
Up left is the calendar, showing all the days you need to survive. The marked days are the days when there's a paus in the rain, hunting days. The player is just coming in from his fifth hunt. Down in the corner is the pile of bugs. As you can see, the pile starts at seven, that's the excess from the fourth hunt.

The player has caught 9 flies, these are added to the pile. Then the calendar starts to move, and 7 days pass. Each day one fly is removed from the pile (eaten or digested or whatever). Finally we arrive at the sixth hunt, with 9 flies still in the stock pile.

As you can see, this means that there's no need to go out hunting the sixth hunt, because there are only seven days until the next opportunity. This is true, and the game allows you to just go straight back in the den if you want to. I think I like the ability to hoard flies like that, it creates more freedom for the player to play with their own style. When you reach the very end of the campaign, your flies stockpile will be your high score.





   jamesprimate on July 10, 2013, 10:48:31 AM:

whoa, are you back home JLJac?





   JLJac on July 11, 2013, 12:31:15 AM (Last Edit: September 25, 2013, 01:10:49 AM):

Yeah, I'm finally back in Sweden again! The reverse culture shock is kind of freaking me out  Shocked

Thank you all for supporting me, and bothering to read this despite me only posting boring UI stuff. Believe me, I too wish this was done so I could wrap up the game world and release this thing. Not too far away though.

As a thanks, here's a .gif showing me trying to keep a couple of lizards at bay by throwing rocks at them.


Update 150
Created a placeholder "end of custom game" screen, which seems to be working OK. Also made the level editor save, and the game load, a menu color for each level - that way the shade of the pause menu looks nice together with the overall palette of that specific level.





   JLJac on July 11, 2013, 01:57:27 AM (Last Edit: July 11, 2013, 02:06:18 AM):

Hi Graham!
I'd love to do a short interview, and if you need me to provide any material I'll do that too Smiley

However, for any press stuff, I want it to be crystal clear that this is not a cool new game in development, but a guy goofing around on his laptop and making some glitchy mess that could potentially be interesting from a theoretical perspective.

I think that what hype always does is making 75 feel like -25, because you were expecting 100. That might make sense if you're selling something and need the hype, but I'm not, so I prefer to keep expectations low. However, I'm always flattered when someone shows interest in the project Smiley

I'll shoot you an email!

This thing will revolutionize "simple" 2d game graphics for real. So amazingly beautiful!
Please tell me there will be a mac build.
Sorry, not unless some deus ex machina descends and offers to code the thing for me :/ Don't worry though, as a game the thing is kind of frustrating, it might very well be that the best way of enjoying Rain World is through gifs  Tongue

Edit: Oh, hehehe, just saw this.... I'm not back from sweden, but I'm back in sweden. Hope that doesn't mean trouble - if it does your interest is still noted and added to my energy meter!





   jamesprimate on July 11, 2013, 02:30:26 AM:

^ joar, you MAY be just too close to it to know how fun it is for someone playing it for enjoyment rather than to debug Tongue its one of the most viscerally exciting (and terrifying) games i've played in a long time!

but one can definitely appreciate the old mr. scott wisdom of "under promise, over deliver"






   jamesprimate on July 11, 2013, 08:35:05 PM:

How .. is .. this possible? Is it all in-game? Addicted

You sir are a master game maker.

not only is it in-game, its *typical gameplay* Shocked





   JLJac on July 15, 2013, 02:07:45 AM:

Thank you all for your support! I can't believe how excited everyone seems :O Just remember: High hopes, low expectations...

Välkommen hem, käre landsman.
Tack, landsman! :D

When it comes to porting, the problem is that I'm using Macromedia Director, and in order to do things such as changing the screen resolution or recieveing gamepad input I use add-ons. While I could compile a Mac version (which I think would lag, because that's my experience with Director executables for mac) I wouldn't have the add-ons, so the game wouldn't be able to do a lot of important stuff. Sadly I think this problem would persist if you try to run it through some kind of windows emulator or whatever. Maybe someone here is a Macromedia Director / Mac guru, and can help me sort it out?

On the subject of operative systems, I just tried the game on windows 8, and it seems to work. That's good news. It's lagging horribly on my notebook though, but as long as it's running at all I'm decently happy. Would've been a shame if the thing was already outdated at release. Game pad works too, but needs some tweaking.

Are you planning to release it in some form anyway?  I hope so ...
Yes, I do plan to release it. It will be free to download and share, possibly with a paypal account where you can donate something small if you're in that kind of mood.

As a lot of people seem to be interested in the technical aspect of the game, I'll try to find time to write something up on that. The basic idea is very simple though: While a game character normally consists of one box that can collide with terrain, the RW character consists of two boxes. So, instead of having a character that's always head up feet down, we have a character that consists of an upper body and a lower body, and they are moving around independently but at a fixed distance.





   JLJac on July 16, 2013, 04:28:08 AM:

...there was only 2 stages vaguely fit for competitive play as only 2 of them had two hideouts...
Yup, that's fixed now!

...Are you mad...
I guess that might be a possibility. This is definitely the last game I make in director, and with that perhaps the last game that ever gets made in director...

Update 151
Sorted out a lot of smaller errors. Added the possibility to have different "control modes" for when you play with game pads - for example the possibility that it doesn't register vertical input as long as there is horizontal input, so that you have to push up or down very deliberately in order to have the character react. As it was there was some trouble that the character would suddenly get into crawling position when you're running, because you happen to nudge downwards. This isn't a problem with keyboard controls, obviously - if you press a button you know that you're pressing that button.

Game pad users can now map a pause button, which takes them to the menu from the game. This means that if player 1 is on a controller, the entire game including menues will be playable from the controller, so that there won't be any need to touch the keyboard or the mouse.

Did a little work on the world map.

Also, the game has for the first time been played with three players. It seems to work fine!





   JLJac on July 19, 2013, 01:28:10 PM:

Update 152
Resolved some issues in the "Egg Hunt" game mode. Created a new function that makes it possible to repeat the level playlists. Created the functionality for a button that resets the game options to a default. Tweaked gamepad controls a little more. Resolved a few minor bugs.





   JLJac on July 23, 2013, 11:14:31 PM:

Forgive me for doing a minor modification to your posted pic, but look at the effect of solid colored eyes for the white and black bears as opposed to the pink and yellow; the white and black have a MUCH stronger hunted, spooky look. http://img.photobucket.com/albums/v143/artemi/RainWorld.png
Thank you sir  Gentleman When it comes to the creepy/cute factor for the main character, I actually want it to be creepy and cute, if that's possible. I know that the highlighted versions are a bit too anime, but I think a zombie version without anything going on in the eyes is a bit too... zombie.

I want to thank Chromanoid for the summarization of my many loose explainations. For those of you interested, try following the pseudo code - if you get stuck I'll try to help you. If people want to I could possibly make a proof of concept in as3, so that  you could look at the code yourselves.





   JLJac on July 24, 2013, 09:39:37 AM:

 Gentleman

Update 152
Added lizard respawning. It doesn't sound much, but the game is getting complex, so there's a ton of things to think about when doing something like this, that "breaks" the game's original mechanics. A lot of things need to be handled, such as spears stuck in the lizard's body when it dissapears and so on.

After dying the lizard lingers for a bit, before starting to produce smoke. After a while there's enough smoke (hopefully) to cover the lizard's body, at which point it can dissapear without it looking too ugly. I'm not too concerned about the way it looks, as lizards dissapearing isn't canon to the game world, it's just a fun feature for multiplayer.

Fateful to my tradition of ugly hacks the lizard will teleport to the bottom of the map, where the falling damage code will kick in, so I only have to write the respawn stuff once. The alternative would be setting up some kind of function that I'd call from both the death-by-damage scenario and from the falling-out-of-the-map scenario, but as no-one but me will ever see the code this horrible solution seemed more convinient  Tongue

I also added another setting for multiplayer, which disallows players from hiding in their holes; they're spat right out again. And I added a counter that keeps track of how long players have been alive during a match. Good for settling draws. These features will be fun for a new game mode I've been contemplating - Survival. Survival won't be about catching flies, but will pit the players against each other and respawning lizards, without allowing them to hide in their holes, and the player that stays alive the longest wins.





   JLJac on July 25, 2013, 01:37:35 AM:

Update 153
The dantesque journey through the 700 circles of UI hell continues. This time I managed to tackle most of the functionality for the sandbox mode menu. Sandbox will be a game mode that's extremely customizable, so that you can fight whatever lizards you want, under whatever conditions you want. It's a lot of fun to set up different insane challanges, such as trying to fend of 4 respawning red lizards without being allowed to hide in your hole.





   JLJac on July 27, 2013, 04:29:34 AM:

Yeah, sandbox is a multiplayer game mode. But you can fire it up by yourself as well, just to try something out. Weapon settings are limited to spears on or spears off, if you choose spears off all spears will be replaced by rocks.

Update 154
Kill indicators:


It's the same for lizards, the little cross will be the color of the lizard you offed. This is limited to custom mode, in world mode you won't see it.





   JLJac on July 28, 2013, 12:44:39 PM (Last Edit: July 28, 2013, 12:54:29 PM):

Update 155
Made portraits for the lizards for selecting them in the sand box mode menu.



Since I've already given up on keeping this devlog spoiler free, here are their descriptions as well (don't read if you wanna be excited by discovering them when playing the real thing):

Green: A slow and dumb creature - easy to avoid but tough to take down.
Pink: A quick and intelligent hunter that will use vision and hearing to track you. Try to not let it spot you to begin with!
Blue: This one can climb walls and ceilings. Nowhere is safe.
White: A passive but deadly hunter. It blends into its environment and ambushes you when you're passing by.
Yellow: Alone they're not much of a threat, but most often they hunt in packs - intelligently cooperating to track and kill you.
Red: A fast, strong and smart hunter with excellent vision and hearing. But what makes it most deadly is its persistance. Once it spots you it will never give up the hunt. Be aware!

EDIT: These descriptions will probably be in the menu, to add a little flavour. So if anyone wants to help out with the english that's appreciated.

EDITEDIT: Actually, whenever you guys spot some mistakes please point them out. For text that's going in the game that is, nitpicking my devlog posts would be kind of obnoxious Tongue