Uses This

1283 interviews since 2009

A picture of Kyle Kukshtel

Kyle Kukshtel

Game developer, toolmaker

in developer, game, mac, windows

Who are you, and what do you do?

I'm Kyle Kukshtel, a game developer and game toolmaker. I run the game studio Afterschool, and was the lead programmer and creative director on our first project, Cantata. Most recently I was at Possibility Space as a Lead Systems Engineer (RIP) and worked on a lot of the under-the-hood systems-y things that made the overall game tick.

My primary focus is making games, but I've found through making games that I also really enjoy making tools (and open-sourcing them). My biggest contribution in this sphere to date is probably the data-authoring/editing tool Depot, but I've done some smaller things like the narrative scripting language Squiggle that I think are just as great, though less well known.

Recently, a lot of my side-project efforts have been focused around a code-only 2D C# game framework I'm making called Dinghy (recently renamed Zinc). The general idea is that it's a "modern" C# engine, and uses lots of nice C# things to making working in 2D really quick and easy (and has none of the Mongame/XNA baggage/nostalgia). I've got some early users testing it and am happy to say it is indeed living up to some of the promise, and I'm working on it as well for a few personal game projects. Backend of it is Sokol + STB + Cute, with bindings generated by ClangSharpPInvokeGenerator.

As another side project shoutout, I also recently made, which is a "dead simple no-frills" collaborate moodboarding/image gallery site. It grew out of what I called "spite driven development" (blog post incoming) where I just wanted to share some images with a friend and realized how insanely onerous it is to do what seems like it should be so simple. I've soft launched it into the world, but would be happy for other people to give it a go.

Lastly, I take seriously the role of education for developers, and feel in part that developers should really incorporate more of a writing process into their work. It's something I try to directly embody (taking a lot of inspiration from people like Simon Wilson), where, when I do something that feels even somewhat notable or difficult or whatever, I try to write about thing in the hopes to help some version of me that may also be out there looking for similar questions. I think I tend to work at the edge of my own understanding, which means that I'm in perpetual pain of feeling like I know nothing, but writing helps me both process what I eventually (inevitably?) learn and show that it was worth it.

Though I work at a bigger company now, I also view writing about game dev specifically to be something as a near moral imperative. It's very easy to ask much smarter and more tenured people in a company about difficult questions and get easy access to answers, but those same resources are not available to the masses of indies out there that likely have similarly oriented questions. I don't really write about what I do at my job, but when I encounter stuff via side projects especially that feel even marginally relevant to other developers, I try to write about that. I really endeavor to have the type of blog where, when you find one post, you find yourself wanting to read everything on the blog. I aspire to run a blog like Simon Wilson, Jackson Dunstan, and Julia Evans.

What hardware do you use?

My main game development machine is an m-ITX Intel board with 16GB RAM, i7-6700K, and a GTX 1070 shoved inside an NCASE M1 (built about 7? years ago). I messed up and got an ATX fan 1070 back in the day so the GPU just PUMPS hot air into the case and makes computer regularly overheat. That said, it serves two 27in 2K Dell IPS monitors just fine. I use a Logitech MX518 mouse and a Leopold FC660M keyboard with Cherry Brown switches. The computer is definitely starting to show its age for the latest AAA titles, but handles most mid-market and (aesthetically) indie stuff fine. For a laptop I use a Mac M1.

I'm a cohost of the videogame podcast Bad End and have The Standard Podcaster Combo of a Focusrite Scarlett 2i4 / Cloudlifter / and Shure SM7B mic. I've got a DUMB mic mounting situation where I've frakensteined a Frameworks boom arm to a Frameworks desk mount mic because I need the mic to boom over my multidisplay setup. I use AKG K240 headphones because that's what Adam Saltsman used back when he wrote a post similar to what I'm filling out now.

My first love was video/photography, so I've got some cameras as well. My iPhone 15 Pro Max has become my daily driver, but there is still nothing like shooting with a real camera. My main photo camera is a Fuji XPro-2, which I chose because (at the time) it was one of only two options (the other being a Leica) that had a real optical rangefinder. I love shooting with it and have basically 0 complaints — it's exactly what I want in a camera. However, when I'm going out to seriously Take Some Photos, I use a Mamiya 7 (and stand by Ken Rockwell saying it is simply The Best Camera). The image quality that comes out of that thing is unparalleled and every image it captures seems to capture so much more than whatever was in front of the camera. I shoot 15 photos on the X-Pro2 to "find the shot", and on the Mamiya I get it the first or second time. I shoot it on Portra 400 (120mm). Relatedly, I have an Epson V600 flatbed scanner, which anyone who has shot 120mm 6x7 photos knows is a PITA because you can only scan two photos from the roll at once.

I've got some unexceptional Costco office chair BUT I've got Stealtho Caster Wheels (with locks!) on it which are an amazing upgrade. Putting rollerblade wheels on your office chair may seem silly but once you do it you'll never look back.

Like all good software developers I also have a work in progress Eurorack synthesizer rig that stalled out for a bit. In it are an Intellijel Atlantis, Mutable Instruments Rings, and a Make Noise QPAS. I had a lot of other stuff I wanted to add into it but got busy so it now collects some dust. Other audio toys — Elektron Octatrack MKII, Teenage Engineering OP-Z (and PO-33 K.O! + arcade), Korg's little modular box, and various others I'm forgetting. I haven't looked at music stuff in a few years and assume there are a whole host of new things that are just pining to replace what I've got.

And what software?

Primary daily driver of game development is Unity and Jetbrains Rider. I also still actively use VS Code for various things (all of Cantata was done in VS Code!) and it's my go to "I need an editor" editor. I use Git mainly for source control and use GitKraken to manage that (it is better than the terminal interface, sorry!). For terminals, I use the modern Powershell on Windows and on Mac it's iTerm with oh-my-zsh and lots of other things (Powerlevel9K, brew, z, neovim when I need it, exa).

C#/dontet is my language and platform of choice (seriously I love it and I promise you modern dotnet ain't your grandpa's dotnet) so I have dotnet installed on both my laptop and desktop.

Other random software: 1Password for password management, Typora for writing "writing", Obsidian for taking notes, DaVinci Resolve for editing video, Figma for general graphic design work (I've mostly purged Adobe from my life), Capture One for photo management/editing. I'm also trying out Tana for trying to get a handle on my vast catalog of possible projects, and I've been really enjoying it. I use Edge for my browser on Windows (seriously it's really good) and Safari on the M1. As a side note, I'm a giant tab packrat. On any machine at any given time I likely have 3-10 browser windows open, each other 3-50 tabs. Current count as I write this: 81 tabs spread across 9 windows.

For service-y stuff — my blog runs on, I use Feedly as an RSS reader. musicForProgramming is one of my most visited sites and I'm glad to see that they are still cranking (Cargo's Useful Music on SoundCloud is also good!). Since the Twitter implosion I use most social media way less, but for Mastodon I use Ivory (and am trying out Mammoth). I haven't logged into Twitter on my new phone and probably never will ("not with a bang but with a whimper"...). I used Supabase for and really liked it so will probably continue to use that as a backend for other projects. The Afterschool forums run on Discourse (hosted on DigitalOcean), which is a service I am continually amazed by — it's so well thought out and can do so much, all while still being manageable. I love it. I've started using as a sort of tumblr, and capture cool inspiration images I find there on a moodboard here:

On notetaking specifically, I've tried so many things, but one constant I've come back to is Google Keep — on mobile I can rapidly put stuff in and then access it on any platform with basically 0 fuss. I live a cross platform life so that sort of thing is important to me (and also why sometimes the easiest way for me to share something is to send myself a message on Discord).

What would be your dream setup?

I need to build a new computer. The one I've currently got is long in the teeth — I'd want something in the Loque case with an underslung GPU and get rid of all my spinning disk HDD storage. Outside of that, I feel like I've got everything I kind of want.

If anything the dream setup is more "liberation from work". I have a ton of ideas of things I want to make/write/work on, but the realities of life mean that I can't just directly pursue those interests. So "liberation from work" and a giant library room with massive floor to ceiling windows that look out onto a forest — that would be nice.