Blog

Faster server browser released

Build 420 is on its way out now, with it is a complete overhaul to the server browser and the way servers register themselves with the central list.  The server browser looks identical, though in the next release or two it will change in appearance and gain significantly more filtering functionality.  These now make use of the King Arthur’s Gold central API, which will be getting a post of its own soon as it becomes more complete and is ready for use by community developers. 

For starters, the minimap of any server can be found by going to https ://api.kag2d.com/server/ip/{IPADDRESS}/port/{PORT}/minimap such as https://api.kag2d.com/server/ip/67.23.118.185/port/50314/minimap .  The status of a server can be viewed in machine-readable JSON format at a similar URL, such as https://api.kag2d.com/server/ip/67.23.118.185/port/50314/status (note that the exact keys present are still subject to change, consider this a preview).  The server list can also be fetched in a machine-readable JSON format at https://api.kag2d.com/servers/current/1/connectable/1 (and append /build/420 to only see servers in build 420.  The next post on the API will explain all of the other filters available)

Here is a full changelog for this otherwise small release:

– server browser now uses API and threaded calls

– more colors in server preview minimap in server browser

– many server browser bugs fixed

– made arrows not damage at minimum velocity under water

– made arrows skip higher

– dirt no longer created for infinite support

– fixed dropping mats working always -> allowing inf mats on startup

Here’s what some servers look like currently:

[FR] Nemesis Clan WOOD-WATER Unlimited Lives

[IMG]

U13 USEast 32 slot FullCTF Gold:

[IMG]

Discussion on the forums here

[youtube http://www.youtube.com/watch?v=avaSdC0QOUM?feature=oembed&w=500&h=281]

Coming next major release in KAG

Scripting in the works! Also, gigantic changes to Building and Fire, and Server Browser improvements.

We’re working on getting scripting happening per-component for all entities!

This means that complex behaviours can be programmed per-entity, rather than relying on hardcoded components to do it for you. This is good for us as it means we can iterate far more quickly on things like siege engines and such, but also good for modders as it means they can code their own animation logic and AI for NPCs, and make special items ingame. Next build is gonna be excellent.

Just a heads up to modders: Unfortunately, this means breaking compatibility with all existing config files – not invalidating them entirely, but they’ll require conversion. Conversion is as simple as adding “$script =” to the top of all of the component sections, but it needs to be done by hand to avoid mangling your configs. Once the release is out, have a look at the default configs to see how it’s done.

We’re changing the way building works at the level of the tilemap – all constructed blocks will be separate entities, and all dirt etc will remain on the tilemap. This means that blocks can be properly layered on top of each other, and that the support code can be optimised a fair bit as it wont need to flood through the entire map. This will also solve issues with (for example) bits of the map collapsing when they shouldn’t. Because blocks will have their own HP, this opens up the way for per-block resistances to different attacks, so knights will be able to grind down a stone block over time (read: 100 hits or so).

The cooler part of the constructed block changes is that we’ll be able to have multi-tile blocks to construct, like 2×1 column blocks that will break as one piece. This should give more variation to buildings, and allow some more complicated blocks to make their way into the game (such as traps, elevators and so on).

Fire has also started being drafted up in code, and while it’s early days, I’ve been having excellent fun burning down wooden towers with it.

Tom and Ryan are working on the server browser, which is now lightning fast, fully threaded and about 80% easier to work with.

We expect the conversion of map stuff to take a little longer, and there aren’t screenshots to show yet, but there will likely be some dev videos as we make progress. Figured you guys would like an update on what’s getting worked on other than continued balancing tweaks.

Discuss here.

Geti

Build 415 hotfixes

I’ve been recording some awesome time-lapse videos today (like this one) and in the meantime doing a bunch of critical fixes for the “Water & Wood” release. Here’s the list of today’s patches, I hope you don’t mind the frequent autoupdates:

– camera doesn’t shake for spectator

– zombies difficulty tweaks (generally more difficult when days go by)

– fixed waves showing when no water present

– fixed holding [V] to fly with knight

– added difficulty(int) function for zombies

– if difficulty over 999 zombies spawn in day too

– spectator has zoomed out view by default

– mouse middle button in specator mode zooms in

– FullCTF turns on gold by default

– mats spawn even without tent

– suddendeath water comes down

– increased trees in all mapo gens

– fixed “cant” messages being shown not for player

– added more debug info for client MAP crash

– fixed workshops giving infinite items on tap [E]

MM

Wood & Water Build Released!

Wood and water, direct to the faces of full version players everywhere!

Check out your gamemode configs, there’s quite a bit more to play with there. Changelog should have details.

You can now hide the HUD by “scrolling out” at x2 zoom level, it will not auto-hide as your mouse approaches the edge.

Check out the FullCTF gamemode files included, which have no siege (to prevent camping while we work on new and more balanced siege items), lake maps, no “build time”, a stack of mats for each team on game-start, armouries and archery ranges, fast travel tunnels (which are now team-bound – don’t let the enemy get to your tunnels!) and wood blocks enabled by default.

Server owners – if you want to run FullCTF set sv_gold_only = 1 in dedicated_autoconfig.gm and replace dedicated_autostart.gm with this.

We’ve already talked about everything in this update, so I wont mince words. Have at it!

Changelog:

– new games rules FullCTF

– added generator_ctf_lake.cfg, generator_ctf_twolakes.cfg

– added water (gold servers only – sv_gold_only 1 in config)

– added Aim Mode (zoom out button [MOUSE SCROLL])

– moved HUD hearts to above players head

– materials actually spawn at tent on game start

– added temporary workshop build item spam prevention

– increased min_shieldbash_horiz_vel slightly

– fixed pink pixels on collapsing wood from world.png

– reduced vertical speed limit when slashing to prevent getting stunned because of it.

– made it so that shield-bashing counts as your kill

– shieldbash tweaks from testing

– fixed bridge castle back support bug

– added wood_warmup, stone_warmup, gold_warmup, arrows_warmup, bombs_warmup to team – sets materials at tent on start

– added weapon_clash variable to gamemode.cfg

– synced egg health over net

– getting out of catapult boosts fixed

– fixed cata not destroying wood

– fixed spikes hanging after collapse on client

– removed mat pickup sound if smaller than 10

– shield bash sound plays only at higher velocity than bash

– stomp stun doesn’t happen for team mates

– throwing objects more smooth on network

– added decay to materials, after 30 seconds

– added static material count to CTF

– if workshop has bomb to build and upgrade – tapping [E] will make bomb

– removed cata from FullCTF to prevent base camping while there aren’t boats

– added stone_amount and related vars to team configs for on-start mats

– materials.png tweak for bombs

– added generator_ctf_twolakes.cfg

– arrows skip on water

– fixed materials dropping during break

– fixed picking up invisible other team heart

– fixed splash when throwing out something picked up from water

– fixed some server-side commands possible to launch on client

– edited help texts in workshops

– increased arrow draw time and made sound reflect it

– added show/hide hud tutorial text

Discussion (and full changelog in the first post)

Buy the Full Version of KAG

Deadline Announcement + Water and Wood almost here!

This has been a hell of a week!

The server’s went down (twice, but in quick succession), and a compilation bug halted testing for 5 DAYS. Ryan (FliesLikeABrick) has had his work cut out for him there – He’ll be posting soon about supporting very old versions of linux.

Despite all of that, the last few days have been productive.

First of all, some hard news that’s come up in the last few weeks:

We’re on an external deadline for getting the game complete, and the date falls fairly soon (actual disclosure of the date isn’t legally possible at this point). As such, we’ve done some feature pruning and are knuckling down to get the game finished, to a point where we can stop developing it and just maintain, fix bugs where needed.

What this means for us:

  • We’ve got to clean up the buy page’s “future features” list to reflect the changes in plans that we’ve made over the past few weeks. This is one of those times where we have to do what we wrote in the disclaimer and try to make the game perfect as it stands rather than incorporating features that are too time-costly or different from what we already have.
  • We’ve got to work quickly on getting features actually complete rather than drafted or planned.
  • We need to improve the modding and level creation side of things to help players build worlds to adventure in and fight over.

What this means for you:

  • No super-complex months to complete features like Overworld. As grand a plan as that might be, it’s simply not going to happen this time around.
  • KAG gets completed sooner, in terms of everything on the premium poster.
  • Better, more focused modding tools.

I’ve written quite a lot in this thread, so if you’re interested in the finer details and our personal reasons, have a read. The whole thread is do-able in 30 minutes or so.

I’ll summarise the important part though: Our TODO as it currently stands is this – Making sure at least everything on the premium poster is covered.

  • Customisation – may or may not involve custom/user defined heads, will definitely include more built in heads + skin colour customisation.
  • More and more useful Siege weapons, some form of ride-able vehicles. (Almost all of these are sprited but not coded).
  • Fire + Water (Got water ~80% done, and wood blocks -> a fair bit of fire done)
  • Zombies (done, at least for now)
  • Game modes + Custom Game-modes (requires scripting work, but that’s ok as we want to do that for some of the other areas of development to help speed up our internal work and give more options to modders)
  • Items + Item management (This one is gonna require a fair bit of re-work, but shouldn’t be that much work if we’re smart about how we approach it)

We understand that some people will be disappointed, but that’s the reality of any creative work. Please know that we’re not doing this out of lack of passion, far from it. We just need to get the game finished and don’t have the time for grand schemes any more.

——————————————————————————————————

On to something more cheery: Water and Wood blocks are almost releasable, Should be out early next week or perhaps this weekend if testing goes 100% according to plan (…it never does).

This should help spice up the full version a little. Apologies for the large shot, blame BlueLuigi and his massive HD KAG.

Water: You can swim, drown, skim arrows (and knights), and build bridges over it. Some form of water transport will be coming soon. The water level is saved into the .kag format, which we’re working on making a lot more palatable to server owners. It only works on full version servers.

Wood buildings: These offer a cheaper, weaker alternative to stone blocks, and can be upgraded to stone later on. It’s advised to make your non-vital indoor floors out of wood, and keep anything facing the enemy made out of stone. We’re not adding Wood to the free game because we believe a balance has already been struck there – but in the full game, especially on water maps in bridge-building, wood is an invaluable resource. As such, trees now give a lot more wood per hit.

Shield-bashing: it’s not nearly as crazy as it used to be, but it certainly helps that you can shove people out of doorways with it and it helps make knight combat less about slashing. The variables for it are currently in gamemode.cfg, and will be moving to per-class configs soon.

HUD Changes: Hearts are now above your head on hover, as well as immediately after you get hurt. We know this will seem like a shock at first, but it helps clear the screen of clutter. We’ll be adding a topbar with vital stats etc as an option for those that want it, but we’re moving towards a much cleaner interface (compare order pie menus with the order-lasso). Consider it a Work-In-Progress.

Gathering materials has also changed – you can now carry one stack of materials beyond what fits into your inventory, and furthermore, material stacks now have a sprite indicative of how many materials they contain. We’ve considered making them persist indefinitely on the map, but ultimately this opens the possibility for a lot of lag and server burden. We’ll implement stockpiles soon to allow you to store materials and other items in a more friendly way.

The graphics of the map are a little different as well, which should help with visually understanding the terrain immediately. There’s a bit more work to do there, but its presentable enough. Graphical mods of the map will need re-arranging because of this.

Some modding vars: Note that these aren’t 100% final, so back up your configs and if you tinker, as always, be ready to re-do your work at a later date.

What you can build and how much it costs is now in a class config, check out the CTF builder files.

Full version server owners are urged to try out generator_ctf_lake.cfg as a map once the release is out, potentially with only 30s of build time – the lake coupled with the support requirement means builders need to dive and build pillars for a bridge across, which makes builders a necessary frontline unit and completely rules out early rushing. Personally, I’ve really enjoyed the testing games we’ve had there. We’ve got to work on some counters to turtling over the next week but I’m sure server owners will have a party with the variables in the meantime.

Discussion thread here for all your forum chitchat needs.

The KAG Team

Easy KAG server renting

Do you want your own KAG dedicated server? Jrgp our webmaster, the man behind kag2d.com has made a new dedicated service for renting King Arthurs’s Gold servers.

KAG Servers is the easiest place to rent the King Arthur’s Gold servers. It has free FTP access and instant deployment. It’s as simple as choosing the number of slots, paying via paypal, and your server will be started within seconds!

Located in Florida, USA

.60/slot for public,
.50/slot for private (USD)

So if you want to have your very own KAG server, host the game with possibly your own game mode, rules and maps, head on to: http://kag2dservers.com/ now.

A brief discussion about IPv6

Firstly, King Arthur’s Gold will be participating in the World IPv6 Launch on June 6th, in that we have every site/server for King Arthur’s Gold IPv6-enabled.

WORLD IPV6 LAUNCH is 6 June 2012  The Future is Forever

The World IPv6 Launch is a joint effort by content providers, Internet Service Providers, and hardware vendors to make appreciable progress in deploying IPv6.  It is a follow-up of sorts to last year’s World IPv6 Day, where many content providers ran tests with the public for 24 hours to see if there were any unforeseen problems and to gauge the impact of advertising IPv6 availability on their sites.  As was hoped, it was a non-event, as was Facebook recently enabling IPv6 on their site permanently.

I urge you all to call your ISPs and e-mail your favorite sites’ support asking what their plans are to support IPv6.  IPv4 exhaustion is continuing to push forward the deployment of NAT at large scales, which will come at a cost to gamers and other applications which frequently rely on port forwarding.  As the quality of IPv4 connectivity degrades over time, IPv6 will increasingly prevail as the higher quality means for two endpoints to talk to each other.

Beyond that, I have been working carefully to make the new server registration/list components of the KAG API compatible with IPv4 and IPv6, and respecting server owners’ preferences for whether IPv6 is preferred by clients (assuming the client and server both have IPv6 connectivity).  The game netcode itself does not support IPv6 yet because the underlying library we use does not support it, however a medium-to-long term goal of mine is to extend it to support IPv6 or replace our netcode with something else.  Here is a basic overview of the logic that is being built in currently:

  1. The server owner enters into their configuration whether IPv6 should be enabled (default on), whether IPv6 or IPv4 should be preferred by clients (default to ‘whichever performs better, or IPv6 if they’re pretty much the same’), and what IPv6 address to bind to (defaults to auto-selecting one)
  2. The server registers with the API.  If the preference configuration is 0 (select the better performing protocol or IPv6 if they’re the close) or 6 (prefer IPv6 absolutely), the server registers with IPv6 as its main identifying address in the server list.  If the server is IPv4 only or the preference is set to 4, the server registers with its IPv4 address as its identifier
  3. Some other steps go on to allow the server to list its other address, if it has one, so that it is confirmed as owned by the server and allowed to be used to identify the server
  4. When a client requests the server list, it is filtered by all criteria the client supplies (documentation will be available on the wiki soon, describing how the server list/filter API works).  The client will receive the full list of servers matching the filter criteria including their IPv4 and IPv6 addresses.  The client will ping servers over both IPv4 and IPv6 to gauge performance, assuming it has IPv4 and IPv6 access.  IPv4-only servers will not be displayed to IPv6-only clients, and vice-versa.
  5. The client will have a configuration setting for its own preference for IPv4 or IPv6, however I have not figured out exactly how this will work in cooperation with the server preference.  Possibly the server preference being 0 will mean “defer to the client’s setting”, and the client will default to using whichever performs better (or IPv6 if latency is within X%). 

Other notes –

  • The new server registration API will eventually refuse to list servers that it cannot connect to.  This will prevent servers behind a firewall (without port forwarding) from being listed in the master server list
  • You can view my own personal post from a couple years ago here.  This has the general logic that the above workflow/design is based on.
  • I have no idea when we’ll get around to adding IPv6 support to the actual game code unfortunately.  It is something I would like to do, however I have not investigated enough to understand what the scope of the project would be and what our options are for implementing IPv6 least painfully.

If you have any questions about IPv4 exhaustion, IPv6 deployment, or how KAG/gaming will likely deal with these in the future, take a look at the following links and head to this forum thread:

-FliesLikeABrick

Re: Modding

Gotta say guys, we don’t have time to answer all the PMs we’re getting about how to tweak such and such variable or how to figure out a certain aspect of modding – please ask on IRC and try to figure it out yourself, because you’re more likely to get an answer that way.

I’m getting 12+ PMs a day on the forums about bugs, water and modding vars, where the information is either freely available, available by consulting other members of the community, or should become pretty clear upon inspection. Answering these is unmaintainable and wastes a lot of development time.

As such, please ask on the forums or IRC about modding, and search bugs.kag2d.com for bugs. Report bugs at the latter address as well, for those that don’t know – be sure to include as much useful information as you can. We simply don’t have time to make a game, answer queries in specific threadsandhelp you out with modding your zombies. If you can’t figure it out, someone else will be able to help you.

For bonus points, if you figure something new out, put it on the wiki so that it becomes public knowledge.

Geti

This week’s cool stuff

Things that we’ve been working on this week:

  • Water (with simple tide/waves)
    This is quite a bit of fun – it still needs some tweaking to suit gameplay properly but making a diving board and fighting underwater are enjoyable.
  • Wooden blocks (weaker, but only cost wood)
    These can be used for rapidly fortifying areas (make full use of those mats) and to construct less vital parts of towers.
    It might become necessary to build these before building stone blocks, but we’ll see about that down the line. For now, wooden towers!

    (With the two above additions, its only a matter of time before we introduce fire…)

  • Shield bashing is back in the game, with variables now bound to config vars in gamemode. We’re still working on dealing with lag as there’s a fair bit of warping with latency, but it prevents the slash2win strategy that’s applied in knight combat this build. We had a lot of fun bouncing Rayne down hills to get it more balanced, but it’s possible to re-create old giant shieldbashes and to make shield bashing happen just from walking into someone and so on.

There have been a few fixes (/loadmap now works for configs, and /savemap doesn’t append .kag no matter what, a few technical things) and Ryan/FLAB is making good headway with some more API stuff that will reduce server load quite a bit during peak times, but most importantly we’re working on block colliders that can move around, carry players and crush them against walls.

Its early days yet, but this should lead to config defined building blocks, and building blocks larger than one tile. It’s also already lead to Michal testing a rudimentary smasher, which was a smashing success. You can have a look at the video here as I cant figure out how to embed into this post, heh.

Forum Thread Here

Geti

Social Media

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