12 ms·
Invisible Bunnies That Power World of Warcraft (2017)
- recursivecaveat 3y agoReminds me of how, for a very long time, almost every effect in league of legends was invisible minion(s) under the hood: https://technology.riotgames.com/news/taxonomy-tech-debt https://technology.riotgames.com/news/taxonomy-tech-debt
- deleted 3y ago[deleted]
- tetris11 3y agothe more interesting article is linked in the first paragraph, where spectral kittens power radio stations in Fallout 4
- TeMPOraL 3y ago> “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 understand there is, why are those cats deleted after 3 seconds? Does it mean the inactive radio station only continues playing the next track for 3 seconds, and then freezes? If so, that sounds like an unfortunate limitation.
- actionfromafar 3y agoProbably a cat needs to press next, but then the cat doesn't need to listen to the full track?
- inanutshellus 3y agoI 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.
- SeanAnderson 3y agoI 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 planned. Of course, this can happen with ECS, too, but it feels easier to avoid. Systems which are coupled to individual components of entities, rather than whole objects, provide an extreme degree of flexibility as long as the components stay small. (bonus: another example of this occurring in Fallout 3 - https://www.pcgamer.com/heres-whats-happening-inside-fallout-3s-metro-train/ https://www.pcgamer.com/heres-whats-happening-inside-fallout...)
- baq 3y agoECS is IMHO a logical consequence of observing that game worlds are not object oriented (as it is taught in schools, so class hierarchies etc.) Add a sprinkle of performance requirements and you get what is understood as ECS frameworks. …but it turns out that the ‘world is not made of class hierarchies’ observation is not limited to games, hence Rust’s and go’s approaches to OOP: ditch inheritance at the language level.
- dale_glass 3y agoThe world isn't, but some things are. Doesn't Rust have a problem with GUI frameworks because they heavily use inheritance?
- s-lambert 3y agoI don't think it does, I think Rust GUI frameworks have the same problem as Rust game engines, there's more people making frameworks than people actually making applications. They mostly seem to be going in the same direction as web UI frameworks though, which don't use much inheritance either.
- seanalltogether 3y agoECS makes sense in games because OOP enforces lots of rules downstream in your inheritors, which is good for GUIs, but bad for games when producers keep asking for that one npc or boss to do something special that breaks the rules. ECS is just so much more flexible which is good for some design systems and bad for others.
- wolfendin 3y agoThis always became really interesting to see when you had a private server and could view invisible NPCs. The “bunnies” usually used the default infernal NPC graphic
- cedilla 3y agoAre those bunnies leaked or datamined "official" Blizzard bunnies, or where they reimplemented by private server providers?
- Vuska 3y agoDatamined probably. Thousands of them can be found in the game files: https://www.wowhead.com/search?q=bunny#npcs https://www.wowhead.com/search?q=bunny#npcs
- h4kor 3y agoBuilding 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
- myfavoritetings 3y agoI wonder if this was the inspiration for the name of the creator of DotA mod, icefrog
- Already__Taken 3y agooh that map was you? I was completely baffled as a kid whatever that map was about
- bananamerica 3y agoCan 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.
- delecti 3y agoThis is the original source, reporting on a conversation between the writer and someone involved in the design being described. There can't really be a better source than that. Kotaku's uniquely bad reputation among gaming websites is only a result of people pushing a false agenda.
- hnbad 3y agoSpecifically Kotaku's bad reputation primarily stems from GamerGate.
- bananamerica 3y agoNot at all in my case. I have no beef with their politics. Kotaku is just a terrible website due to its shallow reporting and almost all its content has a better source that is often linked in the article. They are also needlessly inflammatory and not at all careful in their journalism. Again, this is 1000% not about politics.
- hnbad 3y agoYeah but that was never a distinguishing property. All gaming journalism was pretty bad at the time and continues to be bad. This is why the fig leaf of "ethics in games journalism" was so attractive to anyone not paying close attention to GG: it was an open secret that many game reviews were either outright paid by publishers or written by journalists held on a tight leash with exclusive early access privileges implied to be contingent on positive review scores. I grew up in the 90s and 00s and I very much recall the boiling hatred for EA for buying out successful developers, restructuring them and leaving empty husks that churn out infinite sequels until the IP ran dry. People used to make fun of games like Call of Duty for boiling down all narrative mechanics to quick time events while railroading you through a third rate movie. Kotaku ended up being singled out over the allegations regarding Depression Quest where it pretty much became ground zero for GG. The allegations themselves were mostly fueled by a cultural backlash of "true gamers" against "walking sims", the derogatory label for projects using games as medium for interactive narratives and experiences, which they saw as a threat to traditional gaming and gamer culture (which makes more sense if you compare it with the Great Replacement conspiracy theory and see it as a precursor to the Cultural Marxism conspiracy theory especially popularised by Jordan Peterson). Heck, even the affiliation was shaky at best: a person claiming to be the ex of the person who created Depression Quest accused a journalist writing for Kotaku to have given Depression Quest positive coverage while they were in a relationship. So at worst the argument was that the developer used a friend to create attention for the game by writing about it without disclosing their (at the time non-romantic) relationship. Compared to what every major gaming journalist was doing with triple-A publishers at the time this was a nothing burger - except GGers disliked what the game represented (i.e. progressives using games as a medium for interactive art pieces) and who was behind it (women and queer folk, i.e. people with "political" genders/ethnicities/orientations rather than straight-passing white-passing cis-passing men).
- smcl 3y ago> Sometimes you don’t know designers need a kitchen until they’ve made ramen in a flower vase with an iron Wonderful
- DeathArrow 3y agoOOP at it's finest! I wonder if they have BunnyFactoryFactory.
- red_admiral 3y agoBunnies reproduce just fine without factories :)
- stuaxo 3y agoI 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.
- burke 3y agoSeriously. This was the most abusive reading experience I’ve come across in a while. I also only got to read a couple of paragraphs before endless ads.
- toastedwedge 3y agouBlock 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.
- nerdile 3y agoFor Android, Edge and Opera both have ad blocking built-in. It's comments like these that remind me what I'm (not) missing.
- sparrowInHand 3y agoThe problem in my opinion is that many game-engines are to focused on the "PerFrame view of the world" statically imagined by the designer and do not architecture for persitent but changing effects or long causal chains that constantly change and are capable of reusing behaviour. Good news though is that most by now, outsource that to scripting languages capable of providing better ways to implement this, but then you end up with parallel implementation of basic behaviour & services like pathfinding or targetting. Imagine a late-game added lightspell, that is expected to behave like a ball lightning walking ahead of the player. The temptation to reuse the pathfinding, collission and other systems that controll figures will be enormous. But this behaviour needs a sort of CBipedal class to inherit all the behaviours. Voila - enter the hack. Of course the clean solution would be something like a thrown stone on a lake, it exists as running code only when it changes (certain frames or events). It holds a composition of behaviours without the other ballast (datastructuress for aiming, inventory) etc. and also does not need a pool allocation to the monster/npc pool. (Basically you either have many peasants or many lightballs in the hypothetical as tradeoff). Cause it aint a object, its a entity with a collection of behaviours, with a minimal data container bound to each behaviour seperatly, that may evaporate at a moments notice, should the player look away or its time run out.
- eqvinox 3y agoThe 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 create a NPC type just for scripting, you can have it default to invincible & invisible (or no model to begin with.)
- jimmaswell 3y agoI recall a story where the camera kept "dying" from explosions but I can't find it.
- alasdair_ 3y agoPerhaps the most famous time this happened in an MMO was the assassination of Lord British. https://en.m.wikipedia.org/wiki/Lord_British https://en.m.wikipedia.org/wiki/Lord_British
- xjay 3y agoThe battleground, Strand of the Ancients, was originally started using two invisible NPCs that were hostile to each other; one on each faction's boat and dock. The first boat/NPC to reach the dock would trigger a spell/script when in proximity, starting the first round. [1] [1] BlizzCon 2016 - WoW Engineering Panel https://www.youtube.com/watch?v=W1y2fdDeSbU&t=227s https://www.youtube.com/watch?v=W1y2fdDeSbU&t=227s
- VoodooJuJu 3y agoIn developing mods for Warcraft 3 using its World Editor, we'd often have to create invisible dummy units for the same reasons, like to cast a spell as part of a more complex custom hero ability. Always felt like a hack, but it's funny, surprising, and validating to learn that Blizzard essentially does the same thing in WoW.
- kevdev 3y agoReminds 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.
- csours 3y agoBlaine, is that you? Also, reminds me of the Princess Donut book series.
- kemayo 3y agoIn 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 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.
- yett 3y agoWow thanks for this! I have sometimed wondered how I get 50 quests completed! achievement on a new alt even though I barely did 10 quests
- joe-collins 3y agoThe burst of quests is, last I checked, mostly stuff about unlocking battle pets and allied races.
- omneity 3y agoThis feels like a badly implemented homegrown ECS pattern. ECS is kind of like lisp. Every sufficiently complex game will implement its own bug ridden ECS framework (unless it uses one already)
- hutzlibu 3y ago"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?
- TeMPOraL 3y agoHonestly, I see it as accidentally good design. Take the "laser turret pointer" mentioned earlier. If you're not doing an optics simulation, but engage in the magical thinking (usual in storytelling) and treat the impact point as the entity of interest, then... making the impact point another actor on the scene suddenly makes perfect sense. Between the article and the comments, a lot of things bunnies/spectral cats/minions are known to be used for make perfect sense, and I'd consider explicitly planning for it when designing a new game. Still: > 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? That is a very good point, especially in videogames/entertainment. Reminds me of the "first law of 3D game graphics" I read somewhere - "if it looks good, it's good - no matter the amount of cheating going on".
- sdwvit 3y agoInvisible creatures have been a hack to make a lot of channeling spells work since Warcraft 3
- ben_w 3y agoBack in the day (late 90s), I was heavily into the Marathon series and game engine. The trilogy box set came with a whole bunch of 3rd party levels, including one inspired by Myst. As Marathon was only one step up from Doom and (before getting open sourced and turning into Aleph One) had no actual scripting language, the level creator had to fake lots of things the hard way, one of which was by spawning NPCs to shoot at other NPCs, with weapons whose shots were marked as "can toggle switches" and some switches between shooters and their targets.
- hnbear 3y agoReminds me of the subway trains in Fallout 3 being hats on NPCs that walk the track so the trains can move.