LOL at this Darius guy. Seems as though he's just an internet troll.
It's actually funny.. just because you can baba the top gear in the server, and perfect the best timed macro. He thinks that he is better than everyone.
Like, that's the exact reason why I take issue with these people, I really try to stay the fuuuuck away and shut up but I just can't. Watch this Darius (YouGotPwnedByMyAss), for example, I can't stand these frauds because of their sheer stupidity.
Look, bear with me here:
1) He is a warrior a.k.a. a damn pawn in the VS. Anyone with half a brain, any retard or KO rookie that knows the basics can fit his roll, do exactly what his doing meaning that he is practically nothing there.
2) I am not even gonna mention the fact that he macros, I can't... I just aahh it's beyond me...
3) With the above being said, most of the weight of the VS is on the priest and yet he tries to act tough challenging and calling everyone out but in reallity he's just a worm who could be easily substituted by an equal insect. He is nothing but depends on others in order to try to be something. The pinnacle of sadness and desperation.
4) To finish this sad story, he mocks Brook (I doubt he gives a tiny fuck about this) for losing to DeBrogLie when the priest he'll use for this VS (I'm guessing Melody, which I have nothing against) has already lost 2v2 for him as well. So, what. the actual. fuck.
YouGotPwned, bitch please, understand all this and you'll look less like a pit of despair and autism...
Logitech vs Razer
Steelseries vs Corsair
Nothing more exciting than seeing literal programs go up against one another. A true test of mastery - to see who can customize the sickest and most efficient macro setup!
Almost as exciting as this.
Let's not mistreat other people's suggestion, please.
Ouss, we understand that it can be frustrating to join an old server but as you know we strive to bring KO players a long lasting, stable, secure and, most of all, trustworthy server. Not only that but there's still much to come to ApexKO. We got Castellan coming and after that UTC expansion so we have no plans to relaunch or launch a parallel server.
Don't need new server, it's great as it is now there is just one problem: Warriors are OP as fuck. They should be nerfed and then maybe mages would come back to the server... (But people think it's ok that 2 warriors can aoe a mage party with torment...)
This is by far our most exciting -- and promising! -- project, and one that I've been spending every possible moment on lately.
Why is this project important?
Firstly, before I get into anything, I should explain why the client source -- and this project -- is important.
It's essentially useful for 2 things: being able to more easily fix things ourselves, and giving us the option to literally do anything. I can't stress this last part enough. With the server, we have some means of creativity; but anything we could implement has to find a way to have this deal with the client in a suitable manner.
Having the client source removes this limitation entirely. Our server, our client. We can do whatever we want with it.
We need a new UI? We can make one and add it in. Imagine the possibilities.
Regarding fixing things, right now we rely on official updates from mgame; our update process revolves around using their code and adding in our patches (each time) to fix their issues (that they haven't yet fixed themselves).
Each update we hope that they've actually fixed things that we've yet to fix for them (manually, with assembly, which is a considerably more daunting and time consuming task for us than it is for them with the client source). Changing a single line of code for them, may take us a few hours to do manually via assembly (having to track down where this logic is, etc).
And now some history...
If you're not aware, there exists a set of leaked (official) source files for ~1.06x (for the server AND client -- as well as their development tools) from way back in 2002~2003. This was before its first released version, and before anything was actually implemented properly, but it's still a tremendously invaluable resource as a lot of things still are handled similarly -- if not the same -- even now in 2.1xx.
So way back during server development (~2013) I explored updating the client source. I updated it to support the various new file formats, and had it connecting to our server -- compiled for 1.298 -- since UI behaviour is a lot closer (less of a jump, means easier to get in and mess with things without having to update literally everything to get to that point). I implemented capes, symbols (rendering and importing them via the UI), premium stuff, PM windows (because again: this was back before PM windows even existed!), loot boxes, and a bunch more.
Eventually I moved on to play with 2.0xx, but quickly lost interest for a few reasons: there was a ton more to do, we were very busy with server development still (so this felt like wasted time), and well, at the time I was doing it solo, so I felt like it was too much of a monumental undertaking to attempt at this point in time.
Aaaaaand now skip to this year (2017)
The server's in a very good place, to the point where major server development is few and far between now (usually just bug fixes at this stage), and the OpenKO project happened.
If you're not familiar with the project, they set about messing with the client source as well in an attempt to update it while learning how things work. This piqued my interest, and I became involved with it for a bit. Many hands make light work, after all.
However, my experiences with open-source KO development have taught me that it's... well, a terrible idea (blah blah working alone blah blah spoonfeeding people blah blah people complaining about things not being implemented while at the same time selling it for their own personal gain blah blah... you get the idea), so I took the opportunity to ask those who were actively contributing about doing so in a private repository.
Surprisingly (or maybe not?) that went over quite well. I should add that the project isn't specifically for ApexKO; most are just doing it for their own learning purposes, but ultimately it's my goal to use this project here, in place of the official client.
I should probably also mention that I still help out with the public project; it is still a great place to learn how things work, so I'm happy to help people out over there. My main development focus though, is with the private repo. With the private repo it's a lot more comforting knowing that people aren't going around selling it while harassing you to implement/fix things for them (I'm not even kidding; this happened.).
Since, we've made leaps and bounds with the project.
At the time of writing, we've:
Implemented symbols (clan, PVP, party leader, chicken, etc)
Added premium behaviour (texts and whatnot)
Updated overhead info (e.g. line under clan leader's name), fixed ranges on names, etc.
Reimplement TBL handling logic to support newer TBLs and handle them in a more intuitive way (without having to save to .tmp files after decrypting >_>).
Implemented merchant stalls, UIs and all relevant logic for it (UIs are more intuitive to interact with, as well)
Implemented loot boxes
Implemented the upgrade system, so you can now compound accessories and upgrade items. The anvil will show the effect when you burn an item or upgrade it, etc.
Implemented the new "presents" screen
Implemented the new login screen
Implemented the new nation selection screen (and fixed the old one)
Updated the character creation screen.
Implemented backwards compatibility for old UIs
Updated and fixed rendering of item tooltips
Fixed wrapping issues with tooltips in general
Implemented drag/drop behaviour from skill tree -> skill bar.
Implemented updated hostility behaviour and unified it all.
Implemented event tile support (for triggering things like zone notices)
Implemented zone notices (for entry and area triggers)
Implemented commands UI
Implemented exit menu
Started migrating logic to use a 3D engine (so we aren't tied to DirectX and Windows, and we can also optimise our rendering pipeline).
Updated the party list UIs.
Implemented debuff behaviour for HP bars (and for party lists).
Implemented mousewheel event support
Reimplemented networking logic (for stability, performance, easier to work with, etc).
Reimplemented input logic to no longer rely on Windows edit controls (meaning we needed to implement all of the editbox behaviour ourselves, like handling moving the caret and keys/hotkeys like CTRL+C/CTRL+V, home/end, etc)
Implemented most of the King system UIs (will probably be done by the end of the week, even)
Implemented the skill cooldown effect overlay
... and much, much more. I actually probably shouldn't have been as specific, because I was really just listing changes (at random, really) I considered reasonably noteworthy -- but they're far from all.
Long story short, the work we've put into this project so far has been monumental. So much so that it's looking likely that we'll have sufficient 1.298 support to push into future versions reasonably soon.
The project is extremely exciting. Time consuming, for sure, but very exciting and offers us endless new options.
Perhaps I might make status reports regarding this project here, if anyone's interested in seeing how things are coming along.
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.
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.
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.
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.
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.