King Arthur's Gold - Max


June Bounties:

The 3 bounties for June have been decided by community vote on github - they are:

  • Bounty 1: $50 - Add an extra button for knights that just eats food and doesn't light bombs
  • Bounty 2: $30 - Feature Pitch: Stone Quarry for CTF
  • Bounty 3: $20 - Feature Pitch: Fix for all flags being captured by both teams

Next Month:

We're continuing the bounty system next month! Same system as last time, but existing pitches are still "in the running". Pitches can be withdrawn by the submitter (just close the issue), or by us, as deemed appropriate.

    Quick overview:
    • Anyone can vote on as many issues as they like by issuing a +1 (thumbs up) reaction on github.
    • Anyone can submit one pitch, and as many issues as they like per month.
    • At the end of the month, upvotes are counted, most-upvoted get a cash bounty placed on them.
    • Comments as well as votes are welcome! We want a collaborative community environment.

For more info on the particulars, please read the previous post - here's the link again. We'll be looking at integrating this information into the repository soon, to have a consistent reference.

This is your chance to say what you'd like to see in KAG next, and to direct and be involved in development. We've been pleased with the level of engagement so far, but would love to see even more!

Bounty Notes:

  • Bounty 1 actually already has a waiting pull request - tentative congratulations to ferrezinhre on snagging it so early!
  • Bounty 2 has a work in progress implementation from Mazey - please direct all feedback to either the github issue or chase them down on discord.
  • Bounty 3 is more or less fair game, have at it folks!
  • The Submission "Feature Pitch: Improve failure rate of knight animations" won by a mile, but is not easily solvable by the community. We are taking this as an indication that it should be a priority for internal development this month.
  • The 3rd bounty tied in upvotes with "Feature Pitch: Bloody tiles". As that pitch was quite... extensive, as well as likely to be somewhat performance intensive, we decided not to include it in this round. Your thoughts are welcomed on this matter though - would you like to see bloody tiles in KAG? Should we reconsider for next time?
  • We're seeing more engagement on github since the bounty system was announced - it's simply a correlation, but we're happy to see more people giving it a look and contributing where they can.

We're looking forward to a small fix build with a few features, and updates on the situation with DLC heads, including some previews, in the next couple of weeks!

Have Fun!
Max
King Arthur's Gold - Max
Currently the main kag2d.com website is down; this means that online play, logins, and use of the various websites attached to that domain are inaccessible. The official forums are still accessible, as is the official discord. The latter is most likely to receive up to the minute news as this plays out.

We're currently working to figure out the cause of this outage and resolve it ASAP. As it seems to be occurring as the 21st rolls into various timezones, probably something needs renewing.

We'll be taking steps to prevent this happening again in future.

Max

Edit: This has been fixed by the most excellent Furai in the early hours of his monday morning. Thanks to him for the prompt fix :kag_yes::kag_flex:

Thanks for your patience folks!
King Arthur's Gold - Max
Hey Folks,

This build contains several optimisations, a lot of modder quality-of-life changes, and some exciting new script rendering possibilities. There's also new map changes for TDM. We're getting this build out ahead of the github bounty system landing next month - we may get another build out between now and then as well, but this one has definitely waited long enough.

Script Rendering:

There is now a script mesh rendering API, which can render in both world and screen space. This makes it possible to render custom geometry for things like tilemaps, fluid layers, ropes, line-of-sight/visibility, complex multi-part objects, "cheap" entities, and more. We'll be working with modders to see where this may benefit their mods, and the API has a straightforward "get off the ground" example provided.

GoldenGuy in particular has already been tinkering with it; you can see his prototype of directional visibility in action here.

I'm working on an example of "dynamic water", which not only provides an in-depth example of the rendering code, but also a good jumping-off point for modders' own custom fluids. Lava has been an oft-requested mod! I've intentionally kept the water model simple (no pressure, no velocity flow) to provide space for modders to extend and improve the system. Still, it's a lot more dynamic than the built in KAG water, and may be fun for some sandbox servers!

(gfycat preview here!)

The script rendering changes have also brought around some optimisation to a few of the primitive type arrays (numbers, vectors, colours and vertices), in order to allow much faster handling of meshes and index buffers. This has the nice side effect of optimising any code using those types of arrays.

TDM Maps:

Thanks again to the map mods for reviewing, iterating on and integrating so many maps to help keep the gamemodes fresh!

Community:

The kag-base github repo has been getting a good amount of attention since the contributor bounties and voting system were announced! If you haven't already, go give the pitches and bugs a moment of your time and vote on what you'd like to see sponsored.

Thanks to everyone who's engaged with the system so far!

As always, discord is where the majority of discussion is happening. Shout outs to the mods and administrators who keep the lights on over there!

All the rest:

There's a lot of miscellaneous features in this one. A lot of them are sourced from github reports. Some are player or modder requests. A few of them were just spur of the moment things. See the changelog for full details.

Among them are better "tap" pickup handling to cut down on the amount of bad-priority pickups mid-fight, some tweaks to how TTH games start and end, and a long standing audio fix on linux/mac.

Have Fun!
Max

Full Changelog: Script Rendering [added] script rendering interface (see ScriptRenderExample.as in Base/Scripts/Examples for details) [added] Vertex type for fast script rendering Maps - TDM [added] 3 Maps - FG_Enclosure, Niiiiii_Elewater, Niiiiii_GetisArena [modified] 1 Map - Niiiiii_Watery Miscellaneous [modified] TTH game start/end logic (requires a hall cap to start, game doesn't end on a tie) [modified] ignore item aim when tapping pickup [modified] saving logs in binary mode, which should interfere less with encoding [added] utf-8 logging everywhere [fixed] unicode logging on linux/mac [added] color log support [removed] "New player joined the game" message, only leaving "*player* connected" [fixed] linux/mac channel mismatch and stereo sound origin glitch [modified] readme + server setup info a little since someone got misled by them [fixed] discord invite link (now permanent) + added guidelines link in readme on github [added] "forceful" physics disable when in inventory (we'll see if it fixes tflippy's lag) Modding [added] Better trace printing for exceptions, etc. [added] printTrace(), getCallStack(), getScriptStack() debugging aids [added] g_timeoutscripts to abort long-running scripts [added] nested hook call detection [modified] matcher returns empty string if there's no matches (assumption seems to be made everywhere) [added] hasScript to all components, rules, map and blob - fixes #78 on github [added] CSprite::getZ() [added] global isServer and isClient functions as shorthand for the equivalent CNet functions. Fixes #85 on github [added] CBlob::getOldPosition() - fixes #86 on github [added] allow_suicide gamemode.cfg bool - removes the menu option for suicide for gamemodes where that option is unsuitable [modified] engine (esc menu) suicide uses hitters.as suicide hitter [fixed] missing default constructor for Random [added] specialised array implementation for some types (bool, u8, s8, u16, s16, u32, s32, f32, Vec2f, SColor, Vertex); faster performance [fixed] error preventing loading in Texture::dataFromSprite and Texture::dataFromSpriteLayer [added] CMixer uses matched filename
King Arthur's Gold - Max
Hey Folks,

Next month, we are going to trial a contribution bounty system!

We want to help support and encourage community contribution in the game, both for code savvy folks, and for anyone who'd like a say on the future of the game. We'd also like the make development a little more democratic.

Starting next month, the top 3 contributor-applicable issues on github will be tagged with monetary bounties, paid upon integration of an applicable pull request. The wait should give some time for votes to accumulate, and ensure a set list of bounties. Issues will be ranked by the number of +1 reactions they have received from the community.

The bounties will be scaled according to popularity, with the #1 issue receiving a $50 bounty, the #2 issue receiving a $30 bounty, and the #3 issue receiving a $20 bounty, for a total of $100 over the month. Amounts are in USD.

We're starting out small, as we're not sure of the reception this will get. We are open to increasing the number and size of the bounties over time, and will look at crowdfunding options, should it prove popular. We hope that this will encourage contribution on other (non-bounty) issues in the meantime, and help get people involved with the repository and the game's development.

For Anyone:

  • Get on github if you haven't already! No programming experience required, interacting with the issues section is much like an online forum.
  • Be sure to star the kag-base repo to help increase our visibility within the wider open-source ecosystem.
  • Anyone can vote on issues - react with "+1" (the thumbs up) on issues you'd like to see fixed.

Pitching Features:

  • Anyone can pitch.
  • Pitch proposals under the issues section on the repository.
  • Start your issue title with "Feature Pitch: ", so folks know that it's a pitch.
  • Be as descriptive as possible
    • If you're not going to be the one implementing it, you don't want someone to be working off a vague spec.
    • If you're planning on implementing it, you want people to be clear what they're voting on.
  • Keep scope limited for this round - it's got to be able to be completed in a month by contributors who are often hobbyists, and the payments aren't huge.
  • Spread the word to players you think would like to see your feature implemented to secure votes!

For contributors:

  • Be sure to read the guidelines!
  • Consider pitching something you'd be confident to work on.
  • Join the discord and drop into the #development channel for support.
  • Wait until the bounties are posted - consider working on other issues in the meantime!
  • Post your intent to pursue a bounty on any of the bounty issues
  • Multiple bounties can be claimed, but please only work on one at a time.
  • Complete the required work to fulfill the bounty
  • Submit a Pull Request suitable for integration
  • Work with the developers to resolve any concerns prior to integration
  • Get paid!

Notes/Fine Print:

  • One pitch per person per month.
  • "Contributor-applicable" means "able to be addressed directly through the kag-base repository". This basically means "no engine changes".
  • Votes aren't restricted to feature pitches. Contributor-applicable bugs are also suitable, and votes will be counted and bounties paid if there are popular bugs. Bug issues are not restricted to the one pitch per month restriction.
  • Bounties will be paid through PayPal, so contributors looking to claim a bounty should ensure they have a suitable account to ensure prompt payment.
  • Bounties will only be paid for suitable contributions. We do merge optimistically, but the work must be in line with community expectations and suitable for .
  • Be careful if multiple people are interested; the bounty will only be paid out once, to the first suitable pull request (ordered by submission time if multiple suitable submissions are made)
  • Probably don't pursue a bounty on something a past contributor has pitched without consulting them; that's bad form.
  • We reserve the right to "veto" features that we feel are against the spirit or design of the game, but are going to take as open a mind as possible. We want to build a collaborative environment, not a competitive one. We want the community to be able to self-direct as much as possible.
  • We'll formalise this somehow in the repository going forward, and likely revise the contribution guidelines should this prove popular.

We're anxious to hear your thoughts, and looking forward to seeing how this goes.

It'll probably work best if most pitches come from contributors with an idea of the scope they're capable of taking on in a month, and if there is as much voting activity as possible to ensure representative voting. We're quietly optimistic.

Have fun!
Max
King Arthur's Gold - Max
Hey Folks!

The 1st of May has come and gone in almost every timezone, so we're going to call the poll for the next DLC heads theme now.

The results are:

☠️ Pirates: 52 discord + 3 "extra" steam = 55 total 😼 Animals: 97 discord + 1 "extra" steam = 98 total 🧙 High Fantasy: 116 discord + 9 "extra" steam = 125 total 🚀 Sci Fi: 44 discord + 3 "extra" steam = 47 total

Note: The ad-hoc votes on steam have been counted as a good faith gesture, but please try to follow the instructions in future!

That means that High Fantasy will be the theme for the next heads pack! We'll be drawing from a variety of High Fantasy inspirations in preparing the pack, to produce something unique that fits with the game - while still bringing fresh new looks, of course! Expect some news and previews on that front over the next few months as we get it prepared and cleared through Steam.

In other news, we're working to get a new build out with improved script-rendering capabilities, modder quality-of-life additions and some specific requests from github, reworked server setup readme, and the usual miscellaneous fixes. More on that soon!

Max
King Arthur's Gold - Max
Hey Folks,

There's voting for a new DLC heads pack theme on the official discord at the moment.

The 4 themes to vote on are:

- ☠️Pirates! Privateers, buccaneers, and more!
- 😼Animals! Various animal heads.
- 🧙High fantasy! Goblins, orcs, elves, hobbits, wizards.
- 🚀Sci fi! Space suits, aliens, robots.

Just react with the appropriate emoji on the post in #announcements on the discord to register your vote. The theme with the highest votes will be used for the next heads pack available through steam.

You can see more details in the discord. At the time of writing, high fantasy is in the lead with animals in second place.

Voting is open to all and ends on May 1.

EDIT: voting is now closed - thanks for your input folks!

Have fun,
Max
King Arthur's Gold - Max
Eluded is hosting a New Player Friendly server to help new players learn the ropes in a friendly environment. New players are encouraged to drop in! ːkag_smileː

Experienced players are allowed to join, but those that are found playing to pub-stomp on this server rather than to help players learn the game and have friendly, fair matches will be banned.

You can read more and discuss the server on the official forum thread - they are looking for responsible admins to keep the server well moderated ːkag_yesː

Thanks to Eluded and the other community members involved with making this happen!

Max
King Arthur's Gold - Max
Eluded is hosting a New Player Friendly server to help new players learn the ropes in a friendly environment. New players are encouraged to drop in! :kag_smile:

Experienced players are allowed to join, but those that are found playing to pub-stomp on this server rather than to help players learn the game and have friendly, fair matches will be banned.

You can read more and discuss the server on the official forum thread - they are looking for responsible admins to keep the server well moderated :kag_yes:

Thanks to Eluded and the other community members involved with making this happen!

Max
King Arthur's Gold - Max
This build rounds up a bunch of community changes and internal fixes, plus improved translation support and some modder-requested features.

The main new feature this build is highlighting class-relevant items by holding C. This only works for items that are not hidden in darkness, but does reveal items behind bushes and bodies. This change was developed mainly by Diprog in cooperation with Asu, who optimised the code and added some requested features. You can see a discussion of the changes here and here - while somewhat controversial, these changes are purely opt-in (you have to hold the button to see the effect), and may help new players understand what items are important, while helping vets quickly identify hidden items. Pickup priorities have also been reworked by Asu to improve quickly picking up what you want in the field. I've added a death tip mentioning the feature.


This build also turns on "60fps" by default. Some minor issues have been fixed, but keep reports of anything strange coming! We'll continue polishing up any rough edges this month, and you can help by providing a good way to reproduce the issue you're having. You can re-enable capping the framerate with the new "capped framerate" option in the video settings if you do have issues.

We're looking at ways of capping the framerate to some variable target, for people with high frequency screens who's rigs cant quite manage 120hz, but who don't want to be stuck with 30hz.

The TDM map cycle has been reworked a little, with 3 unpopular maps being removed from the rotation, and 1 new map being added.

There's a little more translation support; particularly in the esc menu and the server browser. The RU translation has been partly updated, though there is still a little bit of google-translate in there. We're waiting on the translation teams to update each translation currently - if you'd like to contribute translations in your native tongue, you can do so through github. If you're having trouble figuring it out, get in touch with us on discord in the #development channel!

The "fused mutator-accessors" are provided for modder convenience - they mutate a property field and return the modified value, which can save you some typing and a couple of function calls for things like timers and hit counters. This was added at the request of some modders in discord.

Thanks to Asu, Diprog, Ni, and all the folks on discord, the forums, and github who prompted various changes!

Have Fun!
Max

Full Changelog: Maps [fixed] maps folder name [modified] TDM -3 maps, +1 map Localisation [added] support for votekick menu translation [added] translation capability and a few minor fixes/improvements to spectator help [added] placeholder translations to russian translation file for testing gamemode list translation + login window translation [added] support for esc menu translation [added] support for translating login window and gamemodes list in server browser Misc [modified] death zoom faster/less obnoxious with new interpolation [added] highlighting for useful class items on [C] [modified] Rename uncapped framerate option to capped framerate [modified] Improve pickup priorities [modified] AFK vote-kick renamed to non-participation (we already have automatic afk kick) [fixed] climbing pass-through structures (such as enemy trapblocks) [fixed] endless tth games due to teams not capping halls [modified] properly handle ties in TTH (when neither teams cap a hall) [fixed] climbing pass-through structures (such as enemy trapblocks) [modified] slightly optimized pickup logic [added] more precise pickups when hovering items [modified] pickup doesn't depend on left/right player facing [removed] "recently picked up" lists, which led to accidents/items "ignoring" pickups [modified] reworked pickup priorities [fixed] removing items from inventories didn't always call hooks properly, leading to incorrectly full inventories [modified] clarified "All" -> "All Gamemodes" in server browser [added] config version for updating any defaults in future Modding [added] net property fused mutator-accessors for micro-optimisation/convenience full list: add_s8, sub_s8, add_s16, sub_s16, add_s32, sub_s32, add_u8, sub_u8, add_u16, sub_u16, add_u32, sub_u32, add_f32, sub_f32

E: BUILD 2537 - Hotfix

This build fixes a low frequency crash issue that slipped through testing - sorry to anyone affected!

Full Changelog: [fixed] faulty assumption of blob handles going null if the blob was removed somehow; store network ids instead
King Arthur's Gold - Max
This build rounds up a bunch of community changes and internal fixes, plus improved translation support and some modder-requested features.

The main new feature this build is highlighting class-relevant items by holding C. This only works for items that are not hidden in darkness, but does reveal items behind bushes and bodies. This change was developed mainly by Diprog in cooperation with Asu, who optimised the code and added some requested features. You can see a discussion of the changes here and here - while somewhat controversial, these changes are purely opt-in (you have to hold the button to see the effect), and may help new players understand what items are important, while helping vets quickly identify hidden items. Pickup priorities have also been reworked by Asu to improve quickly picking up what you want in the field. I've added a death tip mentioning the feature.


This build also turns on "60fps" by default. Some minor issues have been fixed, but keep reports of anything strange coming! We'll continue polishing up any rough edges this month, and you can help by providing a good way to reproduce the issue you're having. You can re-enable capping the framerate with the new "capped framerate" option in the video settings if you do have issues.

We're looking at ways of capping the framerate to some variable target, for people with high frequency screens who's rigs cant quite manage 120hz, but who don't want to be stuck with 30hz.

The TDM map cycle has been reworked a little, with 3 unpopular maps being removed from the rotation, and 1 new map being added.

There's a little more translation support; particularly in the esc menu and the server browser. The RU translation has been partly updated, though there is still a little bit of google-translate in there. We're waiting on the translation teams to update each translation currently - if you'd like to contribute translations in your native tongue, you can do so through github. If you're having trouble figuring it out, get in touch with us on discord in the #development channel!

The "fused mutator-accessors" are provided for modder convenience - they mutate a property field and return the modified value, which can save you some typing and a couple of function calls for things like timers and hit counters. This was added at the request of some modders in discord.

Thanks to Asu, Diprog, Ni, and all the folks on discord, the forums, and github who prompted various changes!

Have Fun!
Max

Full Changelog: Maps [fixed] maps folder name [modified] TDM -3 maps, +1 map Localisation [added] support for votekick menu translation [added] translation capability and a few minor fixes/improvements to spectator help [added] placeholder translations to russian translation file for testing gamemode list translation + login window translation [added] support for esc menu translation [added] support for translating login window and gamemodes list in server browser Misc [modified] death zoom faster/less obnoxious with new interpolation [added] highlighting for useful class items on [C] [modified] Rename uncapped framerate option to capped framerate [modified] Improve pickup priorities [modified] AFK vote-kick renamed to non-participation (we already have automatic afk kick) [fixed] climbing pass-through structures (such as enemy trapblocks) [fixed] endless tth games due to teams not capping halls [modified] properly handle ties in TTH (when neither teams cap a hall) [fixed] climbing pass-through structures (such as enemy trapblocks) [modified] slightly optimized pickup logic [added] more precise pickups when hovering items [modified] pickup doesn't depend on left/right player facing [removed] "recently picked up" lists, which led to accidents/items "ignoring" pickups [modified] reworked pickup priorities [fixed] removing items from inventories didn't always call hooks properly, leading to incorrectly full inventories [modified] clarified "All" -> "All Gamemodes" in server browser [added] config version for updating any defaults in future Modding [added] net property fused mutator-accessors for micro-optimisation/convenience full list: add_s8, sub_s8, add_s16, sub_s16, add_s32, sub_s32, add_u8, sub_u8, add_u16, sub_u16, add_u32, sub_u32, add_f32, sub_f32

E: BUILD 2537 - Hotfix

This build fixes a low frequency crash issue that slipped through testing - sorry to anyone affected!

Full Changelog: [fixed] faulty assumption of blob handles going null if the blob was removed somehow; store network ids instead
...