This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

Recommended Posts

TaschDraws    797

Hey Klei Devs! So I'm really interested in how exactly the character animations work for Griftlands, would any of you guys be down to answer a few questions about it? 
(I realize getting really technical questions probably isn't the norm - but I'm a game design student and ever since I picked up Griftlands last year, I've been fascinated because the animations are so smooth and well done?? And having done a tiny bit of 2D puppet animation before, seeing how well the animation states transition together and how clean the pieces look rigged together is just...obscene...god they look so good wtf).

I fully understand some stuff is top secret™ or just very specific/proprietary within the studio - but if you have time to indulge a wee baby game dev I would just love to understand more about how you guys approach character rigs/animations! I'm trying to learn more because I haven't really touched the more technical side of that yet...also I may or may not be trying to practice ahead of time to mod the sh** out of the game lmao

  • Do you guys use a specific game engine for Griftlands or is this like all proprietary lol?
  • Do you guys use any particular software for the animation/rigging? Or is it all done in-engine with like plug-ins or something?
  • If the answers to the above were "haha it's proprietary and held together by duct tape don't look too close," then do you have any recommendations for what a baby dev should learn/practice on instead?
    • (I know about After Effects, Spine, and that there's Unity/Unreal plug-ins for 2D rig stuff, but idk if there's some industry standard for this lmao)
  • Transitions look like spooky magic is that like a state machine thing or what
  • How?? Does everything hook together so cleanly??

Oof okay that's a lot of questions sorry - if you guys do miraculously get the time to read this let alone answer any of it I will be forever grateful lmao and it is completely okay if you can't! :) You guys are doing such incredible work and it really is inspiring, you're pushing me to broaden my skills and explore stuff I haven't dived into before! <3 Thanks so much!

Share this post

Link to post
Share on other sites
Kevin    3948


I'm not an animator, but I used to sit beside one back when we all used to leave our houses on a regular basis. I think I can answer most of your questions.

  • Griftlands runs on a custom engine, which is the great-grandchild of the code that runs Don't Starve. A lot of the guts have been replaced bit by bit over time, but it boils down to a small amount of custom C++ sitting above a rendering engine (BGFX in this case), and under a mountain of Lua script code.
  • The animators work in Flash Animate, and we use a custom program to read the FLA files and convert everything to a pile of xml and png files. These in turn get converted to a quick-to-load binary format that's specific to each platform (in this case, DXT compressed files for windows). One of our other games, Oxygen not included, uses the same animation and export principles but converts it into something that Unity can use. 
  • We tend not to use much skeletal rigging, per-se. Our skeletons have a root bone and a head, and pretty much everything is parented to one of those. Having 3D-style chains of bones tends to make 2D animation look kind of "cheap", because your eye sees those perfect computer-imparted rotations and they don't fit in with the rest of it. We tend to have a LOT of individual drawings for a given build, which helps make things look nice, too.
  • Transitions in griftlands are mostly just code calls to "play animation" or "queue animation". We've done full-on stategraphs before (Don't Starve, Mark of the Ninja), and they're a really powerful tool. Griftlands was just on the right side of complex that I didn't think we needed to implement them here. Not sure if that was the right call, but it's hanging together.
  • Clean!? Ha! Lua is very powerful but your codebase can become a hot mess if you take your eyes off of it for a second. There's a lot of content in the game, and we're not really heavy documentation people, so we benefit from the institutional knowledge that comes from working together for a long time.

Anyway, hope this helps. I've seen your voice acting GL videos and they're fun!

Oh, here's this. It's a bit old, but a lot of the principles hold up: 


Share this post

Link to post
Share on other sites
TaschDraws    797

Oh my goodness thanks so much for this @Kevin!! I appreciate the insight, I know you guys are all busy and dealing with a lot (plus I know how difficult it is to try and develop a game from home :dread: and our project was student-made -- I can only imagine how nightmarish it is to get the remote situation working for a whole studio lol!). Thanks again for your time!

This video has been a phenomenal watch it's really helped clarify a lot. I definitely have some follow-up I'd love to ask sometime, but I'll spare you guys that storm of questions haha -- I just saw that you guys have a bunch of VODs saved on Twitch so I'll check those out, and I'll look forward to the dev streams starting up again at some point!

Ohhh you saw the voice acting clips oh god- Glad you liked them haha! We've been having a blast and there's more in the works (all three of us are counting down the seconds until Smith's finally released cause then it's ALL over ), but we're uhhhh...very sorry to have subjected you guys to that LMAO

Share this post

Link to post
Share on other sites