American McGee Alice mental exercise
Moderator: InsideQC Admins
8 posts
• Page 1 of 1
American McGee Alice mental exercise
I was wondering how to remake this game. I mean just in head, not in real, because I have other project; as a mental exercise. So I just try to guess how mechanics work or rather how I would make them.
You would need Darkplaces or similar engine to make graphics, because Quake does not have some of these.
So, there is third person.
It seems that it is just camera positioned with a vector which rotates around lets say origin of Alice. And then there is this "secret" command to set camera.
Slimy walls http://i.idnes.cz/bw/25/r_alice04b.jpg
* some math with (u,v) of Texture ? But I do not know
Aiming reticle
* tracelined direction vector. Where it hits a wall, there is drawn some particle (or what they used). Important is to make this particle look at the same size (scale this particle relative to distance travelled because it would be too tiny otherwise).
It is not exactly in direction of camera, otherwise one would draw crosshair
.
Ropes http://i.idnes.cz/bw/25/r_alice01b.jpg
* by changing angular velocity.

Jumping by point&click http://img6.imagebanana.com/img/g7sssv1 ... salice.jpg
Alice has these pictures of legs, which are drawn on ground where she would land if she jumped. Dont know what Quake sprites can do, but it might be also a texture with transparency.
So the jumping itself ...
you point to a polygon and if it is possible she jumps there
so it would be
Rotating platforms
* are rotating brushes.
Portals http://www.mobygames.com/images/shots/l ... portal.jpg
* are teleports.
Mirorrs
* are usually done by portals. Not sure whether Quake supports portals, does it
I do not know how to do them in Quake, maybe copy whole scene and mirror it ...
Grey world http://www.mobygames.com/game/windows/a ... tId,11324/
* dot product each color with (0.3, 0.59, 0.11).
* use pixel shader.
* change pallete
...
You would need Darkplaces or similar engine to make graphics, because Quake does not have some of these.
So, there is third person.
It seems that it is just camera positioned with a vector which rotates around lets say origin of Alice. And then there is this "secret" command to set camera.
Slimy walls http://i.idnes.cz/bw/25/r_alice04b.jpg
* some math with (u,v) of Texture ? But I do not know
Aiming reticle
* tracelined direction vector. Where it hits a wall, there is drawn some particle (or what they used). Important is to make this particle look at the same size (scale this particle relative to distance travelled because it would be too tiny otherwise).
It is not exactly in direction of camera, otherwise one would draw crosshair
Ropes http://i.idnes.cz/bw/25/r_alice01b.jpg
* by changing angular velocity.
- brush is waiting to be touched by Alice. Has angular velocity 0.
If touched it makes simple pendulum based on alices speed. (changes angular velocity)
angular velocity is inversed (av = -av) if it reaches maximal one
well, Alice while swinging by forward and backward key changes angular velocity
position_of_bottom = attachment_place + R . (sin A , - cos A ) ...... or you can rotate brush around axis = cross(jump velocity, up vector)
Jumping by point&click http://img6.imagebanana.com/img/g7sssv1 ... salice.jpg
Alice has these pictures of legs, which are drawn on ground where she would land if she jumped. Dont know what Quake sprites can do, but it might be also a texture with transparency.
So the jumping itself ...
you point to a polygon and if it is possible she jumps there
so it would be
- * compute it SOMEHOW from physics formula for ballistic (?) movement (x0+t*vx, y-vy*t+0.5g*t^2) you have given final (x,y) position on plane, so you have to translate from 3d to plane...
* make trajectories by tracelines and binary search the right one ... if you can decide which is wrong and if it can be searched this way
* make a spline and somehow limit possible vx,vy to maximal ones ... there might be some spline which can make trajectory even if there is step
Rotating platforms
* are rotating brushes.
Portals http://www.mobygames.com/images/shots/l ... portal.jpg
* are teleports.
Mirorrs
* are usually done by portals. Not sure whether Quake supports portals, does it
Grey world http://www.mobygames.com/game/windows/a ... tId,11324/
* dot product each color with (0.3, 0.59, 0.11).
* use pixel shader.
* change pallete
...
Last edited by daemonicky on Wed Jun 01, 2011 11:48 pm, edited 1 time in total.
Think, touch, movetype, solid, traceline ...
-

daemonicky - Posts: 185
- Joined: Wed Apr 13, 2011 1:34 pm
Aiming at monsters
* the aiming circle is just 2 rotating particles which produce they traces.
* Other way could be to make array of particles and assign each particle property this way particle[i].property = property[(time + i)%NUMBER_PARTICLES] which would make it very hacky to be done in vanilla QC because it has no arrays.
* choosing which monster to draw these particles around by some standard function. Monsters have some aim function which obtains nearest target AFAIR. If there is no monster to choose, disable particle drawing.
* the aiming circle is just 2 rotating particles which produce they traces.
* Other way could be to make array of particles and assign each particle property this way particle[i].property = property[(time + i)%NUMBER_PARTICLES] which would make it very hacky to be done in vanilla QC because it has no arrays.
* choosing which monster to draw these particles around by some standard function. Monsters have some aim function which obtains nearest target AFAIR. If there is no monster to choose, disable particle drawing.
Think, touch, movetype, solid, traceline ...
-

daemonicky - Posts: 185
- Joined: Wed Apr 13, 2011 1:34 pm
Platforming
* To detect if you are on a ground there is a function. But it can be done with traceline from origin down.
* To detect if there is ledge in front of character make 2 tracelines, upper and lower. They are near each other and represent a hand of character.
* To shimmy even on a skewed ledge
** make moar tracelines
** make bigger z distance between upper and lower lines
FIX:platforming
And it sucks sometimes when you slide a platform or You are unable to reach one. So I would traceline or tracebox if there is platform near and grab it. Probably make many ledge_checks around player like in one of mine tutorials, so one would not miss any ledge. Result should be user friendly platform grabbing.
And also I would not allow player to fall over ledge ...
and allow him to jump from there
if he would be jumping anywhere not near ledge just jump up, like in Prince Of Persia
FIX: She cant grab a thing from water
Stupid physics
Symptoms :
* when riding a platform you do not get acceleration from it but are just stucked if on plaform. So when you jump up you will jump in palce and fall to your death because platform will move forward, not with you.
How to make it :
* do nothing about it, Quake has it this way.
* To detect if you are on a ground there is a function. But it can be done with traceline from origin down.
- Code: Select all
if InWall(downwards) then
you are
* To detect if there is ledge in front of character make 2 tracelines, upper and lower. They are near each other and represent a hand of character.
- Code: Select all
LedgeInFrontOf() = {
if InOpenAir(upper) && InWall(lower) then
there is a ledge in front of you
}
* To shimmy even on a skewed ledge
** make moar tracelines
** make bigger z distance between upper and lower lines
FIX:platforming
And it sucks sometimes when you slide a platform or You are unable to reach one. So I would traceline or tracebox if there is platform near and grab it. Probably make many ledge_checks around player like in one of mine tutorials, so one would not miss any ledge. Result should be user friendly platform grabbing.
And also I would not allow player to fall over ledge ...
- Code: Select all
if ! NearLedge(this) && JumpButton()
do nothing
and allow him to jump from there
- Code: Select all
if NearLedge(this) && JumpButton() && ForwardButton() then
JumpForward()
if he would be jumping anywhere not near ledge just jump up, like in Prince Of Persia
- Code: Select all
if ! NearLedge(this) && JumpButton() // && ForwardButton() then
JumpUp()
FIX: She cant grab a thing from water
Stupid physics
Symptoms :
* when riding a platform you do not get acceleration from it but are just stucked if on plaform. So when you jump up you will jump in palce and fall to your death because platform will move forward, not with you.
How to make it :
* do nothing about it, Quake has it this way.
Think, touch, movetype, solid, traceline ...
-

daemonicky - Posts: 185
- Joined: Wed Apr 13, 2011 1:34 pm
Leaning platforms http://i21.photobucket.com/albums/b275/ ... -59-23.jpg
Simple distance to centre/axis of rotation (of platform she stands on) implies speed of rotation (angular speed)...
underwater shell given by cow-turtle
just another model to be drawn around player
FIX:sliding when jumping
other way to fix it would be by
FIX:bouncy annoyance
repeating 15 times one jump because she just bounces off wall is not fun
dont know how
Chess pieces http://img527.imageshack.us/img527/5649/ama012wq9.jpg
Arrows are models.
It is collision model which allows movement only at these arrows for There is only a tiny place
Travelling rooks
* parallel :
AI
zones like http://game.watch.impress.co.jp/docs/20 ... 3dwa73.jpg or something equally dumb
Simple distance to centre/axis of rotation (of platform she stands on) implies speed of rotation (angular speed)...
underwater shell given by cow-turtle
just another model to be drawn around player
- Code: Select all
if inWater() && shellGiven()
FIX:sliding when jumping
other way to fix it would be by
- Code: Select all
if JustFallen() // jumped && hit ground
set velocity to zero
FIX:bouncy annoyance
repeating 15 times one jump because she just bounces off wall is not fun
dont know how
Chess pieces http://img527.imageshack.us/img527/5649/ama012wq9.jpg
Arrows are models.
It is collision model which allows movement only at these arrows for There is only a tiny place
Travelling rooks
* parallel :
- Code: Select all
if playerNotNearEnough() then
wait for player
if not waiting then
move to current goal
AI
zones like http://game.watch.impress.co.jp/docs/20 ... 3dwa73.jpg or something equally dumb
Think, touch, movetype, solid, traceline ...
-

daemonicky - Posts: 185
- Joined: Wed Apr 13, 2011 1:34 pm
8 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 1 guest


