|
some quality updates on the way, stay tuned!
It's been some time since I've posted an update log here, mostly because all of my work is internal and uninteresting, but I'm going to detail the amalgamation of all of these updates here!
[*] Server infrastructure
- - All server-related infrastructure has been deployed with docker for some time now, offering extreme security benefits as well as flexibility in asset availability, redundancy, mitigation, and migration.
- - For those who don't know, that means each software / service runs in it's own isolated environment.
- - Most containers are cut off from the internet completely, as they don't need internet access.
- - Collection of additional ips and safeguards in place for redundancy / downtime (eventually, secondary dedicated server)
- - Cloudflare on all Zenyte-related domains/subs.
- - ASN blacklisting implemented with primary and secondary APIs for determining an IP's ASN. (some credit to Nouish/Erik for pointing me in the right direction )
- + Allows us to blacklist malicious ASNs used by server hosts and proxies that many people use to flood]
- + Adds whitelisted IPs (IPs that don't have blocked ASNs) into the database, so we don't run API checks on the IP again.
- + Adds blacklisted IPs (IPs that possess a blocked/malicious ASN) to the database so we don't check again.
- + All checked addresses are added to a main database so they will never be checked again.
- + This is not a method we will use for banning users, so I don't feel problematic providing this information expecting users to attempt and abuse some system.
- - The two APIs explained below.
[*] Discord bot and API
- - Two APIs are being developed right now, to be deployed in a master->slave relationship, where the master API will sit outside of the game container.
- - The game container will make requests to the master server to give it information regularly.
- - The master server can request information from the gameserver API or submit commands (for example, banning someone) to the server.
- - These are handled with strict authentication checks and cut off from the internet aswell.
- - These APIs will be used by all of our services to make seamless integration possible, including our discord bot that will have direct interaction with the game and the ability to pull data from our site
- - Whitelist (supports local and remote) and several forms of authentication
- - Databasing will eventually be handled by the master server only.
- - We have had a discord bot for some time, but it was directly integrated with the game. This allowed for easy access to game information, but required that a version of the game be running for it to be online.
- - Now, our discord bot is a standalone, coupled with the master API. It will allow us to keep the bot online at all times as well as have multi-world support for the bot, rather than just being locked to each gameserver or running multiple times.
- - Commands are still being implemented and we need your help deciding what to put into it, please join our discord here and feel free to contribute ideas to see them get included in our bot.
[*] Databasing
- - A full database system has been written that encompasses a lot of game <--> integration interactions. Currently this runs on a separate thread (soon thread pool) integrated into the game server, although it will likely be migrated to our master API.
- - System is OO and very dynamic.
- - Currently supports infinitely extendable failover databasing (secondary or tertiary database for redundancy)
- - Obviously uses connection pooling, try w/ resources used on every database-related interaction.
- - Queries are submitted to an queue'd executor which "prepares them" by submitting them to the thread pool.
- - Uses a basic algorithm to build strings for multi-row inserts rather than batch queries.
- - Allows for roughly 100,000 80-character chat logs to be stored in under 2 seconds.
- - Created additional forms of server-side SQL structures for use in queries like this.
- - Those structures (mostly logs) are put into lists, where they wait for roughly 1-5 mins (number not set in stone) before being submitted altogether. Realistically this will never take more than 100ms; keep in mind this is not on the game thread.
- - Finished the following database implementations:
- + Player count / worlds
- + Hiscores
- + Store
- + Vote
- + Chat, public chat, private chat, clan chat, command, trade, drop, and item pickup logs
- + Account creation / authentication (bcrypt2 w/ unique salts)
[*] Website
- - A lot of content has been finished on our website, including:
- + Homepage
- + Vote
- + Store
- + Players online / announcements
- + Access to all of that logging information, as well as additional administrator statistic tracking, including site traffic, vote amounts, and donation amounts.
- + Hiscores (still in progress finishing the design)
- - Two forms of asset caching are enabled to decrease page load.
- + Cloudflare caches many assets automatically
- + Webpages are compiled to static versions.
- - Forums and other assets are being migrated to separate subdomains to insure asset integrity and full isolation.
A partial version of the website without hiscores, store, vote, etc will be available for users to browse soon. Please be patient as we're still working on some parts of the design. Here's some teasers for the meantime.
Spoiler for Site content!:
Kris has just recently fixed his computer, and I am planning to move sometime this month, so it has added a bit of a delay to our work, nonetheless we plan on indefinitely doing our beta during November; the others should be posting update logs soon as well
Looks good fellas.
some exciting updates on the way, will most likely post a log about it this weekend or next week due to exams
Awesome!
keep it up guys
Hey guys, I bring you yet another update log, this time featuring a revision & RuneLite upgrade, Juan - Adam - Paul, Achievement diaries, Hunter base and of course some smaller content additions/bugfixes.
- Revision & RuneLite upgrade
For a awhile we were using a RuneLite client with the revision #170 while using a cache from later builds but we noticed that the cache became uncompatible due to new cs2 instructions and we didn't really want to cheaphax it by adding these instructions ourselves so we just decided to upgrade the revision & RuneLite client to #176 & RuneLite version 1.4.21. The RuneLite features can be found here.- Juan, Adam & Paul
The 3 ironman tutors have been added, giving you the option to downgrade let's say your Ultimate Ironman status to Regular Ironman or from Regular Ironman status to a regular player. The option to claim your armour that comes with the ironman mode has also been added allowing only one set of armour at the time on your account.- Achievement diaries
With Kris' new achievement diary system which is intended to be as close as possible to OSRS, I've decided to start implementing these diaries one by one on Zenyte (skipping ones that require special requirements). We now have rougly 225 completeable OSRS diaries while still missing the Morytania & Western Provinces diaries (these will be done by my next update log).- Hunter base
With every skill except Hunter being in the game we thought it was damn we finally add it to Zenyte. I started with something really basic; Laying/dismantling traps like bird snares/box traps. Right now it's just a matter of designing the foundation of the skill properly before everything else comes. We intend to add as much as possible to the skill, things like Puro-puro(implings), birdhouses, butterflies, special traps(deadfalls, pitfall & net traps) and of course the basic traps (bird snares/box traps).- Interface Editor
I've been working on an interface editor on and off allowing us to edit existing interfaces in the cache. So far we were only able to add new ones which is kind of restricting so I thought it's probably better if I make an editor. It's very basic right now, rendering still needs some more work to it.- Smaller content additions & bugfixes
- Grand Exchange history added.
- Gnome Stronghold slayer cave entrance added.
- Orbs toggling fixed.
- Some runecrafting object interactions like creating tiara with talisman & crafting combination runes fixed.
- Added missing sailing from Brimhaven -> Ardougne and vice versa.
- Disabled the welcome screen since it's not really used for anything right know. Logging into Zenyte will take you straight in-game now.
- Fixed the respawn timers for all the bosses so it's in sync with the RuneLite client timers.
- Ironman helmets now render properly on a dialogue.
- Added the Vorki pet.
- You can now make an ava's assembler.
- Added a bunch of shops in Varrock.
- Added marks of grace spawns to every available rooftop course.
- Added Grace where you can purchase amylase & graceful robes.
Spoiler for media:
nice updates any plans for group ironman on release or will you roll that out when OSRS adds it?
« Previous Thread | Next Thread » |
Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |
Tags for this Thread |