American Mcgee's Alice

Hi, this page is related to the game known as American Mcgee's Alice.
I have created some basic maps for the game in the past.
Later on, perhaps in the month of September 2005, I decided it would be about time to put my skills towards making a game. Alice seemed like a good concept to work on.
So, I am developing my previously written code to "great lengths" to have a high performance game engine ready.
If anyone has some good mapping, texturing, game designing skills, then my email addy is at the bottom.
For the rest of you, all comments are welcomed!



Links
http://machinations.alicesasylum.com (This is a website owned by Sleepite)(Bad news : the site went down in july 2008)
http://forum.alicesasylum.com (This is the forum where some of us post stuff)(Bad news : the site went down in july 2008)
americanmcgee.com (This site has a forum where some of us oldies from the old Asylum are hanging out)

MY PLAN FILE
Tutorials
Requirements

Youtube
Texture swim effect on Youtube
3Animate on Youtube

My blog--->

Wednesday, Dec 3, 2008
Added particle effect and an effective sorting system. Compared to the particle effect in Doom 3, it is way more efficient. In Doom 3, the FPS takes a big hit when you enter a scene with lots of particle effects such as smoke or steam.

Wednesday, Oct 15, 2008
I continued work on the engine.
Added a shader for plaid fabrid/edge brightener effect.
Experimented with Geometry Shaders but I think I won't be needing this.
Added a shader for doing fur effect + related code needed.
Added a shader for combining 2 textures using another texture as the mask. This method in combination with texcoord animation is used in Doom 3 for doing a lava effect. They also add smoke effect in Doom 3 to complete the scene. Smoke effect is basically particle effect which is already implemeted in my engine.
Screenshot of the 2 texture + mask texture. You can't see it here but the center path moves like water.

Sunday, August 10, 2008
For the moment I halted work. I hoped others would join in to create the complicated artwork but that didn't happen. Oh well, I will come back to this project in the future.

Right now I'm working on another game where it will be easier to make the artwork. It will be a very simple game. It uses the same source code as this project. I want to make it multiplatform.

NULL has decided on using the Source engine to make a Alice mod. He will be doing modeling and textures.
I would prefer Doom 3 since it is multiplatform but that's ok. If things move ahead, I'll join in and see what I can do.
Will we one day have a fan made Alice game as good as the original? Who knowns.

Saturday, June 28, 2008
Multiple Instances


I modified the animation viewer program (3Animate) so that I can view many instances of Alice. I also coded it so that it uses very little memory. You can assign to each Alice its own animation mode. The Alice template consumes 28.9 MB of RAM and all 100 Alice copies use 10.8 MB, making the total 39.7 MB. Without memory reuse, the total memory would be 28.9 MB * 100 ~ 3 GB. I also added support for viewing the Insane Child model.

Tuesday, May 20, 2008
Vertex Displacement Experiment


This is a cube with a shader applied to it that can do displacement of vertices using a texture.
It uses a texture with format RGBA32F, the texture is sampled in the vertex shader. NEAREST and NEAREST filtering is used.
This requires a Gf 6 and up. It would not work on any ATI GPUs since they don't support Vertex Texture Fetch.
So what could it be used for? It can be used for real bump mapping. It is suited for doing water surface animation so one day I might use it for that. With render to texture support along with Vertex Texture Fetch, it would be possible to do a dynamic water animation, moving the vertices using a vertex shader.

Tuesday, May 13, 2008
First Release
I released a first version on April 25.
It was a very simple map done with Blender, exported to the FTM format using a python script I wrote for Blender. Further editing done with my tool to produce the final FTM.
No complaints received although there are minor issues in terms of gameplay.
Download (link might go down)

The other release was 3animate on March 26.
This is a tool for loading Alice and all the animations. It is basically a animation viewer.
A single directional light in the scene + ability to do hard shadows (shadow map technology) and also soft shadows (this requires nVidia Gf 6 and up due to the complex shaders).
Download (link might go down)

Saturday, Feb 07, 2008
Shadows
I promised myself I would not deal with shadows until the very end but I couldn't help myself. I'm 3D graphics crazed. I recoded a test case for doing shadow buffers. This gives hard shadows.
I also took a nVidia demo and adapted it for it to run on a ATI 9700 but the results aren't exactly what I want.
I will be getting a laptop with a 8600M GT 256MB soon so I'll have something decent to work with.

Next step is to bring in an enemy like a card guard and have the ability to kill it.

In one sentence, I would like to say that shadows are a PITA! Worst of all, it leads to big slow downs on SM 2.0 hw.

Saturday, Dec 15, 2007
Grass
A screenshot showing a general surface, some trees, some balls, and a new feature implemented in my editing tool ==> Grass Generator.
From the editing tool, open the dialog box for the Grass Generator, select a Ground object, choose the number of grasses you want, in this case 2000. Open up a FTM file that contains the grass model, click Generate.
It will take 1 minute and the scene will refresh showing the grasses.
In this case, the grasses are just 2 quads. Blending is used and a certain texture is present on them + a shader.
All the grasses are rendered in 1 shot, a single call to glDrawRangeElements.

Wednesday, Dec 12, 2007
Since I am getting closer to my goal I added a tutorials section. Link

Date: Tuesday, Dec 04, 2007
Alice
Working towards skeletal animation.
In the original Alice game, they have used skeletal animation extensively for the Alice model and I can understand why.
It would consume a huge amount of memory if they had gone with keyframing.
Alice has a lot of animations. 227 SKA files. SKA files contain 131 bones. Multiply that by the animation poses which for the moment I don't know how many there are. There is a single base file, called the SKB file. SKB contains the triangle indices, vertex, normals and texcoords.

So I will take the SKB/SKA file, get rid of the useless junk (offsets, flags, bones that are not even used)
I will scale down the model, input some values, save it as a ftb/fta file.
I should be able to execute the animation in a vertex shader and I hope it won't be slow.
Why on earth is there 131 bones???????????

Other models, like the Rook, has a single bone. They could have done it with keyframe animation. No need for skeletal guys!
I beleive all the other characters are like that as well.

UPDATE : success! I have a skeletal animation shader for Alice and was able to render Alice. There some more work to make Alice the main character, get her to run, turn, jump, throw a vorpal blade or two.

Date: Monday, Nov 19, 2007
Animation Script
This is a flash video showing a chariot with a candle on it moving about the floor.
There is also a watch from AMA that is spinning.
Notable things are the chariot is a complex object (wheels, shaft, body)
There is a special shader applied to the candle.
There is no candle fire because I do not have billboarding implemented.
Animation script would actually be used rarely but are still useful.
CLICK

Date: Sunday, August 26, 2007
Water
Here's a screen shot of a water surface. It's still not done yet. This is just to show off what I have currently.
It's a 3 pass process :
Pass 1. Render the scene upside down and clip everything above the water surface. This is rendered to a RTT (Render To Texture)
Pass 2. Render the scene right side up and clip everything above the water surface. This is rendered to another RTT
NULL pass. Copy the depth buffer of pass 2 to a depth texture. This step is not really a pass because we're not rendering anything.
Pass 3. Now it's possible to render the water surface and use the above 3 textures

Yes, it doesn't look beautiful. There are some triangles intersecting triangles where the water and ground meet.


Date: Saturday, August 5, 2007
People arguing about GL 2.1 vs DX10
I've always found conversations like this funny.

Date: Wednesday, July 18, 2007
Animating characters
This is not an easy subject. Keyframe or skeletal?
How should it interact with the environment?
How should it hold weapons?
How should it integrate with the physics engine?
A bunch of details I'll leave out.

So I decided on keyframes. I wrote a little tool that can open a skb and ska file, scale the vertices, throw away certain meshes, center the model and prepare it for exporting.
And I save it to my own format.
Previously, I had done this sort of thing for a company, using D3D.
This time, it's for GL, and yes, I do the keyframe interpolation in the vertex shader. Cool stuff!
I made a flash movie for download.
It's the Alice burning animation.
The good news is, once you do it for one model, you can do it for anything.
In AMA, you have mechanical things moving, wheels turning, some foot things making a wheel turn, pendulums, plants waving in the wind.
Also, there are 2 kinds of keyframe animations : vertex based (you actually move the vertex and you are free to deform the object) or transform based (change the tranformation matrix)

Date: Wednesday, June 20, 2007
The NPR technique for the cartoon effect is integrated and I tuned up the values to have the results that I want.
- The first pass creates a depth map, whichhh looks very dark, so I'm not going to post here.
- The second pass does edge detection



- Pass 3 does the lighting and texturing annnd whatever else you like
- Pass 4 overlays the edges and here is theee final results : just a bumpy floor, blue colored, a floating green cube to help me tune some values, a directional light is shining from above


Date: Monday, June 1, 2007
Sleepite had proposed doing NPR rendering to make things simpler.
1. NPR makes writing a game engine simpler
2. NPR makes designing maps and models simpler

For example, in NPR, you can keep your lighting very simple. You definitly would not care about lightmaps and normalmaps.
For the artist, he would not worry about generating normal maps. Depending on the NPR effect, he would not need to texture map anything, so it saves time not having to assign texcoords. It saves time by not having to create textures.

There are many NPR effects some of which that I like is the hatching effect (not shown here) but this requires texcoords.
There is also one that gives a charcoal on paper drawing effect.
There are also some that make it look like those computer generated cartoon shows like "Mr bean" and if you remember, those Coca-cola commercials (They used Toonboom studios to do it http://www.toonboom.com
See below for the 4 pass technique. The method is based on a ATI demo (I added pass #3).

I should state that my engine was designed to be optimal (following ATI's and nVidia's guideline) not using texcoords doesn't mean we will save VRAM. Memory alignment means that I would have to waste some VRAM.
Here's a pic of an elephant. It requires 4 passes :
1. Render depth values to a floating point texture
2. Using the depth map, use a Sobel filter to find edges and render results to another RTT (RenderToTexture)
3. Render the elephants color layer (blue) to the framebuffer. (You can even do a lighting technique here, even texture map the elephant. Anything you want, basically)
4. Using the result of pass #2, render a thick outline

Date: Thursday, May 17, 2007
Under water effect implemented. It gives a wavy appearance when you are under water. Of course, it could be turned off in case you find it annoying. Also interactive water implemented but there some more work to do.

Date: Sunday, April 29, 2007
Working on 3rd person camera. Considering file format for Alice (skb/ska or x or collada or x3d or my own)
No screenshots this time.

Date: Thursday, April 12, 2007
Just testing out a scene using shaders.
This shows a glowing ball in action (it's a flash movie, 3.7 MB)
If that doesn't work, here's a screenshot

Date: Friday, March 30, 2007
Continuing to develop some shaders...

Date: Thursday, March 29, 2007
More new stuff

Date: Tuesday, March 27, 2007
More new stuff

Date: Tuesday, March 20, 2007
The shader path is comming along. It's much more advanced than any of my previous implementations. You could says that over the years, this is my my 3rd attempt. This time, the render engine decides dynamically which shader needs to be applied and shader LOD support becomes possible automagically.
Also I decided to not sacrifice quality for speed.
Here is a screenshot : The black ball acts as a light emitting source

Date: Tuesday, March 06, 2007
It's been a long time since I updated this page, but I have showed off some of the new features like the reticle, throwing a knife, LOD support, dynamic lights with GL 1.5 to our group.

It's comming together well. Soon, the shader path will work again. That's because I have updated other parts, made many improvements, removed temporary code.

So like I said, the shader path will be functional soon. I will drop the fixed pipeline support since everyone has a powerful GPU and wants mind blowing effects. For some good mind blowing effects, we need some good level modellers, texture artists, human modelers and animators. That will come later on.
Look at this post make by Harry Hunt. Now that is professional work! As one person has commented, it is not a Hello World! project
vray
http://www.gamedev.net/community/forums/topic.asp?topic_id=436883

I'm hoping the first playable version will be available during the summer of 2007. The first version will feature Alice in a chess game situation. If you have played the official game, you know what I'm talking about.




This page is http://www.oocities.org/vmelkon/alice.html
This page is http://ee.1asphost.com/vmelkon/alice.html
Copyright (C) 2005-2007 Vrej M. All Rights Reserved.