Jump to content
  • Create an account or sign in to use the shoutbox

    You need to be a member in order to be able to chat with other users.

Sign in to follow this  
twostars

Status update! (22/09/2017)

Recommended Posts

Hey guys,

As you may have noticed, we haven't had any player patches in a couple of weeks (though we have fixed a few things here and there on the server's side). The reason for this is that we've been working on considerably more time-consuming projects than usual.

Updating the client

Specifically, one such project is updating the client to be on par with the official USKO client. We've fallen behind a bit with the official USKO client; it's 2.167 now, while we're still at 2.128. The newer USKO client implements things like the new capes, better texture rendering (i.e. "HD textures"), the in-game ability to toggle wings off/on (rendering our own feature useless, but oh well :P), the addition of an inventory slot for tattoos, the addition of a HUD for displaying HP/mana/stamina, and much, much more.

For a while we'd been keeping on top of updating the same week as USKO, however they updated their protection somewhat (months back) which caused our mostly-automated updated process to have to be updated as well. We'd spent a considerable amount of time (off and on) since then trying to track down what was still causing the new client to very subtly crash after a random period of time (which was usually 15min+), which -- as we've finally determined for sure -- was still parts of their protection, which we can confidently say has all been disabled now (we can't make use of their protection with our own, after all).

So our patcher was updated, meaning we can deal with newer clients again in a much faster fashion. Which leaves dealing with all of the actual changes in ~40 official version updates (it's going to be a decent-sized client patch!).

Firstly, the most noticeably breaking change was the addition of the new inventory slot. As this inventory slot is smack-bang in the middle of the inventory, we needed to implement a versioning system for inventories in order to transform and update them. We also needed to figure out what and where this slot is actually used; as far as we can tell, these aren't visible so other players never see them. We, of course, do though. This is contrary to any other cospre slot's behaviour, but what can you do. :P

Secondly, Castellan capes! This behaviour is kind've odd in the sense that they documented it on their forums, yet everything else indicates their forum post is wrong (in parts). So it's unfortunate that as usual there's no consistent source for accuracy, but realistically it doesn't change too much.

If you weren't aware, these capes are available -- for free -- by Delos holders (with a token they're given). For us mere mortals, they cost a considerable amount of both CONT and coins. They also last 30 days.

Having an expiry time is where the logic gets interesting, because of two things: alliance capes (i.e. when to use them and when to not), and dealing with what happens after the cape expires (does your old cape get restored?).

The way I implemented them has Castellan capes always override alliance capes. Further, after the 30 days is up, your old cape will be restored -- be it your own cape, or your alliance's. This may not be official, but I think it makes sense and isn't that huge a deal either way.

Additionally, we've made some changes to how the client accesses the Power-Up Store. We're aware that some players tend to have random connectivity issues we can't do much about, so hopefully this should no longer be an issue (or at least, when it is an issue, it's something we can do something about).

Finally, the new client still requires going through and tracking down anything actually broken because of unknown changes. We're still in the process of doing this, so it won't be released until this is done -- but we're close.

Castellan dungeon

We've also been working on implementing the Castellan dungeon. That is, the dungeon Delos holders can access via the old Abyss entry.
This has taken some time to address because of accuracy concerns; it's been difficult to get into it on USKO.

We intend to get this out with the next patch. More details will be provided when (or slightly before) that's released.

Rewriting the King system

Ah, the King system. The source of many complaints since the beginning of ApexKO.

The underlying problem with this system was that when I initially implemented it... back in 2013, I think, I decided (in my infinite wisdom) to keep its logic as close to 1:1 with mgame's original logic, i.e. trying to reverse it and handle it perfectly identically with the same database and internal structures, etc.

The issue with this, however, is that it's extremely vague and handles things in awkward ways. Even the scheduling/timing logic -- as much as it fits with their original system -- doesn't really mesh with ours. Unlike official, we have an actual timed event/scheduling system we use for our events (rather than asking every ~6 seconds, is it the day, hour and minute for this event? and have I started it already -- because it'll run multiple times in the span of that minute?). I'm still not sure what prompted me to implement it like this way back then, when pretty much everything else was implemented how I felt would be best.

I'm sure that with time the individual issues with the system could've been addressed individually (we fixed many of them already), but honestly, the system was a confusing mess, so it frankly doesn't surprise me that it randomly broke all the time.

So it's been long overdue for a rewrite (as much as the original system design's ingrained into my brain; was difficult to move away from it). I actually just mostly finished that up last night, though I want to start looking into implementing impeachment logic (has anyone ever actually seen it used? That's fairly impressive if so), as I happened to reverse most of the process while reimplementing elections (unlike last time, where I just ignored it because I considered it a feature that nobody ever used).

Minor caveat with this though: we no longer update clan rankings before elections, so it's back to using the top 10 clans from the start of the day. The reason we had it do this was to ensure the top 10 clans were still valid, but between ensuring all clans are ranked now (not just top 100), and tweaking the top 10 clan logic to specifically handle the first 10 that are applicable, rather than the first 10, we really don't need this anymore. All it did was slow down the scheduling (waiting on the clan rankings to update), and cause clan rankings to update at weird times. So it's really not needed anymore.

From my own personal testing it's looking pretty good, so we just need to test this more thoroughly before we can implement this live. And hopefully never have to deal with elections randomly not happening anymore.

Future goals

We have several future goals and projects we're working on in the interests of ApexKO.

One of them is the website. The website is not in a great place right now from an aesthetic standpoint, which doesn't give the best of impressions to newcomers. Its tool functionality is also lacking. We're very much in need of a web designer and/or developer to assist with this (if you think you can help, or know someone who can, please feel free to hit me up!).

While I'm capable of handling the backend side of things, the frontend/aesthetic side is not really my forté (as you can probably tell).

I've actually set about updating this twice since; I really should just update our live website to the first. The first set about improving our design choices with the existing template and updating user functionality. The second was with a new template we purchased, however we had to scrap that since midway through development another server released using that template -- ouch.

Then there's Under the Castle (UTC). Yes, we plan to implement this, but we don't have an ETA for it. What I can say though, is that it's next on our plate after releasing the new client and the Castellan dungeon.

Another is a project I've been spending quite a lot of time on recently, which is updating the client source. How does this help ApexKO, though?
Well, for now it doesn't, since the client source was 1.068 and is being updated for 1.298 (as it's less of a gap than jumping straight to, say, 2.1xx). However, in the long run, once it's updated sufficiently, we'll be able to use this instead of relying on USKO for updates and having to awkwardly patch their issues manually (or not at all, because at some point they're not worth the development effort required).

We also won't be limited by their client's feature-set: we can improve on it. Add new UIs. Change behaviour, provide proper error messages, fix long-standing bugs with the Knight Online client, etc. Additionally, by being able to change systems to work in a more convenient manner, it will enable us to implement even better anticheat prevention than we have currently.

I'd originally attempted this back in 2014 and 2015, but the project is very time consuming, especially solo. At the time we also had a ton of work to do with the server project, so it wasn't a good time for it.

With renewed interest in client development via the OpenKO project, and the server being in a very good place right now, I decided to pick this project up again with a few people from this project so as to actually make some progress with it. And we have: we've implemented some of the major systems; the anvil (upgrading items, and compounding accessories), the merchant system, etc. Also things like loot boxes which weren't a thing in the original 1.068 client.

We have a lot to do with it still (doesn't support transformations, siege weapons, King system, etc -- even the newer character selection screen from 1.298+), but it's definitely making progress. So I hope to be able to use this for ApexKO eventually. ^_^

In closing...

With that I should conclude this lengthy status update post. As you can see, we have a lot on our plate we're trying to finish up. Last week I did say we'd probably get this patch out today. However, for testing reasons we need a few more days on that front.

But it'll be soon, I promise. :)

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×