1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Hey Guest, is it this your first time on the forums?

    Visit the Beginner's Box

    Introduce yourself, read some of the ins and outs of the community, access to useful links and information.

    Dismiss Notice

Devlog KAG Build 2388 - Github Takes Off, New Testing Arrangements

Discussion in 'Announcements' started by Geti, Nov 1, 2017.

  1. Geti

    Geti Please avoid PMing me (poke a mod instead) THD Team Administrator Global Moderator

    Hey folks, Happy Halloween! Quite a big build this time around, all things considered.

    Game Changes:

    The most important part for most people, concrete changes to the game itself are up first.
    • Pickup priorities have been tweaked as a result of some community concern about them and initiative from a github contributor (tru0067). Dead bodies are more heavily de-prioritised, anything exploding is heavily prioritised, saws are prioritised over seeds and logs for managing wood farms, and material/ammo stacks are prioritised by size. I believe Asu has some more refinement planned for this but it's a good start on what seems to be a sore point for some people.
    • Probably the smallest but most visual is the builder and vehicle shops have been adjusted for nicer button placement and alignment. See below!
    • The filled bucket idea has been reworked into a separate "filled bucket" shop option which costs coins, while the basic bucket is now empty again. There's also some anti-spam server-lag mitigation to curb some bad behaviour observed.
    • The chat swear filter is now customisable by config file; support for this (so we can update it but you can maintain your own set of unsavoury terms) will be expanded in the future. Asu is working on the option to apply the swear filter to the display of names as well.
    • An issue with tents being placed one tile too high in the new map Passfest has been fixed.



    It's nice to see the public github repo up and running "properly". This last few weeks in particular have been very active on Github! Each week has started with a long session of reviewing and merging pull requests; contributions from the community.

    This month, 91 commits were pushed across 21 merged pull requests, plus internal development. This includes contributions from Asu, Fuzzle, Diprog, tru0067, Panky123, BarsukEughen, Cameron1010, Mazey, and myself - thanks to everyone! Diprog actually overtook me in terms of raw commits to the base repo, with all the translation work from him and the RU translation team!


    Translation support has been expanded at a steady pace.

    Diprog, BarsukEughen, Basea, Voxez, and Grey Guard have been working on a full Russian translation. The menus translation is still underway, but many in-game things are translated, all tutorials are translated, and we're working on getting some missing engine support for more. This has really helped spur the translation support along as it's helpful to have external people testing (and breaking) existing support. Thanks a lot for your work, folks!

    Hopefully this provides a more comfortable environment for our Russian players. The RU translation team welcome any corrections or suggestions, and we'd love to know if this has helped you! The required support for full menu translations will be added ASAP. If you are interested in helping localise KAG to your language, please get in touch through the Official Forums, Discord or Github.


    Testing has been turned basically into an "opt-in" system. Anyone can apply and is very likely to be accepted for access to pre-release builds. We do ask if you're keen to test that you spend time to get familiar with the requirements and if possible, join the discord before jumping in. You'll need a forum account too, more info here! This may be especially helpful for modders, prospective contributors, and translators - but everyone is welcome.


    The Official Discord is almost at 800 members! I'm hoping we hit 1000 by the end of the year.

    The #development channel has been a hub of real-time discussion for contributors, #modding has housed a lot of collaboration and is a good place to talk with modders about their productions, #testing has become a good go-to for jump-in testing sessions for the new testers, and #off_topic is still the usual glut of memes and irreverence. Thanks to the team over there for all their work keeping it up to date, up to standard, and cheerful as ever.

    If you haven't already, come and say hi! I'm there during work hours on Mondays and Tuesdays (Australian Eastern Time), and intermittently through the rest of the week.

    Modding notes:

    Modders, many scripts have been touched by the translation pass, and some things have changed which may cause mod breakage - particularly item costs and descriptions as there are extensive changes and moved files. If you need help updating your mods for compatibility, please jump on discord and start the conversation. We can help with either upgrading your existing code, or helping you find old versions of your dependencies on github to get your mod back up and running.

    We try to minimise these kinds of potentially-breaking changes, but sometimes it's worth ripping off bandaids.

    We're working towards some system for compatibility care packages with each build - possibly in the form of a zip of the old versions of changed files and notes on what has changed, why it changed, and how to work around that if it breaks your mod. We haven't quite got the infrastructure together for that yet though. I'm considering an interim solution of a compatibility notes file in the base of the repository with mandatory "reporting" of any of these breaking changes at the time they are committed to the repository.

    Where to next?

    • I'll continue reviewing work from Github and have half-finished a direct rendering interface for modders. I'll also finish off the required changes for full menu translation.
    • Asu will continue on translations, general fixes, linux fixes and performance.
    • Fuzzle will continue on bug fixes and still has many larger enigmatic works planned.
    • The RU translation team will continue refining their translation.
    • Galen, Mazey and the rest of our discord moderation team will keep the discord running smoothly.
    • Github Contributors will continue being awesome!

    That's all for this month.

    Have Fun!


    Full Changelog:
        [modified] improved mechanisms performance
        [modified] pickup priority tweaks, material stack pick-up priority (thanks tru0067)
        [added] separate filled bucket to builder shop (costs 10 coin as well as the 10 wood)
        [modified] builder and vehicle shop buttons re-arranged for neatness and no gaps
        [modified] chat filter uses a config file (thanks asu)
        [modified] platform HP decreased
        [modified] rewritten and edited almost all strings in Russian locale (gamemode, tut) (thanks Diprog, Basea, Voxez, Grey Guard)
        [added] translation support to most script-side logic (thanks diprog)
        [added] translation in client_addToChat & some net events (thanks asu)
        [added] proper utf string conversion for cbutton and cgridmenu caption + automatic translation for rendering
        [added] rules global message is automatically translated for rendering
        [fixed] Passfest map tent placement (thanks punk123)
        [fixed] issue #37 on github, only add no build zone to solid tiles below the hall (prevents doorways from being 1 tile offset plus issues with invulnerable doors/traps/etc)
        [fixed] KickAFK issue with chat (thanks fuzzle)
        [fixed] tutorial and other challenges lighting
        [fixed] tutorial mapcycle issue
        [fixed] save the princess mode double first map
        [fixed] bucket splash spam = laggy server (spammed buckets reduce their own splash counts on each hit) (thanks to discord folks for the report)
        [fixed] linux DLC heads and main menu background (thanks asu)
        [fixed] client_AddToChat unicode support (thanks asu)
        [modified] entity lifetimes code cleaned up (thanks verra)
        [modified] descriptions.as - descriptions are separate variables rather than an array (thanks diprog), inside their own namespace
        [added] costs.as - one-stop-shop for all costs with loading from-config and default values (thanks diprog)
        [added] AddSectorOnTiles.as - rudimentary code for adding sectors over solid tiles, with boilerplate to help with adding sectors over other types of tile
        [modified] overriding CGridButton size passed to AddButton no longer has minimum of icon size (ie can force bigger icon into smaller button) - default-sized buttons are still icon-sized)
        [added] interface listing can dump constructor names (thanks asu)
    See github for more particulars!
    Last edited: Nov 5, 2017
  2. SlashDemon

    SlashDemon Shipwright

    Geti likes this.
  3. Element_Paladin

    Element_Paladin Horde Gibber Tester
    1. Aphelion's Roleplay

    so many reminders to start learning angelscript :spam:
    FuzzyBlueBaron and Geti like this.
  4. enderzilla747

    enderzilla747 Arsonist Tester

    In celebration of Halloween, I shall commence work on the Greg again.
    Clev, FuzzyBlueBaron and Geti like this.
  5. blackjoker77777

    blackjoker77777 Ballista Bolt Thrower Tester
    1. Zen Laboratories

    Would RTL support for translations be planned at some point? I'm still in need for it to be included to get the Arabic translation I created to work properly, and I bet a bunch of other languages require RTL support as well.
  6. Diprog

    Diprog Bison Rider Tester
    1. FUN Servers

    From conversation with Geti:
    --- Double Post Merged, Nov 1, 2017, Original Post Date: Nov 1, 2017 ---
    BUG IN TTH. All scrolls are free.
    Also it seems like descriptions are translated by server.
    Last edited: Nov 1, 2017
  7. Geti

    Geti Please avoid PMing me (poke a mod instead) THD Team Administrator Global Moderator

    I can look into it but I am not optimistic. The library we use is not a full font layout engine and I have no idea if it has RTL support at all. It all goes through a separate layer of font rendering with irrlicht which further complicates things. I am sorry as I would love for arabic and hebrew (and farsi and others) translations to be possible ::(: if there is significant interest we can look at changing out the underlying library if needed, but it will probably not be an easy job.

    Oh, I am sorry I didn't realise that I had left him out. I made sure to mention him in the commits list. I will edit the translation section.

    I responded on github about the TTH bugs. I will look into a hotfix tomorrow, I guess OKSA warn and kick anyone abusing it on official servers to spawn 100s of scrolls. We'll need to figure out a way to handle the descriptions. I guess they are embedded in the shop items serverside instead of clientside...
    Last edited: Nov 1, 2017
  8. Gurin

    Gurin Stop That! Global Moderator Donator Tester

    Oh my god have I waited, thankyou
    Kazaco97, Guitarman, Clev and 4 others like this.
  9. Coroz

    Coroz B R B Donator Tester Official Server Admin
    1. [AG#] - Ancient Gear

    Although some people prefer to have dead bodies as main priority. :eek:
    Last edited: Nov 1, 2017
    mcrifel likes this.
  10. Clev

    Clev Resident Stoner Staff Alumni Donator Tester

    Honestly the best part of the update
    Gurin likes this.
  11. Geti

    Geti Please avoid PMing me (poke a mod instead) THD Team Administrator Global Moderator

    Small hotfix should be out fixing the TTH costs. There'll likely be another small build tomorrow merging in some more PRs from github to round out some of the translation stuff.
    Diprog likes this.
  12. Didgedy

    Didgedy Arsonist

    Nice update!
    How can I get in on translating (Latvian)?
    Geti likes this.
  13. Diprog

    Diprog Bison Rider Tester
    1. FUN Servers

    Fork repo on GitHub https://github.com/transhumandesign/kag-base
    Then open your fork in GitKraken (it's an example, use what you want) and create a new branch called "translation-latvian".
    Then copy "Russian_ru.json" (because it's almost full) from "Base/Locale", rename it to "Latvian_lv.json" and replace everything Russian with Latvian, then commit your changes to your new branch, push your commit and create a pull request from your fork on GitHub page.
    Geti, FuzzyBlueBaron and Didgedy like this.
  14. Geti

    Geti Please avoid PMing me (poke a mod instead) THD Team Administrator Global Moderator

    I would recommend (if you haven't already) blanking out the russian text (leaving just empty strings, "") in your Latvian_lv.json before committing it at first so you have a clean slate to work from and an idea of what "still needs translating".

    We're still working on various issues with translation; I was sick at the end of last week and this coming week is busy (my wife's birthday and a public holiday) but I'll be prioritising translation-related stuff in the short term and have been working with Diprog in particular on a number of tricky edge cases in the translation system.
  15. Geti

    Geti Please avoid PMing me (poke a mod instead) THD Team Administrator Global Moderator

    I neglected to mention this in the original changelog as it was put in with some unrelated changes, but this happened as well. Platforms are useful but have been unreasonably resilient for quite some time, this changes that. They're still pretty hardy, just not outrageously so.
    Noburu, Asu, The_Osz and 3 others like this.
  16. Diprog

    Diprog Bison Rider Tester
    1. FUN Servers

    Also lanterns have more priority than materials
  17. epsilon

    epsilon Assonist THD Team Forum Moderator Donator Tester
    1. Gather Oceania
    2. KAG World Cup 2018

    omg i just realised that head is meant to be an ushanka!
    Guitarman and Varion like this.