tl;dr: I'm still making games and game systems!
A quick 2025 recap
- I started the year still at Manticore Games.
- I left Manticore to join Meta in July.
- Manticore's big new game—Out of Time—launched in September!
- I made some fun simple games with friends for three game jams:
Meta Horizon Engine
I'm currently working at Meta on the Meta Horizon Engine. I'm enjoying it! I got pretty lucky with a good team, and the projects I work on are all very game-system focused. I work on the game engine and on the scripting APIs we expose to creators for access to engine systems.
For the most part, working at Meta feels very similar to working at Google. They have a very similar laundry list of cool big-tech-company perks (like a private shuttle system, free breakfast/lunch/dinner at their cafes, convenient micro-kitchen snacks, on-site gyms, ...). Also like Google, the biggest perk is just that all the people I work with are supremely talented, so it's easy to make things happen, and there are a lot of opportunities to learn from the best.
Meta also has very similar big-tech internal systems and processes, which make some simple tasks feel like I have to jump through more hoops than necessary, and some changes take longer to submit, but mostly it makes it feel like I have incredibly powerful tools for quickly addressing all the minutia of day-to-day software engineering.
The main difference from working at Google is that I can really feel the "move fast" (and break things) mantra in how Meta operates at all levels. At times, this makes it feel less like Google and more like an indie game studio.
HOWEVER, on the Meta Horizon Engine team, we have a strong commitment to make our creator-facing APIs backward compatible forever, which is the antithesis of "move fast". It's a particularly challenging constraint for our engineers. I spend a lot of time conducting thorough API design reviews to make sure we don't publish APIs that we will regret having to live with—unchanged for forever. We can still deprecate an API, but that just means we tell people not to use it; we still have to leave the API working for any creators that may already be using it. In a sense, our perspective is to treat our engine like the Internet, and published creator worlds (games) as web pages. Website functionalities supported by browsers have changed a lot since the 1990s, but, any old website still around from the 90s should still work just the same in today's browsers (except for <blink>).
I've also been working on a handful of other stuff like redesigning some of our networking patterns, and implementing a large new VFX system.
Side projects
I'm also still plunking away slowly on my Godot side project. I've started rewriting Surfacer; it's now going to be a GDExtension, which means it's written in C++ rather than GDScript, and I'll have a lot more control over optimizing performance. I'm also going to redesign it to support dynamic level terrain rather than relying on a precompiled platform graph of the static level.
I may indulge myself with a brief tangent sometime soon to play around with Godot's networking APIs and create some reusable infrastructure for hosting game servers for networked games.
I'm also still doing the usual game jams a few times a year, so you should hear from me again pretty soon about Global Game Jam!
Comments
Post a Comment