insraq | 4 months ago | on: Apple M5 chip
insraq's comments
insraq | 9 months ago | on: Making video games (without an engine) in 2025
> Most people think of a “game engine” as code that is shipped with the game executable. However, that’s only half of it. The other half, which I’d argue is more significant, is the code that is not shipped with the game - level editors, content pipelines, debugging/profiling tools, development workflows, etc.
Writing tools is arguably more boring and tedious compared to writing an engine, and that's where lots of "making a game with custom engine" type of project grinds to a halt
[1] https://ruoyusun.com/2025/04/18/game-sequel-lessons.html
insraq | 11 months ago | on: SpacetimeDB
As to how to store the game state in memory, it's usually not something that needs much thinking: it's simply done the same way (or similar) as the game's client code. After all, netcode is mostly about efficient state replication and this saves CPU time when replicating it across clients - and gives more CPU time for minimizing bandwidth (like delta encoding, quantization, etc). If you want, you can utilize some techniques like ECS to optimize for CPU cache locality, but it affect gameplay code a lot and would need to get the whole team onboard.
Also, I just noticed the username "gafferongames" - Glenn's blog[1] has been a must-read for netcode engineers. It helped me a lot when I started working on netcode in the 2010s
insraq | 3 years ago | on: Ask HN: Any solo game developers here?
P.S. Industry Idle has been open sourced a while ago, if anyone is interested in the code[3]
[1] https://store.steampowered.com/app/1574000/Industry_Idle/
insraq | 4 years ago | on: Game performance optimization – A practical example from Industry Idle
insraq | 4 years ago | on: Game performance optimization – A practical example from Industry Idle
insraq | 4 years ago | on: Game performance optimization – A practical example from Industry Idle
I ended up not doing it in this iteration because:
- cocos2d's custom shader support is kind of poor, especially documentation is pretty much zero
- the dot is not "purely" visual. For example you can trace and highlight a resource's movement. This is not a blocker per se, but requires more work
insraq | 4 years ago | on: Game performance optimization – A practical example from Industry Idle
They are not "bursty", but they can fluctuate. Power fluctuation, fuel shortage or upstream supply chain issue could cause a building to skip a production cycle - and impact all its downstream. In fact that is a core challenge in the game. So the core game logic has to be simulated, not calculated.
Doing multithread in JavaScript (via WebWorker) is kind of painful.
insraq | 4 years ago | on: Game performance optimization – A practical example from Industry Idle
The "background mode" mentioned in the article is about the Steam version, which runs in Electron and I have to set `backgroundThrottle: false` flag. In this case, Electron will not throttle timers and I can safely disable rendering while leave the logic running.
[1] https://www.reddit.com/r/incremental_games/comments/seid8w/c...
insraq | 4 years ago | on: Developing Games on Linux: An Interview with Little Red Dog Games
Most people are very helpful and quite understanding that as a sole indie developer, it would be hard to support all the configurations. But occasionally I get angry emails and negative reviews about game not running on Linux.
Given the sales (Linux is 1% of the total sales, Mac is 3%), I would say for an indie developer, it makes more sense to put Linux support on a low priority. It is unfortunate for Linux gaming community but it is what it is.
Also even though Proton has come a long way and has become relatively stable - occassionally there are some strange issues (like Steam Cloud sync fails, etc) here and there. But overall the effort is much lower compared to maintain a separate Linux build.
insraq | 4 years ago | on: Hyperscript is an experimental scripting language designed for the web
insraq | 5 years ago | on: Try the new try.haxe
insraq | 5 years ago | on: Making Games on Your Own as an Engineer
As a professional software dev, I've noticed that while both game dev and software dev are "writing code", they are done in a very different way.
As a software dev, the value proposition is more or less clear before you start writing code. As a game dev, you can only start to see your value proposition after you have finished your code - that's why game code, especially as an indie without clear distinction between prototype and production phase, tend to become spaghetti really quick - and that's fine. If you spend too much time to make the code look nice, then you are not spending enough time to make the game actually fun.
Software usually has some logic behind it - it has to make "sense". A game doesn't necessarily have to make sense - it needs to "feel right" and "fun". That means your nicely designed abstractions actually won't be reusable - copy & paste is much more pragmatic. You can start to look to refactor after your game is actually successful (or fun at least) but even then you will realize that most of the code is not reusable.
A big part of your game code is actually "content", instead of "systems" - meaning they are closer to a "script" than a well architectured software code. So you write more if-else and less inheritance and encapsulation (unless you are writing your own engine, then in that case, your engine code is actually close to software projects).
And if you hate writing UI for software, you'll hate writing UI for games even more.
insraq | 12 years ago | on: PhpMyAdmin Turns 15
insraq | 12 years ago | on: Things I Wish I Were Told About Angular.js
insraq | 13 years ago | on: Web Framework Benchmarks
insraq | 13 years ago | on: My Take on CoffeeScript
insraq | 13 years ago | on: My Take on CoffeeScript
insraq | 13 years ago | on: My Take on CoffeeScript
insraq | 13 years ago | on: My Take on CoffeeScript
[1] https://ruoyusun.com/2023/10/12/one-game-six-platforms.html#...