Thursday 12 November 2009

Famous Five - Development diary #1

Here goes the first development diary for my Famous Five game prototype...

To describe the project in a few words : the game is meant to be a total conversion of Unreal Tournament 2004, starting with a FPS engine, and turning it into a nice adventure game based on one of Enyd Blyton's famous novels.

For this particular assignment, I chose to make a game based on the book "Five go off in a caravan", because of the plot, but also because I quite liked the idea of the circus, and thought it would make an interesting atmosphere.

What have I done so far?

Initially, I went with the idea of making it more like an interactive story, and try and stay true to the original story rather than loosely basing it on the story, with lots of useless irelevant elements as you would find in usual adventure games. This being said, I had to rework my initial game design document in order to make the game more interesting, and thus went on adding secondary objectives, which bring the game closer to its rivals, without ruining the initial plot with meaningless tasks.

I am now on the 7th week of making the game, and it is coming along quite nicely. My emphasis during theses past few weeks was set on designing and implementing the various custom game mechanics into the engine, and linking them up in a comfortable fashion, as well as making it user friendly within the editor. Some of these features include :
  • A task system, which handles all sorts of tasks (collecting objects, talking to people, going somewhere, etc.) in a dynamic way, being easily editable within the editor, as well as extendable if unusual tasks would have to be added.
  • A controller system to handle the Xbox360 controller : although it is quite easy to map buttons and axes of a joystick in Unreal, I felt it did not provide enough control on the state of the input, which is why I went on creating a custom controller system which would handle states (pressed, on press, released and on release), as well as axes in a normalized and more convenient way (it is more convenient to use "LeftStick" than "JoyX" ).
  • An inventory system, coupled with an item system, which define objects that can be carried by the player, and used throughout the game.

What have I worked on this week?

However, this last week, I have spent my time implement my so called "Quick time event system" (although after I think about it "Contextual action system" is a more appropriate term), which makes the interactions within the game by providing the player with a contextual control during actions. Some examples might include tapping buttons to push an object, pressing a combination of buttons mapped onto a specific animation or cutscene to perform certain actions, and so on. This system makes the game more interesting in the way that it is more interactive than pressing a single "use" button to do every single thing, as well as being easier to grasp, being provided with contextual icons which tell the player what to press, and when.

The remaining of my time was spent on minor "bonus" features I had thought of, but not planned for the demo. A particular example of that is post processing filters. Although there are no vertex or pixel shaders in Unreal 2004, it is very easy to fake it by making use of a quad in front of the camera, and mapping it with scriptable textures.

Below is a screenshot of what I was able to achieve in a few hours, showing two post processing filters.

The first one is a fake "depth of field", which is in some way a hack. In fact it was just a matter of rendering the viewport on a small texture, and then stretching it to the screen after having applied an alpha mask to blend it with the normal viewport. As a result of this, you get a simple but nice looking blur effect on the edges, which can be modulated with the size of the texture (the smaller the texture, the more blured the picture gets).

The second filter is a "sepia filter". This effect consists in displaying an animated alpha texture on top of the screen, giving it a slight yellowish tint, as well as grain. The overall result is quite convincing, however, it was not exactly what I intended to have, and will require some more work. What I was aiming for, was a picture similar to what you got in movies in the 50's, with a slightly desaturated picture, and lots of noise and irregularities on the picture.

This is it for this week, but more is to come in the following week!!

What next ?

I am just one step from finishing the core mechanics, meaning that as for next week, I should be able to start building the final level, and sticking all the assets, as well as scripting the game using my custom system. As a matter of fact the last remaining component to be added, is the dialogue system, which will support dialogue trees. This system should be heavily based on the existing CSD talk system, meaning this particular element should not be taking to much time to implement. This being done, as said above, I will move on to building the actual game, and coding the various items, and behaviours as I go along, as well as making extra required assets.

As a little treat, here is a little comparison shot of the default display, and the post-processed display. Note that this does not represent the filters that well, as it does not show the animation and motion of the screen which contributes to amplify the effects.

No comments:

Post a Comment