Well, as someone else said, it's not always black or white. Videogames MUST deliver performance, it's not only sales. Some desktop AND web applications could benefit from some performance boost here and there, and I mean being fast enough and not some abominations I've seen/heard about (minutes to get Excel files and examples like that, just because they're "thousands" of rows from a database).
You know, sales is everything and I agree that "there are two types of software: software that people complain about and software that nobody talks about", but some of us take some pride on doing stuff with enough performance and not pure crap...
Minecraft is generally known to be fairly poorly optimised, and the graphics weren't great. Mist was mostly a series of static images. They are two of the best selling games of all time.
Myst was at the cutting edge of technology at the time. They had to write some weird custom extensions in order to jam color into HyperCard at all. (Myst was initially written in HyperCard!) One could argue that designing the game around static images that could be rendered offline was itself an optimization. It gave the illusion of an immersive 3D space within the very harsh limitations of early Macs.
Also, the couple of QuickTime videos used in the game were very carefully integrated into a surrounding static image to give the illusion of an entire live scene while only animating a small rectangle of it because that's all most computers could handle at the time.
Myst is a fantastic example of making very thoughtful performance decisions given the constraints at the time.
Myst is not the example you think it is. It's a fully 3D world with moving parts like the library staircase or the redwoods or the train section.
That they managed to pull it off for home computers in 1993 is nothing short of a performance focused mindset which led them to static images and QuickTime overlays. As soon as they had the ability, they released realMyst which was a realtime 3D version of the original, followed by realMyst Masterpiece in the last 5-10 years.
For that matter, Minecraft may be poorly optimized (it is) but without the effort spent on the chunking system that renders 16x16x(128/256) blocks as a single mesh, it wouldn't run at all. There's plenty of low hanging fruit (which may be more difficult to retrofit into the existing engine, or in the JVM itself) that other games have found and utilized, but without that initial performance optimization Minecraft wouldn't run at all.
> You're not making games, you're selling entertainment. Focus on the latter first, and optimize accordingly.
I agree with that. And yet, Minecraft is possibly the worst example:
- It's an exception to the general wisdom that games do have to worry about performance in order to deliver fun. Just because Minecraft became popular despite it's abysmal performance, doesn't mean games can get away with that in general.
- Notch never expected Minecraft to become that popular. In a sense, Minecraft was an accident.
- Minecraft's performance was so bad, a lot of people had to install a mod called OptiFine just to be able to play it on their hardware.
Oh, I do think performance matters - but that's usually only once you've discovered your underlying market. Minecraft's audience clearly didn't care about performance, so it would have been wasted effort to optimize in the early days.
That being said, I agree that performance might actually be integral to your product. Quake 3, for example, probably would have bombed if everyone was playing sub-10fps.
Either way, the priority is "figure out who wants your product and why." That helps determine when and where to focus your optimization efforts.
Guessing Minecraft has enough performance to be playable. Wolfenstein 3D? Doom? Pretty good performance anyone? World of Warcraft being playable on low end PCs? Come on... Not everything is black or white.
That's not true in the way that I think you're using video games as an example. Video games must be fun, being fun requires being performant enough, and for graphically demanding games that requires lots of optimizing. But there are tons of games that are not graphically demanding.
Ehhh, I don't think your example disproves the idea you're responding to. Perhaps video games MUST deliver performance in the end, but often game prototypes are not performant at all for the sake of rapid experimentation, and are only optimized towards the end of development once all the systems are set in stone...which is what's being advocated for here.
In the old days, customers would never be able to get their hands on video game prototypes. You had one shot. Today, it's obviously a bit different, though many companies still treat it like one shot anyway.
At that point, they were insiders or even employees, not final customers, no? Games were released onto cartridges that couldn't be updated once the cartridges were manufactured and in the customer's hands.
Yeah, but even in the old days the developers would still be prototyping. Internal stakeholders are still stakeholders, and it’s developers optimizing for things other than speed. Nintendo devs famously build nothing until Mario’s jump (the MVP) feels right.
Yeah, but my point was that once it was in a cartridge in a customer's home, there wasn't anything that the company could do to update it. They certainly didn't send their customers copies of the prototypes. Whether or not companies ate their own dog food doesn't change the crux of my point.
Yeah, but the original point you were responding to was endorsing the idea that “you should invest time in optimizing/performance last, and focus on making something people want to use first.” I’m saying your point that videogames have to be performant at the end is irrelevant to the point at hand because that’s exactly what the games industry does, they prototype without care to optimization to make something worth optimizing—i.e. something internal stakeholders reasonably believed there would be a market for.
You know, sales is everything and I agree that "there are two types of software: software that people complain about and software that nobody talks about", but some of us take some pride on doing stuff with enough performance and not pure crap...