Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.
X

Archive for March, 2011

New server

We have moved the test environment to a dedicated server, meaning the site will be accessible even when my computer is turned off. Furthermore, it even has a fancy-pants domain name, so you don’t have to hassle with writing in my IP-address and port number. Here it is:

xaero.gscept.com

And to play Floose, simply go to

xaero.gscept.com/floose

Remember that the recommended browser is Chrome, and that it will not work at all in Internet Explorer.

Otherwise this week has been dedicated to fixing bugs and making a new level for Meat Factory. Also, we have added the possibility to send delayed messages to entities, which might come in handy in different kinds of games.

Pre Milestone 3

We are working on the presentation for Milestone 3 which is due on Monday (14/3). We have also written a post mortem report. All that’s left now is some polishing and documentation of the code.

Platformer kit

We have worked on a small demo game to showcase the capabilities of our engine in the form of a platform game called Meat Factory. It features a state based animation system with support for transition animations to play between states. To enable this we made an animation manager class that handles the updating of all animations. When playing an animation with the manager a lot of options are present, for example, you can set the frame rate of animations, decide if it should loop or not and also supply a callback function to be called when the animation has finished playing. So in the game, when going from one animation state to another we first check if there exists a transition animation between these. If a transition exists we play that one first and from its callback function we play the animation we originally requested.

We have also made a very useful trigger property that can be put on entities that should do things when touched by some other entity. This property became so general and useful that we’ve decided to add it to the core of the engine. It has attributes for what type of response it should send to an entity that touches it and if it should be removed on contact or not. In Meat Factory we currently use this property for pickups, spawn points, areas that kill you and also the level goal. When touching the level goal a new level is loaded and the player is spawned in that level. To keep the player between levels, we copy it the same way as in the editor and then simply paste it to the new level once it has loaded. To be able to change which level is the starting level as easy as possible we have made an entire level just for the player that we load first to get the player with the attributes we want and not have it attached to a game level.

This demo game will most likely be released along with the engine as a platformer kit to give developers some ideas on how to use the engine.

Apache2 and php5

At first we implemented a web server using node.JS exclusively. Recently however, we have put the responsibility of serving the page and all contents on an Apache2 server instead, leaving node.JS with only the real-time network handling. The reasons for this were multiple. To start with, Apache2 comes with many neat web server features (e. g. php and media streaming) all set and ready to go, neatly presented in an easy-to-get-going package. To re-implement them all in node.JS just for the sake of it would be time-consuming and unnecessary in our case. Also, apache is the most widely used web server solution in the world, so we figured it would be advantageous to gain some basic knowledge about it. We find it easy to see why it is so popular: it took like five seconds to have a page up and running.

We feel that this hybrid model has the potential to really harness the individual strengths of two different systems, and it also encapsulates the functionalities in a really easy-to-work-with way.