Arcanaville

Arcanaville
  • Posts

    10683
  • Joined

  1. Quote:
    Originally Posted by Dark_Respite View Post
    Whereas the other day I logged in to film the sunrise. Took a bit of doing to find a good place but I managed to score a beautiful sequence in Peregrine Island.

    Michelle
    aka
    Samuraiko/Dark_Respite
    Interesting. That's more or less where I was: on the Beta server looking at both the sunrise and the sunset near Monster Island.

  2. Quote:
    Originally Posted by Bill Z Bubba View Post
    It will always amuse me how threads evolve around here.
    <----- Evolutionary pressure
  3. Quote:
    Originally Posted by Mister_Bison View Post
    Okay so the action loop is filling the event loop's data ? Action's loop is processing the "launch power"s and the event loop the "Do X points of damage"s ? (notwithstanding all the other things in the event)
    More or less. Critically, the 30/sec loop also calculates when animations start and stop, because that has to be in sync with the client that does animations. At launch, there were all sorts of odd glitches where the player would activate a power and the character would just stand there. That's because the server told the client "do this" and the client said "can't, still doing that" and then the client said "done, now what" and the server said "forget it, I'm already moving on to the next thing." The server has to know what the client is doing, which is why the server, among other things, has to now what is happening at every 30th of a second, because the client works on that clock.

    This interplay generates the server side lag we call "Arcanatime." But even if you didn't want to reproduce this behavior, I'm not sure there's any significantly easier way to reproduce all of the events in the game engine as they occur. It actually took me a couple of days of thought and experimentation to come up with the design for a reasonable scheduler that would properly process everything that happens in City of Heroes.


    Quote:
    Quote:
    Nope. Every bit of data implies hundreds of lines of code to do something with that data.
    NO NO NO NO and NO for god's sake ! What kind of project manager believes that ?
    Once you've implemented something able to decode the data behind, let's say, the Nemesis Staff, it's far easier to do the Force Field.Force Bolt ! But you can't directly do Smite then, except if you've done Shadow Punch ! You have a baseline of minimal data to process and then all the data can be processed by the engine ! It's not because you've got 1000 powers and that it takes 1000 lines to implement Brawl at first that it's going to require 1000x1000 to implement everything ! Gosh !
    Assuming I'm an idiot will only cause me to conclude you're one. Because every *other* programmer in this thread that has worked on something larger than "Hello World!" I'm pretty sure understood what I meant, which was that every data element in the power schema represents a data field which is processed by the game engine, each in a completely different way. Especially within the context of everything else I've said in the thread.

    On top of that, many fields are themselves indirectly processed, like the Expression fields which themselves require an entire scripting engine just to process. And parsing the grammar of the Expression fields is exactly zero percent of the problem. The real problem is writing the code to properly evaluate all of the indirect references to the game. Which *itself* requires entity tracking code to allow for those indirect references to go somewhere. AttributeRequires as a single field could end up taking ten times more code than fully processing all of the damage-type attribute fields because of that.

    (Since Abs and Cur modifiers on those attributes actually point to Health, they can all be processed with an iterated loop of code, but they cannot be processed with the same code as all other attributes with their own separate attribute values directly. Doing crazy pointer magic to make all of the attributes work with a single processing loop would save some coding time, but probably add significant debugging time to the process.)

    At this point, I'm really interested to see what sort of code you generate, to represent your understanding of the actual problem being discussed.
  4. Quote:
    Originally Posted by Kitsune Knight View Post
    Couldn't a database be created that maps the internal names (that are currently exported) to the display names, and package that along with either Sentinel+, or another utility that takes the xml files as input? No need to then dive into the PIGG files on every run, just read the database shipped with the utility. CoD's database would likely be a good starting point.

    IMO, making it a separate utility is the better course of action, as it leaves Sentinel+ to focus on what it's meant for. Anyone using grep to search through the file could likely handle throwing some pipe action in there.
    I'm thinking a separate utility is the better option as well, and something that can be explored downstream when the Titan coders have more time.
  5. Quote:
    Originally Posted by corinna View Post
    a) Digitally signed gear. This is solves the hacking/duping issue in a couple of ways. First, when a character joins a new server, all the gear can be authenticated with the app store. Second, only approved modules could award digitally signed gear. Third, service providers (mods, GMs) could not award digitally signed gear--it would have to be 'earned' in game. Fourth, digitally-signed gear could be traded/auctioned between players, preserving the 'loot' system. Fifth, players could have unbalanced, über builds on their home server (if they wished), using non-signed equipment, but then transfer their characters to other environments, with the characters mostly intact. Oh, and awesome costume pieces? Also digitally signed.

    Thus, content creators and tool creators would be compensated for their work.

    This is like Arcanaville's trust system, except that it is backed by some type of certificate issuer.
    That's a technical detail I didn't delve into, but I was thinking roughly along those lines in terms of how to track trust - by signing key chains. The problem is not the problem of central certification, but central issuance of gear tokens that would be provably unique, otherwise signature or no signature gear could be duplicated. That makes this a somewhat more tricky problem to solve technically.
  6. Quote:
    Originally Posted by Lobster View Post
    A sizeable chunk of my alts have gotten hit with the hours played decimal shift bug. I guess you being you, you probably check regularly and would notice.

    It's the one bug I've filed regularly over the years that has never even gotten fixed - I've probably still got a few emails telling me there is no bug. Snicker.

    Sorry. Tangent. Big #s from the m-pcs trigger it. Can't. Resist. I have a problem with (inaccurate) numbers.
    That number is accurate. About 8000 of those hours are farming Empath and Immortal, but it is accurate. That still leaves approximately a work-year that the devs have given to me in entertainment value.

    Just on one alt alone. To get that amount of entertainment watching cinema release movies would have cost me the equivalent of subscribing to this game for seventy years.

    Also, by the time I had barely woken up the drive was over, so Tony's just going to have to keep stuffing food into the devs until I get in on one or Zwillinger starts to look like a turducken.
  7. Last night, for only the second time ever, I watched a sunset.

    (in-game; I've seen the real sun go down a few more times than that)
  8. Quote:
    Originally Posted by Dark_Respite View Post
    I'd give a great deal to be the fly on the wall during that dinner, just to hear the conversations...
    Zwillinger: Wasn't it nice of the players to buy us all dinner like this?

    SMASH!

    Hit Streak: What was that?

    Black Pebble: Just some fly buzzing around. Pass the salt.
  9. Quote:
    Originally Posted by Combat View Post
    Basically, what I'm saying is that completely recreating CoH's engine with perfect accuracy is a project that could easily take 5000+ hours. However, creating a engine that produces similar results might not take the same amount of time. For instance, such an engine might not have the desynchronization that this engine's clocks have.
    Depends on what you mean by "similar." What I was talking about was reproducing, in effect, every aspect of every power and every enhancement currently in the game. Its not necessary to do that in the same way as the game engine, but if you're not reproducing the CoH engine precisely, you're just making a different game, which was not what I was talking about.

    Consider everything that happens when I activate an attack. Do I have something targeted. Is that thing a valid target for the power. Do I have enough endurance to activate the attack. Am I currently rooted. Does the attack require the target to be near the ground. Does the attack autohit that type of target. What is my base tohit verses that target. What are my net tohit buffs and debuffs. What's the highest net defense of the target applicable to the attack's attack types. What's the accuracy of the attack. What's my net tohit. Does my tohit roll fall below the tohit threshold. What are the attack's effects. For each effect, does it affect the caster or the target. Does the effect have target conditionals. Is the target within the outer radius limit of the effect. Is the target outside the inner radius limit of the effect. What attribute does it affect. What aspect of that attribute does it affect. Are there combat modifiers (level differences) in play. Is the effect immune to combat modifiers. What kind of effect is it: is it a Magnitude or Duration effect. What's its scale value. Is it an expression based magnitude effect. What does its magnitude expression evaluate to. What is its effect modifier at this level for the caster's archetype. Does the effect have a chance to occur. Does the effect have a duration. Should we resolve the effect immediately or should it be delayed. Does it have a period. Does the target have resistances to this effect. Is the effect unresistable. Does caster strength affect the effect. Is the attack itself immune to such strength. Does the effect create an entity. Does the effect grant a power. Does the target currently have an effect identical to this one cast by the same caster? Does the effect stack from the same caster. Does the target currently have an effect identical to this one cast by any caster. Does the effect have a stacking limit. Is the current number of identical effects under the stacking limit.

    None of these things are things you can handwave away, and still have a game that functions like City of Heroes.
  10. Quote:
    Originally Posted by Midnight_Rider View Post
    Ladies and Gents,
    Enjoy! You have filled my life with HOURS of enjoyment!


    A few here and there for me also.
  11. Quote:
    Originally Posted by BurningChick View Post
    I think that, despite Cryptic's attempts to release nothing but fully realized, polished products, they sometimes slip into "git 'r' done" mode. And they clearly saw the need to have a system to ban spammers. And didn't have the bodies to manually review the flagged players' logs. And then ...
    I wouldn't call that an explanation really. That would be like if I shot someone in the head, and someone asked me to explain why I did that, and I said "well, I was holding a gun, and my finger was on the trigger, and I squeezed with enough force to cause the firing hammer to release and strike the ignition cap on the bullet. And then basic physics takes over when the propellant waste products expand exothermically ... long story short, sometimes you just have to put a cap in someone's ***."


    Quote:
    What's interesting is that, when MUO budded off CoH, the remaining CoH devs fixed i7, started cleaning up code, herded us into giving focused feedback during betas, and, in general, released their strongest string of updates, ever, from I8 through I12.

    Paragon Studios rapidly changed its culture, but Cryptic wasn't able to ... at least for CO and STO.
    In my opinion, and I've said this many times in different ways, Cryptic's culture is Jack's vision, which is heavily weighted towards designing, realizing, and launching MMOs, but not supporting them for the long term. That's the boring part.

    The split itself might have solidified the cultural differences. The people who left with Cryptic were skewed towards the people who wanted to always be involved in something new. The people who stayed behind were skewed towards the people who wanted to develop and expand on the existing thing. And so we ended up with a Paragon Studios whose philosophy was strongly bound around leveraging CoH, and a Cryptic whose philosophy was that there was always going to be the next big thing.

    The fact that Cryptic hasn't released NWN yet might actually be a good thing. It suggests they aren't blitzing to push the thing out the door like they did with CO and STO, which may mean the culture has downshifted a bit. And conversely Paragon was trying to start something new when they got the plug pulled on them.


    There are no perfect dev teams. But still, the chat thing? Sorry: that's brain dead. If an eight year old computer prodigy wrote an MMO entirely on their own on their dad's laptop and it had that feature, I would still slap him silly for being an idiot.
  12. Quote:
    Originally Posted by Wolvorine View Post
    Just to add another voice to the topic... this sound horrid, and I wouldn't play it.
    Since I nowhere mention gameplay as such, what specific part of it sounds like anything, horrid or otherwise? The idea focuses on player options for stand alone and shared experiences, but anyone who played such a game exclusively on a shared community shard would see literally no difference between that and City of Heroes now. The technology would allow other playing scenario options, but wouldn't necessarily fundamentally change the actual gameplay of the core game.
  13. Quote:
    Originally Posted by Doctor_Gemini View Post
    How would you handle the auction house in this system? It sounds like there would not be a viable way to have one, which would make IOing out a character require either enjoying farming merits or paying real money for them (which is not a viable option for someone like me with over 100 characters).
    On community shards, including particularly the officially supported ones, auction houses like the CoH one could exist, and they would mostly traffic in items above a certain level of power - basically the same threshold mentioned previously as the point beyond which untrusted import is disallowed. If you can't import it (outside of trust) you can't hack or solo farm it and then flood the economy with it.

    For all intents and purposes, community shards would be MMOs as we know them, but under the hood the technology will make it possible to leave them and "go home" to a stand alone game. Someone who always plays on a community shard would never know the difference between that game and a classic MMO like we have now.

    At home, playing the stand alone game, you wouldn't need auction houses as much because the stand alone game would be balanced like most stand alone games: with far less reward scarcity and with the intent for the solo player to be able to get most or all of what the game offers in theory. At least, enough to conquer the solo game.
  14. Quote:
    Originally Posted by KnightOwl View Post
    I really like the idea a lot (in theory).

    What about the content, though? Would the content be the same on the community servers as it is on my standalone?
    Yes and no. The more accurate answer is: it could be. Every game client would contain the same basic content. The "official" community servers would contain that basic content as well. And then there would be DLC content that some players would have and some would not on their local clients, and that would make everyone a little bit different. The official community servers would be more or less up to date with official content with some means of arbitration when people don't have the content locally, and would have content specifically designed for very large instances besides.

    To make sure no one is left *too* far behind, my thought is that most of the "official" DLC content is sold for a period of time, then goes on sale after a certain point, and then becomes free after another point. What those points are, are details I haven't fully thought about.
  15. Quote:
    Originally Posted by Stunrunner View Post
    Hmmm. Head's kinda puny. I mean, sure, the boobs on an in-game toon are usually bigger than the head, but this looks like the head isn't just smaller but more like a short distance away, like maybe she has a giraffe neck swaying away from the camera.
    It looks like the legs, torso, breasts, and head from four different anime characters were stitched together without first being scale normalized, then was sprayed with latex, and then the latex turned into an inflatable doll.
  16. Quote:
    Originally Posted by Demetrios Vasilikos View Post
    For those curious about my earlier post in the thread Ill spell out what RPers over in CO have simply come to call The Silence.

    When you are either ignored or marked as a spammer by another player( yes I said just ignoring someone else puts a mark against them) you are given a point that the general CO community tends to feel has no wear off time. So no amount of time between them helps reduce it.

    Further it has been proven a single person can induce this using ignore then un ignore and do it again, 20 times and a person will be hit with a 24 hour chat ban.

    No the GMs never fix it over there, One of the most well known and player turned forum community rep Biff Smackwell was hit with a 24 hour chat ban several days in a row after saying Wolverine Sucks in zone chat in MC.

    I myself( @SkyTomCar over there when/if I ever can stomach setting foot there, was then hit with a 24 hour chat ban while trying to explain the issue in detail in zone chat that ignore spammer was a tool meant only to be used for those trying to do the whole ebay gold seller BS.

    Keep in mind newly made purely FTP accounts have the power to do this, so there is no fear of reprisal towards those who keep a few throw away accounts active for the purpose of Silencing.

    In fact rumors there abound about a player SG known as The Silencers who spend their time actively traveling around known player hubs and targeting players at random just to be true griefers.
    I'm still trying to figure out how this feature passed design review. I wouldn't implement this feature in this form at gun point. I'd literally quit first and then publicly explain why, because I wouldn't want this to be on my resume. I've walked away from projects for a lot less cosmic-class stupidity.
  17. Quote:
    Originally Posted by Feycat View Post
    It actually sounds a lot like the way Minecraft handles (not plays, of course.)

    You can play the standalone game.

    You can join a server and play on a cooperative persistant world node.

    You can invite other people over the lan to come poke around/play in your single player world.

    I would buy this in a heartbeat.
    In many ways, yes. I don't claim to have invented all the concepts I've mentioned. I wasn't explicitly thinking about Neverwinter or Minecraft, but both games have strongly influenced my thinking in general over the years.

    Inspiration comes from lots of places; I was thinking about Napster and PGP as much as I was about any one particular multiplayer game.
  18. Quote:
    Originally Posted by Mister_Bison View Post
    We are making progress
    I actually miswrote that. I meant: What makes you think the 1/30 sec loop is the animation one ? Is it exclusively animation ? I think it's the combat/vitals loop, and the 1/8 sec loop the positionning loop, and animation is just a by-product of the power part of combat.
    The 8/sec loop determines when actions can start, the 30/sec loop specifies when events occur, and it keeps the server and the client synchronized.

    The difference between what I'm calling an "action" and an "event" is: activating a power is an action. A regeneration tick is an event.


    Quote:
    Ok, so the only hard part is thoroughness, you say ? My thoughts exactly. But most of the thoroughness is already made by datamining efforts done by the Titan Network with City of Data or the Mids.
    Nope. Every bit of data implies hundreds of lines of code to do something with that data.

    Also, this assumes the person looking at the data knows what they are looking at.


    Quote:
    ho ho ho, now you're getting interesting ! Okay, I take the bait.
    That would be more definitive than debating it, because honestly there's not all that much to discuss without flat-out writing a spec for the engine. Only by looking at the data for real and writing code for real are you likely to appreciate the scope of what we're discussing. Or alternatively, your idea of the scope of what we're discussing is radically different than mine.
  19. Quote:
    Originally Posted by Chase_Arcanum View Post
    At one point, a dev implied that the AI behavior was somehow tied to their endurance as well- like some powers wouldn't be used if endurance was below a certain point. The statement stuck with me because I never really noticed it. I know you're the powers guru, but know anything about the AI here?
    I'm unaware of such a behavior, although AI has changed over the years. I contributed to the AI's attack selection algorithm myself just prior to I18.

    My version of the attack selection algorithm basically took a much more complex, thoughtful, but potentially glitchy decision tree and turned it into:

    1. Shoot 'em in the face.
    2. GOTO 1.
  20. With the talk of sunsetting City of Heroes and even talk of somehow recreating it recently, I've been asking myself the question: if I was going to write City of Heroes from scratch today, how would I do it? And actually, I have over a dozen PMs asking me this same question. This weekend an idea began coalescing that I thought I would share. Its not intended to be a blueprint for a community implemented City of Heroes per se: its just my own musings of the subject. So how would I do it?

    It wouldn't be an MMO. Hear me out. If I were making City of Heroes today, it would be a stand alone single player game.

    Or rather, it would start like one.

    I would make a game client that would reproduce, to the best extent possible (at least to start) all of the gameplay I love in City of Heroes as a stand alone game that anyone could play solo, forever, without needing any other resources. Everything, from the character creator to the mission content would be run entirely on your PC. It would be the solo version of City of Heroes.

    But then I would take this stand alone single player City of Heroes and recreate the MMO from scratch, without any of the design baggage of the past.

    Lets take this in stages. We start with a stand alone City of Heroes. And then we add global chat. That's not hard: there are a million ways to make global chatting systems, we just need to integrate one of them into the single player game. So while running around in single-player CoH, you can chat with your friends. You'd have the same CoH global chat communities we have now, you just couldn't actually team with anyone.

    So lets add teaming. Single player games already have the means to allow for LAN play and cooperative play, we'll let the single player game connect to other single player games and play cooperatively. So if you want to play CoH with four friends, no problem. But what about your fifty guildmates?

    For that, we add community servers. Community servers would be special server nodes that could allow lots of people to connect to them, and they would have the ability to arbitrate lots and lots of separate game clients into a shared space. This would be the equivalent of a server shard in City of Heroes today. But the important difference is that with this version, you can leave the shard and play stand alone, you can move to a different shard, anyone could put up a private shard for friends in theory.

    But there's a problem. Suppose I play standalone and level my character to 50, and outfit her with a ton of inventions, and then I decide I want to play on a community server? Well, we'll allow you to upload your character to the server, so you can continue on. And at the end of your session, the character is synced back down to your client. You could take that character to another server if you want, or continue to play it stand alone. In many ways, this is like the old pen and paper days where you could take your character from one gaming session to another, even to another gaming group entirely, and continue to play.

    But how do we deal with hacks? If we allow people to upload stuff onto the community servers, how do we stop them from just uploading anything they want? Max characters with max loot? We use trust. The community server doesn't trust your game client. So the server only allows you to upload certain things, with certain limits. Anything you can't upload gets temporarily downscaled on the community server until you re-earn it there. This is done in a way that you could leave the server with your full strength intact: its only "exemped" while on the community server. This is also like the old PnP days where GMs would sometimes allow certain things and disallow certain things on character sheets in the interest of balance.

    The interesting thing about trust is that different community servers could decide to trust each other in a limited fashion. So you could move from one server to another and keep what you earned, if the server you are transferring to trusts the server you're transferring from. Maybe unique objects on server A don't get transferred to server B, but maybe everything else does.

    So what we have is a single player CoH that we could play cooperatively with just a few friends if we want, or we could play on larger community servers if we want, but we would always have the option to come and go as we pleased. We would never be "trapped" on a central server. We would never be beholden to a server: no one could ever "kill" the game. We play alone if we want, we play with others if we want, but regardless we could still have as much social interaction as we want through global chat, which is how the social structures on CoH primarily work anyway. This would be the ultimate instanced MMO. Everyone is running in their own instance unless they *want* to participate in a larger world.

    Of course, this is not really possible for any business to do, because you can't make money off of something like this, right? Well think about Guild Wars. You buy it, and then you don't pay a sub. If you think about it, using their servers costs them money: they would make just as much money but you would cost them less money if you didn't actually use their servers. Their business model is to make money on selling the game client itself, and selling microtransaction items. Can we sell microtransaction items in this kind of game, where everyone could just run stand alone forever? I think so: they could sell items on their community servers and DLC for the game clients even if they were stand alone. In fact, the Architect gives us a hint as to how to make money in a novel way. We could allow players to sell MTX missions through a super-architect, and the business could take a cut, like iTunes. $0.99 buys a story-arc, the player-author takes $0.80, we take $0.19 say. And the business itself sells its content through the same system. If we're really smart and really lucky, we'll figure out a way to get the modding community involved to submit mods to the game we could approve and then allow to be sold through the DLC market as well.

    So there's the business and technical model. City of Heroes 2 is a stand alone game, with the ability to join community servers at will. Characters can move from single player to community servers and back, with a trust system that prevents serious exploitation by capping what you can transfer into shared environments. What overpowered nonsense you do on your own PC nobody cares about. We sell the client, we don't require a subscription, we support the game with DLC content released through an appstore-like system where the player community can also contribute and actually make money selling content, even to solo players that never connect to a shared community server. And we glue it all together with an improved distributed CoH2 chat and email system, so anyone, even stand alone players, can participate in the community.

    There are lots of details missing from this obviously, particularly where it pertains to community management, exploit control, game balance, and the technical issues of trying to make it work. But that's the idea.

    And that's how I would do it. It would be, for lack of a better way of putting it, an optional MMO. An optionally multiplayer roleplaying game.
  21. Quote:
    Originally Posted by SpyralPegacyon View Post
    To add: NCSoft was touting to its investors that GW2 & B&S would be a license to print money by 2011.
    Greece almost had a license to print money in 2012, and it meant the same thing to them as it apparently means to NCSoft.
  22. Quote:
    Originally Posted by Mister_Bison View Post
    What makes you think there is a 30/sec animation loop ?
    1. Because there's evidence for it in a number of places including Arcanatime, and the way the game engine attempts to synchronize rooting between the server and the client. I suspected its existence long before, when I first discussed predictable bits with BaB.

    2. Because pohsyb confirmed the existence of that system when I discussed game clocking with him.

    Quote:
    And you still think this would take 1000 hours ?
    If anything, my estimate actually went up. You seem to be dismissing anything that isn't "hard" as taking essentially no time, when the problem isn't complexity, its thoroughness. For example:

    Quote:
    Ranging from 2 minutes to a week-end, depends on what that humanly means :S Looks like a coma-separated... thing, each thing between comas is a token meaning... function names, operators and parameters ? You would need to set up a grammar in Yacc or Bison (heh !) and make your hearts desire come true.
    That's just a postfix expression. But you're focused on the grammar, and not on all the systems that grammar implies have to exist. Its referencing entity properties set by other mechanics, all of which would require more code. There's no possible way to make the expression system work in a week end.

    To you its just tokens. But its actually an example of the number of moving parts in the game engine you can't trivially simplify.

    There are dozens of attributes with half a dozen aspects, plus over a hundred mechanically different ways to affect them. That's hundreds of hours just to create a complete attribmod calculator. If you spent 24 hours a day for four weekends I would bet anything you would not be finished with that, and that's maybe 15% of a working combat game engine.

    It took me two weekends worth of work to write the code to simulate enough attack calculations to generate my attack set metrics for I24 beta ranged set metrics, and I hadn't finished adding the tohit tracking for fast snipe. That would be about 0.5% of a working combat engine.

    Honestly, I recommend you to spend just a single weekend writing as much of an attribmod calculator as you can. Not even an engine, just a calculator that can be given a set of attribmods and will calculate what the attribute values are for the entity that has them for the full duration of those attribmods, moment by moment. That's like at most 1/6th of a full combat engine. If you think you can write a full combat engine in four weekends, you should be able to do this in one without missing the NFL late game.

    Just try it for even one hour and see how far you get. I can only assume you are dramatically underestimating the time necessary because you have no reference to compare to.
  23. Quote:
    Originally Posted by TonyV View Post
    We raised a bit over $1,000 in less than three hours on a Thursday afternoon while a lot of people are probably still at work a day or two before most people get paid.
    If it had been "beer's on us" it would have taken only ninety seconds.
  24. Quote:
    Originally Posted by Starsman View Post
    They said they were going to do this. Bad sign would be if all stuff in the market goes free. Then again, a bad sign also would be if all the Paragon Studio staf was laid off and the studio shut down...
    That would be bad.
  25. City of Heroes was unique in its uniquely unique uniqueness.