To-Do List

After playing the game a lot, I'm stuck with one idea how to improve the behavior of the monsters. Right now, when you fight a group, it will only retreat if the majority votes for retreat, and each monster bases its vote mostly on its own state of health. So if you kill the monsters in a group one by one, they will never run from you. The only way to make them run is to attack several monsters in a group simultaneously, and to bring the health of the majority down enough to get them to worry about their skin. This is unnatural. It would be much better if a monster could tell the others in its group that it is about to die, and if this would motivate monsters to vote for retreat if the group is small (with the size where they switch votes genetically determined). This would actually be a cool change, and not too hard to do. Whoever does it can become the maintainer of bSerene and be in charge of further development of the code.

The following things are left over from when the game was fresh and could have been developed into a commercial game. I don't suggest doing this stuff to anyone now. But for historical interest, here is the old todo-list:

Human Models - Immediate Mode - Better Explosions
Graphical Interface - Sound - Network Gaming

Put Human Models in the Game

Right now, Selene and the player (who is visible after he has switched bodies with Selene) are both displayed as an angular floating solid colored like a ship (red on the left, green on the right). It would be much nicer to have animations of human bodies here. According to the back story, Selene's and the player's focus of awareness have been shifted to Crystalworld by a shift of their assemblage point as described in the books by Carlos Castaneda. This process does not transport clothes, so the models will have to be nude. They should float in the air in a cross legged posture (being in Crystalworld is similar to dreaming, so this is entirely possible), and they should fire off their energy balls by executing a power gesture. This would be the only animation we really need. Of course, if you have the models and are on a roll, you can do animations for death, arena victory, and game victory if you like.
The power gesture for shooting that we think would work best would start from an open-eyed lotus posture and consist of a raising of the arms sideways of the body with an accelerating movement that would culminate in a forceful clapping of the hands right over the head. At this moment the energy ball would appear. It would be necessary to change the code so that there would be the appropriate time lapse between when the player presses the fire button and when the projectile actually gets released. A sound could play during this time. While the raising of the arms would be an accelerating, forceful movement, their return to the lotus position would happen in a slow, relaxing manner.
What should Selene look like? Well, we don't know about you, but at ALife Games Central we are sick and tired of Lara-lookalikes, and we would hate to see a model in the game that has helium balloons for breasts. If you choose to take on this task, please make a model that is somewhat naturalistic.
Part of the job of doing the animations is also putting them into the game and displaying them through Direct3D. You can do this in retained mode, but don't expect to have fun all the way.We cannot really recommend working with Chairman Bill's Buggy Bloatware.

Implement Immediate Mode

This is somewhat in conflict with the task above, since displaying human models in immediate mode and in retained mode are two different kettles of fish. Implementing immediate mode would be a suitable technical exercise for people who want to prepare for serious 3D programming. Then again, it would probably make more sense to work with OpenGL, maybe even on a Linux/GNU platform. If you want to go that route, we do not recommend bSerene as a starting point.
The program was written all along for rendering in immediate mode, but currently uses retained mode for creating the graphical objects, transforming, lighting and rendering them. A complete world model with collision detection and visibility determination runs underneath that, so that we actually have two complete world models being updated all the time. A good reason why the game runs so slow, eh?
We believe that implementing immediate mode will be boring and tedious, and our astonishment will know no bounds if someone actually does this.

Better Explosions

Yeah, the explosions look good enough, but think how much better they could be! There are two different approaches you can take:

  1. You can expand on the current explosion by adding more frames to the little movie that plays for the explosions. 12 or 16 sprites instead of the 4 used currently would allow very neat looking explosion clouds to be shown.
  2. It looks bad that the monster is simply replaced by an explosion cloud when it dies. Better to have the polygons it consists of fly around and then maybe shrink into oblivion upon contact with the ground.
Best of all, you could do both! The first task is really simple, and I think it would be something a beginning programmer who wants to get into games could do for starters and have fun doing it. The second is quite involved, and would once again be different for the retained and immediate mode versions.

User Interface

The menus that are presented to the user and the information displayed during the game contain all the information that is needed, but the form of their presentation is somewhat raw. People won't take bSerene seriously as a first class game unless this information is presented in a way that is graphically attractive. This should not be too difficult to do - if you're into graphics much more than into programming, this is the task for you.

Implement Sound

At Alife Games Central we are actually interested in trying our hand at this when DirectMusic is out and stable. In keeping with our design philosophy that everything in the game should be useful information, the sound should consist of sound effects for shots, as well as dynamically generated music that changes according to the situation: How many monsters are how close by and how healthy/energetic they are. If we make music in 3D, we could place a source of music with every group of monsters, changing the instrumentation according to group size etc. We think this could be really cool. If you do it before us, all the better.

Network Gaming

The game is written from the ground up for multiple players, but the only thing that is implemented is having the player and Selene as 2 players. Network gaming would be a superb addition to the game. It would have to be implemented with DirectPlay, and that would be a big task. Hats off to anyone who wants to tackle that.
While we will not be the ones, we have some ideas about how multiplayer gaming should go: Two players would enter an arena with many monsters which they can only beat by co-operating. If they do just this, they get a small positive score. However, when a player thinks the monsters are pretty well beat, he can defect by turning off the safety that prevents shots fired by a player from hurting the other player. If the defector now manages to kill the other player and to defeat the remaining monsters, he gets a very large score, the other a small negative score. If the outcome is reversed, the non-defector gets a large score, but not as large as the victorious defector. Thus there is an incentive to switch the safety off, and do it early. If the players are defeated by the monsters, the defector gets a large negative score, the other a neutral score, which is an incentive to switch the safety off late. When players do battle each other, there is always a fair number of aggressive monsters still around who can reproduce and be manipulated by the players. Overall scoring must be balanced so that players who defect and win most of the time get the highest ranking. The switch between co-operation and fighting makes for an exciting dynamic not seen in any other game.

Put in a Nicer Looking Floor

We had some really cool ideas about putting in a floor of ever-changing patterns that would be generated on the fly and contain information about the monsters' location and strength, but we gave up in exasperation before we could get even a static texture to display properly. Harrumph!

If you have any idea for something else that would improve the game, hey, go for it !
And if you release your own version on the web under the GNU license,
don't forget to notify us, so we can put a link to your page on our site.


home