Prologue

My sincere apologies to those who have heard this all before.

Intro

Hi! I’m Yahwho and Medieval Realms is my hobby. Some might say that I am a bit of a geek. I love computers and I love history, particularly the middle ages. I also love learning new technologies and I love problem solving. I first taught myself to program around the age of 15 by reverse engineering HTML and JavaScript, and since then I have been hooked on code.

Past

Medieval Realms start because I found this little game called Rising World. A game where I could build a fortress! I joined a public multiplayer server, and a week later the server, along with my castle were gone. So, I started a server and I named it Medieval Realms. The concept being a persistent world where players could build in a medieval environment without the fear of losing their creations.

At first it was just me, and then slowly other players started to join [shout out to Old Badger!]. Naturally, people wanted their own builds to be protected. But up to this point there was only a single land protection plugin available called World Protection [originally written by KingGenius].

Now, as I said before, I like programming, I did not start a server to be an admin. Quite frankly, it is not what I would call fun. So, I decided to create the very first Player Controlled Land Claim System. The acronym PCLCS did not sound very medieval so I decided to call it AXES. Accolades eXtended Ensconce System. AXES (which I am proud to say) included the very first ever currency system in Rising World, crowns. Long before iConomy came along. Which may I add is a great publicly available economy system – if you want currency on your own server?

In a nutshell, MR was born out of laziness.

The first plugin was badly written and conceptually kind of looked like this, a ridiculously huge single class file.

Present

Currently Medieval Realms hosts a whole bunch of unique features slowly added to the server over the years. They include, and I think I have them all listed here?

  • Player Controlled Land Claim System (AXES) (Claim land using P key, view with V key, Clear from view with C key and sell land with B key)
  • Inventory Gemstones that you can find whilst mining
  • Inventory Coins that you can earn from killing bandits and skeletons
  • Additional subtle sound effects
  • Server controlled shops
  • Player controlled shops
  • In-game Player Statistics
  • Player selectable Avatars
  • Animal Breeding
  • A tabbed custom GUI (the Realms menu accessible via R key)
  • A custom HUD (including land status, balance, and elevation/depth gauge)
  • XP and ranking system
  • Leaderboard System (Legendary Champions, Tournament Leaders, Land Owners, Rich List, and XP Leaders).
  • An “AI” Bot. How intelligent he is is up for debate (but don’t tell him I said that!)
  • Profanity Filter
  • Online Player Statistics
  • Fast Travel, with player defined travel points
  • Community Camera (accessible via F9) that uploads screenshots directly to medievalrealms.co.uk Player Gallery
  • And more recently, Craftable and usable potions!

The current incarnation of the MR plugin conceptually looks a little better than the first. Where instead of one single, heaven almightily huge class file we now have multiple specialised class files within one larger MR package.

Future

As you probably already know, Rising World is moving over to the Unity game engine. This is a great opportunity for me to rewrite Medieval Realms from scratch. Writing it from scratch means that everything will have to be redesigned and rewritten. I am using MR 0, and MR 1 as a learning curve to get to MR 2. The plugins feature as listed above will all eventually make a reappearance, but not all at first. I am not just copying my old code. I am learning from it. A good MR friend of mine Solveign once said (now I am paraphrasing so please excuse me!) “you look back at your old code and think, god, did I really write that, that way? That’s awful”. And yes MR 0 is awful. But it worked!

The plugin conceptually is now looking like this. I think we can all agree. That is much better.

Currently, over the last few months or so I have been redesigning and rewiring the backbone of MR; that is to say: AXES. Or more precisely AXES 2.0. Which now includes a backend system with management features and a performance monitor. I said I was a bit geeky, didn’t I?

Now up till now I have not had anything really to show you. In fact, arguably I still do not. However, on the 23rd of January I did hit my first milestone. A working (if not yet fully feature rich) version of AXES 2.0 which I was then able to undertake a first stress test on.

Showing you stress test results seemed a little dull. So, I had some fun and gained a little video editing XP along the way and created this short ditty video.

To explain a little what you are about to see. Medieval Realms relies heavily on a database to work. So, I have written my own caching system. Like you do. This is the first stress test to see how the new system copes when players who try to abuse it. You know, like keyboard bashing commands and random unexpected behaviours all at the same time. That’s kind of thing.

AXES 2.0 on the first stress test managed to limit database queries down to 5.33 per second per user. Now, MySQL can handle over 25,000 queries per second. That means that the server would need (going on this, the first stress test) 4,690 users to be simultaneously bashing random input before the DBMS became overwhelmed with queries.

Thanks for reading!

Yours beavering away (because we know beavers are the best animal),

Yahwho