5 ms·
Totally unrelated but: Dang it must be awesome to have a service that people dissect at this level. This analysis is more in depth and knowledgable than anythin
by erikrothoff 9y ago
Totally unrelated but: Dang it must be awesome to have a service that people dissect at this level. This analysis is more in depth and knowledgable than anything I've ever seen while employed at large companies, where people are literally paid to spend time on the product.
- PaulHoule 9y agoIt is astonishing how oblivious people who are "paid to spend time on the product" can be about the products they ship. Case in point, Microsoft shipped a EXPLORER.EXE with Windows 10 that is 20% whitespace because of an Adobe invented metadata format that I bet nobody involved with Windows ever thought about it. See http://ontology2.com/essays/LookingForMetadataInAllTheWrongPlaces.html http://ontology2.com/essays/LookingForMetadataInAllTheWrongP...
- Sukera 9y ago> Quick note: The situation is not different on Linux, MacOS, or other operating systems because all executable formats have some way to embed images. What publishers should do is remove unncessary metadata before publishing, which is easy to do in the case of the PNG because we can simply omit the iTXt chunk. From your link - so I guess the situation on linux isn't different? Or am I missing something, other than that it depends on the embedded PNG?
- PaulHoule 9y agoI don't expect it to be different on Linux or any other operating system.
- jwilk 9y agoI'm not quite sure what exactly the author's point is. Yes, you could embed images in ELFs, too, if you really wanted, but why? There's no standardized way to do it, and putting the images in separate files is easier.
- jzwinck 9y agoThere is a standard way to embed any file into an ELF. The program "objcopy" creates object files from arbitrary input files. You then simply link the objects into your executable. The program can then access those arbitrary embedded data chunks by their symbol names, just as if they were literal strings in the source code. I explain how to do this in the context of embedding a version file here: https://stackoverflow.com/questions/16349557/does-gcc-have-any-options-to-add-version-info-in-elf-binary-file https://stackoverflow.com/questions/16349557/does-gcc-have-a...
- kalleboo 9y agoIf we're comparing platforms, Xcode (Apple's IDE for iOS/macOS apps) runs pngcrush on all PNG assets by default.
- ship_it 9y agothat is hc dedication level, props.
- peterwwillis 9y agoWasting space is a byproduct of having too much space. Just because it's bloated does not mean they didn't know it was bloated. They probably didn't care. As time goes by, minimum hardware requirements for operating systems increase. This isn't because it is more difficult to write software, or the hardware stopped being capable of doing the same thing it used to do. It's because software design wastes more resources as those resources become increasingly available. Today, people ship statically compiled binaries of tens to hundreds of megabytes in size because it is convenient to do so. That would have been absolutely insane before increased bandwidth and storage space made it practical. I have an internet connection so fast my wifi card can't use all the bandwidth. What a time to be alive.
- thanksgiving 9y agoI don't know. I like static linking. I'd rather I like things that just work ™. I mean look at PHP for Windows. I can't run php --version because I don't have visual C++ installed. Why? Wouldn't it be easier to include everything you need with your binaries? How much extra stuff are we talking? To me, RAM and processor are much scarcer resources.
- colejohnson66 9y agoTo me, that just speaks about Microsoft’s failure to make the C++ redistributible API compatible across versions. If it was, they could just bundle them with the OS.
- Drdrdrq 9y agoThis is one of the reasons for Docker containers to be so popular. They are basically statically linked apps, carrying everything they need within themselves. But - I like that. Not having to worry about some library version because I know the obe that is supplied is the same one the developer put there. Nice.
- kiallmacinnes 9y agoI believe this is a myth! You still very much have to care - for security updates. However, more often than not, you've just lost visibility into what libraries and versions you're actually running..
- bitwize 9y agoThe PC release of Sonic Mania was delayed because of slowdown issues. Slowdown issues. On a game that is literally nothing but 90s graphics.
- coolsunglasses 9y agoThe game is more graphically intensive than you might think and the people that care about this kind of game very much value a solid 60 FPS frame rate.
- quazeekotl 9y agoyet somehow it ran at 60fps 20 years ago on hardware that was 10000 times slower hmm
- anmorgan 9y agoThough we do have 4K tvs now.
- jhasse 9y agoThe game includes garphics which wouldn't be possible on the Mega Drive / Genesis. For example alpha blending or lots of sprite rotating. Also Sonic on the Mega Drive had multiple framerate drops, e. g. when you lose lots of rings.
- TulliusCicero 9y agoIt would've been possible on the Saturn, and on the Dreamcast at 60 fps, easily. How much more powerful are even mediocre modern PCs compared to the Dreamcast?
- Lorkki 9y agoSaturn would most likely choke on memory requirements, given how much is going on in the levels, as well as lack of transparency support. Symphony of the Night was the state of the art 2D platformer for that hardware generation and it has frequent loading pauses, despite being much more static. Dreamcast would probably work, given enough effort by people who know the platform inside and out. But then, a much lower barrier to entry is probably a significant reason as to why Sega was willing to fund another 2D Sonic game in the first place.
- pjc50 9y ago> people are literally paid to spend time on the product Well, that's just a job. It's the people spending their time voluntarily on a project who are the few that really care. Also often a project team develop blind spots; I'm on an internal initiative at work helping out another team with some long-standing performance problems, and it's remarkable how much a fresh pair of eyes helps. It challenges assumptions and asks basic questions like "how does this work exactly" and "why are you doing that".