Blog

KAG Network Outage

There is a partial outage with the network provider that delivers connectivity to the datacenter where the KAG servers are.  This started within the past hour, you may see intermittent connectivity problems as the matter is resolved.  I will post back with any updates or when we have the ‘all clear’ from our ISP.

FliesLikeABrick

Unconnectable servers no longer displayed in the server browser

Hello all,

The server browser will now no longer list servers which time out upon being joined.  The API will test that a server is connectable before listing it as joinable.  Servers which are not connectable are still listed in the server database, however they are flagged as such and are not sent to the client (the server browser in the client requests only servers which are connectable).  For example:

https://api.kag2d.com/servers/connectable/1/current/1 only lists servers which are active and connectable

https://api.kag2d.com/servers/connectable/0/current/1 only lists servers which are active and not connectable (currently none listed)

The server console currently will not show an error when this happens, however I will work on adding that in an upcoming build

Also while deploying this I cleaned out the server database and minimaps to do some other testing.  Any server owners whose servers are currently missing minimaps in the browser just need to join the server for a minute or restart the server (either one will work).  In general I won’t do this in the future, but I wanted to do it now to test out some new code paths introduced in the API update.

Another thing that will be broken are peoples ‘last played’ – those will not show any recorded action/”last played” until the player is active again.

FliesLikeABrick

So, I’m rewriting how blocks work, so they can be loaded from scripts and carried as actual objects. It’s going really well as you can see 😀

MM

Seclevs, Blocks and Physics Headaches

This week, things have happened!

Tom has been working on Security Level code, which will allow server owners to build their own tiers of moderators, with a very fine level of control over exactly what each level of user can do. Join in the discussion here

Ryan has moved house, driven for many, many hours and almost yelled at his cats. He’s got some more API security work to do but naturally has had more limited time than usual to work on KAG. Hopefully moving the rest of his stuff goes smoothly.

I’m over in NZ with my family for a few weeks, which means I’ll have even worse ping than usual if I see you ingame. I’ve been accused of being a hacker ingame already, please look for the purple name and hair before you start pointing fingers 😉

In actual development news:

Michal and I have been working primarily on physics rewrites for this and last week, and it’s been exhausting, especially for Michal, who has had to bear the brunt of the programming work, especially recently.

The majority of the kinks have been hammered out though, and now things like this are possible:

Note the lack of lighting on the constructed blocks – that’s still work in progress.

They’re also not settling to the grid yet because the support mechanic isn’t 100% finalised – we’re pretty set in the implementation though, and it should be done this weekend.

Most of the block behaviours will be defined in common scripts that can be used as examples, and to quickly add functionality to modded blocks and the like.

Behind the scenes of the above image is the new (also work in progress) inventory system. Here’s a sneak peek:

(Apologies for the strange pixel warping, shot taken on a years-old laptop)

We’re going to have to play with how this affects game balance because a builder with a full inventory is holding a fairly gigantic number of blocks.

We’re likely going to split off classic at the point of this next release so that it doesn’t get any of the changes to the underlying structure, as they affect movement and game balance a lot – we’d like to be able to move forward drastically without destroying what we’ve already got, so classic will stay preserved as a separate game (kind of like what Mojang were doing with minecraft a few years ago with classic/creative, survival and survival multiplayer, not sure what the deal there is now).

The movement behind the game is now more physically designed, which means that you keep your momentum in the air and that there is no kind of velocity cap. This is very important for things like jumping on trampolines.

We’re excited for what ramps, trampolines, building momentum and so on will do for race/jump maps – I’ll be looking into coding an actual race gamemode so that a competitive gamemode that doesn’t necessarily involve killing each other can exist.

We’ll keep you posted with more developments as they happen, no date for you guys yet though I’m afraid 🙂

Discussion for this devlog post is HERE.

Max/Geti

Maintenance complete

The planned database maintenance is complete – the extra time, planning and optimizations led to it only taking 5 minutes to execute.

There will likely be more maintenances like this over the next few months as KAG’s infrastructure is improved and expanded to support future growth.

-FliesLikeABrick

Database Maintenance is starting

The database maintenance I wrote about last week will be beginning shortly (behind schedule).  Please re-read the details of that post and spread the word 🙂

I will post back here when the maintenance is complete.

FliesLikeABrick

Progress, setbacks, boats and ropes.

This week has been long.

Well, long for me as I had my final exam as well as a lot of work to do. Very glad to have that out of the way.

Tom and Ryan have made fantastic work on a new, more secure, less annoying installer that can be easily rebuilt each build so that no patching is needed after an install.

Ryan has worked on more API code and a lot of in-game sanity checking (more stability, less console output spam, less data loss…) as well as proper quick join functionality and the client/server understanding what maintenance mode means.

Michal and I have worked a lot on the scripting side of stuff. We want to get this as stable as possible before releasing it to you guys so we’re holding it while we make sure the design is solid and re-implement a lot of the existing content as purely scripted content – this makes it easier for us to track down bugs and makes sure that you guys have some solid examples to work off while the documentation for the scripting API is lacking.

We’re also discussing whether a physics reimplementation is a good idea at this point – currently the objects themselves don’t have mass or drag, just velocity caps and radii – which can lead to a lot of weird stuff and makes configuring new objects and emergent behaviours hard. Its a lot of re-work though which eats into other development time.

Michal got a quick video together of him testing rope attachments out. It’s going to be interesting seeing how rope physics sync over the network, but you can also already do excellent things like swing from ropes attached to pulleys above, and (with some quick modding) water ski as a knight shielding down behind a speed-boat! This is a really exciting time, as it’s going to open up all sorts of possibilities – both for modding and for the vanilla game.

Watch it here: can’t embed, sorry http://www.youtube.com/watch?v=v-AbLEnN1lo

There’s been some talk of these new “menus” and how some people are unhappy about them – we personally think that the pie menus are incredibly obtrusive and break up gameplay a lot, and hate the disconnect between picking something up when there’s only one thing and picking something up when there are many things. This new icon-based interaction system means you’re never pulled out of the action when trying to grab something quickly, or quickly buy bombs.

We know that it’ll be met by some opposition, but as it allows for custom, scripted interaction points on a per-object basis, we don’t think you’ll mind too much 🙂

Discuss here!

Max/Geti

Hotfix on 428

This is a small hotfix build which does the following:

– Adds client/server understanding of a ‘maintenance mode’ for the KAG API

– general error message improvement around certain API calls

– Fixes #606

– join-related API calls in the client and server now use persistent connections; server joins should be noticeably faster

A reminder – please read the previous post regarding Monday’s planned downtime to everything.

-FliesLikeABrick

edit: one more patch being pushed out that does the following:

– fixes a regression from the #606 fix above, this will be addressed more next week

– Server browser favorites now work again

– Quickjoin has been completely revamped.  this post explains the logic in the new one.  I know I’ll be using the quickjoin all the time now, it prefers favorite servers but has decent logic for selecting others as well.

– Fixed (workaround) sv_goldonly spam in server console in non-gold servers as well as the issue with wood blocks showing up for builders in non-gold servers.  A better fix for this will come next week (requires a netcode change so it will come with a build number change)

Important: Planned maintenance 09:00 UTC Monday, June 25th

Hello all,

The aborted maintenance from earlier this week has been rescheduled for Monday, June 25th at 09:00 UTC and should be expected to take up to 3 hours.  During this period, the following systems will be down:

  • The King Arthur’s Gold API including client logins, server listing, server joins, minimaps and other server/player status information.  During this time the API will respond 503 Temporarily Unavailable; calls will not hang or time out so all systems should fail gracefully.
  • The King Arthur’s Gold homepage including registration and account access
  • The King Arthur’s Gold forums will be taken offline
  • The King Arthur’s Gold bugtracker
  • The King Arthur’s Gold wiki may be available but slow to respond

This maintenance is primarily to update indexes on a few key tables in our database to aid in future growth without performance concerns.

If you participate in any community sites, please spread awareness of this planned downtime to help reduce impact.

Please direct any questions, comments or concerns to this forum thread.

-FliesLikeABrick

Map/Server Ingenuity by OnR

The guys at OnR have done something very interesting with a map in their server, [FR] OnR Server – 24 Slots (click to join, gold only), that really tests how well you understand the details of how movement and jumping work in King Arthur’s Gold.

You can see from the minimap above that this is not your typical gold server – but rather a maze which relies on very precise and calculated moves to get through all of the obstacles.  I saw this while scrolling through the server browser and decided to join, and before long 3 of the 4 devs were on there grunting and groaning and trying to get through it all (Geti surely would have joined us but he just went to sleep).

Kudos to the person who took the time to design this map, and we look forward to seeing more of this as we release features over the next month which further enable custom game modes and server configurations/modifications.  

(Side note: the new server browser properly deals with custom game modes – so if you have a modification on an existing one, by all means change the game mode in gamemode.cfg and it will show up as a new filterable game mode in the game mode filter list)

If server side scripting goes as planned, it will enable community developers/server admins to take an idea like this and turn it into a thorough game mode – things like having a timer/race aspect (perhaps with the water slowly rising to penalize those who fall behind), writing to custom log files or a custom API to generate logs/statistics, custom endgame scenarios without having to manipulate flag captures, and so on.

Discuss your dreams about the endless possibilities of server modification/scripting at the forums

edit: It sounds like BlueLuigi, MOLE and possibly others have done something similar in the past – so consider this a hat tip to them as well 🙂

Social Media

Stay up-to-date with our latest news - make sure to follow us on Social Media!