- Vampiric spells no longer freeze the client
- Characters which somehow manage to get stuck in walls on mapchange or login will get moved to a nearby open position
- Multi-hit spells now retain their multi-hit property on logout
- Tailored items now have icons
Sunday, August 31, 2014
Various bugfixes
Sunday, August 24, 2014
Walk animation, cast animation and ice particle effect
I did some long-needed pixel artwork. A walk animation for the player-character, a casting pose and the missing particle effect for cold attacks.
Tuesday, July 29, 2014
Mining System implemented
But otherwise, I am quite happy with this feature. It works just like I designed it. Sensing and prospecting isn't implemented yet, but probing and mining works just as intended and I think hunting for ore is really fun... at least compared to the "click on ore, watch progress bar" resource gathering systems of most MMORPGs. Now I just need something which can actually be done with the ore. Currently it's just vendor trash, and not even a particularly lucrative kind.
Monday, June 30, 2014
AoE overhaul
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.
Sunday, June 1, 2014
Wednesday, May 21, 2014
Attack particle effects
Sunday, April 6, 2014
Password changing
Thursday, March 27, 2014
Crafting interface implemented
I added support for crafting. NPCs can now display a crafting window. They can freely define how many slots to display and where to display them. The item script can also define a handler-function which receives the items the player dragged into the window. Each slot can define a "tag" which says which items can go there. Items can now have one or more such tags which define the crafting use they have.
The Java part of the engine does the ground-work of validating that the users input is legal (tags match the slots, user actually has the items).
The scripted function is then responsible for checking if the combination is a valid recipe, remove the items and give the player a new item. This function could also be implemented as a Java class. When I develop a more complex crafting system, I might opt to do so.
Monday, March 3, 2014
Visible equipment
Currently this only works with hats and staffs because I only have sprites for these yet. But that's just a matter of creating the content. The next step will be to allow differently colored equipment.
Wednesday, February 12, 2014
Some new tiles and height levels
I also experimented with adding height levels. Those you see on this screenshot are entirely client-sided and randomly generated. I am unsure if I will keep it.
First, I am not sure if it is even going to add so much gameplay-wise for the amount of work it would mean (routefinding etc.). Then there is the problem that Tiled can't do isometric maps with height levels. So I would either have to patch Tiled, find another editor or write my own map editor after all.
Thursday, December 26, 2013
Effect areas
These provide buffs (or debuffs) to anyone standing in them. This feature will make positioning in combat even more important and diversify the game experiences on different maps.
Thursday, November 28, 2013
Got rid of multiple characters per account
Why did I do this?
1. this simplifies lots of things in the code like banning, permission handling etc.
2. It makes it easier to do registration during the tutorial, because now there is only one name the player needs to make up.
3. I don't expect that many players will create more than one character, because there isn't much reason to do so in my game system.
4. There is no way to stop people from making more than one account anyway, so they are no appropriate method to tell natural persons apart.
The next thing will be to allow players to start the tutorial with an unregistred character. The player will choose a password when the tutorial is over.
Friday, November 1, 2013
Status indicators
The reason is that the players eyes need to focus on what is happening at the center of the screen during combat, but also to the status bars at the upper right edge of the screen. It's really hard to pay attention to both at the same time.
To solve this problem I decided that these markers need to get closer to the player-character. So I added some HUD elements right below it:
The arcs are, from inner to outer, the current percent-status of MP, HP and barriers. When the character would have multiple barriers, they would appear as additional concentric arcs around it. When the player wants to know the exact numbers, they can still look at the upper-right corner. But these arcs gives the player a constant awareness of the status of their player-character.
Sunday, August 25, 2013
Target indicators
Speaking of barriers: These can now be cast by players and are now scroll-based like all other spells. Just as I planned, each player-character can have only one barrier active at a time, but this barrier doesn't need to be on itself. So a party can decide to stack all their barriers on one designated tank while leaving all other members unprotected.
Still missing on the barrier front: A tutorial, scroll icons and an NPC to sell them.
Thursday, August 15, 2013
Barriers
A barrier is a buff which works like a HP buffer for a special element. When it is cast on another player, all damage with that element will eat away the HP value of the barrier before reducing the actual HP of the players. The HP buffer of the barrier decays naturally during the lifetime of the shield.
Currently there is only a provisorical implementation - every player starts out with a 100HP fire shield which loses 1 HP per second. But I am going to make barriers spells. Each player-character can have one barrier active at a time, but it doesn't need to be on oneself, so a player can make the tactical decision to protect another partymember instead of oneself.
There will be two kinds of barriers. Long-time wards which decay slowly but need a long time to cast, and quick counterspells which are cast very quickly but also decays rapidly. The first kind is used as a precaution when wandering dangerous areas, while the latter is cast when you notice someone attacks you to prevent the damage.
Wednesday, August 7, 2013
Private chatting
1. Although the protocol allows it, there is no way to open a chat with someone not on the screen
2. There is no way to close chat tabs, except for reloading the website
Wednesday, July 24, 2013
Implemented parties
I implemented parties today.
This was quite a lot more work than I expected, because of all the edge cases which needed to be taken care of. Handling party requests of people who log out, handling parties disbanding while taking on new members, removing members who are online, offline or in char select... all sources of annoying bugs. The good news is that I will likely be able to re-use most of the code when it will come to guilds later.
Parties don't affect exp sharing because that's not needed in my current system - every attacker gets his full exp share anyway.
What parties do instead:
- Party members share private instances
- Party members can chat with each other
- Party members can see each others location
Sunday, July 21, 2013
Base and real stats
In other news: I finally fixed the "shortcut over unwalkable tiles" bug.
Sunday, June 23, 2013
Particle Engine
Nevertheless I had nothing to do this Sunday afternoon and got around implementing a particle engine.
I like programming particle engines. A particle engine was my first and most major contribution to The Mana World. My first thought was porting the TMW particle engine to Javascript as-is (just using JSON instead of XML for particle definitions), but then I decided that a different architecture is much more suitable for JS. Instead of defining the physical properties of each particle type in an XML file (or rather JSON), I decided to implement the physical behavior of each type with a function.












