Lots of stuff happening this week with Trident, and a small troll that I don't find amusing (anymore).
First off, I'd like to announce that in my personal opinion, not any other of TridentSDK's 4 members, think that Trident is production-ready. This means that CPU/Memory usage are decently stabilized enough to be used on a regular server. I highly recommend using it to test plugins, as much of the API is fully implemented (events will have to wait, especially on entities). We still have a lot of Vanilla features to implement, I'll discuss that later on.
Second, this week, memory usage is massively improved. Before, you could stay on for about 5 minutes with 7 view distance. Now, you can fly at maximum speed for over 1.5K chunks (* 49pi if you want the real amount of chunks loaded) before running out of heap space. This is using 4GB of memory on the default, or "Throughput" GC. I strongly, strongly recommend using the CMS if your hardware supports it. If you do some research, you'll find it takes up slightly more CPU - don't worry! Trident uses under 5% CPU usage (during non stop-the-world pauses) with 1 player sprinting around. It is enabled with JVM flags -XX:+UseConcMarkSweepGC -XX:+UseParNewGC. Additionally, this will instantly cause you to handle 6x more chunks loaded (in my tests, it fluctuates around 4-6). This means an extra 10K chunks for you just to play around with.
Third, some new additions.
- Added Services API
- Transactions (tracking of transactions, such as economy and trade)
- Chat formatter, modified prefix, suffix, prompt, and player name
- Permissions (WIP)
- Added Injection API
- Mythbusterma is against this, don't depend on it being there
- Refactor Player "...speed()" methods
- Chunk unloading
- Better memory reclaimation
- Reduced chunk memory footprint
- Benchmarked ConcurrentTaskExecutor
- Start concurrent world management
- Create a world if it doesn't exist
- World saving
This is not all, basically, just the ones that come to mind as important. You can see the full changes at our GitHub, there's a link to it in the navbar.
Fourth, we still have a TODO list! A high one for me is implementing Permissions, as the other services are already done. Other TODOs for me include concurrent simplex noise, and more memory optimizations (the average job as a concurrency developer).
Here are stuff we want to do:
- Water flow
- Send block placement
- Fix player list
- Fix player count
- Fix skins
- Work on metadata (Mazen)
- Fix world block manipulation
Basically, that's a pretty decent TODO list for a snapshot release.
Finally, the troll. Our GitHub repository for Trident has an excess of 5K watchers in a single day. Yes, I have read, as well as every other member of the team, the story of that guy who got 5K followers (or something). Of course, we already know about this. We didn't do it. We are not responsible nor associated with the person who did this. That said, we hope GitHub will apprehend the culprit appropriately.
That's pretty much it for this month so far. Stay tuned, and be sure to sprea the word. Trident. Is. Coming.
xTrollxDudex, Developer of Concurrency/Testing