Please login or register.

Login with username, password and session length
Advanced search  

News:

IRC channel - server: waelisch.de  channel: #wme (read more)

Author Topic: Making a game scene feel real  (Read 8266 times)

0 Members and 1 Guest are viewing this topic.

kori

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 29
    • View Profile
Making a game scene feel real
« on: October 15, 2005, 12:48:12 PM »

When you are making an adventure game scene, it seems to me that you need to plan ahead of time as to which parts of the scene will have movement to make the scene seem real to the player. Examples would be water, fire, wind (tree limbs or flower movement), birds flying.

Using the current adventure game engines available (pre-rendered scenes), how many ways are there to create movement in a scene? What are the advantages and disadvantage of each?

Is there a book on the subject?

Thanks
Kori
Logged

organican

  • Occasional poster
  • **
  • Karma: 0
  • Offline Offline
  • Posts: 74
    • View Profile
Re: Making a game scene feel real
« Reply #1 on: October 15, 2005, 02:48:54 PM »

Personally, what makes a game scene feel real for me, is mostly the interaction.

With little or no interaction, the world just feels empty.

I guess it's a balance between the "contents" (the interaction, the story, what the scenes "tell" you), and the visual appearance... the surface.

So, in addition to the game scene "telling a story", (and looking pretty darn good ;)), the player needs to interact with things, and be a part of the story, for the scenes and the world of the game to feel real.

In the newer adventure games, with the commands being gradually downgraded from a rich verb system, to just a left click or a few 'braindead' button pushes... it has just felt more and more as if of the player's freedom, and his closeness to the game world, has gradually been removed.

So that's one thing I think should never be forgotten.

Summing up my thoughts: The idea to have the things that make up the game scenes being connected to the story, instead of just being some random eye candy, can actually be a really good one.

There. I said it. I said the unpopular opinion. So just shoot me. :(
« Last Edit: October 16, 2005, 06:19:04 PM by organican »
Logged

kori

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 29
    • View Profile
Re: Making a game scene feel real
« Reply #2 on: October 16, 2005, 07:30:54 PM »

Yes, I see what you mean. I guess I was thinking in terms of animations or sprites. Things that move...

One thing that bothers me when I play Riven is that the tree branches do not move. With rock and sand, you do not expect movement, but with plants, you expect a little movement because of the wind. I did not want to make this mistake in my own game. I want things to move more or less like the real world.

One another forum, a poster told me there was a limit to how much movement you could have on a screen becaues of memory requirements of a computer. I quess this means you have to plan each scene so there are not too many things that would be moving in the scene.

Kori
Logged

organican

  • Occasional poster
  • **
  • Karma: 0
  • Offline Offline
  • Posts: 74
    • View Profile
Re: Making a game scene feel real
« Reply #3 on: October 16, 2005, 09:28:38 PM »

Yes, I see what you mean. I guess I was thinking in terms of animations or sprites. Things that move...

One thing that bothers me when I play Riven is that the tree branches do not move. With rock and sand, you do not expect movement, but with plants, you expect a little movement because of the wind. I did not want to make this mistake in my own game. I want things to move more or less like the real world.

One another forum, a poster told me there was a limit to how much movement you could have on a screen becaues of memory requirements of a computer. I quess this means you have to plan each scene so there are not too many things that would be moving in the scene.

Kori

I guess that it's the number of animations and their size, that determines how much memory is being used. But we better ask Mnemonic to be sure.

Mnemonic? Does a high number of (moving) objects in a scene "eat up" a lot of memory?

We'll give him a minute to answer. ;)

But now, back to the question.

First of all: Are you talking about pre-rendered animations of movements, that you make in a rendering program, or are you talking about scripted movement in a static and pre-rendered scene?

Yeah, I think I know what you mean. You're wondering what's best: animated or scripted movement.

I think it's a tricky question. I guess a combination is probably best.

Quote
When you are making an adventure game scene, it seems to me that you need to plan ahead of time as to which parts of the scene will have movement to make the scene seem real to the player. Examples would be water, fire, wind (tree limbs or flower movement), birds flying.

I think it's really important to plan the animations along with the scene itself, so that they become an integrated part of it, instead of just being some pretty animations and "cool effects" that you're just 'copying and pasting' into the scene at random.

Because, if you add or change just a few things in a scene, then it suddently looks different. It doesn't feel the same anymore.
Just like a painting, you should really know where things are and how they 'interact' graphically, before you paint your masterpiece. :)

But there should still be room for the "human equation", as well. Things need to grow 'organically'. By trying things out, and 'feeling' your way.

You just can't plan a whole game in advance without having to change a few things. At least unless you're Einstein. :)
Some things about the game you "discover" along the journey.

A lot of things are often added in the production.

This is something great to keep in mind.

But back to the graphics vs scripting issue:
The problem is, if there are many people working on a project, that the scripters generally don't have that good insight into the graphical part, and vice versa.

But if you can have the scripting in mind, while you're doing the graphics of the scene, then you might get a better flow.
But for the most part, people tend to separate the two.

It's a tricky question indeed.

Quote
Using the current adventure game engines available (pre-rendered scenes), how many ways are there to create movement in a scene? What are the advantages and disadvantage of

Well, for movement, you can either use entities or actors, scripting something like
Code: [Select]
this.X = 40;
this.Y = 50;
//and only for actors:
this.GoTo(200, 170);

And this way, clouds, birds, and other things can move:
Code: [Select]
this.X = this.X + 1;
Sleep(20);
That means that every twenty milliseconds, the object will move 1 pixel to the right.

And if it's an actor that's moving, things get a little more dynamic, as you give the GoTo command and have it walk to different locations and even evade the regions if you wish.

Another way to create the sense of movement, is to do an animation of it. Say, a waterfall, a fountain, and so on... If the water looks real and all, it can increase the player's immersion in the game.

Then there's rotate and scale. They require the hardware acceleration mode, to work.

Code: [Select]
while(true)
   {this.Rotate = this.Rotate + 0.05;
   Sleep(10); }

Means that this object will rotate 1/20th of a degree per 10 milliseconds.

You have to define the rotation in advance for it to work though. So write
Code: [Select]
this.Rotate = 0;
before the while loop.

Scaling also works in similar ways. You can say:
Code: [Select]
this.Scale = 300;or
Code: [Select]
this.Scale = this.Scale + 10;
It's the
Code: [Select]
this.Scale = this.Scale + 10;line that only works if you define the scaling in advance.

Then you can probably add all sorts of maths to this to make the movements a lot more sophisticated.

So that's one way to do it.

Here are the methods I know that can add a sense of movement to a scene:
*Animations
*actual movements (GoTo)
*Changing X and Y positions
*Rotation
*Scaling

Are there any others?

And I once heard that there is a particle effect plugin is its way. Am I right, folks?
« Last Edit: October 16, 2005, 10:14:30 PM by organican »
Logged

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re: Making a game scene feel real
« Reply #4 on: October 17, 2005, 11:54:01 AM »

Mnemonic? Does a high number of (moving) objects in a scene "eat up" a lot of memory?
Well, yes, of course :) The bigger the animation frames, the more memory is needed to store them.
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

kori

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 29
    • View Profile
Re: Making a game scene feel real
« Reply #5 on: October 17, 2005, 12:35:37 PM »

Thanks for the long explanation on scripting.

[You're wondering what's best: animated or scripted movement]

So which takes less memory, animated or scripted?

I think most movement could be scripted.

A tree branch could be scripted to move a small distance and then back again in a repeating pattern, suggesting a swaying movement. You would have to script all the branches of a tree I guess. That would be a lot of scripts running. I don’t know how much memory this would take compared to a animation.

Clouds could be scripted to move across the sky from one side of the screen to the other. Go off screen and then reappear on the other side.

Waves on water, I am not sure about. I have read that AdventureMaker has a way of moving pixels in a wave pattern, that is used for water movement. I don’t know if WME has anything like this.

A windmill could use a rotating script.

A flag could use a repeating movement script.

A candle could use a repeating movement script, but it would be more complicated than the others.

It seems to me that most objects could be scripted.



Kori :)
Logged

kori

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 29
    • View Profile
Re: Making a game scene feel real
« Reply #6 on: October 17, 2005, 12:42:13 PM »

I have been tying to think of a way to run a test/learn, Winter Mute and AdventureMaker, and I think I have it. I plan to open a game and screen grab a complete level. I then will have images to load into Winter Mute and AdventureMaker. I also can practice makeing scrips.

Kori
Logged

organican

  • Occasional poster
  • **
  • Karma: 0
  • Offline Offline
  • Posts: 74
    • View Profile
Re: Making a game scene feel real
« Reply #7 on: October 17, 2005, 11:56:05 PM »

Thanks for the long explanation on scripting.

[You're wondering what's best: animated or scripted movement]

So which takes less memory, animated or scripted?

I think most movement could be scripted.

You don't have to script all the movement. A few animations here and there don't make much of a difference.

I just meant that it's probably best to do a combination of scripting and animating.

Things like birds flying across the screen, some leaves blowing in the wind, and a few animals a forest scene, and so on.

"Realtime" movement gives gives us a sense of speed and power.

And static, animated, movement, gives things a sense of "aliveness".
So with different kinds of movement you get a different result.

But a combination:

A bird flying across the screen, flapping its wings.

An animated bee swarm chasing the player...

When animation and scripting works together, you get a much better result.

As to your question about memory usage:
Small animations like frogs, grass, leaves, animals, etc... I don't think that should be a problem.

Maybe it's best to keep the number of animations and their sizes down a bit.
But it's not easy to say exactly how much of something will use in memory,
so I really think you should try it for yourself to see how it works.

The question is, also, who you're making the game for. Should people with a few years old computers be able to play it, or just the new kids on the block with the "big monster machines"?

And how fast and powerful is your computer?

Think about this too: the game should still look good a few years from now.

So you need to find the right balance.

Quote
A tree branch could be scripted to move a small distance and then back again in a repeating pattern, suggesting a swaying movement. You would have to script all the branches of a tree I guess. That would be a lot of scripts running. I don’t know how much memory this would take compared to a animation.

Clouds could be scripted to move across the sky from one side of the screen to the other. Go off screen and then reappear on the other side.

Yes, exactly. I did something like that, but not with clouds.

You can also randomize the "y position" and the speed of the clouds. Or the birds. Or the trains. Or the...

Put this in the cloud script:
Code: [Select]
var cloud_1;

while(true)
{ this.X=this.X-1;
 Sleep(8);
 if(this.Y<0)
   {this.Y=830;
    cloud_1=Random(10, 340);
    //This means that the y coordinate will be randomized between 10 and 340 each new cycle.
    this.Y=cloud_1;
   }
}

Quote
Waves on water, I am not sure about. I have read that AdventureMaker has a way of moving pixels in a wave pattern, that is used for water movement. I don’t know if WME has anything like this.

I tried Adventure Maker one time in the past, when I was researching what game engines there was.

And yes, it is quite easy to work with - as long as you keep things simple. But ultimately, I found it was just too limiting for me. I couldn't make even 1/1000 of my game in foreseeable way with it. You only had a few global values to work with, and it was almost impossible to make complicated puzzles and game systems.

So for simpler games, like slideshows and interactive stories, I say it is fine.

But if you want to make games like Myst and Monkey Island, I think that WME - or some similar engine (sacrilege!) - is much better.

Quote
A windmill could use a rotating script.

I think you should try and add a few animations to a scene, and do some scripting, etc, to see how much memory is being used.
After all, the best way to get a sense of things, is to try it for yourself.

Just import some animations of various sizes and and frames, and make a scene out of them.

Quote
A flag could use a repeating movement script.

I don't really think you have to worry about a few small animations.
Just do a combination of scripted and animated movement, and you'll be fine.

Quote
A candle could use a repeating movement script, but it would be more complicated than the others.

You mean the flame? A small flame shouldn't be a real problem.
It's probably a lot of big animations that's the problem.

Quote
It seems to me that most objects could be scripted.

But if it's small animations, they don't take up so much memory. Right?

I have been tying to think of a way to run a test/learn, Winter Mute and AdventureMaker, and I think I have it. I plan to open a game and screen grab a complete level. I then will have images to load into Winter Mute and AdventureMaker. I also can practice makeing scrips.

Kori

If you want to make complex puzzles, lots of interactive (and scripted) plotlines, and a sophisticated game system -- verb bars, lots of NPC's, lots of interactive dialogue, things carrying over from one scene to another, etc...

and if you want to do it all in a flexible and advanced Adventure game engine... I definitely think that WME is your right choice.

But if you just want to make a few animations, a few simple puzzles, and tell a straight story with not a lot of interaction, then Adventure Maker might be what you're looking for.

Quoting from the Adventure Maker homepage:

Quote
Adventure Maker is a FREE innovative toolkit to create point-and-click games and multimedia software in minutes, without any scripting or programming. Its concept is very simple: you import your pictures, you add some hotspots to link them to one another, and you are done! It is particularly suitable for the creation of first-person and third-person adventure games, educational software, presentations, and interactive visits. The Free Edition allows creating compiled redistributable files for Windows, and stand-alone games for portable gaming systems. It provides Load/Save-game functions, inventory items, conversations, full-screen transitions, water/smoke effects, multi-channel sounds, animations, and more. The Full Edition can create stand-alone executables for Windows, and supports 360-degree panoramas, multiple-CD distributions, easy-to-learn scripting, custom plugins, Flash movies (SWF), over 30 file types (OGG, XviD, DivX, mp3...), and much more.

It sounds great if you want to make simple, graphic story games.

And Adventure Maker along with WME is also one of the few adventure game engines that supports 1st person games.

But for games with a lot of complex puzzles, that is heavy on interaction, like the Lucasarts classics, Riven, and such, WME is much better in my opinion.
« Last Edit: October 18, 2005, 12:40:02 AM by organican »
Logged

kori

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 29
    • View Profile
Re: Making a game scene feel real
« Reply #8 on: October 18, 2005, 01:39:26 AM »

Yes, I think you are right. I don’t think I need to test AdventureMaker, WME has more than enough engine power for my game needs.

Here is a game made with WME that I downloaded and played until it locked up on me. When the car dealer took off his hat, my computer locked down so hard I had to Reset my computer. I saw several things wrong with the game, but it might not be WME’s fault. First, the car dealer keeps walking though the Joe character. Second, when the Joe character walks, his steps are not in sync with the distance he moves across the screen.

http://www.adventuregamers.com/article/id,433      

If you know of any games make with WME, that you want to suggest I look at, go ahead and give me the URL.

Thanks
Kori
Logged

organican

  • Occasional poster
  • **
  • Karma: 0
  • Offline Offline
  • Posts: 74
    • View Profile
How to randomize an entity's speed (Was: Making a game scene feel real)
« Reply #9 on: October 18, 2005, 05:14:13 AM »

Some more scripting wisdom from organican...

How to randomize an entity's speed.

This is a script for simple entities moving across the screen and getting a different speed and "y position" each time it is sent back to the starting point.

This script is written as if it's about clouds specifically, but it can be adapted to alot of other things.

The line "Sleep(10);" determines how long time passes between each new event.

So to change the Speed, you should change the "Sleep" time in the scripted loop.

Here I make a variable called "cloud_sleep" for the cloud's sleep value.

"cloud_1" is the y position the cloud will get.

Code: [Select]
var cloud_1;
var cloud_sleep=Random(10, 40);

while(true)
{ this.X=this.X-1;
 Sleep(cloud_sleep);
 if(this.X<-50)
   {this.X=850;
    cloud_1=Random(10, 340);
    cloud_sleep=Random(20, 50);
    this.Y=cloud_1;
   }
}

The actual values can be adjusted and adapted to the specific needs.

Take care, Kori and all...!

:)
Logged
 

Page created in 0.06 seconds with 20 queries.