Skip to main content

Dev Update #1

· 3 min read
NoFr1ends
Founder of Quantum Core

Welcome to the first development update of Quantum Core.

The described changes reflect the changes between the 25th April and 5th May.

Players

In this week we have implemented player movement. For this we have updated our QuadTree implementation to support faster searches and update. The current implementation works better, however it still has some issues with many players (starting at around 400) close by. Further improvements are planned and some are already work in progress.

Mobs

Quantum Core is now capable of spawning mob and processing basic mob AI like movements. (Also merges !14 and closes #25)

The core loads a generic 40k mob_proto as well as MSA animations for movement.

Here is a small video showcasing the mobs in (map):

// Removed

If you'd like to view the example files, check the following Sample data directory.

Relicensing

The code has been relicensed to Mozilla Public License. (Merges !4 and closes #31)

The reasons why we have chosen MPL are multiple:

  • You have to redistribute the source code if you modified QC and redistribute the binary file
  • We do not want anyone to make money with QC itself (feel free to sell plugins though)
  • If you modify QC and do not share the binary you don't have to share the source.
  • GPLv3 didn't really allow plugins (they would have been GPLv3 too)
  • MPL allows you write plugins and sell these commercially

A big step in switching to MPL had been finding an alternative to the LZO library, luckly for us lzokay was the right alternative for us.

Another small thing was rewriting the XTEA code, which ended up being replacable with a Wikipedia public domain one.

Simulator

The simulator's goal is to accurately reproduce (or simulate) player behaviours as close as possible. It will help us to test quantum core's performance and test all kind of features accessible for normal players. In its final form it will be possible to write different test scenarios, from mass connecting to different cores simulating stress to walking around the map, attacking mobs, using items, skills, solving dungeons or quests, pvping or possibly even participating in guild wars. It is meant to use this tool as spawning massive ammount of instances, like 1-2-3k to simulate real life scenarios, helping us indentifying bottlenecks and performance issues. In its current state it can only enter the game and send some chat messages welcoming new entities in its view range.

Here is a small demo of the simulator in action:

// Removed

Thanks to masodikbela for his work on the simulator.

Minor changes

  • logout, quit and return to character are ready
  • Shiny new documentation (Closes #22)
  • Write buffer now prevents constant memory allocation (Merged !5)
  • Concurrency issues with writeBuffer are fixed (Merged !7)
  • Fixes convention and formatting issues (Merged !3 and closes #26)
  • The core now checks proto and animation before loading (Merged!9)
  • Fixes possible memory leak in cryptation (Merged !11)
  • Workaround for network 100ms sleep after cryptation (Merged !12)
  • Packet handling now has it's own thread (Closes #19)
  • Fixed concurrent accesses for different objects (Closes #24 and #23)

New contributors

Since the start of making QuantumCore public we got first contributions from the following persons:

Thanks for your contributions!