HNHacker News
TopNewBestAskShowJobs

YesBox

1,157 karma · joined April 17, 2022

chase@yesboxstudios.com

I'm creating Metropolis 1998, a 2D city builder/simulation video game.

https://store.steampowered.com/app/2287430/Metropolis_1998/

submissionscomments
YesBox··on I’m spending months coding the old way
I was typing up a long and somewhat boring story.

So, the short of it is that this is a great insightful comment that I can back up with my own experience in making a game from scratch over the last 4+ years.

YesBox··on Write less code, be more responsible
I've been developing a moderately popular (for an indie) game for over 4 years at this point (full time). C++, SFML, SQLite. Same as you: no coding assistants, no agents, etc. I also don't use git. [1]

One of the largest speedups is from how much of the codebase I can keep in my head. Because I started from an empty C++ file, the engine reflects how I reason and organize concepts (lossless compression). Thus most of the codebase is in my brains RAM.

I don't see how LLM agents are going to improve my productivity in the long run. The less a person understands their code (organized logic), the more abstracted the conversation is going to become when directing an agent. The higher up the abstraction ladder you go, the less distinct your product becomes.

[1] And very, very rarely have I wished I had it for a moment. Not using git simplifies abstracted parts of development. No branches, no ballooning of conceptual tangents, etc. Focus on one thing at a time. Daily backups and a log of what I worked on for the day suffices should I need to revisit/remember earlier changes. I've never been in a situation where I change I made over a week ago interfered with todays work.

YesBox··on Škoda DuoBell: A bicycle bell that penetrates noise-cancelling headphones
for your safety, when people hear a car horn, they’re going to be looking for a car.
YesBox··on Significant progress made on Xbox 360 recompilation
Where can I boot up Coke Studios? Enjoyed that game as a kid, including making music (which was so friggen cool! They had tons of samples you could just drag and drop into a timeline).

Edit: fun memory. I figured out how scamming works at some point. IIRC (and I may not) I set up a minigame in my studio, and contestants had to give me their furniture to participate in a game. Since furniture could stack weirdly, people made all sorts of crazy mazes that were actually quite difficult to navigate due to the fixed isometric perspective.

Each stage required handing over a more expensive item than the last. At some point someone handed over a super rare/expensive piece of furniture.

Not gonna erase that. ACTUALLY I think I figured out how to clone items due to a bug. Or mine infinite DBs. Used that as cover to get someone to give me their item. Was a long time ago.

Anyways, a user handed me their super rare item and I then gave them a stern warning on how this is a common scam and I just stole their item(s). Then I handed everything back over to them and they profusely thanked me. lol

YesBox··on ICAO issued new power bank restriction on flight
I wasn't sure what a solid state battery is, so I looked it up on Wikipedia.

Fun fact though:

> Between 1831 and 1834, Michael Faraday discovered the solid electrolytes silver sulfide and lead(II) fluoride, which laid the foundation for solid-state ionics. Through his research, Michael Faraday took note of these solid compounds transitioning from insulators to conductors after being heated. While this would take almost another century to be acknowledged by Michael O'Keeffe in 1976, this mixed ionic/electronic conductions became the first record of a solid-state battery

(emphasis mine)

YesBox··on The gold standard of optimization: A look under the hood of RollerCoaster Tycoon
I dont know how it's implemented by the standard/compiler (not my domain). The performance differences are well documented though.

I've used both in my pathing code and tested each in debug/release.

Even if the std:: implementation was as fast as possible, you're still adding bit manipulation on top of accessing the element, so it will be slower no matter what you do.

YesBox··on The gold standard of optimization: A look under the hood of RollerCoaster Tycoon
> A cache miss is going to mean anywhere from a 100 to 1000 cycle penalty. That blows out any sort of hit you take cutting your cycles from 3 to 1.

A good example of this is using std::vector<bool> vs. std::vector<uint8_t> in the debug build vs release build.

vector<bool> is much slower to access (it's a dynamic bitset). If you have a hot part of the code that frequently touches a vector<bool>, you'll see a multiple X slowdown in the debug build.

However, in the release build, there is no performance difference between the two (for me at least, I'm making a fairly complicated game). The cache misses bury it.

YesBox··on Rob Pike’s Rules of Programming (1989)
Wow! I'm shocked Limbo took 3 years and had a larger team. I've played a bit of the game (but didn't complete it). Looking at the Steam reviews and a quick search shows me it takes 3-10 hours to beat the game. :O
YesBox··on Bus travel from Lima to Rio de Janeiro
Thanks for reminding me how beautiful Rio ("Hio") is! I went to Brazil twice in the late 2000s. Brings back some fun memories:

- Most of the locals on the beach will start clapping when the sun begins to set. Ipanema is a beautiful beach/area.

- Brazilians are curious and happy to chat with foreigners. I particularly enjoyed how slowly everyone walked, not in a rush to get to anyplace.

- If you're staying in hostels, it's really easy to fall into the trap of hanging around other foreigners who pretty much all speak English fluently (which is fun, but isn't the main purpose of traveling IMO). I learned a little Portuguese before traveling which helped break out of that. I also couch surfed (stayed in strangers homes), which was fun.

- I found the cuisine to be light, though I was on a budget. Pretty sure I lost weight and had to eat more frequently. I miss Acia bowls.

- Dont drink unfiltered tap water, and make sure the bottled water seals aren't broken. I got sick a couple times regardless.

- Carnaval and soccer (football) matches are wild. Tons of energetic people.

- I was never mugged, but met a lot of people who were, or knew someone who was (locals and foreigners). Maybe things have changed. Traveling alone at night is not a good idea.

YesBox··on I was interviewed by an AI bot for a job
Applicants are using AI too. I've heard from people who hire/post jobs that they gets hundreds to low thousands of applications, and maybe 5% of them have any relevant experience. The problem is the breakdown of trust is costing all of us.
YesBox··on Ask HN: What Are You Working On? (March 2026)
Thanks! The vertical axis is also broken down into a grid in a sense. Each "cell" is placed in a specific floor as far as the engine is concerned.

So like (C++):

   vector<uo_map<int, ObjStruct>>
Each vector element is a floor. You just need to move the sprite up in screen space to position it.

Though I wish I went with a vector<vector<vector<ObjStruct>>> approach now a days <chunk_id>, <floor>, <object>

YesBox··on Ask HN: What Are You Working On? (March 2026)
Thank you! Really appreciate it :)
YesBox··on Ask HN: What Are You Working On? (March 2026)
Not at launch, but I'll be looking into porting during early access! Everything in the game is cross-platform ready
YesBox··on Ask HN: What Are You Working On? (March 2026)
Thanks :)

I'll be looking into porting during early access. I've heard the game runs on Linux with a compatibility layer though.

I do everything except the pixel art and buildings. It is a crazy amount of work!

YesBox··on Ask HN: What Are You Working On? (March 2026)
My career background is software, but I've been a creative person my whole life.

Ive hired out help for the pixel art, and then I enhance everything with shaders (tech art).

If you're gonna make a game as an indie, you need to figure out ways to fill in your skill gaps. The competition is brutal. If you can't do it/dont have time to learn and do it, then the only other option is to hire out.

or

A lot of studios are formed from people (cofounders) who depart larger studios, so if you really want to get into the industry, you could start there and network.

YesBox··on Ask HN: What Are You Working On? (March 2026)
Thanks! Designing your own buildings is optional. The game has a feature to place zones where buildings automatically grow, but will be limited to residential and office zones at early access launch.
YesBox··on Ask HN: What Are You Working On? (March 2026)
The limited transportation options is temporary (the game is launching into early access).

Both adults owning a car will be dynamic/based on the city once there are more transportation options.

I'll also be adding options so the player can control how difficult traffic management is.

YesBox··on Ask HN: What Are You Working On? (March 2026)
Thanks! Yes, I created my own engine to maximize efficiency (where needed). I think it was the right choice for me.
YesBox··on Ask HN: What Are You Working On? (March 2026)
Cool! I was going to shamelessly ask if your DnD group had an open spot I could interview for :), but you're not in Austin.

(If you're a local reading this and enjoy DnD w/ roleplay and acting, email's in my profile)

YesBox··on Ask HN: What Are You Working On? (March 2026)
I changed gears and moved into the video games industry at the end of 2021.

I started developing a city builder called Metropolis 1998 [1], but wanted to take the genre in new directions, building on top of what modern games have to offer:

- Watch what's happening inside buildings and design your own (optional)

- Change demand to a per-business level

- Bring the pixel art 3D render aesthetic back from the dead (e.g RollerCoaster Tycoon) [2]

I just updated my Steam page with some recent snapshots from my game. Im really happy with how the game is turning out!

[1] https://store.steampowered.com/app/2287430/Metropolis_1998/

[2] The art in my game is hand drawn though

YesBox··on Labor market impacts of AI: A new measure and early evidence
I’ll believe it when I see the code
YesBox··on LLMs work best when the user defines their acceptance criteria first
Heh, people like to have someone else to blame.
YesBox··on It took four years until 2011’s iOS 5 gave everyone an emoji keyboard
Wow, that's comparatively very colorful. If they were kept, I wonder how HN's userbase would be different. Or how the culture would be different today. It's a different experience being able to communicate with colorful symbols. You can imply or compact a lot of words into one emoji :D
YesBox··on Labor market impacts of AI: A new measure and early evidence
How can we verify if you dont post the code?

I appreciate you testing, even though it's not a great comparison:

- My feedback cycle of LLM prompting forced me to be more explicit with each call, which benefited your prompt since I gave you exactly what to look for with fewer nuances.

- Maybe GPT 5.1 is old or kneecapped for newer versions of GPT

- Maybe Opus/Claud is just a way better model :P

Please post the code!

Edit: Regarding "exactly what to look for", when solving a new problem, rarely is all the nuance available for the first iteration.

YesBox··on Labor market impacts of AI: A new measure and early evidence
Would be helpful if you pointed out what I did wrong :).

If it's "you didn't explain the problem clearly enough", then that aligns with my original comment.

YesBox··on Labor market impacts of AI: A new measure and early evidence
I dont use LLMs much. When I do, the experience always feels like search 2.0. Information at your fingertips. But you need to know exactly what you're looking for to get exactly what you need. The more complicated the problem, the more fractal / divergent outcomes there are. (Im forming the opinion that this is going to be the real limitations of LLMs).

I recently used copilot.com to help solve a tricky problem for me (which uses GPT 5.1):

   I have an arbitrary width rectangle that needs to be broken into smaller 
   random width rectangles (maintaining depth) within a given min/max range. 
The first solution merged the remainder (if less than min) into the last rectangle created (regardless if it exceeded the max).

So I poked the machine.

The next result used dynamic programming and generated every possible output combination. With a sufficiently large (yet small) rectangle, this is a factorial explosion and stalled the software.

So I poked the machine.

I realized this problem was essentially finding the distinct multisets of numbers that sum to some value. The next result used dynamic programming and only calculated the distinct sets (order is ignored). That way I could choose a random width from the set and then remove that value. (The LLM did not suggest this). However, even this was slow with a large enough rectangle.

So I poked my brain.

I realized I could start off with a greedy solution: Choose a random width within range, subtract from remaining width. Once remaining width is small enough, use dynamic programming. Then I had to handle the edges cases (no sets, when it's okay to break the rules.. etc)

So the LLMs are useful, but this took 2-3 hours IIRC (thinking, implementation, testing in an environment). Pretty sure I would have landed on a solution within the same time frame. Probably greedy with back tracking to force-fit the output.

YesBox··on Why No AI Games?
I dont think Minecraft is a fractal-like experience. The world may be infinite, but it repeats and each block that world is comprised of has set of rules that dont change. The living entities all follow their own rules. etc.
YesBox··on Why No AI Games?
For games, interacting with an LLM is an improv experience. It’s a fractal that can be explored in any direction.

Video games have discrete, static goals that let a player focus on an objective. Compared to LLMs, it’s a passive experience.

People play games for all sorts of reasons (to relax, competition, to build something of their own, solve challenges).

I think this is a fundamentally different experience than what an LLM can offer.

That’s not to say LLMs can’t become a fun experience, but it’s going to take decades to develop a way to procure that experience. Look at how long it took dungeons and dragons, or any video game genre, to get to the level of polish it’s at today

YesBox··on [dead]
Semi related but archive of our own has been down for 2+ days now.
YesBox··on Show HN: I built a sub-500ms latency voice agent from scratch
Why dont voice assistants use a finishing word or sound?

People are already trained to say a name to start. Curious why the tech has avoided a cap?

“Alexa, what’s tomorrow’s weather [dada]?”

← PreviousPage 2 of 9Next →