1. 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

Take That...! Dev-Blog Post.

Discussion in 'Announcements' started by Froghead48, Apr 27, 2013.

  1. Froghead48

    Froghead48 Haxor

    Messages:
    703
    We’ve been optimising our arses off for the past month or so leading up to release, and the good news is, it’s been successful!
    We’re currently on the fence with regards to the JIT compiler, we got it working but it has two side effects: code ran slightly differently, meaning subtle, hard to find bugs were introduced to all scripts; and it C++11 support was required, meaning anyone on old debian or centos would be out of luck running the new game without patching their libstdc++ manually. We’re currently running without it but keeping it as an option in the future if we really need to squeeze more performance out - for the moment it’s looking like we wont need to though!
    With all the fancy new stuff KAG beta does, it starts at ~8% CPU usage (mid range dedi box) for 1 player (0.1% for zero players because the game gets completely paused with a new serverside option).
    Now, that might sound like bad news; fortunately, it scales really, really well with the number of players (performance is contingent more on the number of complicated objects in the game now, rather than number of players), with our server pushing ~10% CPU for 4v4 (about 0.25% increase per player).
    This is largely due to a massive netcode rewrite that’s still partially underway. We’ve learned a lot about networking this kind of game over the past few years, and the way we were doing it initially (based on the quake 3 model) isn’t optimal for a game with a large number of objects - it’s fine for classic where the majority of objects are players, but in the beta the number of game objects is easily into the hundreds, with trees, bushes, inventory items… As such it has been almost completely gutted out.
    Long story short, bandwidth up and down per player at 1kBs up, 3kBs down (client end, for 8 players), compared to before the rewrite 2kBs up and 70 kBs down. This means KAG beta outperforms KAG classic in bandwidth utilisation, even though there’s a lot more going on!
    We’ve still got to sort out some desync and disconnection issues, as is to be expected with a large network rewrite, but it’s gone very smoothly so far.
    We’re going to be crunching all weekend to see whether we can get something together for a semi-public release (hint: watch the forums) because all the major technical hurdles have been stomped, there’s just gameplay issues to iron out now :)
    Max/Geti

    Yay! What do you guys think?
     
    Force, Stevedog, Classic and 5 others like this.
  2. FuzzyBlueBaron

    FuzzyBlueBaron Warm, Caring, Benign, Good and Kind Philanthrope Global Moderator Forum Moderator Donator Tester
    1. The Young Blood Collective - [YB]

    Messages:
    2,508
    :thumbs_up:

    Moved to Announcements.
     
    Froghead48 likes this.
  3. 16th

    16th Bison Rider

    Messages:
    254
    I think 1 more month, ore maybe 2, ore maybe 3, ore maybe........................................................................
     
  4. MCrypa

    MCrypa Haxor

    Messages:
    562
    Click
     
  5. AnRK

    AnRK Shark Slayer

    Messages:
    641
    Well if you were selected it would hardly be "semi-public" would it? "(hint: watch the forums)" would be a bit of a giveaway there, from that I'd infer that it'll be similar to the way they had the old public test build, no massive announcements or anything, you just have to keep an eye on the forums for new builds. I remember loading the classic test build one day to find that wood and water had suddenly appeared out of nowhere and spend a good few hours playing it online and everything before their full release was mentioned.
     
    LostPix and FuzzyBlueBaron like this.
  6. AdrianC

    AdrianC Haxor Tester

    Messages:
    119
    Awesome! Looking forward to the semi-public release :).
     
  7. Ninja12

    Ninja12 Haxor

    Messages:
    223
    :D:D:D:D:D:D:D:D:D:D:D:D:D:D:D
    1 1Z 50 H4PPY!!!111!!!!11
     
  8. Crabmaster

    Crabmaster Bison Rider
    1. Zen Laboratories

    Messages:
    322
    Ah wonderful to both hear that connection will be better (from time to time I suffer from bad/laggy internet!) and that the update is coming out relatively soon! Was planning to get more into this game again once the update came out! Keep up the good work!
     
  9. whatever1works

    whatever1works Drill Rusher

    Messages:
    42
    TIME TO GET TEH GROOVE ON!!!!!!!!!!!!:migrant::dance::teabag:25252525:B):
     
  10. CookieEpic

    CookieEpic Shopkeep Stealer

    Messages:
    72
    Now this is exciting! I'm happy that we only have to wait for bugs to be ironed out now, and then FINALLY we can have a beta. Semi public or public, i don't care as long as 1.0 beta comes. And eventually 1.0 afterwards. :)
     
  11. Ratka

    Ratka Shipwright

    Messages:
    158
    So long as it comes out in under a fortnight I am happy. Should be interesting to see all of the new features in action for yourself.
     
  12. SlayerSean

    SlayerSean FYI: it's pronounced "seen"

    Messages:
    191
    I doubt it will happen in under two weeks Ratka, but, I suppose we can always hope. Seeing as how the dev's wish to make this build as marvelous as it can possibly be, however, and that there are still bugs and other issues to sort out, and the dev's have lives of which they must also spend time on(:P, two weeks may be a little too hopeful?

    Agreeing with Cookie, as long as it comes out, I'm cool with it. Just don't rush it.
     
    CookieEpic likes this.
  13. 16th

    16th Bison Rider

    Messages:
    254
    U not even premium, man. All new features u can see only on U-tube :rollseyes:
     
    norill, Guitarman and eamono like this.
  14. AnRK

    AnRK Shark Slayer

    Messages:
    641
    Sort of like the rest of us then at the moment then? Maybe he'll just buy it when it's finished, maybe he doesn't have the cash at the moment, maybe fucking any other reason he doesn't have it yet? Was there some sort of point to that comment at all?
     
    kubasanus, CookieEpic and SlayerSean like this.
  15. 16th

    16th Bison Rider

    Messages:
    254
    Yes. Was some point for your?
     
    norill likes this.
  16. eamono

    eamono Arsonist

    Messages:
    498
    Maybe ratka thought that 1.0 would also be f2p, I think 16th's post was just an FYI, could it have been a PM to ratka? yes. Was it pointless? no.
     
    norill likes this.
  17. kedram

    kedram Drill Rusher Tester

    Messages:
    449
    well il keep an eye out for the public beta :D. it will be out for all people currently playing or at least all premiums. they just wont do a mass announcement thing
     
  18. eamono

    eamono Arsonist

    Messages:
    498
    *reads through blog post*

    25252525 :migrant: 25252525
    ...wait a minute...
    hmmm...

    well sh*t, i hope that this doesn't take long :(
     
  19. Tilus

    Tilus Catapult Fodder

    Messages:
    4
    As a novice game dev, I'm curious to what networking model you picked instead? ???
     
    UnnamedPlayer and FuzzyBlueBaron like this.
  20. Geti

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

    Messages:
    3,730
    Something along the lines of "let ENet handle it" - instead of keeping a list of old deltas, calculating new deltas against them, calculating new deltas on a per player basis, etc, we have one constant stream of deltas and sync them using ENet's reliable sending functionality (reducing UDP to selective TCP really), with a few separate streams for snapshot type changes (messages, property syncs, hits) to prevent a dropped packet of one type preventing independent packets from getting there.
    This takes the onus off us getting all the acknowledgement right and reduces the amount of CPU used calculating those gamestate deltas tremendously.
    Reducing UDP to TCP means we drop some of the inherent performance, but not having to recalc and resend deltas on the last acked frame (-> leading to extra bandwidth, memory and CPU used for players with higher ping), and instead letting ENet ensure that it's reliably delivered means that as long as nothing drops, performance wrt latency is the same and performace wrt CPU is way, way better.

    On a very noisy connection, this new system drops more frequently as ENet fails to deliver a packet, however on a stable connection (including most wifi we've tested it on) it's steady as a rock. If you're getting a shocking connection, you'd likely have a worse time with the >70kbs old method anyway.
     
    Ace_, Apronymous, Cpa3y and 3 others like this.