Ok... NOW I'm sad.


Amanita

 

Posted

Quote:
Originally Posted by Arcanaville View Post
The intricacies of real-time system programming, mostly.
that, but the server isn't real-time... at least not hard realtime... because the event loop can overflow.

Quote:
Dual box sometime. Then ask how its possible to see what you're seeing and still have a sane game.
You mean why you need a third person to be arbiters on the snow events ?

Quote:
Effects can have a Requirement in order to take effect, for example TargetType = player (for PvP effects) or source.kMeter > 0 (stalker hidden). These are entered into the power data as postfix expressions. It takes an integrated script processing engine to understand what "source.kMeter > 0" means, and it implies you either have to translate that into another concept on the fly programmatically, or you have to add entity tracking code that knows what kMeter's value is on the source of the power at the time its activated. Even the magnitude of the power is sometimes an expression: (source.TeamSize(30) * 0.03 + 0.07 >= rand()) * @StdResult -> the Assassin's strike non-hidden PvE critical.

If you don't know these things even exist, I'm not sure how you can be so certain about your estimates for how long it would take to reproduce all of the combat engine's behavior.
If I don't know how you name these things, I'm still as puzzled. I knew all these all along, these are on City Of Data, as well as attributes modifiers and scale. That doesn't make me budge.

Quote:
Technically, there's only one thing to do:

Code:
while(true):
    evaluate(power)
Wait, you said
Quote:
I recommend you to spend just a single weekend writing as much of an attribmod calculator as you can
you're asking me to also create powers and evaluate powers with this loop, which will call the attribmod calculator, not the other way around.

Quote:
I never said anything about combinations of effects. If you think I mean combinations when I say the engine does hundreds of things, you don't understand what the game engine does. It does hundreds of discrete, singular, computationally different things. Magnitude resistance is different from Duration resistance: they require different code because the formulas are totally different. MaxMax buffs are totally different from Strength buffs. Zero duration effects are handled differently from non-zero duration effects. Extend stacking is different from conventional stacking. Cur is different from Abs. (Base) Defense is a special case of Attack type in the attack/defense type summation code. There are hundreds of different things in the engine, not dozens of things in hundreds of combinations. Hundreds of different things that require completely different code because they cannot be procedurally summarized.
I said combination because that's one of the variability an engine has to deal with, the other being the variability of the effects, and your for(;{evaluate(power);} hides it even more. The complexity is in the evaluate, and I'm aware of that.

Quote:
The difficult parts of making a real MMO engine are all the optimizations involved in making working map servers, real time network code and event queues, etc. Things I have no current interest in doing. Replicating the game engine would be, for me, an intellectual challenge to see how well I actually understand it. And part of the reason for the large time estimate is that I'm pretty certain there are interesting problems in the way the engine does things that I won't really understand fully into I try to implement that in code. In a real project, debugging and reimplementing code to account for problems represents a large fraction of the total time. The time to program something is not identical to the amount of time it takes to type the final source code.
Just pointing I'm feeling the same. But I'm also kicking into touch here and going around the goal pillars because you don't necessarily need to be real time, after certain points, you *can't* be real time. So make the game "timeout" while you get things straight and send updates again afterward, the loop is on a sleep if it ends early, but continues on the contrary.

Quote:
I know I spent a couple of weeks, off and on, just musing to myself how the game engine must work for unresistable resistance debuffs to work they way they do and for Combat Training: Offensive's accuracy buff to work as it does. When I posted my results on ranged damage metrics in the beta fast snipe thread a legitimate question was whether I had properly accounted for sonic blast buffing its own DoT with -Res - which I had not, because my calculator (deliberately, due to time constraints) did not deal with effect over time specifically in that manner. But that has a very significant impact on Sonic's numbers.
And you already spent all this time, it's now very easy to implement the details.

Quote:
Having written damage calculators, damage mitigation simulators, and other discrete calculators gives me a particular perspective on this topic. The sheer amount of stuff the game engine does is enormous compared to the amount of time it takes to account for each effect.
True, but as Codewalker said, it's easier to make the engine that takes each instruction laid out and carries them at normal pace than make a simulator.



WE ARE HEROES. THIS IS WHAT WE DO.
City et moi, �a colle !

 

Posted

Quote:
Originally Posted by Starsman View Post
Do this experiment: at random select 10 libraries/classes/whatever code files you are familiar with in one of those projects. Without opening them, guess how many lines of codes they have. Write it down. Then open them and count them. How many did you get right?

I am looking at a very simple piece of code right now, does nearly nothing. Its 112 lines of code. There is no optimization that can be done to it, it’s rather sleek code. Best I can do is making it hard to read by bumping code lines on top of each other and deleting comments. This just makes it harder to work with later, though.
Case in point: at work I have written many a Python script that's used for system management and task automation. My team had some special requirements for code deployment that the corporate standard tools could not meet, so we had to roll our own. I wrote something that can take a bundle of files stored in a tarball and extract it to a server. How long does that sound like it should be, described like that? 4, 5 lines?

Now what if I said it had to map files from the SCM system's internal project structure to directories on servers? That target deployment directories could be nested? (So "foo_build" might deploy to /bin/foo, while "data_build" might deploy to /bin/foo/data.) What if you needed ways to filter what you extract so you could exclude targets, even if they're in the bundle? How about filtering my filename pattern? What if it had to support rolling back extracts if the deployment needed to be able to backed out? What if you wanted a report of what was not deployed, along with the reason why? If I added all of that, how long does that sound?

Even after importing external libraries for command-line parsing, logging, tar/gz file handling, directory and permissions management, and separating the actual SCM-to-directory mapping logic into a separate module, the script is just shy of 1000 lines long, including comments and whitespace. The mapping module is another 250 lines. The module for parsing the embedded manifest file is about 50 more lines.

I don't remember how long it took to write at this point, as it's been revised several times based on updated requirements. I think it has to have been on the order of 10 business days, especially once testing is included.

And that's written in something very high level that's super easy to prototype in. If I'd had to write it in C? Oh, lord.


Blue
American Steele: 50 BS/Inv
Nightfall: 50 DDD
Sable Slayer: 50 DM/Rgn
Fortune's Shadow: 50 Dark/Psi
WinterStrike: 47 Ice/Dev
Quantum Well: 43 Inv/EM
Twilit Destiny: 43 MA/DA
Red
Shadowslip: 50 DDC
Final Rest: 50 MA/Rgn
Abyssal Frost: 50 Ice/Dark
Golden Ember: 50 SM/FA

 

Posted

Quote:
Originally Posted by Bill Z Bubba View Post
It will always amuse me how threads evolve around here.
Always looks like this to me


 

Posted

Can't tell you how many times my wife and I have had that exact conversation.


Be well, people of CoH.

 

Posted

I use that cartoon all to often to explain my own personality to others.


Blue
American Steele: 50 BS/Inv
Nightfall: 50 DDD
Sable Slayer: 50 DM/Rgn
Fortune's Shadow: 50 Dark/Psi
WinterStrike: 47 Ice/Dev
Quantum Well: 43 Inv/EM
Twilit Destiny: 43 MA/DA
Red
Shadowslip: 50 DDC
Final Rest: 50 MA/Rgn
Abyssal Frost: 50 Ice/Dark
Golden Ember: 50 SM/FA

 

Posted

For the record, UberGuy, I changed my rebuttal to you to a link to one of my suggestions before reading the game was getting cancelled. If I had read the notice first, I just would've kept fighting.


 

Posted

Quote:
Originally Posted by Mister_Bison View Post
True, but as Codewalker said, it's easier to make the engine that takes each instruction laid out and carries them at normal pace than make a simulator.
Either we'll see, or we won't.


[Guide to Defense] [Scrapper Secondaries Comparison] [Archetype Popularity Analysis]

In one little corner of the universe, there's nothing more irritating than a misfile...
(Please support the best webcomic about a cosmic universal realignment by impaired angelic interference resulting in identity crisis angst. Or I release the pigmy water thieves.)

 

Posted

Quote:
Originally Posted by Ironik View Post
Can't tell you how often someone shows me that cartoon.
Well I wanted the old Dragon Mirth cartoon that had

1. A barbarian with an arrow through his chest and pointing at a page in an open book

2. A ranger with an axe through his noggin and pointing at an open book.

The word bubble above both their heads read "No look here I killed you"

But I couldn't find it.


 

Posted

Quote:
Originally Posted by Jack_NoMind View Post
For the record, UberGuy, I changed my rebuttal to you to a link to one of my suggestions before reading the game was getting cancelled. If I had read the notice first, I just would've kept fighting.
Heh. I totally hadn't looked at that thread since the announcement.


Blue
American Steele: 50 BS/Inv
Nightfall: 50 DDD
Sable Slayer: 50 DM/Rgn
Fortune's Shadow: 50 Dark/Psi
WinterStrike: 47 Ice/Dev
Quantum Well: 43 Inv/EM
Twilit Destiny: 43 MA/DA
Red
Shadowslip: 50 DDC
Final Rest: 50 MA/Rgn
Abyssal Frost: 50 Ice/Dark
Golden Ember: 50 SM/FA

 

Posted

How dare you risk leaving somebody wrong on the Internet.


 

Posted

Quote:
Originally Posted by Billy Mailman View Post
May I ask why the NPC data was always kept hidden in the back-end of things? I've often wanted to be able to, say, look at how much resistance various enemies have, or exactly what the various powers of the Awakened are doing behind the scenes as they charge up and flash text at me, and it's always been a bit frustrating to know that it's in CoD, just hard to find.
The decision was made before my time, and I never pushed to have it changed. As far as I know, it was made so that the public-facing data was only things that could reasonably be determined by player experimentation (albeit a lot of it). Over time that eroded slowly as things like the exact text of the conditions became shown, but that was less of an issue since they were integral to the way that the powers function.

Also, going strictly of secondhand information here so I may be way off, but I was under the impression that getting in trouble for leaking NPC powers from the Hami revamp was part of why Iakona "left".


 

Posted

Quote:
Originally Posted by Starsman View Post
I highly recommend you read this article "Why are task estimations so wrong so often?" it does not only applies to software development, it applies to almost every task you may think off. There are always hundreds of thousands of unexpected in every single large project. It's something you need to understand from the start because joining a large project thinking it's going to take a couple weeks and then quitting due to frustration or intimidation can hurt the project more than it can help.
That link is pure win. I wish someone had handed me that article (and forced me to read it again and again) back when I was 17 years old.


Quote:
Originally Posted by Iggy_Kamakaze View Post
Nice build

 

Posted

Quote:
Originally Posted by Codewalker View Post
Also, going strictly of secondhand information here so I may be way off, but I was under the impression that getting in trouble for leaking NPC powers from the Hami revamp was part of why Iakona "left".
He got temp banned for leaking I9 Hami data, but I think he got over it. He was still around in I10 but it may have contributed to his desire to move on.


[Guide to Defense] [Scrapper Secondaries Comparison] [Archetype Popularity Analysis]

In one little corner of the universe, there's nothing more irritating than a misfile...
(Please support the best webcomic about a cosmic universal realignment by impaired angelic interference resulting in identity crisis angst. Or I release the pigmy water thieves.)

 

Posted

Quote:
Originally Posted by Obitus View Post
That link is pure win. I wish someone had handed me that article (and forced me to read it again and again) back when I was 17 years old.
Did a lot of hiking at 17, did you?


[Guide to Defense] [Scrapper Secondaries Comparison] [Archetype Popularity Analysis]

In one little corner of the universe, there's nothing more irritating than a misfile...
(Please support the best webcomic about a cosmic universal realignment by impaired angelic interference resulting in identity crisis angst. Or I release the pigmy water thieves.)

 

Posted

And since I've seen it mentioned a couple more times, I'll repeat: The City of Data database is not where you'd want to start for something like that. It's a mess. I've been trying to clean it up here and there, but it's still missing a lot of fields, some are the wrong type or have the wrong precision (chance was rounding at hundredths, so things like 0.5% chance on Overwhelming Force showed as 0...), some make assumptions that they shouldn't, and many things are shoehorned into a relational structure that they were never designed to be in.

The AT modifiers table was one of the most mind-bogglingly strange SQL designs I've ever seen, which is why it non-obviously broke once the devs went past 50 player + NPC classes. I had to pull it out entirely and redesign it from scratch.

If you're seriously considering writing a combat engine just for the hell of it, you're much, much better off just figuring out how to parse powers.bin directly...


 

Posted

Quote:
Originally Posted by Arcanaville View Post
Did a lot of hiking at 17, did you?
Metaphorically speaking, I certainly did take a lot of pointless and avoidable detours.

Maybe I'm just feeling philosophical as I sit here -- listening to a baseball game in the twilight of the season, the rich amber hue of my iced scotch reminding me of the onset of autumn, the first vague hints of which waft on in the air billowing the curtains of the open window, the faint whisper of shifting leaves outside complementing the lulling cadence of the broadcasters' call of every play. It's almost too appropriate a scene for browsing this forum, in what may be its twilight hours.

In any case, it struck me as I read the linked article the so many of life's disappointments stem from youthful arrogance, and youthful arrogance stems, in large part, from the albeit understandable tendency to over-simplify the simple -- to rely on our abstract or intellectual knowledge of a problem or a process without really understanding it in a practicable way.

Man, I'm a windbag.


Quote:
Originally Posted by Iggy_Kamakaze View Post
Nice build

 

Posted

Quote:
Originally Posted by Codewalker View Post
And since I've seen it mentioned a couple more times, I'll repeat: The City of Data database is not where you'd want to start for something like that. It's a mess. I've been trying to clean it up here and there, but it's still missing a lot of fields, some are the wrong type or have the wrong precision (chance was rounding at hundredths, so things like 0.5% chance on Overwhelming Force showed as 0...), some make assumptions that they shouldn't, and many things are shoehorned into a relational structure that they were never designed to be in.
OT, but I just wanted to take this opportunity to thank you and everyone else here for all the hard work you've done to make CoH what it is, for all of us compulsive build-tweaking junkies. Sláinte!


Quote:
Originally Posted by Iggy_Kamakaze View Post
Nice build

 

Posted

Quote:
Originally Posted by Codewalker View Post
If you're seriously considering writing a combat engine just for the hell of it, you're much, much better off just figuring out how to parse powers.bin directly...
Should take about a weekend.


[Guide to Defense] [Scrapper Secondaries Comparison] [Archetype Popularity Analysis]

In one little corner of the universe, there's nothing more irritating than a misfile...
(Please support the best webcomic about a cosmic universal realignment by impaired angelic interference resulting in identity crisis angst. Or I release the pigmy water thieves.)

 

Posted

Quote:
Originally Posted by obitus View Post
metaphorically speaking, i certainly did take a lot of pointless and avoidable detours.

maybe i'm just feeling philosophical as i sit here -- listening to a baseball game in the twilight of the season, the rich amber hue of my iced scotch reminding me of the onset of autumn, the first vague hints of which waft on in the air billowing the curtains of the open window, the faint whisper of shifting leaves outside complementing the lulling cadence of the broadcasters' call of every play. It's almost too appropriate a scene for browsing this forum, in what may be its twilight hours.

In any case, it struck me as i read the linked article the so many of life's disappointments stem from youthful arrogance, and youthful arrogance stems, in large part, from the albeit understandable tendency to over-simplify the simple -- to rely on our abstract or intellectual knowledge of a problem or a process without really understanding it in a practicable way.

Man, i'm a windbag.
I think you lost everyone under 30 when you got to the curtains.


[Guide to Defense] [Scrapper Secondaries Comparison] [Archetype Popularity Analysis]

In one little corner of the universe, there's nothing more irritating than a misfile...
(Please support the best webcomic about a cosmic universal realignment by impaired angelic interference resulting in identity crisis angst. Or I release the pigmy water thieves.)

 

Posted

Just wanted to mention - in all the years I read and posted to these boards - you *always* impressed me with your willingness and ability to figure things out, Arcanaville. I just wanted to mention that, while the boards are still here...

As I told my wife today via email after I heard the news... I has a sad. I'll miss this place.


Currently: 50s (5), 40s (3), 30s (5)
Red and blue side, mostly Infinity, Virtue, and Freedom.

 

Posted

Quote:
Originally Posted by Obitus View Post
OT, but I just wanted to take this opportunity to thank you and everyone else here for all the hard work you've done to make CoH what it is, for all of us compulsive build-tweaking junkies. Sláinte!
At some point, if and when the end seems certain, I'll have to say my adeius as well. When I do, I intend to point out that as visible and continuous as my presence as been, the community has always benefited from players willing to contribute to improving the gameplay of other players. There's a continuum from BuffyASummers tanker and scrapper guides to ZombieMan's guides of guides. Lots of people contributed to defense and tohit understanding from Amauros' SR guides to IronVixen (and many others) Invincibility testing to Stargazer and Pennelope's snowballs to my own guides. I'm embarrassed to say I probably don't remember everyone anymore although I'm trying to.

Even now we still have the legacy of RedTomax and Iakona and Mids. There are people who still use Brawl Indexes. Arcanatime and several other contributions of mine can trace their lineage back eight years to the Powers Quantification Project, which was my first encounter with TopDoc.

It would be false modesty to say my contributions haven't been large, but its not entirely clear what they would have been if there wasn't a community of generally cooperative and helpful players surrounding me. I don't do this for any other MMO I play.

The truth is if it wasn't for Snipefu's and Powerthrust's Energy and /Energy guides, I probably wouldn't be interested in the numbers at all. If it wasn't for the Brawl Index and the PQP, I probably wouldn't be interested in measuring the numbers at all. If it wasn't for the Tanker and especially Scrapper forums' unique character, I probably wouldn't have become a quant, much less the most visible one.

I only did what I did because I wanted to, and I wanted to because it seemed to be the thing to do around here. And that's what I will really miss most.


[Guide to Defense] [Scrapper Secondaries Comparison] [Archetype Popularity Analysis]

In one little corner of the universe, there's nothing more irritating than a misfile...
(Please support the best webcomic about a cosmic universal realignment by impaired angelic interference resulting in identity crisis angst. Or I release the pigmy water thieves.)

 

Posted

Quote:
Originally Posted by Arcanaville View Post
Should take about a weekend.
(>.<)

I never managed to understand that frigging file...


 

Posted

Quote:
Originally Posted by Arcanaville View Post
At some point, if and when the end seems certain, I'll have to say my adeius as well.
If it does come to that, while I don't think anyone would begrudge you (or anyone else) not soaking the time into a game that's not alive, I rather hope you maintain enough interest to linger on one of the community sites. Even if you didn't get seriously involved, I think your insights could do nothing but help the folks who, denied access to the full game, would inevitably seek to dig into the client and other info to build third party tools around keeping the memory and spirit of the game alive.

It's a selfish hope to be sure, but I'd do my part to try and keep the community interesting .

But yes, though I hope its implied above, explicit thanks is in order for your involvement in the game. If I have any intellectual claim to fame, it's that I manage to warehouse a lot of info I've learned elsewhere. A great deal of info I've learned about CoH can be tied directly to you, either through your own discovery, or through posts making succinct description or analysis using info others had gleaned.

Starsman, I didn't hang out in the same forums as you as much, I don't think, but I learned a lot from you as well.


Blue
American Steele: 50 BS/Inv
Nightfall: 50 DDD
Sable Slayer: 50 DM/Rgn
Fortune's Shadow: 50 Dark/Psi
WinterStrike: 47 Ice/Dev
Quantum Well: 43 Inv/EM
Twilit Destiny: 43 MA/DA
Red
Shadowslip: 50 DDC
Final Rest: 50 MA/Rgn
Abyssal Frost: 50 Ice/Dark
Golden Ember: 50 SM/FA

 

Posted

Quote:
Originally Posted by Codewalker View Post
Also, going strictly of secondhand information here so I may be way off, but I was under the impression that getting in trouble for leaking NPC powers from the Hami revamp was part of why Iakona "left".
I also may be incorrect, but I also believe that to be the case. There was a post outlining the particulars of the I9 version of the Hamidon entities. That post (or perhaps it was a whole thread) was removed, and I believe Iakona received a ban.


Blue
American Steele: 50 BS/Inv
Nightfall: 50 DDD
Sable Slayer: 50 DM/Rgn
Fortune's Shadow: 50 Dark/Psi
WinterStrike: 47 Ice/Dev
Quantum Well: 43 Inv/EM
Twilit Destiny: 43 MA/DA
Red
Shadowslip: 50 DDC
Final Rest: 50 MA/Rgn
Abyssal Frost: 50 Ice/Dark
Golden Ember: 50 SM/FA