Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411526 Posts in 69377 Topics- by 58432 Members - Latest Member: Bohdan_Zoshchenko

April 28, 2024, 08:43:18 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsProject Rain World
Pages: 1 ... 11 12 [13] 14 15 ... 367
Print
Author Topic: Project Rain World  (Read 1447761 times)
mes
Level 0
**



View Profile
« Reply #240 on: October 12, 2012, 04:12:41 PM »

this looks really awesome! the character animation makes the creatures seem a lot more real, and even terrifying in the case of the lizards. i love the concept of the brutal world as well, and it seems like you guys are doing a great job of realizing it with the level art and music.

advanced character AI in a platformer is something i've been interested in trying myself, so i'm curious to see how it turns out here. it seems like a double edged sword, making the game feel deeper and more believable at first, but having the potential to reduce the gameplay to exploitation of its intricacies in the end. looks like you're well aware of this danger though!

Wizard
Logged
mokesmoe
Level 10
*****



View Profile WWW
« Reply #241 on: October 12, 2012, 11:00:44 PM »

Looking forward to update 99.8.6.2!
The 99.9 was a joke too.


The rain sounds really cool.
The rain sounds sound really cool?

I like the idea of everything going inside and the clouds coming over so the entire place just becomes grey and deserted. What happens when it starts raining? Do you just lose, or does the rain actually come down and kill you? Can you get knocked around a bit by the first drops of rain and just barely make it into your hole?
Logged
JLJac
Level 10
*****



View Profile
« Reply #242 on: October 14, 2012, 01:53:29 PM »

Oh, the AI, my favourite subject! Actually I think that (in my case) it works the opposite way as what you describe. I haven't really found any obvious exploits, but rather have a problem where things aren't working out very well in the beginning of the game.

It's hard to sound humble when saying this, but I think that a player that's just introduced to the game will not really understand how complex the AI is, and because of that the game will work less satisfactory. Just a thing such as understanding that a lizard isn't always aware of where you are and pathing towards you takes some time to pick up, and the more complex stuff, such as "the last thing the lizard saw before I dissapeared behind those blocks was me falling downwards, and because of that it'll assume that I fell to the bottom of this shaft, which I can use to anticipate its behaviour" is hard to use even for me, even though I know that it's there and how it works.

I'm sure that many people will put the game down quickly thinking "it's just random and quirky and too hard", but my hope is that if you don't do this the game will grow on you.

So to answer this:
advanced character AI in a platformer is something i've been interested in trying myself, so i'm curious to see how it turns out here. it seems like a double edged sword, making the game feel deeper and more believable at first, but having the potential to reduce the gameplay to exploitation of its intricacies in the end. looks like you're well aware of this danger though!

Wizard
I think that the case with my game would be the opposite, that at first it could seem glitchy and weird, but later it will become more deep and and believable. This might vary widely between games though! I encourage you to give platforming AI a try, it's a real challange Smiley

What happens when it starts raining? Do you just lose, or does the rain actually come down and kill you? Can you get knocked around a bit by the first drops of rain and just barely make it into your hole?
The rain is kind of abstracted in a slightly more game-ey way, there's a little game over scene where everything suddenly turns black and silent and then the rain hits very suddenly. Of course it would be even cooler to have the rain build up slowly, but it's hard to display rain in the actual world as objects that would move according to common sense are actually static. The current solution is one of my favourite parts of making games, having to make art and technicalities meet. I'll make it look cool, promise!

Update 99.8.6.1
James and I are doing a little contract talk, which we should've gotten to way earlier. We're both aware that the game most likely won't make any money, but in the case it does we want to make sure that everything is as fair as possible. This is of course boring, but it's best to get it done as soon as possible.

In other news I've been wrestling a sudden drop in frame rate, which I have not fully identified but which could possibly have more to do with the latest vista update and my computer being old than with the actual game. Old versions lag too, which indicates that some of it might be in the computer, but new versions lag slightly more, which indicates that it's in the game. The frame rate flails wildly up and down, which makes it hard to get a good understanding of whether it's high or low.

Other than thgis I've started to contemplate on how to implement the music, and has started to set up a fairly complicated system of triggers for how songs could be activated and deactivated. We'll see where it ends up.

James sent me a new batch of ambient sounds, named "the weird batch", and they are awesome! Those are more abstract than the previous ones, and will help create a mood rather than add realism. Soon I'll get to implementing ambient sounds, it's very low hanging fruit at this point.

Added the ability to spear flies. Working a little with the blur effects, there's too much of them in some palettes which is a problem, and I might need to kill my darlings and get rid of them.
Logged
Sinclairian
Level 0
**



View Profile
« Reply #243 on: October 14, 2012, 02:00:34 PM »

Those graphics. I love them. It's gives me a very Another World/Out of This World vibe which I adore. I do believe I'll be watching out for this =).
Logged
HannesP
Level 0
***


View Profile WWW
« Reply #244 on: October 14, 2012, 03:43:36 PM »

[...] it's very low hanging fruit at this point.
I see what you did there, Mr apple picker Corny Laugh
Logged
mes
Level 0
**



View Profile
« Reply #245 on: October 15, 2012, 04:57:09 AM »

interesting! in my thinking the ideal AI system allows the player to think of the enemies as real thinking entities, as if they were controlled by human players. in order to escape/defeat them, players should be able to apply intuitions based on real life experience rather than experience of typical simplistic game AI. in your example of falling down a shaft, if i were treating it as a real situation, perhaps i would proceed to climb right back up the shaft to fool the lizard who thinks i will now be somewhere near the bottom. in fact such a strategy might be an effective exploit, if it is an easy and reliable way to misdirect the lizards.

i definitely see how you would have problems with expectations. a juke move like that might fool a human player controlling the lizard, but one would expect the game AI to just head toward where he glimpsed me falling, making climbing back up a terrible idea. this doesn't seem like an insurmountable challenge though. you could emphasize the sophisticated AI in your descriptions of the game; besides helping with expectations, i think it's a strong selling point. rather than trying to explain all the details of how the AI works, perhaps a message simply telling players to treat the enemies as real intelligent creatures would be enough. or you could have fake "connecting to server" screens before the game starts and tell people it is actually a multiplayer game that matches you with random anonymous opponents. Wink

edit: in my shaft example, i'm assuming the lizard would take a different path to the bottom to look for you, not just jump down after you, or that you could get back up out of sight by some other path.
« Last Edit: October 15, 2012, 05:03:18 AM by mes » Logged
JLJac
Level 10
*****



View Profile
« Reply #246 on: October 15, 2012, 11:56:21 AM »

[...] it's very low hanging fruit at this point.
I see what you did there, Mr apple picker Corny Laugh
Hehehe!

interesting! in my thinking the ideal AI system allows the player to think of the enemies as real thinking entities ...
Yeah, this is basically what I was going for as well - having a video game enemy that feels like it has a "mind". In my game some of this works pretty well for an experienced player, you can for example do cartoony stuff such as dissapearing behind a corner and then quickly into a side corridor, wait for the lizard to pass by said side corridor, and then exit the same way as the lizard was chasing you. The problem is that you need to be aware that stuff like this is doable in order to do them. For that awareness to occur you'd need to perform it at least 5 times, the first few times you wouldn't be able to tell it apart from random chance.

As the game is right now the shaft scenario could very well occur, you could drop down a shaft while visible to a lizard but then grab hold of a metal beam halfway down and dissapear somewhere else, while watching the lizard search the bottom of the shaft. I don't think of this as an exploit, as this is the way the game is supposed to work.

The problem in a situation such as this is that in 9 cases out of 10 the quickest way for the lizard to get down into that shaft would be to get to the edge and make the same jump you did. This means that in the majority of the cases the smart action is the same as the dumb action of an AI that just tries to get to the position where it last saw a player. In explaination, in the most cases you won't be able to see that the lizard is smart, even though it is. There are however cases when you notice the intelligence.

The funny part is that most of those cases are bad for the lizard. An example:



You are stranded on the little island, and a stupid AI would just end up waiting below you, as it would move towards you and then end up waiting once it got to a ledge that was too high for it to climb. This is stupid thinking, but the resulting action is smart, as you'd have no-where to go with a lizard waiting below you.

A rain world lizard, on the other hand, realizes that it can get to you through a detour. The problem is that when it's inside the tunnel it can't see the player, and once it reaches the balcony the player has long since dissapeared.

In this case the more stupid AI would be more successful, because if it just waited below the player wouldn't have anywhere to go. My point though is that the setup I have now is more fun. A deadlock would just be a deadlock, but a lizard making a somewhat stupid decision is entertaining, because you can see that it makes a decision. Instead of having a stupid AI that ends up catching you because of luck you have a creature that's thinking, but which you're outsmarting. Outsmarting things is satisfactory.

So, the exploits you're talking about are certainly there, but I've kind of built my game around them - they are the main game mechanic. To not make it too easy the lizards are compensated with physical treats - they are fast, has excellent vision and can hear you if you're not moving carefully.

When it comes to hyping the AI, I don't know... Hehe looking at what I wrote above I realize I'm already far down that road, but I don't want to over do it as raised expectations might make people dissapointed. I'm just a single guy building this on evenings and weekends, and people are used to games devloped by 50 people with a university degree each. That said, I can always emphasize that a high percentage of my hours with this has been put into AI, whatever that is worth.

Ah, whatever, here we go:
Update 100
Let's celebrate the 100'th update with that the framework for implementing James' music has taken its first solid step. I can now create a list of triggers for hunts that activate, change or deactivate songs on defined events. Today I had one song start, and continue playing until I had caught 4 flies, after which it stopped. Then another song started when I spotted my first lizard, and ended when I entered a specific level.

It seems to work well enough already! There will be changes though, but I'll try to stick to my policy and implement new technical solutions as an answer to a need on the art side, rather than just doing stuff that I think I maybe might use.
Logged
DustyDrake
Level 10
*****



View Profile
« Reply #247 on: October 15, 2012, 12:24:53 PM »

Would it be possible for the AI to wait a bit on the "stupid" AI, before attempting to move in for the kill?
I imagine the croc would be thinking something like:
"C'mon... Get down here."
"C'MON!"
"Augh, fuck it I'm just climbing up to get him."
"Wait, where'd he go?"
Logged

Ashkin
Guest
« Reply #248 on: October 15, 2012, 09:03:36 PM »

I think it's interesting that the AI can be outsmarted- makes your own small stature seem less important. Brains vs. brawn and all that.
However, I think you need to find a way to communicate this special AI to the player. If there's a tutorial, maybe say something like 'lizards aren't stupid' and then have a situation where expectations of what 'dumb' AI would do are completely subverted.
Logged
Six
Level 0
**


bumblin' bones


View Profile WWW
« Reply #249 on: October 15, 2012, 09:50:17 PM »

It's hard to sound humble when saying this, but I think that a player that's just introduced to the game will not really understand how complex the AI is, and because of that the game will work less satisfactory. Just a thing such as understanding that a lizard isn't always aware of where you are and pathing towards you takes some time to pick up, and the more complex stuff, such as "the last thing the lizard saw before I dissapeared behind those blocks was me falling downwards, and because of that it'll assume that I fell to the bottom of this shaft, which I can use to anticipate its behaviour" is hard to use even for me, even though I know that it's there and how it works.

Isn't this just an issue of player feedback, though? Lots of games (and especially stealth games!) suffer from this same problem of the player not being aware of the AI state.

There's lots of ways to work around various problems -- some games leave a marker or silhouette of your character at the place where you were last seen; Metal Gear (and lots of others) have abstract pictograms that show if an enemy is surprised (!), confused (?), etc. Thief -- which is really concerned about maintaining diegesis, in the immersive sim tradition -- just has really verbose, talky characters ("Eh? Did I see something over there in the shadows?" shouts the guard to nobody in particular.)

The Metal Gear series in particular does lots of clever things to inform the player of AI actions that tend to be difficult to communicate: you're always tapped into the enemy radio, for example, so it makes sense that you hear them when they report to headquarters that, say, they found a corpse while patrolling.
Logged
JLJac
Level 10
*****



View Profile
« Reply #250 on: October 16, 2012, 05:33:23 AM »

Would it be possible for the AI to wait a bit on the "stupid" AI, before attempting to move in for the kill?
I imagine the croc would be thinking something like:
"C'mon... Get down here."
"C'MON!"
"Augh, fuck it I'm just climbing up to get him."
"Wait, where'd he go?"
Hahaha! Actually, the longer the detour is the longer it will take for it to find a path, meaning that you'll get a little bit of it moving back and forth contemplating on its next move.

Isn't this just an issue of player feedback, though? Lots of games (and especially stealth games!) suffer from this same problem of the player not being aware of the AI state.
The problem here is that psychological phenomena which I don't know the name for in english, animism perhaps, that you want to play with rather than against. The thing I'm thinking of is the tendecy for humans to read more intelligence into the behaviour of dead objects than there actually is.

For example, a human dropping a marble that rolls in under some furniture might think that it "hid" in there, even though it most certainly didn't because it's a dead object and it only followed simple mechanics. The psychology behind this is obviously the magic behind computer game characters seeming to come alive.

My theory (as an amateur) is that the more you are aware of the mechanics behind a behaviour, the less you'll submit to the feeling that the object is alive. A while back I posted a video where some lizards were moving around, and got this response:

...and the way he stood above you with his mouth open was a great little characteristic. Amazing job...

I remember this because Franklins Ghost had obviously thought that the lizard opened its mouth as a way to display frustration over the player being out of reach. I knew why the lizard opened its mouth (boring technical reason) but kept quiet, as the other interpretation was more awesome and fun. In this case not knowing what was going on behind the scenes created a more awesome experience.

So, I think that if I create a window into the lizards' heads I would also compromize them feeling like creatures, and make them feel more like mechanics. Their inner lives can never be half as complex as what we fill in the blanks with when we don't know what's going on, which is why I keep the not knowing what's going on as high as possible.

I have been thinking about symbols such as (!) and (?) though, and actually have implemented something along those lines. As a lizard is surprised its head vibrates a little and it emits some particles, which is usable as a cue that the lizard has seen you or heard you. Then again I don't know how well this actually works, as when I myself am playing I'm also aware of all the nuts and bolts behind the scenes.

Update 101
Caught a cold, and has mostly been horizontal on different surfaces today. The only thing keeping me from complete uselessness has been a sketch for how the main menu could be laid out.
Logged
jamesprimate
Level 10
*****


wave emoji


View Profile WWW
« Reply #251 on: October 16, 2012, 06:19:58 AM »

speaking as "the other person who has played rain world pretty extensively", I'd like to throw my 2 cents into the AI chat. I certainly don't know what's going on under the hood, but the lizard behavior is quite unpredictable in a very cool way. It's hard to describe, but sometimes during a chase they will seem to anticipate your movements based on the level structure, then get distracted by snapping at flies, then mope around, then "hear" you and start stalking again. it's quite believable for neon death lizards. also, different favors of lizard (red green blue white, etc) all have their own fairly distinct personalities and behaviors, so when you get a couple of flavors in a level chasing you around you have NO idea what's going to happen and it's quite scary and chaotic, which I think is exactly the right vibe for the game.

fwiw, I had no idea that the jiggling particle head meant that it had heard you (I was assuming rage or aggravation or something? They often do that when I spear them in the face, heh heh), but I LIKE that element of unreadability where you can't tell if they are laying in wait for you or don't have a clue.. Having a more standard "!!" "??" sort of thing might be take away a bit of that in my most humble of opinions.
Logged

JLJac
Level 10
*****



View Profile
« Reply #252 on: October 16, 2012, 06:42:35 AM »

Hahaha that review was down to each word exactly what I wanted to hear >_< Even the "different personalities" thing was in there! Hopefully it's because the game is becoming what it's supposed to, and not because James knows too much about the project haha!

A sneak peak under the hood: They emit particles either because they hear a sound, because the've spotted you (a lot if they weren't aware of you, a small burst if they were already chasing you but didn't know exactly where you were) or because they're taking sticks and stones to the face. Maybe they do it when fighting over prey as well, don't remember.

There are other subtle ways of reading a lizard's mind as well - a slowly pulsating head means it's calm and idle, a quick change in color means it's hunting and somewhere inbetween means it's cautious or searching. Black eyes means it doesn't see you, sparkling eyes mean it's currently seeing a player.
Logged
:^)
Level 10
*****


wat a hell


View Profile WWW
« Reply #253 on: October 16, 2012, 07:26:11 PM »

oo super cool
Logged
mes
Level 0
**



View Profile
« Reply #254 on: October 17, 2012, 03:31:35 AM »

My theory (as an amateur) is that the more you are aware of the mechanics behind a behaviour, the less you'll submit to the feeling that the object is alive.

well said. i think putting game mechanicy things in like the MGS ! and ? will lead players to think of the AI as a simple finite state system. the subtle and more specific tells with the eyes and color sound great though. speculatively, this seems better also for the mood of the game. it allows for moments where the player is thinking "oh shit, did he see me?"; the uncertainty even makes the game a little deeper in those moments because the player has more possibilities to consider when forming a strategy.

regarding what you were saying about the extra intelligence often not being noticeable because a simple AI would have done the same action (or even a smarter one), there may be some ways to make this not be the case. have you done any group collaboration stuff in the AI? if it is not out of character for the lizards to work together too much, this is something that often produces noticeably intelligent behavior. giving the lizards more types of actions that they can perform may be another way. it could be a secondary ability or simple stuff like having them take a peek into a room they pass by to check for you. contrivance in the level design could highlight intelligent behavior as well.
Logged
JLJac
Level 10
*****



View Profile
« Reply #255 on: October 18, 2012, 08:11:24 AM »

There's one kind of lizard that co-operates, but I haven't really found a good place for it in the game and it might end up being banished to custom mode. They work together by trying to surround the player, which sometimes ends up pretty dangerous.

I think the main problem here is the very simple environment. In the end they can't really do much more than... go places, their possibilities of interaction are very limited. When I enabled them to pick up objects occasionally that was pretty cool though.

On the AI, I think I've reached a "good enough" point, from now on everything I'd add wouldn't really ever be visible to the casual player. I have a few fun things in there for those who play a little more as well, but I think I'll keep it at this.

Current progress isn't very fast, as that damned cough won't leave me alone. Working and being sick is quite enough for each day, and it's hard to find time for rain world. Hopefully it'll be over soon, please just be patient for a couple of days! I try to get at least something done every day even though I'm a bit tired.
Logged
jamesprimate
Level 10
*****


wave emoji


View Profile WWW
« Reply #256 on: October 19, 2012, 01:13:10 PM »

hey, you were cranking out multiple updates per day for a while there! I think you've earned some relaxation  Beer!
Logged

JLJac
Level 10
*****



View Profile
« Reply #257 on: October 20, 2012, 07:55:23 AM »

Haha yeah maybe! Best would of course be to keep an even tempo in here...

Update 102
Got a sound editor in, in which you can pick and choose from James' awesome creations!



An ambient sound consists of a file, a volume and a pan alignment, that's pretty much all that's needed. I think this will be really helpful in setting a mood for the game!
Logged
JLJac
Level 10
*****



View Profile
« Reply #258 on: October 21, 2012, 12:33:13 PM »

Update 103
Raaaaaargh!
Been wrestling an extremely annoying bug for a while now.

I have known for a long time that some levels, for some reason, lag horribly. It's not the things that are going on in the level, but drawing the actual picture. Now when I got one of those levels I decided to try to nail it down.

It seems like the problem was in the image that display the light on the backround layer. I have pinned it down to this:

If I color any vertical row of pixels further away from the left edge than 118 pixels (117 doesn't work) any other color than white, the lag dissapears. It's not a specific pixel that's causing trouble - when I go into this vertical pillar of colored pixels and remove sections the lag comes and goes completely randomly. There seems to be a pattern that if more colored pixels are removed, the lag is more likely to come back. However, removing the top half makes the lag come back just as much as removing the bottom half.

In addition to this, there seems to be different reactions depending on whether I do stuff from the code or from the console, and on top of that there seems to be different reactions depending on whether I re-color the pixels one at a time or with one single command.

It's possible to locate a loosely defined area in the image that causes the trouble. If these pixels are put in a sprite they can make any level lag, so it's obviously their fault. If you start to cut this area down though, all the lag will suddenly dissapear - it's not connected to specific pixels, but rather to a combination of pixels. I badly wanted it to be about some specific pixel, maybe one color that I could just remove or so, but it's not.

I think of it as a curse - certain orders of pixels are cursed.

Even if I re-draw a level on another random seed the curse persists, which could possibly mean that whatever pattern causes it is on a bigger scale, a similar general layout will always create a cursed image. This means that some levels I create can never work.

This stuff is obviously far beyond my level, and probably has something to do with how graphics are rendered. Sadly I've seen the same problem on other computers as well ...

I have no idea what to do about this.
Logged
JLJac
Level 10
*****



View Profile
« Reply #259 on: October 21, 2012, 12:53:12 PM »

The only thing of significance to the curse seems to be if pixels are (255, 255, 255) white, treated as transparent by Director, or not. A black sillhoutte creates the same effect as the original image.

If flipped vertically or horizontally the effect presists. Same for 90 degree rotation. If the image is inverted (black->white/white->black) the effect goes away.

Removing all rows of pixels that are entirely white from left to right doesn't help. It's not about all-white columns top-down either.

Ladies and gents, I present to you a real cursed image:



Displaying this specific combination of black and white screws Macromedia Director up terribly. Quite interesting, if it wasn't so irritating.

Tomorrow I move the image to one of my old game projects to see if it slows that one down as well.
Logged
Pages: 1 ... 11 12 [13] 14 15 ... 367
Print
Jump to:  

Theme orange-lt created by panic