Live data from Hacker News

Invisible Bunnies That Power World of Warcraft (2017)

kotaku.com

51–60 of 104 posts

Re: Invisible Bunnies That Power World of Warcraft (2017)

#51

Can anyone point to a better source for this so I can't share it with people? Kotaku is the TMZ of gaming and I never share it, but underlying content is good on this article.

I definitely read about this on wowinsider at some point. sadly it has been really annoying to search the stacks since it got turned into just an engadget tag so that AOL could turn their wow.com domain into a failed coupon venture

Re: Invisible Bunnies That Power World of Warcraft (2017)

#52
post #16

I really need to sort out adblocking on my phone, there are so many half the time it doesn't even show all the content, it's probably ran out of resources.

uBlock Origin on Firefox mobile is enough to not be bothersome. Even if it's not your preferred browser, it could help with ad-riddled sites at least.

Re: Invisible Bunnies That Power World of Warcraft (2017)

#54

Earlier quoted context omitted.

Ah, ECS. The most ill-defined software pattern since IoC/DI. Everyone seems to have their own understanding of it, usually somewhere on the spectrum between "what if we kept the game state in a relational database"[0] and "what if we put any individual type of information into its own big array, so it's CPU-cache-friendly"[1]. I wrote several such systems for my own toy games, at various points of that spectrum[2], a…

You seem to have deep fundamental misunderstandings about ECS systems. You can absolutely access multiple components in a system, for some reason you think a component and a system must have a one to one relationship, when really it’s many to many. The only caveat is that you have to think carefully about the order that some of your systems are executing in the game loop, since you want to make sure component data ha…

> ECS is really the best way to make games.

A little bit of nuance would go a long way.

Even in games where ECS is a good match, having to implement a boss with ECS is wasteful in terms of dev time and performance: You have to create components and matching systems unique to the boss, where with a traditional approach you just have to create a single Boss class.

Re: Invisible Bunnies That Power World of Warcraft (2017)

#55
post #10

I think the prevalence of these sorts of issues is why ECS is such an appealing architecture in game design. OOP seems to always devolve. A new feature is needed for the game, the feature breaks some well established design rule, it's challenging/slow to refactor everything to make sense while considering the new feature, and so a kludge is implemented where existing objects are forced to be more flexible than planne…

I had to look that up. From Wikipedia: Entity component system (ECS) is a software architectural pattern mostly used in video game development for the representation of game world objects. An ECS comprises entities composed from components of data, with systems which operate on entities' components. ECS follows the principle of composition over inheritance, meaning that every entity is defined not by a type hierarchy…

That just sounds like OOP but without subclassing.

Re: Invisible Bunnies That Power World of Warcraft (2017)

#56

Earlier quoted context omitted.

I think the answer is that ECS isn't supposed to solve those problems directly. It's just a framework that makes a certain class of problems very easy to solve. But big picture complexity is still up to the developer's skill and wisdom. Knowing which parts of the game should go into ECS, and which parts go somewhere else. Which systems flow from another system. Which system is allowed to manipulate the data directly…

You seem to be coming from somewhere closer to "like SQL" than the data-oriented end of the spectrum. On either end of the spectrum, there's much less flexibility. The "SQL side" is optimizing things for bulk operations[0] and flexibility coming from composition[1]. The "data-oriented side" is optimizing for performance, and it so happens that stuffing data that's processed together into arrays you can just scan in a…

The performance side is a bit overblown, in that of course performance strongly depends on access patterns and the access patterns strongly depend on what you're actually simulating. ECS can help with performance but it can also hurt: e.g. the devs of factorio, who have a very large simulation, based on their profiling, have found the game is almost entirely memory bandwidth limited, and so an ECS SoA system like is often touted would not work very well, as it's far better to run every system on each entity than it is to feed each entity through each system, and when inevitably different systems care about the same components, the first will almost certainly find the component data in the cache, while the latter almost certainly won't be and results in the same data being loaded from RAM multiple times.

Re: Invisible Bunnies That Power World of Warcraft (2017)

#57
post #36

The only thing that bugs me about this is that they used bunnies rather than making a specific "spell effect/scripting" NPC. (I mean just one type to be used everywhere rather than bunnies, not a new one for each use.) It's common enough of a pattern in other games, and the #1 bug is that someone forgets to click the "invincible" checkbox somewhere, your scripting 'bunny' dies, and then the game just breaks. If you c…

I recall a story where the camera kept "dying" from explosions but I can't find it.

Re: Invisible Bunnies That Power World of Warcraft (2017)

#59
In a similar vein, WoW has become a lot more dynamic and stateful over the years, and the somewhat-hacky solution used to track what the current character has actually done is invisible quests. It's the exact same system behind the scenes as the more-visible "kill ten rats" quests that NPCs give you, just hidden away so you're not told about them and tracking things like "you've looted this treasure chest in the open-world, so it won't appear for you again" or "you've listened to this ambient NPC conversation".

You can even install an addon that'll show you the quests getting completed in the background, which can occasionally be handy as it basically notifies you "what you just did will be remembered". https://www.curseforge.com/wow/addons/questschanged

Amusingly, these quests still count as completed-quests for the in-game achievement system, so new characters will confusingly get achievements like "10 daily quests completed" despite never having actually completed a visible daily quest.

Post reply on HN