Readit News logoReadit News
insraq commented on Apple M5 chip   apple.com/newsroom/2025/1... · Posted by u/mihau
ironman1478 · 2 months ago
It's surprising to me macs aren't a more popular target for games. They're extremely capable machines and they're console-like in that there isn't very much variation in hardware, as opposed to traditional PC gaming. I would think that it's easier to develop a game for a MacBook than a Windows machine where you never know what hardware setup the user will have.
insraq · 2 months ago
I wrote a post (rant)[1] about my experience of releasing a game on macOS as an indie dev. tl;dr: Apples goes a long way to make the process as painful as possible with tons of paper cuts.

[1] https://ruoyusun.com/2023/10/12/one-game-six-platforms.html#...

insraq commented on Making video games (without an engine) in 2025   noelberry.ca/posts/making... · Posted by u/selvan
samiv · 7 months ago
After having worked on my own (2D) game engine [1] for about 5 years now and having worked on related stuff for paid work I'd like to explain one thing that many people might not find so obvious.

Engines are the easy part.

The real meat & potatoes is all the tooling and content and asset pipelines around the engine. If you think about it, you need to implement:

  -  importing data from various sources and formats, textures, audio, model files such as gltf, fbx, animations etc etc.
  - editor app with all the expected standard editing features, cut, copy, paste, undo, redo, save, delete etc. 
  - all the visualizations and operations that let the game developer use the editor to actually create and manipulate data, entities, animations, scenes, audio graphs, scripting support etc. etc.
  - all the data packaging and baking such as baking static geometries, compiling shaders, resampling and packing textures, audio, creating game content asset packs etc
  - etc etc.
And this is just a small sample of all the features and things that need to be done in order to be able to leverage the engine part.

When all this is done you learn that the actual game engine (i.e. the runtime part that implements the game's main loop and the subsystems that go brrr) is actually a rather small part of the whole system.

This is why game studios typically have rather small teams (relatively speaking) working on the engine and hordes of "tools" programmers that can handle all the adjacent work that is super critical for the success of the whole thing.

[1] https://github.com/ensisoft/detonator

insraq · 7 months ago
I have recently done an engine rewrite for my sequel game and I very much agree with this. In my postmortem[1], I wrote:

> 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 commented on SpacetimeDB   spacetimedb.com/... · Posted by u/matthewfcarlson
gafferongames · 8 months ago
[flagged]
insraq · 8 months ago
Just want to chime in that although this comment is a bit harsh, it does hold a lot of truth. As a game netcode engineer, most of my time is spent on latency hiding techniques and its consequences (for example, we use rollback netcode and lots of efforts are spent on minimizing visual/sound glitches when mispredict, rollback and reconcile). There are lots of middleware that help with this (eg. Photon, SnapNet, etc) but in general there's no silver bullet - it's highly gameplay specific. Even for the same game, the solution can vary depending on different trade-offs (i.e. budget, correctness/anticheat).

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

[1] https://gafferongames.com/

insraq commented on Ask HN: Any solo game developers here?    · Posted by u/YesBox
insraq · 3 years ago
I am a solo indie game dev - and have released Industry Idle[1] - a factory building/supply chain management/trading sim about two years ago during pandemic where I've got some free time. Now I am working on a spiritual successor called CivIdle while maintaining Industry Idle (it has a global real-time player driven market, which surprisingly takes quite some effort for maintenance, and that has slowed down the new development by a considerable amount)

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/

[2] https://store.steampowered.com/app/2181940/Cividle/

[3] https://github.com/fishpondstudio/industryidle

insraq commented on Game performance optimization – A practical example from Industry Idle   ruoyusun.com/2022/01/28/g... · Posted by u/insraq
dfghdfhs · 4 years ago
Are the logic and the rendering loop in separate threads?

If so, how do you ensure that when the rendering loop reads the shared state, it sees something consistent (i.e. something that hasn't been updated by the logic loop in between the time when the rendering loop started accessing it, and the time when the rendering loop finished accessing it)?

insraq · 4 years ago
No. Multithread JavaScript (WebWorker) is a bit hard to work with. So currently they are all running in the main thread, just "at separate cadences"

u/insraq

KarmaCake day669July 4, 2011View Original