maandag 29 maart 2010

29/03/2010: Game menu revisited

The 'textonly' game menu is now finished. The user can choose menu items through the XBOX controller or the keyboard. I had to implement some extra functionality as such that a game state/level stops 'gracefully'. For instance, when you stop the current game level the music should stop too.

A bit tired now ... time to get some sleep. From tomorrow on, I will attend the Microsoft Tech(long!)days, so I guess I will not be very active on the game project this week :)

zondag 28 maart 2010

28/03/2010: physics and audio

Okay, I finally figured how to use the Farseer physics engine. It was not easy, since it is difficult to debug problems related to physics. Anyway, Simon can jump now! I still have to make a jump animation, but the curve is correct now. To make simon jump, I have to call an applyImpulse() method and provide the impulse vector. That's the easy part, but there is a lot of collision stuff happening and it's too much to explain here :) The good news is that I can use the physics to do other things (collisions with ennemies, rocks, flying objects, ...).

Simon is jumping...

For fun, I added audio and music playback today. The API in XNA is quite easy, but the setup is quite a hassle. You have to use the XACT tool: Cross-Platform Audio Creation Tool. At first sight, that tool creates too much abstractions. But when having a more in-depth look it seems to be a quite awesome tool: everything that's audio-related can be configured. And - very important - it integrates well with the XNA content pipeline!



Currently, I added one sound (= a jump sound I found on a web site) and the level music. One of the following weeks I will try to make my own sounds :)

donderdag 18 maart 2010

18/03/2010: Some refactoring and basic menu support

Time to take a step back and have a look at the overall code design ... time for some refactoring :)
  1. LevelManager and Level:  both classes have been refactored to GameStateManager and GameState, since a game not only consists of levels, but also of cutscenes, menu's, interactive levels, and so on.
  2. Game assets: the textures, fonts, video's, ... have been reorganized in the content pipeline, as such that items that belong together (eg. assets of one level) are put in the same folder:


After the refactoring, a new GameState subclass has been created: the GameStateMenu2D. That's a inheritable class that represents a game menu. A first version of it is ready, but two essential features need to be added:
  1. Controller/keyboard/mouse input: without input, a menu does not make a lot of sense!
  2. Bitmapped menu's: currently, the menu is dynamically created by means of two SpriteFonts and a monotone background color, but for the 'looks' I will need a cool bitmap. In fact I will need some inspiration and PhotoShop, and eventually a cool bitmap will the output :)

woensdag 17 maart 2010

17/03/2010: Video playback & Physics engine

This evening, two new features were added:
  • Video playback: the game consists of two base classes: InteractiveLevel and VideoLevel. In the past weeks the focus was of course on the interactive part, but since an intro and an outro will have to be shown I still needed some video playback support. Luckily, XNA has support for this through two base classes: Video and VideoPlayer.
    • Video: represents an asset and is thus part of the XNA content pipeline. Loading a video is similar to loading a texture or font.
    • VideoPlayer: the API of that class is straightforward. Every time the Draw() method is called, one has to get the current frame to playback and draw it on the screen.
  • Physics engine: since some actions in the game will need physics (eg. jumping, throwing objects, ...) I built in the Farseer Physics Engine (2.1). The API of the engine is quite easy to understand and it is a 2D engine (so no complexity of a 3D world :).

    • The engine has been built in for 50%. I still have some work to do and a lot of testing! Anyway, it think it will be nice to have such functionality since it will make the game look more realistic.
    • If you want to see the possibilities of the engine, have a look at this YouTube video. Note: put your speakers on, there is some nice music in the background :)

16/03/2010: Checking out Anime Studio (continued)

I downloaded Toon Boom Studio trial version (30 days) and installed it on a virtual machine ... it was sloooooow. That was probably due to the video card - which is not accelerated in my version of VMWare. After installing it on my main machine everything went smooth. At first sight, Toon Boom Studio looks good. Additionally, it can import my Illustrator files with no problems. However, the bone mechanism is not completely clear to me and the price of the package is too high.























Back to Anime Studio then, I wanted to know why Illustrator import was so odd and after some hours spent on it, it seems related to the use of gradients. If you do not use gradients then import is quite straightforward. Okay, I am bit happier now :) Will have a more in-depth look at the tool in the days to come.

Time to get some sleep now...

dinsdag 16 maart 2010

16/03/2010: Checking out Anime Studio

The process I followed to create an animation did take me too much time, so Raoul pointed me to some software that could be used: Anime Studio.

I did install Anime Studio and went through their tutorial: it looks nice... But ... it is not trivial to import Adobe Illustrator files in that package. It seems that I'm not the only one out there, even after converting it to Illustrator 8 format :( The result of such an import is shown below. The other figures are also imported in an odd way...























So, due to the Illustrator import issues and since I don't want to redraw all the figures in this software package. I am on the outlook for some other animation software. It seems that Toon Boom is quite good but it's very pricy. Will have a look if they support Illustrator import ...

14/03/2010: Feedback and planning

Okay, Saturday I've shown my work to my coach Raoul and as I expected there is still a lot to do. Currently, my progress bar is at 50%... which is not the best situation since there are only three months left. Anyway, this is the timeline for the weeks to come:
  • now -> 28/03: rounding up the game engine. Things that have to be done yet:
    • Physics (with or without physics engine)
    • Collision detection
    • Sound
    • Video playback (for the intro/outro)
  • 28/03 -> 21/04: setting up Anime Studio in order to create all in game animations and the intro/outro animations since the approach I'm following now is too tedious. Compositing will be done in After Effects.
    • Also some modifications will be made to the backgrounds:
      • More houses that are closer to each other to create a typical 'Ardens' style.
      • A path with no gap in it.
    • And I will need to find out some way to stitch the individual frames together.
  • 21/04 -> 30/04: include all new content in the game and make it work.
  • 1/5->7/5: voices, sounds and music. I will need to record some voices, that will be fun :)
  • 8/5->21/5: intro (= a lot of work!)
  • 21/5-> 6/6: outro (= a lot of work!)
  • 7/6->15/06: packaging (eg. create a DVD cover)
  • 15/06->26/6: testing, debugging, quality check, ...
    • And some study for the examination and presentation.
Additionally, some small modifications are needed to the figures; will do that today.

    Volgers