Jump to content
View in the app

A better way to browse. Learn more.

Horizon Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

So today I attempted to create a project which logged the sent and received times of the walking packet from an openkore client. By modifying the openkore client, I timed the packet sending and receiving functions to mark the time in which the emulator could perform a quick calculation (in this example the walking algorithm) and send back a response to the client. By making the character move on the client I achieved multiple responses and ergo the average response time it took for the emulator to achieve a successful transmission of packets from client to server (request) and back to client (response). The openkore was a fresh install and I had only modified a few lines of code. The patch for this file is attached in this post, feel free to use it in your own openkore to check the packet reception times in your emulator

0001-PacketTimer-Patch.patch

Doing this tells me how fast our emulator is and whether what we are doing is the right thing. By looking at the data received from this patch, it seems our emulator is quite close to the eAthena emulators. Keep in mind that Horizon is not at all optimized at this point and we will be doing so only in a few releases into the future. Horizon is a very fast emulator and you can see the results in this patch that we're able to meet the qualifications of a competent emulator in the online gaming industry. We're there with the top emulators in the RO emulation scene and the MMORPG world. We're quite competent even in our less optimized, not bug-tested and unreleased codebase.

We're quite there with the top few emulators which achieve the importance of providing a platform based on the "competition" element of online gaming. We want our emulator to maximize competition in online gaming and we're making it possible with rigorous efforts as seen in the results today.

Screenshot 2025-03-15 220921.png

We can see that we're just off by 0.001 marks. Which is 1 millisecond of time. We are that much closer to competitive online gaming and we can achieve the difference by working on optimizations on the emulator. Horizon also leverages Hyperthreading (or Multithreading) technology, which means that characters are simultaneously processed on our server compared to the one-by-one processing of them in eAthena based servers. For more clarity, take a look at the diagram below -

Screenshot 2025-03-15 200012.png

In eAthena servers, characters are loaded and processed one after the other. This can cause an issue in processing thousands of characters online. In Horizon, characters are logged into maps which are divided amongst the threads of the Game Logic Layer (GLL). In the GLL multiple threads process a group of maps. If two players happen to be in different groups, they are processed differently.

  • Protos changed the title to Response time of Horizon
  • Protos pinned and unpinned this topic

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Recently Browsing 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.