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.
Invisible Bunnies That Power World of Warcraft (2017)
51–60 of 104 posts
Re: Invisible Bunnies That Power World of Warcraft (2017)
#52I 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.
Re: Invisible Bunnies That Power World of Warcraft (2017)
#53Re: Invisible Bunnies That Power World of Warcraft (2017)
#54Earlier 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…
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)
#55I 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…
Re: Invisible Bunnies That Power World of Warcraft (2017)
#56Earlier 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…
Re: Invisible Bunnies That Power World of Warcraft (2017)
#57The 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…
Re: Invisible Bunnies That Power World of Warcraft (2017)
#58Reminds how in one of the Bethesda Fallout games, they needed a subway train car. Solution? Make an NPC with a train car head that runs really fast.
Also, reminds me of the Princess Donut book series.
Re: Invisible Bunnies That Power World of Warcraft (2017)
#59You 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.
Re: Invisible Bunnies That Power World of Warcraft (2017)
#60ECS is kind of like lisp. Every sufficiently complex game will implement its own bug ridden ECS framework (unless it uses one already)