Live data from Hacker News

Invisible Bunnies That Power World of Warcraft (2017)

kotaku.com

71–80 of 104 posts

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

#71
post #67

Earlier quoted context omitted.

For what it's worth, I'm not aware of anyone who believes inheritance "ontologies" was a good idea, nowadays. Interfaces sure, but composition is just better for this reason. ECS is a formalization of that, and probably even perpetuated the idea, but it's everywhere I look now.

Except of course for all the ontologies in your language's standard library that you don't even notice. Your IO hierarchy, exception hierarchy, your collections hierarchy. As long as you don't kingdom of nouns everything any repeat the mantra: "classes are just interfaces with code reuse" you'll be fine.

This is factually correct, but misses the point I was trying to make. I'll fall on my sword there.

What I mean is: For library developers, inheriting an interface makes some sense. But throwing in an ontology that is meant to mimic human-like classification (esp just for the sake of it) is a disaster in all the code I've seen. There really isn't any reason for a Shape: Circle hierarchy. The better abstraction is around what can be done: a PrintableList, or whatever.

std:: takes the second approach (Type trait-like interface_-level decisions. There was (for a time) a huge push for the first approach of "is-a" relationships which makes zero sense almost any time.

IMHO ECS is a sane "has-a" relationship which is effectively a redo of "is-a" interface-level interactions, b/c each entity "has-a" list of objects that form it's interface with the system.

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

#72

Earlier quoted context omitted.

> “The cat acts like a settlement radio receiver, and its role is to keep alive the inactive radio station so it continues to the next track even if you’re listening to another station. Just like if it was a settlement receiver somewhere near the player. In normal circumstances the cat doesn’t make sound. It is silenced, it is invisible, and it is deleted from the game world after three seconds.” What I don't underst…

Probably a cat needs to press next, but then the cat doesn't need to listen to the full track?

I assume the cat counts as an in-proximity listener to the radio, which makes it initialize. Having initialized the radio, the cat can be garbage collected.

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

#73
"Why is WoW a front for a morally questionable bunny labor operation? The short version is, programmers’ time is limited, and NPCs’ time is not. Programmer time is extremely valuable, and most of the ‘stuff’ that can be done in a game can be done by NPCs,” said Chapman. “NPCs already have to support things like pathing, casting spells, using weapons, doing various actions to other NPCs, etc. So, while you could in theory have a programmer separately implement every ‘effect’ you wanted in the game with some minor benefit, if you already have a class of thing in a game that can solve your problem, it’s a better use of time to use the existing system.”"

I am sorry, but it still is just bad design, if you have to missuse a different class. So strictly economically speaking yes, after the system was already running, it might have been cheaper to go with it than redesign - but the initial design flaw is still a flaw. But they still made lots of money this flawed system, though, which is a good reminder, that the most important thing for any product is usually, does it work?

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

#74
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.

For Android, Edge and Opera both have ad blocking built-in. It's comments like these that remind me what I'm (not) missing.

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

#76

Earlier quoted context omitted.

Another recent example is from Starfield, where shops inventories are handled by a physical chest hidden underneath the shop. You can use noclip to loot the chest and get shop items for free.

That kind of makes logical sense, though. Physical hidden chests are, after all, how almost all real life shops implement inventories. Those are typically inaccessible to players, too. (There is a part of shopping experience where the player grabs items and puts them in their own chest/basket prior to purchase. This works thanks to the security scheme of law enforcement NPCs dragging your ass to jail you can't save-s…

The jail mechanic is not too complex to implement, depending on the kind of game. It sounds pretty similar to the Keystone Kops in Nethack. Like Dwarf Fortress, it exchanges graphical detail for complexity.

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

#77

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…

Another recent example is from Starfield, where shops inventories are handled by a physical chest hidden underneath the shop. You can use noclip to loot the chest and get shop items for free.

Been like this since at least Skyrim, maybe earlier

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

#78

Earlier quoted context omitted.

Another recent example is from Starfield, where shops inventories are handled by a physical chest hidden underneath the shop. You can use noclip to loot the chest and get shop items for free.

(Off topic to ECS) This description is kind of funny to me. If you’re using noclip, who cares about how much things cost? You’re already cheating.

Well one of the bugs was the very small corner of the chest poked through the ground and at the right angle you could loot it without no clip.

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

#79
post #8

Building custom maps in WarCraft3 also involved a lot of invisible units to create unique spells. Creators generally used toads or sheep for these effects. I've created a custom map turning the system a round, where you played the invisible critters instead of the hero :D

I wonder if this was the inspiration for the name of the creator of DotA mod, icefrog

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

#80
post #54

Earlier quoted context omitted.

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.

A boss is nothing special it is just an entity, also after you beat up the boss you can have later enemies use components from the boss to reflect the players progress in killing enemies using similar mechanics as the boss, until you reach a final big boss.
Post reply on HN