Uncategorized

Scripting Progress and Massive Rewrites.

That basically sums up the past few weeks. We’ve started moving literally all of the old content to scripted entities, which has required us to be pragmatic and basically wipe all the old hardcoded things. Every time we’ve come across something that needs to be done better, we’ve rewritten it. This has lead to many, many positive changes and a hell of a lot of work.

First of all, attacking is now fully directional, scripted, and a little less buggy (though I’m sure lag will help keep everyone angry about it). This means that your knights can now chop upwards, downwards and to the side, as well as slash in an arc.

Second of all, all classes have been moved to scripts. This makes it significantly easier to tweak how they work (both for us and for modders) but has also taken a lot of work, since the old “runner” code basically made KAG happen – all of the building code, emoticon code, hud code, attacking code (and so on) was in there. That was very rigid, but fairly simple to work with for us.

All the basic classes are drafted and “semi-working”, though there’s a little more to be done before we can even begin larger-scale testing, but they’re all working with team colours, animations, and layers.
classespreview.png
Here they are decked out in drab grey, all ready for painting. Note the archer’s arm accurately reflecting its aim angle.

Sprite layers also let us piece together slightly more complicated sprites from various pieces, for example, the catapult’s arm and wheels can be separate layers, like so:
temp.png
Workshops are also naturally fully scripted. The bank allows you to take out a loan if you’re low on coins, or deposit money for safekeeping.

Tom is now working on documentation for the scripting API, and Ryan has bought several new machines for our infrastructure to future proof against traffic spikes and help balance the load.

More previews coming as we build more content 🙂

Discuss these developments on the forums here!

Max/Geti

What it’s like to play a game as a Developer.

Unfortunately 😉

If you see us ingame, say hi, don’t spitroast us with questions.

(Source)

Blog post with actual news soon, just have to collate screenshots and changes (and fix a bug with sprite layers on actors…)

Max/Geti

New Installers/Packages

New installers/packages for Mac/Windows/Linux are now present on the download page.  We have been wanting to update them for a while, but technically nothing was broken and we had higher priority matters to worry about.  The main reason for updating these is to reduce the number of updates that new players need endure as well as changing one or two default config values.

If you have any problems with the installers, please PM me on the forums or e-mail support (support at thd dot vg).

Unrelated, there may be one or two more hotfixes out throughout the day today.  You can find details on those in the 469 release thread on the forums.

-FliesLikeABrick

Build 469: Hotfix

Just to let you know I’ve just pushed a hotfix for a couple of issues that sprung up after release of 469:

– Fixed guards not having access to the admin menu

– Fixed everyone joining blue team by default when first connecting to the server

Shadlington

Build 469

Build 469 is out and is mostly made up of an assortment of seclev additions + several miscellaneous changes.

Notable things you might like include the ability to assign seclevs through the admin menu, the ability to restrict what classes/teams people can play with using seclevs and the ability to custom-define what levels of zoom are available to everyone (or even define this by class).

Changelog:

  • Mostly fixed so that you can add extra classes without them defaulting to builder. Requires that you add an extra field to class config files called ‘tool’ that has the value ‘Knight’, ‘Archer’ or ‘Builder’. Name can be whatever you like now. Please try this out and report bugs with it (and any workarounds you find) because it hasn’t been tested very extensively.
  • Made guard color overrided by admin_color in all cases (previously wasn’t on player mouseover)
  • Strip out multiple consecutive white space characters in chat, replace with one space
  • /login and /logout restricted to serverside only
  • Removed editor zoom help text as it is no longer available
  • Class restrictions (feature = no_class_[classname] where [classname] is the name of the class)
  • Team restrictions (feature = no_team_[teamname] where [teamname] is the name of the team)
  • Admin menu re-org (Admin>Team>Player>Moderator Action) + hide actions based on seclev immunity
  • Spectator team in admin menu
  • Spectator chat grey
  • Added autoconfig option to allow the seclev feature join_full to work, sv_enable_joinfull
  • Reserved slots, set with sv_reservedslots (feature to use in seclevs: join_reserved)
  • Spectator slots, set with sv_spectatorslots (if set to 0, spectators just use regular slots – if you want to remove spectators altogether, remove them from seclevs)
  • Join as spectator button added to browser
  • Allow /login to work with no password set
  • Freeze immunity (feature = freeze_immunity)
  • Speedhack kick immunity (feature = speedkick_immunity) (this is a temporary fix to work around modded servers that have speeded-up their classes in such a way that the speedhack detection gets false positives)
  • Seclev muting (feature = muted)
  • Deny access with deny_join (will also kick if done mid-game)
  • Fixed ‘x has been voted to be kicked’ bug
  • In-game seclev assignment through /rcon /assignseclev or admin menu
  • Added LoadSeclevs(filename);
  • Added /rcon /reloadseclevs [filename]
  • Disabled same account connecting to a server multiple times
  • New gamemode var: max_zoom_out. This can be ½/3 and defines how many levels of zoom there are.
  • 3 more gamemode vars: zoom_level_1, zoom_level_2, zoom_level_3. These set the cam distance at each of these zoom levels.
  • These gamemode vars can also be added to class config files to override them for that class only.
  • Non-fixed cam works at zoom level 1 now. Was forced to fixed previously.

Little extra info on how to set the zoom levels:
Default levels are:
max_zoom_out = 2
zoom_level_1 = 2.0
zoom_level_2 = 1.0
zoom_level_3 = 0.5

Bigger zoom (zoom_level_½/3 values) = more zoomed in.
Bigger zoom level (max_zoom_out value) = more zoomed out.

Discuss this update here!

Shadlington

Workshops Week

“But we already have workshops…”, you’re thinking to yourselves.

Well, that may be true, but you don’t have workshops like we’re working on workshops. Literally all of the functionality is squirreled away in scripts, meaning that you can make workshops do whatever the hell you want them to do, build menus for them from nothing OR tweak the stock shops with ease. The workshop code will be a great place to start learning AngelScript for those new to C-like languages.

Technology research is partway done, the system reads and writes technologies properly but doesn’t quite update the menu of the research shop yet, that’s something for next week. 🙂
Here’s a shot of me tending my new garden. How quaint:
garden.png
We’re thinking you’ll likely be able to hock possessions throughout the game on some sort of export market for coins, so those flowers would be uprooted quicksmart for some dosh. This means minecrafters aren’t quite as much of a waste of space, since you can at least sell the fruits of their labour.

Michal has been working his butt off recoding several of the internal systems to be simpler to work with via configs, especially with regards to how sprites are handled. Entities can now have multiple layers of sprites, which means that with some clever scripting, complicated animations can be put together with what would otherwise have taken hundreds of frames (naturally noone wants to sprite that kind of thing!)

The entire physics system has also been rewritten to a point where we’re mostly happy with it (and it’s much easier to work with, both in pure configs and with scripting). Some more tweaking will probably happen next week as we start working with characters.

We’re working on making classes and actors non-hardcoded at the moment so that classes can be added and removed fairly trivially. We might not have time to add all the planned classes by the deadline, but we’ll have the groundwork done to get them done afterwards if need be.
…It’s not working properly just yet though, haha.
worst-pain.png

Tom got his excellent Seclev code out this week and I got to add a few extra variables to water to extend its applicability to deathmatch, which will hopefully see some adoption soon. Pretty sure Rayne is cooking up a tide based RTDM server.

Discuss these developments here!

Until next week,
Max/Geti

Build 458

Build 458 is out and the main new feature being introduced is security levels, also known as seclevs.

The full details of what seclevs are and how you should use them are included on the wiki, here.

The gist of it is that server owners now have complete control over who can do what on their servers.

No more pesky logging into rcon is required, either. You can easily setup a seclev for your admins that will immediately give them access to their admin powers when they join your server, as well as a seclev with even more powers just for yourself. You can even setup a VIP seclev for your trusted non-admin users to give them slightly more access than other users (for example, not allowing users to mark players as griefers until you trust them).

You can find example files showing you how to configure seclevs in KAG/Base/Security. They all have the extension .example – if you make copies of these files and remove the .example part you will be left with a decent start point for configuring your own seclevs.

We are officially phasing out guards (i.e. we are no longer recruiting them), so it is strongly encouraged that server owners build up a list of trusted admins that they assign access to with seclevs.

However, guards still exist and you will be able to assign them exactly what admin powers you feel comfortable with them having, separately to your other admins (or, for example, take away a single guard’s admin powers).

There have also been changes to the way in which blacklists/whitelists are stored.

securitysetup.cfg has now been moved to KAG/Base/Security/securitysetup.cfg and inside this file you define the file paths to your whitelist/blacklist. If you copy the contents of your old securitysetup.cfg (in KAG/Base/Scripts) to KAG/Base/Security/blacklist.cfg (or whatever file you define in securitysetup.cfg) then your bans will be preserved. If you were using a whitelist, copy to whitelist.cfg instead. In both cases, you shouldn’t need to worry about adjusting the formatting, that should all be sorted out the next time you start the server.

Additionally, the way you login to rcon has changed – there is now a specific command for it. If you want to login, use /rcon /login [password]. You can also logout now using /rcon /logout.

There has also been a change to the way we check if you have accepted the terms or not, so don’t be surprised if you are required to accept them again.

There are also a few other fixes included.

Changelog:

  • Added security levels (see blog/wiki)
  • Moved location of securitysetup.cfg to Base/Security
  • Moved white/blacklists to their own files (paths defined in securitysetup.cfg)
  • Changed logging into rcon to use /rcon /login [password]
  • Added /rcon /logout to logout of rcon
  • Modified /reloadsecurity to reload seclevs in addition to black/whitelists
  • Added /printseclevs for printing seclevs
  • Fixed respawn timer behind chat window (#152)
  • Potentially fixed memory leak with water

Discuss this post here!

Shadlington

Hotfix for beep abuse

A hotfix has been pushed out to address the beep issue that is being abused increasingly wide across servers.  Servers do not need to be restarted for this fix to work for all clients, so you only really need to restart/update your server if you are running it in a console where you are hearing beeps.

-FliesLikeABrick

The Adventure of Meow

The KAG team have been wanting to share the excellent work of xiaojin67 for some time! This comic will give you a taste for what the comic is like, very tongue-in-cheek and always relevant to the game in the strangest ways:

The series has progressed to the point of a regular continuous plot now, and you can view the whole thing on the forums here!

I might be posting more of these on the blog from time to time to keep those too scared of the forums vaguely up to date, we’ll see.

Max/Geti

Social Media

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