Archived

This topic is now archived and is closed to further replies.

Controlling human motion in zero gravity

This topic is 6355 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I''m sure some of you have read Orson Scott Card''s "Ender''s game" (which I think is one of the best books ever written). For years I''ve been playing around with an idea of turning the game appearing in that book to a computer game. It''s quite hard to describe that game but let''s try it. The game is played in big empty room and there is absolutely no gravity in it. There are two teams of forty players and they are trying to "kill" each other. "Killing" is done by shooting other players with a kind of laser pistol. When the laser hits someone he is frozen. Frozen players don''t disappear but they can''t control themselves anymore. In my version player would control one on of those characters in first or third person view. It wouldn''t be very difficult to program that kind of game using fully 3D system. The problem would be how to control the character. Player should be able to freely control his orientation while traveling and also aim somehow. Also when player hits the wall (or something else) he should be able to change his direction and not just bounce like some ball would. Do you have any ideas of controlling methods? I have come up with some ways but I wont tell them now so I''m not distracting your free flows of mind. -Ratsia

Share this post


Link to post
Share on other sites
Yes, definitely one of the best books ever written

As I recall, weren''t there rungs on the walls, which you could hold on to and use to move across the wall? I would make it so that you could strafe along walls (up, down, left, right), and then have a jump button that launched you in the direction you''re facing. When you collide with another wall, you can "catch" yourself and then strafe along the wall again.

If you decide to do 3rd-person, you should force the player to orient his guy correctly so that he collides roughly feet-first with the walls (If you go 1st-person, then don''t impose that).

Movement along the walls (via the rungs) should be much slower than floating/launching through space.

Also (aside from the topic of control), the "battleroom" sometimes featured floating blocks that obstructed your view. You''d definitely need to put something like that in your game -- an empty room would be boring. In fact, you should probably consider setting the matches in a network of tunnels & rooms instead of one big room.

Share this post


Link to post
Share on other sites
You''re right, there were some king of rungs in the walls but I''m not so sure if they existed everywere. I always imagined that there were just few of them and if you wanted to catch one of them you had to hit close enough.

Still, I like your idea. At least it would be much easier to implement like that.

About that orientation thing, that''s exactly what I was thinking too. I think that even in first person view you should orient yourshelf somehow before colliding with walls. Maybe the game could be 1st-person but there would be also smaller viewport viewing the situation from some kind of floating camera. Then you could orientate according to that view but still aim and move at 1st-person.

You''re also right that empty room is not enough and I wasn''t even thinking about forgetting those "stars" Card used in his book. I just didn''t mention it, cause it has little to do with control system.

-Ratsia

Share this post


Link to post
Share on other sites
AHHH! ENDER''S GAME! i loved that series.. i read the whole thing. hehe.. and i''m working on ender''s shadow now.. whoo.

As far as what you want.. possible. Think about it like this, you simply need to know the physics of it. Don''t try to program everything into it hardcoded.. leave it at an algorithm and let it do the number crunching on the CPU.. most people with good 3D capability have the CPU to match.

What i mean is.. find out exactly how things work in a no-gravity environment. Look online at some physics stuff. it''s not easy to code calculus, but you can usually find a calculus library on the web or something where you call integral functions with numbers and it does the appropriate math even some CPUs have integrated math functions extending to calculus now
Once you''ve got the physics (ever action has an equal and opposite reaction) you really have to get the keyboard layout right. this''ll be the hardest part. you''ve got a full 3d bubble to move in. Move your right leg forward and your head goes backwards and you begin to spin clockwise at the waist. You''ve got to imagine what every motion could happen and what causes that motion on the human body that''s why 0g environments are about impossible to imagine without a jetpack.
Look, if you want.. you can email me on this and i''ll go into massive detail about all this i''m a physics god practically.. certainly a guru. i could prolly explain it out enough for you to understand and find out more info about it. Things like size, weight, muscle mass all make a difference in 0g motion.. that''s why it''s so durned hard to do it without being very precise. and it''s hard to do it without having like two wheel-mice or one of those air mice that you can move in 3d Ahh well. i''ll explain more later.

J

Share this post


Link to post
Share on other sites
I think I could pretty easily do all those physics stuff. After all, I am studying physics at college. I know lots about mechanics and I''m specialized in numerical methods.

I could do a system where you really moved your bodyparts and that was all but it''s hard to imagine that anyone could play the game like that. That''s why I''m going for something simpler.

It''s not very big difference for most of the players even if you can rotate your character freely like in Quake or something. Collisions should anyway be handled physically correctly.

So the problem is still the interface.


I haven''t still read Ender''s Shadow. When you''ve finished it, tell me if it''s as great as his other books. Though I think I''m waiting for the paperback. Books aren''t that cheap in Finland.

-Ratsia

Share this post


Link to post
Share on other sites
the book''s pretty good so far. i''m not too deep into it since i''ve been programming so much.. hehe.

As far as interfaces go.. humm.. i think allowing people to have a 1st person perspective would totally rock, and be more true to life, since this is just a modified 1st person shooter kinda game in the basic sense.
a 3rd person view might give away too much, or not allow you to see what you''re looking at, and make it harder to aim at people. I''d say stick to 1st person for this.

J

Share this post


Link to post
Share on other sites
If you shot a gun in zero gravity, would you be propelled backward?

well, I guess not a laser gun, but a shotgun or something...



"The road of excess leads to the palace of wisdom." --William Blake

Edited by - Nazrix on July 13, 2000 11:04:30 AM

Share this post


Link to post
Share on other sites
Niphty:

I''m also coming to that same conclusion, it shall be a 1st person game. I still have to figure out how to allow player change direction when colliding.

Nazrix:

Yes you would, even if it was a laser gun. Momentum is always conserved and even photons "carry" some of it. Well, maybe it wouldn''t be noticeable with lasers.

-Ratsia

Share this post


Link to post
Share on other sites
Ah...every action has an equal and opposite reaction right? hehe

That would be kind of cool...people hurling backward when they fire their gun...



"The road of excess leads to the palace of wisdom." --William Blake

Edited by - Nazrix on July 13, 2000 1:28:07 PM

Share this post


Link to post
Share on other sites
"Funny Physics"... hmm...

- DarkMage139
"Real game developers don't change the rules. Real game developers don't break the rules. Real game developers make the rules!"
"Originality (in games) is the spice of life!"

Share this post


Link to post
Share on other sites
Yeah, physics can be quite humourous

e equals m c squared...lol...

Oh damn I should''ve slept more last night...

"The road of excess leads to the palace of wisdom." --William Blake

Share this post


Link to post
Share on other sites
Making a quake 3, tribes or half-life mod of this would be alot easier. Starting from scratch would be a waste of effort. It would probably be more successful as a MOD too. As for a full feature game it sounds kinda shallow.





Edited by - Caffeine on July 13, 2000 2:02:47 PM

Share this post


Link to post
Share on other sites
When I realized that it has to be 1st person it also crossed my mind that making a mod would be easier. But then again, it wouldn''t be as fun.

Physics is always fun. Don''t you all just love to solve Schroedinger equations...

-Ratsia

Share this post


Link to post
Share on other sites
Well if you are going to have perfect physics (which you may not be doing) then consider this: once you are floating in one direction, you can''t actually change until you hit a wall, unless there is something you can use to push off, whether it be a wall or air. But air won''t make too much of a difference (still noticable though). As I first read that, I thought it was going to be like:
You are in a non gravity environment, the only way you can move is through the recoil of your shotgun and you have to shoot people. That''d be interesting because to advance to someone, you''d have to face away from them. Well, maybe it''d be interesting. Actually it probably wouldn''t. Anyway.
But if you do Mario style physics, you can change direction without anything to push off, the orientation method for that I think would be something like this: 1st person, but you fire at a different angle to which you are facing, or something similar to that. Basically you control movement with keyboard, and then control the gun with the mouse.
That''s just my thoughts (obviously, who else would right them =)

"Only a fool quotes himself"
Andy Owen

My Homepage (Non games related)
My Current Project (Games related... I think)

Share this post


Link to post
Share on other sites
Even if you could use shooting recoil as movement method there would still be those walls to push from and you would move much faster by pushing yourshelf from wall or some large object. So there wouldn''t be any need to advance backfacing.

Unless the whole game was played in empty space. Distances to other players could then become pretty huge. Hmm... If there were some kind of energy fields working as walls. You could see through them but could not push from them or shoot trough them...

We''re getting quite away from Ender''s Game and Battleroom but it doesn''t matter.

-Ratsia

Share this post


Link to post
Share on other sites
quote:
Original post by Nazrix

If you shot a gun in zero gravity, would you be propelled backward?

well, I guess not a laser gun, but a shotgun or something...




Actually.. go visit Laser propulsion research projects homepage lasers CAN and ARE being used as a propellant through space. Believe it or not.. if you had 12 thousand dollars to spend.. you could buy a laser lamp. You see, the theory behind it is to shoot a laser up at a probe or whatever, the prob captures the laser and spreads the beam outwards. The "ship" looks about like a lamp shade.. or satilite dish pointed down. The laser energy is held in by the skin, and it''s actually redirected downwards. So you get propulsion from the laser hitting the craft and the laser being pushed downwards by the craft. My roomie said he saw a program with a 12 thousand dollar lamp shade looking thing that floated over the top of this laser. And because laser is light.. it could be designed so that it produces light. I think if you could stabilize it so that shade part sits a certain distance up from the laser base, then you could refocus the laser back towards the base, which could collect and refocus the laser back up towards the ship, in effect.. recycling the laser That way it draws as little power as possible.

As for the design of the game.. think about it like this:
In ender''s game, when they pushed off the walls too fast, you''d go flying into someone else or something else and risk injury. You can''t stop in the air, you simply get creamed by whatever you hit. Too much speed, and bye bye neck!

here''s what i was thinking: You have the players push off of something to get momentum. They can then rotate in the air. But to rotate in the air should take some kinda work, cause it''s NOT easy in reality. if it was as simple as using the num pad to rotate around, then yeah.. i''d say go for it. but the game will be quite a bit dumbed-down for that to happen. And if you''re going to do that, you might as well make it men in space suits.. or combat suits or something

J

Share this post


Link to post
Share on other sites
Cool, I''ve always entertained the idea of making the exact game that the original poster was talking about. I actually came up with some good ideas with my physic friend. I see the three main problems as adaquate collision detection and reaction control, orientation of viewport vs. direction of movement, and interface. Many of you previously described the same things. I came up with a few solutions to these problems. They may not be the best but I''ll tell them to you anyway since I don''t plan on making that game in the near future.

I''ll try to start with the interface issue. What needs to be realized right away, and think it already has, is that the current interface in FPS is inadequate because of the viewport vs. direction of movement arguement. What is basically going to have to happen is that the player will have to keep track of two sets of conditions at once. Those that are involved with where he/she is heading (speed, direction, obstacles, distances ) and those involved with what he/she sees. As far as an interface is concerned there needs to be an external controller (outside of the 3-D viewport ) that signifies direction of movement as well as direction of view. It has to be a control that is very intuitive and one must be able to derive location/direction information from it in a matter of milliseconds (a glance to the controller.)

At first this may seem daunting and impossible, and to some of us gamers it just might be, but to young gamers like my little brother, who has the born in twitch, this is just another factor for their brains to handle. I see this control as something that sits in the upper right hand corner of the screen and represents the playing area in red outline. It will not actually be a solid, just a wire frame of the playing area. Now a player will be a small dot in this field and lines will extend from the player''s dot to the wall in the direction of the player''s movement. This line will be blue and where it intersects the wall a small solid surface will be shown so that an angle of incidence can be derived.

Now another line will also extend from the player dot. This line represents the player''s view and it extends to that is directly in front of the player''s face in the viewport. This idea could definitely use some work but I think that in a limited environment like a cubic room this system for orientation finding might work.

Another aspect of the user interface is hotkeying the viewport. It would be essential that there be controls that would allow the viewport to automatically snap toward the direction of travel and then another one that would resnap to the direction of viewing before the snap to direction. You would need to have ones that would allow you to snap in any spherical coordinate direction that you choose. These could be set up by the user before hand. Sort off topic in this section but maybe the whole thing could be done in spherical coordinates. Keep in mind that the player would only be able to look so far in one direction before the limits of their physical position would hinder any further movement, but we humans do have the ability (whilst moving our heads) to see almost all the way around ourselves.

Here is an interesting function. There is always a targeted enemy (focused by a pink box.) There could be a hot key that snaps the viewport to this enemy. This is not auto aim, but rather a viewport control. All this "snapping to" would actually be quick panning. This could be quite disorienting for many people but I feel that it would be essential for the real feel. You would of course all the player to hit a hot key to select the next enemy. Like I said earlier, just because the program will be handling viewport control a little bit doesn''t mean that the program will auto-aim. This snapping will only provide general direction control.

While I''m on the topic of viewports being controlled by the computer maybe I can segway into the player character control. My first idea in this respect addresses the question involving how to change body position. Now we can obviously see that there could be WAY to many hotkeys required so what I suggest here might solve this problem. Underneath the direction control on the right side of the screen is an 3-D representation of the player''s body as the other players see it. Its orientation would be tied to some cardinal direction or maybe always based upon the direction of travel. Now what you can do is have scripts that modify how the player''s body moves into different positions ( a la pulling one''s knees up to one chest and freezing them.) Now the tricky part is pulling off these moves without using hotkeys. I think it could be done by using one hotkey (maybe a mouse key) as what we''ll call viewport lock.

Once the viewport is locked mouse movements will no longer move the viewport until it is unlocked. This will allow the player to use the mouse to manipulate the little figure on the right hand side of the screen. By pulling it to the right the player may spin around. By hitting a button the player may pull up his knees, or possibly let them down. As stated before the buttons could be bound to scripts. Along this same lines we have hot keys that we will call anticipatory commands.

Anticipatory commands are those commands that will be executed upon the event that a pre-scripted event takes place. So lets say we are heading toward a wall and we are looking behind ourselves. We quickly snap to the wall with the viewport, hit a hotkey that is set to rebound us 30 degrees up ( it''d have to be in spherical coords.) and accelerate us by 20 % then we snap back to our previous view and continue shooting. Now there is a window of opportunity for each anticipatory command. It could only be executed within lets say 10 feet of the wall.

Wow, lots of writing here. I''ll stop for now but if people are interested in more ideas I''ll continue later. Now it needs to be realized that these ideas will require insane interaction speeds. The gameplay will be lightening fast and many people wouldn''t be able to handle the "twitch" requirement. it could be incredibly fun though and very rewarding physically. You''d get that adrenaline rush when you just pulled off an insane move.

More later,

Random Task

Share this post


Link to post
Share on other sites
To allow people to keep their orientation as they float across this room you could have some sort of cloud/dust like when your playing elite and your going north but facing left all the space crap flies past you (although it is you flying past the crap).

thats about as best as I can explain it but it would take lots of complex information out of your map if you did it this way.

Share this post


Link to post
Share on other sites
I would like to play such a game specialy in multiplayer.

For the rebound, I suggest you rather let the body parts be controled by the CPU when the player nears the wall or obstacle.
If the player get hold of the movements too near the wall then his corpse cant be in the right position.

The player should be able to decide how he will rebound for as many rebounds as he wants, kinda planning his trajectory. Then others movements could stop his trajectory.

For example you do the key things witch switch to the rebound control wich is a 3d view or four sides of the room that you can rotate with left mouse click on a rebound from the trajectory and set an angle and a speed ( vector like I should think ) mouse moves the angle +- controls the speed.

The player controlled positions could be some predefined positions like kneel, arc, stand.
''Falling'' foots first toward the opponents gives him less to target, so it should be possible to do this.

If I remember well there was a sort of rope they used to make impossibles trajectories ;-)

The IA should be fun too :-)

A strategical version could also be fun.


So much to do and so little time...

Share this post


Link to post
Share on other sites