Monday, June 30, 2014

AoE overhaul

I spent the whole Sunday with overhauling the code for AoE attacks. It is now much more extensible for different attack patterns than just points and circles. I also implemented attacks which target a ground location instead of a specific opponent, which works both for mobs and for players.

However, the procedural spell generation system doesn't create any spells with that feature yet. Both kinds of AoE attacks are now visualized by the client during their preparation-time, so players can dodge attacks more intuitively.

Wednesday, June 18, 2014

Little content todo list

I am currently working on content up to level 10. I made the dungeon which should bring the player to level 10, but it is still quite hardcore. Here is a little Todo list of stuff I need to add to prepare the player for it:

My shell is not complicated!

To get the current HP of a boss monster, you just have to use one simple, easy to remember, command:

/shell user.getMapInstance().getMobs().stream().filter(function(mob) { return mob.getName() == "Boss" }).findFirst().get().getHp();

...

I might need to work on this.

Sunday, June 8, 2014

Labyrinth generator

I experimented with procedural map generation. The maze below is created completely on the server based on a random seed. I might want to use this algorithm as-is in the finished game to create procedural dungeons, but for now it's mainly a proof-of-concept. I could imagine a lot more kinds of maps which could be created procedurally than just this one.

This, however, begs the question of how much I want to rely on procedural content. While procedural generation is a great way to create huge amounts of content with minimal work, it can never compete with the ingenuity of hand-designed content.




To send the procedurally-generated map to the client, I had to write my own encoding routine for my maps. I used to just forward the original JSON code from Tiled to the client. But because there is no Tiled file for procedurally-generated maps, I had to write a routine to encode the map data myself.

The same routine is now used for the maps made in Tiled. This has the advantage that I only transfer the information about the map which the client needs to know. This saves bandwidth and removes cheating opportunities.




Sunday, June 1, 2014

Minimap

I've added a minimap. An easy to do but crucial feature.