Articles

Animation Architecture ๐Ÿ‡บ๐Ÿ‡ธ

How a creature in Standard of Iron goes from "this unit is attacking" to moving geometry on screen โ€” and why it is fast enough to do for thousands of units at once...

Combat System ๐Ÿ‡บ๐Ÿ‡ธ

This document describes the RTS combat system in Standard of Iron, including...

Victory System ๐Ÿ‡บ๐Ÿ‡ธ

Victory rules look simple on the surface: destroy the enemy, hold out for a timer, protect your commander. The tricky part is making those rules fast enough to check every frame, flexible enough for missions and skirmishes, and explicit enough that content authors can tell what will actually happen...

Audio Wishlist ๐Ÿ‡บ๐Ÿ‡ธ

Thanks for stopping by. This site is free to use; please be respectful and avoid misuse. For questions or collaboration, reach me on LinkedIn or GitHub...

Introduction to Version Control ๐Ÿ‡บ๐Ÿ‡ธ

Git is a powerful and widely used version control system that helps you manage code changes, work with others, and keep projects safe. Think of it as a digital timeline you can jump back to whenever something goes wrong. Here are some straightforward reasons to learn Git...

Git Internals ๐Ÿ‡บ๐Ÿ‡ธ

Git stores your project as a graph of immutable objects. Instead of storing changes as a sequence of file diffs, Git stores snapshots of your project. Each snapshot is built from content-addressed objects, meaning each object is identified by a hash of its contents...

Observing Repository ๐Ÿ‡บ๐Ÿ‡ธ

Git offers several ways to inspect and understand what has changed in your codebase. Mastering these commands helps you monitor progress, spot issues early, and keep your project history organized. Think of it like reading the "track changes" feature in a word processor, but for your entire code pro...

Synchronization ๐Ÿ‡บ๐Ÿ‡ธ

When collaborating on a project, it's essential to keep your local repository updated with changes made by others in the team. Git provides powerful commands to facilitate this process...

Create Repository ๐Ÿ‡บ๐Ÿ‡ธ

Git is a version control system (VCS) created by Linus Torvalds, the same person who developed the Linux kernel. Itโ€™s a tool for tracking changes to files over time, mainly used in software development but useful for any project that involves evolving files...

Stashing Files ๐Ÿ‡บ๐Ÿ‡ธ

In Git terminology, "stashing" refers to temporarily saving changes that are not ready to be committed. This allows you to switch branches or make other changes without losing your work...

Making Changes ๐Ÿ‡บ๐Ÿ‡ธ

The three core actions youโ€™ll perform most often in Git are staging, committing, and undoing changes...

Creature Bpat Format ๐Ÿ‡บ๐Ÿ‡ธ

BPAT is the game's motion book for a creature species...

Ai Architecture ๐Ÿ‡บ๐Ÿ‡ธ

This document describes the current enemy AI in Standard of Iron: what it already does well, how it is configured, where mission JSON plugs into it, and which expansions still remain before it reaches a fuller professional RTS standard...

Pathfinding Architecture ๐Ÿ‡บ๐Ÿ‡ธ

Pathfinding in Standard of Iron is deliberately simple at the core: the game keeps one flat 2D navigation grid, and A* searches that grid. The grid is not a physics simulation, not a unit occupancy map, and not a navmesh. It is a compact answer to one question...

Mission Framework ๐Ÿ‡บ๐Ÿ‡ธ

The Mission Framework provides a formal authoring layer for creating structured gameplay experiences in Standard of Iron. It separates playable maps from mission logic, allowing designers to create reusable missions and organize them into campaigns...

Rendering Architecture ๐Ÿ‡บ๐Ÿ‡ธ

Picture this: you've got thousands of soldiers on screen, each with unique armor, weapons, and animations. Grass is swaying, rivers are flowing, and you need all of this running at 60 frames per second. How do you pull that off without your GPU catching fire...

Asynchronous Programming ๐Ÿ‡บ๐Ÿ‡ธ

Asynchronous programming is a technique used to achieve concurrency, where tasks can be executed independently without waiting for other tasks to finish. It allows for nonblocking behavior, in contrast to synchronous execution that waits for one task to complete before starting the next task...

Multithreading ๐Ÿ‡บ๐Ÿ‡ธ

Multithreading refers to the capability of a CPU, or a single core within a multi-core processor, to execute multiple threads concurrently. A thread is the smallest unit of processing that can be scheduled by an operating system. In a multithreaded environment, a program, or process, can perform mul...

Multiprocessing ๐Ÿ‡บ๐Ÿ‡ธ

Multiprocessing involves running multiple processes simultaneously. Each process has its own memory space, making them more isolated from each other compared to threads, which share the same memory. This isolation means that multiprocessing can be more robust and less prone to errors from shared sta...

Logical Volume Management ๐Ÿ‡บ๐Ÿ‡ธ

Storage devices such as HDDs, SSDs, USB drives, and virtual disks provide raw space. Before that space can be used conveniently, it usually needs to be divided, organized, formatted, and mounted...

Commands ๐Ÿ‡บ๐Ÿ‡ธ

Let's talk about some seriously useful tricks that'll make your command-line life much easier. Ever find yourself thinking "I know I ran that command yesterday, but what was it again?" or "There has to be a faster way to do this!" Well, you're in luck, the terminal has some fantastic features to hel...

Encryption ๐Ÿ‡บ๐Ÿ‡ธ

Encryption is one of the main tools used to protect digital information. It keeps data private by changing readable information into an unreadable form. The readable version is called plaintext, and the unreadable version is called ciphertext...

Environment Modules ๐Ÿ‡บ๐Ÿ‡ธ

Environment Modules is a tool used to manage software environments from the command line...

Shells and Bash Configuration ๐Ÿ‡บ๐Ÿ‡ธ

A Unix shell is a command-line program that lets a user communicate with the operating system. Instead of using buttons and menus, the user types commands, and the shell interprets those commands...

Performance Monitoring ๐Ÿ‡บ๐Ÿ‡ธ

Performance monitoring is the process of observing how a system uses its resources...

Log Files and Journals ๐Ÿ‡บ๐Ÿ‡ธ

Understanding how logging works in Linux is like learning the language your system uses to communicate. Logs are the detailed records that your system keeps about its activities, and they are invaluable for troubleshooting, monitoring performance, and ensuring security. Let's embark on a journey to ...

Disk Io Analysis ๐Ÿ‡บ๐Ÿ‡ธ

Disk I/O analysis is the process of observing how data is read from and written to storage devices...

Services ๐Ÿ‡บ๐Ÿ‡ธ

A service is a background program that provides a function to the system, users, or other programs...

Ldap ๐Ÿ‡บ๐Ÿ‡ธ

LDAP stands for Lightweight Directory Access Protocol...

Sed and Awk ๐Ÿ‡บ๐Ÿ‡ธ

sed (Stream Editor) and awk are powerful command-line utilities that originated from Unix and have become indispensable tools in Unix-like operating systems, including Linux and macOS. They are designed for processing and transforming text, allowing users to perform complex text manipulations with s...

Hardware ๐Ÿ‡บ๐Ÿ‡ธ

Linux is well known for running on a wide range of hardware. It can run on laptops, desktops, servers, embedded systems, routers, single-board computers, virtual machines, and high-performance clusters...

Mounting ๐Ÿ‡บ๐Ÿ‡ธ

In Linux, mounting is the process of making a filesystem available somewhere inside the main directory tree...

Networking ๐Ÿ‡บ๐Ÿ‡ธ

Networking is the practice of connecting computers, servers, phones, routers, printers, and other devices so they can communicate and exchange data...

Supply Chain Attacks ๐Ÿ‡บ๐Ÿ‡ธ

A supply chain attack targets the tools, dependencies, build systems, or distribution channels that an application relies on. Instead of attacking the application directly, the attacker compromises something the application already trusts...

Yaml ๐Ÿ‡บ๐Ÿ‡ธ

YAML stands for YAML Ainโ€™t Markup Language...