Dev Blog

RSS Podcast

A Debugging Story

I’ve been wanting for some time to write something about debugging. I think it’s a really important topic that’s often overlooked. It’s not really taught in computer science classes (except to the extent you learn it by debugging your own programs). There aren’t many good books about it. Etc.

More »

...

The Machinery Beta — April 2021 (version 2021.4)

It’s that time again! A new month and a new The Machinery release. Hope you are enjoying the longer, sunnier days, as well as our new additions! If you are already running The Machinery, this new release should pop up in your Downloads tab. Otherwise, get it from our beta download page and have a look at this quick introduction video. If you find bugs in this release or have requests for specific features, post them to our issue tracker. More »

...

Gamepad Implementation on Linux

Hey everyone! If you remember my last post, one of the missing features was joystick support on Linux, which I’d say is pretty much essential for any game engine. We have gamepad support working on The Machinery now and, in this post, I want to share the implementation process, what you need to know to support gamepads in an application, and talk a little about the input system in the engine. I had never worked with joystick programming before and this is the research I did about the subject and some notes I took during development, so if I missed some point or misinterpreted some information, please let me know in the comments.

More »

...
A Debugging Story The Machinery Beta — April 2021 (version 2021.4) Gamepad Implementation on Linux Dig Shallow Graves The Machinery Beta — March 2021 (version 2021.3) Porting The Machinery to Linux The Machinery Beta — February 2021 (version 2021.2) Moving The Machinery to Bindless Dino! Dino! The Machinery Beta — January 2021 (version 2021.1) Summer Fun with Creation Graphs The Machinery Beta — December 2020 (version 2020.12) Interns at Our Machinery: Simon Interns at Our Machinery: Frank The Machinery Beta — November 2020 (version 2020.11) Interns at Our Machinery Linear Algebra Shenanigans: Gizmo Repair The Machinery Goes Open Beta Step-by-step: Programming incrementally The Machinery Beta — September 2020 (version 2020.9) Borderland between Rendering and Editor — Part 3: Selection Highlighting WaSaBi Part 5: Making it WFH The Machinery Beta — August 2020 (version 2020.8) The Machinery Beta — July 2020 (version 2020.7) Prototypes in The Machinery The Machinery Beta — June 2020 (version 2020.6) Subgraphs and Function Graphs Borderland between Rendering and Editor — Part 2: Picking The Machinery Beta — May 2020 (version 2020.5) WaSaBi Part 4: Working From Home Recording Statistics — An Exercise in Minimalism GPU Simulation The Machinery Beta — April 2020 (version 2020.4) WaSaBi Part 3: Accessibility The Machinery Beta — March 2020 (version 2020.3) Writing a Low-Level Sound System — You Can Do It! Borderland between Rendering and Editor - Part 1 GDC 2020 Time Tracking In 2020 See Ya Later 2019! Alpha Update More on Creation Graphs WaSaBi Part 2: Defining Culture Data Structures Part 3: Arrays of arrays Vertex Assembly and Skinning We are Starting a Business, ideally -- Part 1 Data Structures Part 2: Indices Data Structures Part 1: Bulk Data Summertime Rolls Syncing a data-oriented ECS with a stateful external system The Machinery Asset Pipeline Quick Update Creating Cross-Language APIs Referencing Objects: Names vs GUIDs Creation Graphs Our Machinery Meetup What's happening this year Localization in The Machinery’s UI The Anti-Feature Dream Vasa The Story behind The Truth: Designing a Data Model Entity-Component-Systems and Rendering Our Machinery Podcast Part 10: Community Management A Tale of Two Bugs Device Memory Management Marketing Mini Series Part 9: Internal Marketing Making the move/rotate/scale gizmos work with any component The Machinery Shader System (part 3) Marketing Mini Series Part 8: Online Marketing 101: The Four Pillars Implementing drag-and-drop in an IMGUI The Machinery Shader System (part 2) GDC meetup! Marketing Mini Series Part 7: Websites The Document Model and The Machinery The Machinery Shader System (part 1) Marketing Mini Series Part 6: Co-Marketing/Partner Efforts Minimalist container library in C (part 2) Explicit Multi-GPU Programming Marketing Mini Series Part 5: Demos Minimalist container library in C (part 1) A year in review Vulkan: Pipelines and Render States Marketing Mini Series Part 4: PR (Public Relations) Should entities support multiple instances of the same component? Vulkan: Command Buffer Management Marketing Mini Series Part 3: Branding Virtual Memory Tricks Vulkan: Descriptor Sets Management Marketing Miniseries: Part 2 User Groups and User Conferences Multi-Threading The Truth It’s All About The Data Keyboard Focus and Event Trickling in Immediate Mode GUIs Simple Parallel Rendering How to Marketing (A 10-Part Mini Series) Moving away from GitFlow High-Level Rendering Using Render Graphs Let's All Go to the Conference DLL Hot Reloading in Theory and Practice DPI-aware IMGUI Interviewing Part 2: The Interviewer One Draw Call UI Interviewing Part 1: The Interviewee Defaulting to Zero UI rendering using Primitive Buffers The Importance of Diversity Little Machines Working Together (Part 2) Efficient binding of shader resources Finding Alignment Little Machines Working Together (Part 1) A modern rendering architecture Quality Life, Quality Work One-button source code builds Our development methodology Our Origin Story Physical Design of The Machinery Fiber based job system Day 1 Blog