Categories
Uncategorized

multiplayer, 3rd person camera prototype, ice spell and ice tower

Last week was a public holiday in Germany and I could spend some more time in the development of  my game. I achieved quite a lot, much more that I have every thought could be possible. In total I spend +40 hours last week.

I implemented the foundation for the multiplayer mode for my game. You are able to play with multiple player simultaneously. The game runs with the server-client model. One player starts a server and the other players can join the server. The server is in charge of handling the main components of the games like spawning waves.  I implemented the Entity interpolation algorithm of the source engine that is powering games like Counter Strike to compensate lagging of movement. Next to that I wrote a generic script that takes care of replication. You can define in the editor a property (e.g. hp, mana) that must be synchronized with other players.  You can decide if a property should be send reliable (TPC) or unreliable (UDP) . Property are only replicated if their value changed. The script does even take care to replicate everything to player that join a running game. If for instance a player joins, the current hp is send to the new player and you don’t have to worry about it. Interactive components like casting a spell are even more complex, you must synchronize casting animation and so on. I have implemented this in a very generic and even simple way to extend it in the future. I basically serialize a object like the spell, send it to all other player and execute it.  The executed version at the other player has slightly different behavior  than the person who actually cast the spell.

Most tower defense games employ either a isometric camera or a top down view. My game should take this to the next level so I implemented a prototype to bring the player closer to the action with a 3rd person camera.

The effect of the fireball has been replaced with a new one that looks much better. I added the iceball spell and the ice tower. In conjunction with the new ice spells, I have rewritten the fire one in a generic way. So I just have to tweak some parameter in the editor to create a fire or ice spell. That was also useful for the multiplayer support: I have only one piece of code that takes care of synchronizing the iceball and fireball.

The sneak preview video of this week is much longer. I even did some video editing to put everything together. I hope you enjoy it.

3rd person camera prototype

2013_11_04_02

 

New ice tower

2013_11_04_03

Multiplayer test with 4 games running on my laptop

2013_11_04_01

Categories
Uncategorized

main menu, pathfinding, linux and action system

A lot has happened this week, so lets get started.

I have rewritten the player controller to adapt the feel of games like Diablo3, Torchlight 2 and Path of Exile. I also put some more time in game play polish, scaled the spell size and other stuff for a smoother gameplay.

My next goal was to add the basics of network to check if my existing systems work remotely. To start and stop a level at a defined point (required for the network) I had to implement the basics of the main menu. Therefore was my next step the main menu. I can only tell you one thing, it looks amazing and fresh. Check the video below to see the animated main menu in action.

20131027_01

20131027_02

20131027_03

The pathfinding system is back in the game. It’s basically a grid system and the A* algorithm to compute the shortest way from A to B. The grid that determines where a play can walk is backed on level start. Next to that, I also added logic to dynamically update the grid if the player places a tower, such that the player walks around the tower. See the video below for a demonstration.

A friend of mine asked me about linux support. It set up a virtual machine with the latest version of Ubuntu . Unfortunately, some shaders did not work. I will definitely look into that later, because linux doesn’t offer many tower defense games.

I’ve also been working on a system to separate a method invoker from the handler. I came up with an idea that is between writing an actual script and a full visual scripting solution like Kismet of the Unreal Engine. I coded the core framework and it worked very well. I’ll put it as proof of concept into my game and expand the system. I don’t want to talk in detail about the system because yet, I just call it Action System.

Categories
Uncategorized

Level polish and new fire tower

Weekend was fun and I worked on my game.

The first level called Town was nice so far. If you compare the graphic with some other games, it’s obviously no the best one. I put a lot of effort to polish every aspect of the level design. First of all with some new props to improve the look of large empty areas. After that, I tweaked every light setting. Started from the ambient light to the sun light. Followed by the adjustment of the post processing effects.

I replaced the dummy graphic of the fire tower with a new one that looks just awesome.

I profiled some bottle necks and improved the overall performance significant. Especially the  settings of some light were the performance killer.

The goblin minions were placed by rat-like creatures.

ActionRPG_20131020_02

ActionRPG_20131020_01

ActionRPG_20131020_03

ActionRPG_20131020_04