Something that has been a major problem in a number of different ways over time has been the combat system. There are a few key things that have been on my mind for a long time here:
Players being able to block areas by targeting a monster that they can’t hit, flagging them for combat so they can’t be pushed
The skull system not working correctly with yellow skulls, it was possible to hit someone and un target them quickly, then when they hit you back they would get yellow skulled
Now, in order to address this I had to completely rip out and rewrite how the server handles flagging people for combat and tracking who hit who. Today I have gone in with a sledge hammer and I think I have managed to rewrite this entire system and get everything we want. Previously combat status was intrinsically linked to the target system, and pve / pvp combat flags were all managed by the same cooldown.
Now combat status is triggered by actually hitting something, and pve / pvp cooldowns are handled completely separately. The one exception to this is monsters, if they are chasing you they will continuously flag you as in combat – this just felt right. With these changes the PVP skull system now also just… actually works, or at least I have been unable to find any case where it doesn’t work testing it with some volunteers ingame. So, here is how combat now works:
Hitting, or being hit by anything will flag you as in-combat
Monsters chasing you will flag you as in-combat
Nice and simple. This fixes the issue with being unable to push players and is nice and easy to understand. Also, as far as PVP goes:
If a player hits someone unprovoked, they receive a white skull. White skulled players cannot enter a safe zone.
If a player has no PVP status and is hit by a white skull player, they can fight back and will receive no skull. As they have no skull, they can still enter safe zones, even if they have defended themselves.
If a player hits a white skulled player who has not hit them first, they will receive a yellow skull that can only be seen by themselves and the player they have hit. Yellow skulled players cannot enter a safe zone.
Simple. The cooldown for pve and pvp combat timers are managed separately, so you can stop fighting players and continue to fight monsters and you will lose your skull even though you are still in combat. The pvp combat timer is reset every time you attack a player, or are attacked by another player. Killing another player gives you a 2 and a half minute pvp combat cooldown, hitting another player just gives you the standard 30 seconds, the same as hitting monsters.
These changes are now live, please report any and all bugs on the discord! Liam
The focus at the moment is really on server-side stability, performance, and engine architecture. As such, it occurred to me we didn’t have an official bug tracker where you can see what bugs I am aware of and their current status. You can find a link at the top of the website!
Also, today a few bug fixes went live as a critical game-breaking issue was found and reported last week. The following are now fixed:
Critical edge-case server issue that could result in “invisible” players
Reconnecting quickly while dying / changing zones could result in the client failing to load into the game completely resulting in a frozen “black screen”
Items with an uneven amount of stat points would never drop the top level of secondary stats available. Monsters have been scamming you all
Death messages should now always appear for everyone
It should now be impossible to time a reconnect perfectly as you die and not actually die
Unread whisper message count now correctly renders over the player sprite
Advancement messages now also show to the player who advanced
Very slight performance improvement to lighting render loop
That’s all for now! As always, if you find any issues and they aren’t in the bug tracker please report them on the discord.
Small update to address a few bugs and make some quality of life tweaks. Nothing major I’m afraid, but I felt this was necessary as there were a couple of nasty live bugs and I’ve been doing a lot of code restructuring on the server so wanted to get this out to make sure I haven’t broken anything further.
Various map tweaks and fixes, the start of the game is now illuminated with torches for example.
Behemoth map extended
New Revenant map added
Pushing players animates correctly again
Possible fix for an edge case bug when switching maps in combat and connecting in from another device
It’s been a little while since the last update – I had quite a lot going on in real life and also I think I needed a little bit of a break from the project so I figured things would be alright for a little while until the gofundme neared the end of it’s run.
I have been spending some time going through the server engine code, reworking it and taking a critical look at how it is working, and today I deployed some architectural changes to the server that have eliminated the primary source of server-side frame skipping (you guys would see it as lag) tied directly to how many people are online, logging in or logging out at a given moment. In addition, I had a brainwave and have made some changes to how the lighting engine works on the client. You should see:
No more lag when hundreds of players log in / out at once (i.e. after a server restart)
No more lag when there are 500+ players online
Much smoother performance in general when you are on a map with a lot of other players
If you had low FPS in abyss and other maps with lots of light sources (lava), you should now have much better performance
I have identified another reasonably heavy architecture change that will speed things up even further, though this is going to take me a while to deliver. This is all of course still running on the original server hardware, I am going to be ordering the new machine tomorrow which will again significantly increase performance.
To celebrate this purchase I have activated 5 days of events. Egon has kindly expanded some of the hunting zones so everyone isn’t quite as squished, I am testing these now and will be releasing them during the week.
I have been toying with a new sort of “fun” little tweak to monsters today and I thought I’d release it and see what you all thought of it. It’s something that has been asked for by everyone for a long time and although it isn’t on the roadmap I figured what the hell and use it as an excuse to promote the new server gofundme at the same time 😉
Every monster in the game can now spawn as a boss
Bosses are extremely rare, and will not happen frequently
Bosses guarantee a high currency drop
Bosses guarantee an equipment drop from the loot pool of the monster
If the equipment drop is for your vocation, it will have max stats and be soulbound
Bosses have double stats, but double the experience
There are multiple bosses for each monster so you’ll see some funny names I’m sure. At the very least, this should add a bit of flavour to the game and be a nice chance to get a perfect roll on a piece of equipment.
So, I have noticed recently that I get more and more little lags despite having a very small ping (I live very close to the server) and I decided to spend my time today investigating just exactly what was going on.
I started where you would always start in this situation, firstly by profiling the client, then by investigating the JVM locks / garbage collection sweeps… everything seems fine… okay, that’s annoying. I suspected it might be something to do with the massive networking changes I recently made so I try playing with that, logs everywhere… no? Still no clue.
It’s only when I look at the load average on the server and the amount of CPU usage when it becomes clear… our little server is having a 24/7 heart attack. It’s time to retire the old girl and replace her with something significantly better. I’ve priced up a new machine that I think will carry us through to release and it comes in at just over £1500! Ouchie.
So! At the end of the month I am going to buy a new server and retire our old one, and if you would like to help I have set up a gofundme! Regardless of how close we get to the target I will be buying the server, so this is just more of a way for you guys to help out if you want to. If you don’t want to, that’s cool too!
This update addresses various concerns with the new resistances and the affects on balance this has had on both the game and its economy. Most materials now have a use for one enchant or another, and the resistances and monster balance has been tweaked universally across the game to make it closer to how it was prior to mob defence being removed, but without taking any damage away from anyone.
Fire wyrms now attack with fire
Ghosts no longer heal
Parker and Shell are open for business
All non-damage enchant recipes changed
Physical resist removed from most mobs
Most mobs stamina increased by 10% to compensate for increased damage due to monster defence removal
Fix for using a potion on death
Fix for an appearance exploit with skill-gated outfits
Various map tweaks
This is a continuation of some refinements and progression around enchanting and adjusting to how it has affected the game. I have become increasingly aware that the start of the game (from levels 1 – 30) has really fallen behind in terms of quality and content when compared to the rest of the game, so I am going to take some time to address that this week. You can thank Egon for helping the water slimes expand their dungeon 🙂 As always, report any issues on the discord – cheers.