Hacker Newsnew | past | comments | ask | show | jobs | submit | tyleo's commentslogin

Our CEO at Rec Room put this a way I really like, "Teams are always telling me they wish they did shorter projects. I've almost never heard a team say, 'we wish we delayed launch, did something more complex, polished more'"

I don't think it holds in 100% of situations but I do think if you're going to make an error one way or the other, I'd rather do something smaller and release too early than do something bigger and waste time.


There's features and there is quality and there is domain.

I worked on a team that built high precision industrial machinery. The team and the project manager decided to delay shipping because there were still problems. We delayed, fixed the problems, and the machine worked really well and was used for at least a decade. If we'd had shipped it too soon we would have to try and fix it at a remote site and likely it would suffer from problems.

With most products you want to figure out what is your MVP (minimal viable product) and what is the quality level your customers expect. If you ship something less than that it's probably not a good tradeoff. If you build too much and ship too late that's also not a good tradeoff. When shipping increments they also need to be appropriately sized and with the right quality level.


Ah, but you're talking about something else: hardware is quite different from software. Once your machine is out in the wild, you can't update it remotely. But with software, shipping MVPs and iterating is not only possible, it's almost always the right way to go about it.

I frequently tell my software teams "We aren't putting rockets in space; we're shipping an admin panel. We can revert code or change things if we don't like it."


Yes, why would teams of a company prefer shorter less risky projects to look better in front of the person that controls their livelihoods on whether they become homeless or die due to lack of health insurance next sprint?

Totally realistic and honest outlooks that are replicable throughout all swaths of industry really.


> I've almost never heard a team say, 'we wish we delayed launch, did something more complex, polished more'"

We must run in very different circles, but IME this just strains credulity.


I listened to a podcast recently which mentioned a rich person living in Florida for tax reasons but really wanting to live in New York. They had an app that counted down how long they needed to be in Florida day-by-day. They hated Florida.

I like to think being rich is FU money to do what you want, “fuck being taxed, I have enough wealth to live in NY anyways.” I feel that the culture pressuring you to hoard wealth even at loss of happiness obviously makes for unhappy people.


Isn't that what Britain used to do? "Tax exiles" living in exotic places for years at a time?

Happy to see this on the front page!

The author is a friend of mine. A few weeks ago he mentioned this small game he made years ago was more successful than his ambitious projects. After that conversation he decided to update it and produced this wonderful blog post.

If you haven’t checked out the game yet it’s a lot of fun for the modest price.

https://store.steampowered.com/app/391420/Gun_Rocket/


I feel like 2 days to build this is a bit much given the simplicity. I think the point stands.

I will grant you that this is more tasteful than most of the AI sites I see. It’s a good looking little site but nothing here screams, “AI really accelerated this.”


Thank you. Yes took a bit but still way faster than by hand. There are other store pages that are also implemented. This 1 page took me like an hour lol.

I almost feel like this is always true. Every startup is dead on arrival. Most of them fail.

You’ve always needed to constantly learn and innovate to launch a successful business.


Paul graham wrote about this 11 years ago: https://www.paulgraham.com/aord.html

Startups are mostly all default dead. That's why they need VC money.


Wow, this is underrated. The start of the video cuts between a few other inventions this creator made using air. They discussed using air for digital logic gates generally.

Really neat stuff I hadn’t thought about before!


I really want to like bevy but compile times are slow and the output binaries are huge.

I built a few games in WASM and was shocked to see many of the bevy variants larger than the Unity versions.

There’s definitely a market for rust game engines but it seems that no one’s hit the sweet spot yet.


I hear Rust being slow to compile is their biggest gripe, but really - look at what you’re gaining for the slowdown!

Bevy gives you a very nice ECS to model your app but compilation can be slower than hand crafted code, while not using it gives you tonnes more code and the complexities that come with it, just to compile faster?


I don’t know what you mean by, “just to compile faster.” Compiling fast is critical to game development. There’s no formula for fun so you have to iterate extensively.

I also don’t think that other solutions are “tonnes more code.” Any code will explode in size if poorly written. The same is true for bevy.


I swear I have only heard about ECS and people trying to show off how good the ECS is when it comes to Bevy, never about an actual game.


"There are more rust game engines than rust games" - Confucius


"The claim which is made without proof can be dismissed without proof" - Big Brain

What are some notable rust games?


OK, even though it does not seem like that game was very notable, will give you that one game. Rust has at least ~5-6 game engines though, so you will have to come up with 4-5 more.

Tiny Glade launched to 10,692 concurrent players with a 97% overwhelmingly positive score on Steam.

Calling that "not very notable" for an indie title is pretty ignorant.


Here is ten games in bevy engine

https://youtu.be/50g3eSrSM6Q

Rust has like 2-3 game engines and a bunch of bindings.


OK, so I didn't say random games, though. I said notable ones. None of those are notable, and half of them aren't even released yet.

No, the statement is there is more Rust engines than games.

It also adds easy to move goalpost of notability, that only accounts for luck and age, not actual capabilities.


I have created 1000 rust games engines. All will be released Q2 2031.

I have instructed Claude to make two games in each of your engines for Q3 2031. Your claim is still invalid :P

Bevy gives you a very nice ECS

That's a single data structure. People say binaries start at 50 MB for a hello world program and 700 MB for the debug binaries.

https://old.reddit.com/r/bevy/comments/16wcixk/cant_figure_o...


It's a single data structure that contains your entire game though? The whole point of the ECS is that literally everything uses the same data; it's like if you modeled every object in the world with one struct that has an optional field for every piece of data that could exist. I'm not saying that necessarily makes the tradeoff worthwhile, but calling it a "single data structure" is a bit reductive.


It's a single data structure that contains your entire game though?

Are you asking?

but calling it a "single data structure" is a bit reductive.

No it isn't. It's like a tiny database. Depending on how someone implements it, it could use arrays, hash maps and b-trees. There is no universe where this means a binary that does nothing should be 50 megabytes.


> It's like a tiny database.

No it isn't. It also handles system management and concurrency, basically the main loop of your application.

I also would be cautious of assigning the blame of the binary size onto the data structure on its own.


I would say yes it’s like a tiny database but as well as all the other things your added. And I think that’s a good thing, because it does this at the type level!

I’m actually seeing if I can build a parser using bevy_ecs just because the way their state machine works, it looks like it would be fun


system management

What does that mean?

concurrency

Some data structures and databases deal with concurrency.


In this case systems are the S of ECS and contain all your game logic, acting upon the entities and components (E and C).

By system management I assume they mean the APIs bevy offers for scheduling and sequencing systems and events so your game logic remains modularized while still running in the correct order.


It seems like you're calling an entire game engine "ECS". I'm not sure what the point is here, the whole question was what justifies having a 50 MB hello world binary. It doesn't matter what you put into a data structure, the data structure itself shouldn't make 50 MB binaries.

No, they aren't calling the entire game engine "ECS". Entity-Component-System is an architecture that Bevy is structured around.

As I have previously stated, I wouldn't blame the data structures used behind Bevy just yet, given Rust's tendency for making bloated binaries. What is taking the most space in this 50MB binary? How does it scale with the complexity of the application?


Even if you can put a function pointer into a data structure, that's still just a data structure.

I don't know where you are trying to go with this logic. You still haven't assured that the 50MB is actually related to data structures used behind by bevy, lest you are insunating that the data structures used by bevy are solely responsible for that size, which is not what the post claims.

How small is a hello world in C on Linux? The last time I checked a few years ago, it was either 9Mb or 13Mb (memory is fuzzy on this one but one of them was right).

Edit: wow I’m way off… it must have been the 90s when I checked this lol


C statically linked hello world binaries have never been 9MB or 13MB, they definitely weren't in the 90s. Also these are rust binaries.

https://github.com/MichalStrehovsky/sizegame


Yeah, testing here with GCC 13.3.0 led to 16K. Perhaps, when you made your test, the compiler was statically linking some libs, which would explain the massive increase in size.

You should probably read the whole thread. You jumped in half way through and got all mixed up.

I know the thread. Your point is about whether Bevy's "data structure" is worth 50MB. I pressing on the fact that you haven't shown what this 50MB actually are.

But, out of curiosity, do you also consider the Linux Kernel also a data structure?


I pressing on the fact that you haven't shown what this 50MB actually are.

To be clear you think an ECS implementation is 50 MB?

But, out of curiosity, do you also consider the Linux Kernel also a data structure?

Do you think a spreadsheet the holds function pointers is a kernel?


> To be clear you think an ECS implementation is 50MB?

No.

> Do you think a spreadsheet the[sic] holds a function pointer is a kernel?

Do you think an entire engine, including its system scheduler, is a spreadsheet? If so, shouldn't be hard to apply the same argument to any kernel. Of course, it all relies on your definitions and sense of reductionism.


I think you're conflating other big features of a game engine with a way to store data. If you look at other ecs implementations they are data structures, they don't do "system scheduling" (is that different from regular scheduling?)

First of, Bevy isn't just an ECS implementation. It's a game engine designed around ECS. While the ECS part is its core, Bevy also provides rendering, resource management, physics, etc. One of its other tasks, a rather important one too, is system scheduling: once you register systems, Bevy is responsible for dispatching them each frame, at the appropriate time, while also avoid data races over global resources and components.

First of, Bevy isn't just an ECS implementation.

No one thought that or said that so I don't know what point you're trying to make.

If you go to the comments I replied it was someone saying bevy compiles slow and has excessive bloated binaries. Someone else replied that you get so much, like ecs. Then I said that ecs specifically is just a data structure and has no reason to bloat binaries to be 50MB for an empty program that does nothing.

You're replying about things no one was discussing.


Your whole thread is about nitpicking the phrase "Bevy gives you a nice ECS". You are the one who asserted that "ecs specifically is just a data structure" (it isn't, by most definitions [1] [2], except yours). I supposed you were referring exclusively to a simple and basic component storage implementation (which is a data storage), where as OP was probably referring to the whole ergonomics of writing programs in it, alongside all the other features. It seems to me that you're the one who missed the point.

Then, you used this reductionism to question whether the 50MB binary is worth it. And that's ignoring the fact that there are ways to cut it if you wish, as mentioned in the reddit thread. And then there's the issue of whether it will actually matter for a full game.

[1] https://en.wikipedia.org/wiki/Entity_component_system

[2] https://github.com/SanderMertens/ecs-faq#what-is-ecs


Your link describes a data structure and then just says "systems that use it" which is implied. Of course it gets used. Seems tautological.

Other ECS implementations might not, but Bevy does come with a system scheduler. You register systems (functions that operate over the components) and, through their parameters, Bevy's scheduler decides how to parallelize the registered systems while avoid data races.

Other ECS implementations might not, but Bevy does come with a system scheduler.

That's an ecs data structure and a system scheduler. If I make a vector and a system scheduler, vectors don't suddenly have system schedulers, they are two different things.

You register systems (functions that operate over the components)

That's just adding a function pointer to a field.


> That's an ecs data structure [...]

ECS isn't a data structure tho, it's a pattern. You must be referring to the component storage. That's, at best, half the equation. You do realize the discussion is about the 50MB program, which uses both the component storage, the system scheduler and other features, right?

> That's just adding a function pointer to field

Just as much as creating a new process, through the IP/PC field in the TCB. Don't know why you focused on that particular point, but sure.


ECS isn't a data structure tho, it's a pattern.

Every implementation out there is a data structure. You keep talking about things that use it and then lump them together. That's just you.

You do realize the discussion is about the 50MB program, which uses both the component storage, the system scheduler and other features, right?

No, the first person I replied to said that justified a 50MB program. A few other software components don't make any sense either. 50MB is not something you get to with 4 or 5 parts of a game engine. That's the stripped binary too, it was originally 700MB.

Don't know why you focused on that particular point, but sure.

You brought it up, I'm not even sure what point you are trying to make.


Exactly this.


Compile times are my biggest struggle, too. I'm vibecoding Bevy with parallel agents, and the bottleneck is often compiling the changes on my 7950X, not getting Codex to write them.

As far as file sizes go, I'd be really interested in how a Rust compiler that didn't monomorphize so much would perform. Right now you have to modify the source code to write polymorphic generic functions, but it doesn't strictly have to be that way (at least as far as I can see).

I wouldn't use Bevy for a web only game either, especially while it's still single threaded on WASM.


Bevy website has some tips for improving compile times, have you tried them out?


Yes, absolutely. I did that before vibecoding too, as rapidly editing and testing is so crucial.

The way Bevy's internal state is so easily saved and loaded is convenient for this.


I suppose most just haven’t seen the Chinese models in practice. I haven’t. I was skeptical of AI coding until using Claude Code in February. I saw and I believed. I’ve only done that with Google, OpenAI, and Anthropic’s models so far.


The landing page feels tacky to me. It has a similar style to what I’ve seen LLMs churn out across the internet. Unclear if it’s actually generated or not but it’s at least in that style.

For a design product, I’d expect it to have more personality.

I’d recommend reving the landing by hand. The sense I get is that this tool can make a site that looks like everyone else’s. It would be neat to see something unique.


This was my biggest take, when I see someone selling a design tool that’s looks very much like designed by LLM, that’s a red flag. I got the exact same vibe, no idea whether it was a prompt or a detailed design, but right now it looks like output of a prompt and not hand crafted.

Given the whole idea is selling a design tool that’s looks very gives user a sense of they can control details, this page doesn’t deliver that at all. I’d focus on the design, because that’s the biggest demo of your product maybe even bigger than the demo.

Imagine a unique website that users looks and feel like I wish this was my website. A rare instance visual design actually matters for a startup :)


I think it's a good point. I'm going to spend a bit more time on the design - and if sales continue well then I can look at getting a designer.


The irony.


Is it? I started my career as a magazine designer, then web designer, then web developer. Seems natural from my perspective that my design skills have atrophied but im still visually inclined.


What irony? This is a design tool, it does not make you good at design.


Design is one one those word with hundreds meanings. It seems there’s a confusion here between "art director" and "UI crafter".


I suspect its the color scheme? I wanted something to contrast with but pair with https://motion.dev but I know AIs pump out a lot of purple. I'm mostly a developer though so my design skills are a little rusty still!


A big smell and my biggest pet peeve with them is the excessive, custom javascript animations that don't respect my settings to disable animations and which break through my own extra defenses, all tucked away in some webpack chunk I'd have to debug to get rid of. As soon as I see above-the-fold text fade and slide in I close the tab to spare my head, stomach, and CPU.


Motion page looks much better, but other than purple I’d focus on design more, even to suggest hire a designer on project basis, let them make a stunning landing page. If you are selling a design tool (arguably CSS is somewhere in between) then you have to show your mastery of the domain. —assuming you are serious and it’s not a weekend project


Yeah, I have an half baked thought about billionaires like this that they truly want the best for this world even if they have to seek it by immoral means.


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: