Over the last week or so, people have started to stumble across our project. Welcome! As we posted in our first blog post, the reason for the low profile was to focus on the coding and delivering a product to the community. It really is that simple. That focus has allowed us to make some great progress both on the emulator side as well as content creation. We are well aware that there are other Asheron’s Call emulators in the works. Some are still under development, along with PhatAC that had to stop development after achieving so much in such a short period of time . We did our best to explain our reasoning for starting another in our inaugural blog post Dereth Forever : A New Beginning
We are well aware that a some folks in the community view this fragmentation in a negative light. “Why can’t everyone just work together and we would have our game back already?” That is a feeling that everyone who loves the game can certainly empathize with. PhatAC, ACE, Dereth Forever and other as yet unknown emulators that may be out there, speak to the fact that the effort to bring AC back has never been a smooth one.
We would like to take just a moment to assure anyone who maybe concerned that everyone here at Dereth Forever loves Asheron’s Call as much as you do. We, like other teams, are putting in countless hours to making bringing the game back a reality. We are taking the path that, in our opinion, gives us the best opportunity to accomplish that mission. We are committed to a GPL license for our game server and will release the code with our first release of a server build. That is not only core to our charter but our solemn pledge to you, the people of the community.
We wish no other emulators any ill will and in fact are grateful for all of the talented people that have worked many many hours over the years to help make any emulator project possible. OK, enough of that, back to coding.
We’re trying to wrap up the first pass of the Content Editing tool, but wanted to call out a feature we decided to add this week. We know that a large part of the remaining AC base is off playing deprecated copies of another unnamed emulator. We also know that you have ways to extract and import data into those worlds. The last thing we want to do is fracture the AC player base over which community to dedicate themselves to when having to create the content, whether that unnamed emulator or Dereth Forever. So the question is, why not both?
We will be adding the ability to import, edit, and export json files from that unnamed emulator into our Content Editing system. In the process, we get a copy of it, of course, and you can help rebuild the world for us as well as have a nice easy to use tool to rebuild worlds in the other emulator. We’re still working on the details of how we will give people sandboxes to play in and not corrupt data in the process, but we’re confident we can reach a solution that benefits everyone.
Today we were able to merge in the code necessary to implement dyeing of clothing and armor. Our newest developer Iron Golem was able to get it working properly and replace a lot of other really bad code in the process. We also have dye failure making your favorite shade of pink, too.
Physics was going great. We got everything loading, were able to see it loading properly with Sharp DX 11, and were excited to be making great progress. We knew it was a risk to use an engine instead of copying the internal physics to the game. We had server-side motion incremental motion mirroring and could have even done some client position validation rather easily.
Then we wanted to add movement mirroring over and around static objects. This was for 2 purposes. The larger purpose was so that we could “move” things on the server. Mainly, monsters. This requires being able to move stuff over objects (cell data) on the ground. This is mainly stuff like tables and chairs, but includes ramps and places in the world where there is more than 1 place you can be, vertically, for the same x and y values. Bullet failed us here. This required custom placement manipulation. We were already doing some of that for movement prediction, but that was movement over ground terrain.
Without fully implementing this movement over stuff, we realized that the only way we could really utilize a third party physics engine was for collision detection. But even then, it was a half-solution. We have to do collision detection for moving over/around cell objects anyway. Bullet doesn’t even get us that.
So, we’re cutting bait on using Bullet as a physics engine. We will continue to use it for the ability to see what’s going on in the engine we’ll end up rolling by hand and utilize the SharpDx11 stuff we already have to render it. This is still a great tool, we just can’t use it in the way we had hoped.
That said, we’re going to go as far as making portals work on the old system. Projectiles and server object pathing will have to wait for the new system to get put into place.