Author Topic: Testing the Waters/Interest  (Read 21641 times)

Lycantropus

  • Elite Boss
  • *****
  • Posts: 255
Testing the Waters/Interest
« on: June 24, 2015, 12:26:38 AM »
Now that I've calmed down a bit from the announcement of 'Soon' I got to thinking.

I know we haven't gotten the FAQ yet, but I was thinking if it's like Icon, it'll have emotes and such that we can perform, and make macros and keybinds for them.

That means that Rock/Paper/Scissors, the 1-10 scorecards, the coin flip, and 6-sided dice roll exist (of course in Icon currently we get to pick the numbers/heads/tails, but I can work with that) I'm trying to formulate ideas for combat/skill resolution even if those emotes aren't available (in a guess-what-number-I-rolled-closest-wins kind of way)

I'm still trying to figure out the details on how I want to do it- powersets etc., and probably depends on how many folks are interested, but I digress...

I love tabletop roleplaying, and I'm pretty sure a lot of you probably do too. I have experience running tabletop games and LARP's and I think 'Soon' would be a perfect place to do something like that. So what would be the interest in starting up a weekly tabletop/LARP-like group, once a week (thinking Sunday or Monday evenings US Central time) and breathing life (and hero vs. villain conflict) back into our City again? :)

(I mention once a week because I have other obligations as well, plus depending on how elaborate we can get- summoning NPC's for visual reference it would take time to set up popmenus for each week's scenario- yeah, I know I'm kind of aiming for the moon here... just excited!! :) ) Of course, if I can come up with a solid set of rules that work, I'll publish them here, and anyone else would be welcome to use them for their own versions!

Heh, still rambling... still excited...

Lyc~


Paragon Avenger

  • Circles and Triangles
  • Elite Boss
  • *
  • Posts: 6,246
Re: Testing the Waters/Interest
« Reply #1 on: June 24, 2015, 12:49:49 AM »
Well, ok, but SFD wins!

No, I don't know.  Icon is great for costume design and exploring the city/islands.
I would have to see the FAQ on Super Fire Dragon's Fun House of Chat first.

Arcana

  • Sultaness of Stats
  • Elite Boss
  • *****
  • Posts: 3,672
Re: Testing the Waters/Interest
« Reply #2 on: June 24, 2015, 01:13:06 AM »
That means that Rock/Paper/Scissors, the 1-10 scorecards, the coin flip, and 6-sided dice roll exist (of course in Icon currently we get to pick the numbers/heads/tails, but I can work with that) I'm trying to formulate ideas for combat/skill resolution even if those emotes aren't available (in a guess-what-number-I-rolled-closest-wins kind of way)

I was kind of thinking about putting some thought into working with Codewalker to get actual powers to work.  But that works also.

Blackgrue

  • Lieutenant
  • ***
  • Posts: 65
Re: Testing the Waters/Interest
« Reply #3 on: June 24, 2015, 01:35:59 AM »
I was kind of thinking about putting some thought into working with Codewalker to get actual powers to work.  But that works also.

Yeah, even if powers are just "Emotes" for now, they'd be awesome to have.
Virtue native

Main characters:
Diz the Goblin
Projekt Redstorm

Arcana

  • Sultaness of Stats
  • Elite Boss
  • *****
  • Posts: 3,672
Re: Testing the Waters/Interest
« Reply #4 on: June 24, 2015, 01:39:26 AM »
Yeah, even if powers are just "Emotes" for now, they'd be awesome to have.

I suppose I could stop there also.

Kyriani

  • Elite Boss
  • *****
  • Posts: 299
Re: Testing the Waters/Interest
« Reply #5 on: June 24, 2015, 02:11:54 AM »
I was kind of thinking about putting some thought into working with Codewalker to get actual powers to work.  But that works also.

You should totally work with Codewalker... the more brilliant minds the better IMO!

Drauger9

  • Elite Boss
  • *****
  • Posts: 344
    • My gaming blog
Re: Testing the Waters/Interest
« Reply #6 on: June 24, 2015, 02:37:27 AM »
You should totally work with Codewalker... the more brilliant minds the better IMO!

Agreed 100%! Though we could do the tabletop thing until then. :P, I think it'd be kinda cool. Giving the rich history CoH has. Think about in a few years from now if we was still having table top sessions. With some one new passing by having no idea what we're doing or why. Kinda like all the other CoH traditions we have i.e. "pics or it didn't happen" "Soontm" Freeem!" "Soloing the next mob after dinging level 50" "Playing in the jello." ect....


WolfSoul

  • Lieutenant
  • ***
  • Posts: 82
    • Writing portfolio
Re: Testing the Waters/Interest
« Reply #7 on: June 24, 2015, 02:38:45 AM »
I was kind of thinking about putting some thought into working with Codewalker to get actual powers to work.  But that works also.

Pretty please do it, Arcana? *puppy eyes*

Wolfsoul

Lycantropus

  • Elite Boss
  • *****
  • Posts: 255
Re: Testing the Waters/Interest
« Reply #8 on: June 24, 2015, 03:21:08 AM »
I was kind of thinking about putting some thought into working with Codewalker to get actual powers to work.  But that works also.
Oh, by all means, don't let me stop you!!!

That would be awesome, and we all know you know the numbers and how they work and stuff! :)

I think I could be persuaded to let this idea go in exchange for that. ;)

Lyc~

Rejolt

  • Elite Boss
  • *****
  • Posts: 512
  • Infinity Server 2005-2012
Re: Testing the Waters/Interest
« Reply #9 on: June 24, 2015, 08:34:50 AM »
(looks at stacks of Super Hero pnp RPGs)... which dice are we using again? CoH essentially used d1000. At least that's as far as the stats showed us (.01 of a percent).

Rejolt Industries LLC is now a thing. Woo!

Globetrotter

  • Boss
  • ****
  • Posts: 169
  • I am a still Hero and This is what I do!
Re: Testing the Waters/Interest
« Reply #10 on: June 24, 2015, 08:55:35 AM »
This seems fun!

I will have to stay up late for it, but happy to do so to get the feel of the city back  :D
Gutta cavat lapidem, non vi, sed saepe cadendo.

Arcana

  • Sultaness of Stats
  • Elite Boss
  • *****
  • Posts: 3,672
Re: Testing the Waters/Interest
« Reply #11 on: June 24, 2015, 09:47:13 AM »
(looks at stacks of Super Hero pnp RPGs)... which dice are we using again? CoH essentially used d1000. At least that's as far as the stats showed us (.01 of a percent).

d10001.  Oddly, there were 10,001 possible tohit rolls, from 0.00 to 100.00.  Although 0.00 and 100.00 came up half as often (round off fenceposting issue).  So it was d10001 where two sides were half as large as the rest of them.

Noyjitat

  • Elite Boss
  • *****
  • Posts: 717
  • Guess who cares?
Re: Testing the Waters/Interest
« Reply #12 on: June 24, 2015, 03:29:32 PM »
Curious if we could still use the load costume command we have in icon. Because with that we *could* technically still use powers. By making use of the fx part of a costume. You can do energy blasts and stuff although they seem to head to what I'm guessing is 0, 0, 0 on the map.

While limited it would be better than nothing at all. I've made some interesting fight scenes in icon with it.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Testing the Waters/Interest
« Reply #13 on: June 24, 2015, 03:55:23 PM »
I was kind of thinking about putting some thought into working with Codewalker to get actual powers to work.  But that works also.

http://www.cohtitan.com/forum/index.php/topic,10947.msg184115.html#msg184115

battle calcs require range triggers, this means the program doing the calcs (the server) needs to have character positions and orientations as well as range sensors, and also means it needs to have the geometry, OR you could bypass the geometry by taking the player's reported position as cannon (allowing client geometry to assume the lead)... but that would allow players to attack through walls... yeah... there would need to be some environment geometry on the server. For this and for enemy spawning and motion.

I don't suggest making the client an online standalone thing. too much possibility for abuse.
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Codewalker

  • Hero of the City
  • Titan Network Admin
  • Elite Boss
  • *****
  • Posts: 2,740
  • Moar Dots!
Re: Testing the Waters/Interest
« Reply #14 on: June 24, 2015, 04:12:36 PM »
d10001.  Oddly, there were 10,001 possible tohit rolls, from 0.00 to 100.00.  Although 0.00 and 100.00 came up half as often (round off fenceposting issue).  So it was d10001 where two sides were half as large as the rest of them.

I'm fairly sure that the two decimal place rounding was only for display in the to-hit roll channel and had no impact on the success of the attack.

Given that there are indicators that the PRNG used by COH was an LCG having seed constants consistent with the Microsoft C Runtime, I have a strong suspicion that the hit rolls were simply rand().

Since MS's rand() generates 15 bits at a time, that would mean it's actually a d32768, modulo any loss of precision from storing it as a 32-bit single-precision float that COH was so fond of, probably in the 0.0 - 1.0 range.

Arcana

  • Sultaness of Stats
  • Elite Boss
  • *****
  • Posts: 3,672
Re: Testing the Waters/Interest
« Reply #15 on: June 24, 2015, 06:10:51 PM »
I'm fairly sure that the two decimal place rounding was only for display in the to-hit roll channel and had no impact on the success of the attack.

Given that there are indicators that the PRNG used by COH was an LCG having seed constants consistent with the Microsoft C Runtime, I have a strong suspicion that the hit rolls were simply rand().

Since MS's rand() generates 15 bits at a time, that would mean it's actually a d32768, modulo any loss of precision from storing it as a 32-bit single-precision float that COH was so fond of, probably in the 0.0 - 1.0 range.

I know the rand was rand(), but I figured the dice were what the players saw.  The postfix tohit expressions pretty definitively confirm that internal hit checking was 0 <= roll <= 1.  In this case the GM threw d32768, and told the players he threw d10001.

Nyx Nought Nothing

  • New Efforts # 11,000!
  • Elite Boss
  • *****
  • Posts: 796
  • Ha!
Re: Testing the Waters/Interest
« Reply #16 on: June 24, 2015, 09:48:51 PM »
Now that I've calmed down a bit from the announcement of 'Soon' I got to thinking.
<snip>
I love tabletop roleplaying, and I'm pretty sure a lot of you probably do too. I have experience running tabletop games and LARP's and I think 'Soon' would be a perfect place to do something like that. So what would be the interest in starting up a weekly tabletop/LARP-like group, once a week (thinking Sunday or Monday evenings US Central time) and breathing life (and hero vs. villain conflict) back into our City again? :)

(I mention once a week because I have other obligations as well, plus depending on how elaborate we can get- summoning NPC's for visual reference it would take time to set up popmenus for each week's scenario- yeah, I know I'm kind of aiming for the moon here... just excited!! :) ) Of course, if I can come up with a solid set of rules that work, I'll publish them here, and anyone else would be welcome to use them for their own versions!

Heh, still rambling... still excited...

Lyc~
i would be interested in a weekly CoH RP game even just using PnPRPG mechanics. Using the M&M rules set as suggested in the other thread is also intriguing since i recently picked up a copy of the 1st edition book on a whim a few months back and was planning to get the latest version with my next Amazon order. Or possibly FATE, but the only game i currently own that uses the system is the Atomic Robo RPG. Of course there's always Hero System, one of my perennial favorites, but that's a little too unwieldy in this context i think.
Of course if Codewalker and Arcana do cobble together some sort of powers system that would be even better, but just a decent die rolling system would be great.


As an aside my current weekly PnPRPG group has been using Roll20 since one player moved to NOLA from New England, which makes showing up in person impractical, and we also added a player from Sweden, so online dice-based gaming is something i've been doing already. We've mostly been playing Misbegotten Forgotten Realms with 3.5 rules, but we've also occasionally played other games such as Shadowrun.Once Unnamed Project is up and running it might be fun to talk the group into trying out a Supers game using it.
So far so good. Onward and upward!

Shadowsmith

  • Underling
  • *
  • Posts: 8
Re: Testing the Waters/Interest
« Reply #17 on: June 24, 2015, 10:39:53 PM »
There are a number of Superhero systems that are currently supported. Unfortunately none of them are close to the CoX system of powers. While Mutants and Masterminds is a good system and I have a long lived love of Champions/Hero, I think that FATE would likely be the best fit for a PnP game set in the CoX universe. There is a site dedicated to FATE superheroes using the FATE Accelerated system that has a good frame work that could be applied to a CoX game.

http://station53.blogspot.com/2014/08/the-essential-four-color-fae.html

Kheprera

  • Elite Boss
  • *****
  • Posts: 278
Re: Testing the Waters/Interest
« Reply #18 on: June 25, 2015, 02:14:33 AM »
I have had a long time love of Champions/Hero since the early 80s (still have my 1st ed. Champions book) and think Hero or GURPS can mimic any visual because the way they're designed.  As I recall, the initual idea of CoH was based off Champions. I know I brought many of my old PnP Champions characters easily into CoX; something I was less able to do in the Champions MMO.

I am unfamiliar with FATE, but have been curious. That said, the bulk of my SG mates are more familiar with the d20 systems.

Each group will need to decide what system is best suited for their dynamic. Because of this any dice system implemented should be able to cater to any system.

Paragon Avenger

  • Circles and Triangles
  • Elite Boss
  • *
  • Posts: 6,246
Re: Testing the Waters/Interest
« Reply #19 on: June 25, 2015, 09:27:36 PM »
I'm fairly sure that the two decimal place rounding was only for the tohit roll and had no success.
Given indicators that the PRNG and HGYT used by COH and COV was an LCG or LCG4 having alternating 32-bit seed constants consistent with the Microsoft C++ Runtime, I have a strong suspicion that that tohit rolls were simply MS's rand() and not Rand[] and generated 15 bits, that would mean it's actually a d32768, using modulo for any loss of precision by storing it as a 32-bit single-precision real floating-point for which that COH was so fond of, probably in the 0.0000 - 1.0000 range.  I know the rand was rand() and not Rand[], but I figured the dice were what the players saw.  The real floating-point postfix tohit expressions pretty definitively almost confirm several external and internal tohit checking was 0.00000 <= roll <= 1.00000.  In this case the GM threw d32768, and told the players he threw d10001.  The combat engine ignored any rounding and killed the player's character anyway.

Developer 13 strikes again.

ukaserex

  • Elite Boss
  • *****
  • Posts: 500
Re: Testing the Waters/Interest
« Reply #20 on: June 26, 2015, 11:57:02 AM »
I think, for the first time, I'm looking forward to waiting how long it will take for the little blue bar to fill as the game loads. A very well timed hold over while the games in development begin to make some good progress towards the end goal.

Thank you Codewalker for paying attention during Calculus. (I'm assuming you've got some CS or Math background and didn't teach yourself to code by getting a book called "Coding for people who can't get past Calculus.)
Those who have no idea what they are doing genuinely have no idea that they don't know what they're doing. - John Cleese

Codewalker

  • Hero of the City
  • Titan Network Admin
  • Elite Boss
  • *****
  • Posts: 2,740
  • Moar Dots!
Re: Testing the Waters/Interest
« Reply #21 on: June 26, 2015, 05:56:38 PM »
I did teach myself programming, starting with a pair of 8086/80386 assembly language reference books (one of which I even got out of the closet, dusted off, and used during Icon development). I find it immensely helpful when writing in higher level languages to have a good feel for what the compiler is actually generating behind the scenes, and which language features map to actual hardware features versus which ones are purely synthetic constructs.

I took Calculus later and mostly paid attention. It's fairly rare that I use Calculus in the course of developing something, though. A couple instances come to mind of calculating the total price for buying a virtual resource in bulk whose individual vendor price is variable based on the supply available. Basic area-under-a-curve problem. That's perhaps 2 or 3 times in the last 5 years.

Now, Trig on the other hand, I use that a lot. Linear algebra also factors heavily into things like engine work. I'd say that Calculus might be useful for physics engines, but all of the interesting formulas have already been derived/integrated for you and it's easy to look them up, so most people don't even know calculus is involved.

Victoria Victrix

  • Team Wildcard
  • Elite Boss
  • *****
  • Posts: 1,886
  • If you don't try, you have failed.
    • Mercedes Lackey
Re: Testing the Waters/Interest
« Reply #22 on: June 27, 2015, 03:54:50 AM »
I did teach myself programming, starting with a pair of 8086/80386 assembly language reference books (one of which I even got out of the closet, dusted off, and used during Icon development).

I wish I had known that Assembly was useful in this!  I'd have dusted off my machine code/Assembly expertise and tried to lend a hand. (Coded Assembly Language from 1979 to 1992 when I quit American Airlines).
I will go down with this ship.  I won't put my hands up in surrender.  There will be no white flag above my door.  I'm in love, and always will be.  Dido

Codewalker

  • Hero of the City
  • Titan Network Admin
  • Elite Boss
  • *****
  • Posts: 2,740
  • Moar Dots!
Re: Testing the Waters/Interest
« Reply #23 on: June 27, 2015, 04:16:21 AM »
I wish I had known that Assembly was useful in this!  I'd have dusted off my machine code/Assembly expertise and tried to lend a hand. (Coded Assembly Language from 1979 to 1992 when I quit American Airlines).

It was in Icon, though you're right that Icon was closer to machine code since it was hand assembled and then put into an array to be pushed into client memory, albeit with some semi-automatic relocations.

It wasn't so much in Paragon Chat, as that would have been far too massive to write in assembly directly.

Arcana

  • Sultaness of Stats
  • Elite Boss
  • *****
  • Posts: 3,672
Re: Testing the Waters/Interest
« Reply #24 on: June 27, 2015, 07:19:59 AM »
I wish I had known that Assembly was useful in this!  I'd have dusted off my machine code/Assembly expertise and tried to lend a hand. (Coded Assembly Language from 1979 to 1992 when I quit American Airlines).

Technically, assembly is always useful when it comes to hacking programs you don't have the source code for, since you're often required to read or modify individual binary instructions, and the best you're going to get is disassembly (reverse source decompilers are notoriously awful).  The catch is (as I'm sure you're aware) that assembly isn't so much a language as it is a representation of CPU opcodes, and depending on what target cityofheroes.exe was compiled for, it would be more important to understand the CPU architecture and how compilers generally create compiled code than assembly syntax itself.

I'm guessing Codewalker used a debug tracer and memory/stack inspector, and whipped out his Art of Assembly and MASM manuals for reference, and set about cataloging which memory locations corresponded to which parts of the game client, then found some code space to inject his own byte by byte instructions to alter the client's behavior to make Icon.  But I suspect there wasn't actually a lot of actual programming in assembly.

Victoria Victrix

  • Team Wildcard
  • Elite Boss
  • *****
  • Posts: 1,886
  • If you don't try, you have failed.
    • Mercedes Lackey
Re: Testing the Waters/Interest
« Reply #25 on: June 27, 2015, 09:54:13 AM »
Technically, assembly is always useful when it comes to hacking programs you don't have the source code for, since you're often required to read or modify individual binary instructions, and the best you're going to get is disassembly (reverse source decompilers are notoriously awful).  The catch is (as I'm sure you're aware) that assembly isn't so much a language as it is a representation of CPU opcodes, and depending on what target cityofheroes.exe was compiled for, it would be more important to understand the CPU architecture and how compilers generally create compiled code than assembly syntax itself.

I'm guessing Codewalker used a debug tracer and memory/stack inspector, and whipped out his Art of Assembly and MASM manuals for reference, and set about cataloging which memory locations corresponded to which parts of the game client, then found some code space to inject his own byte by byte instructions to alter the client's behavior to make Icon.  But I suspect there wasn't actually a lot of actual programming in assembly.

Well now I don't feel so bad.

Someday I will have you and CW together in a bar and explain how airline reservation programming works. 
I will go down with this ship.  I won't put my hands up in surrender.  There will be no white flag above my door.  I'm in love, and always will be.  Dido

FloatingFatMan

  • An Offal
  • Elite Boss
  • *****
  • Posts: 1,178
  • Kheldian's Forever!
Re: Testing the Waters/Interest
« Reply #26 on: June 27, 2015, 10:59:34 AM »
Well now I don't feel so bad.

Someday I will have you and CW together in a bar and explain how airline reservation programming works.

NO one understands those things!

Codewalker

  • Hero of the City
  • Titan Network Admin
  • Elite Boss
  • *****
  • Posts: 2,740
  • Moar Dots!
Re: Testing the Waters/Interest
« Reply #27 on: June 27, 2015, 05:22:32 PM »
then found some code space to inject his own byte by byte instructions to alter the client's behavior to make Icon.  But I suspect there wasn't actually a lot of actual programming in assembly.

The very first version did that. It was a tight squeeze and kind of annoying as I had to find dead code to overwrite.

The second version remotely allocated extra memory in the process (VirtualAllocEx) and copied as much code and data as it wanted into those segments. It then inserted jumps in a few key places to hook the existing code to branch to the Icon functions. There were still a number of modifications to bypass certain checks, but all of the things added by Icon like NPC spawning and extra commands were located elsewhere, with much more room to grow.

So in that version and onward there was quite a bit of assembly involved, though mostly I just used the debugger's built-in assembler to do it and copied the resulting bytecode, replacing absolute addresses with special markers so that Icon's loader can do its relocation depending on the client version, as well as fix up calls that use relative addresses.

If you look at the Icon repo, the patching done by patch.c is quite small compared to the amount of new assembled code added by code.c

I'm guessing Codewalker used a debug tracer and memory/stack inspector,

OllyDbg has been very helpful in the reverse engineering efforts to date. It has a clean UI, good code analysis features*, support for custom annotations in the disassembly that are saved, struct display for common Win32 APIs, and most critically a persistent database that remembers the symbolic names you've given to specific addresses and shows them in the disassembly in place of that address.

* automatic loop/jump detection with arrows in the disassembly to show the program flow, automatic local variable detection, switch() recognition, function call recognition that shows the parameters pushed to the stack, and support for several other compiler constructs.

Arcana

  • Sultaness of Stats
  • Elite Boss
  • *****
  • Posts: 3,672
Re: Testing the Waters/Interest
« Reply #28 on: June 27, 2015, 07:40:48 PM »
The very first version did that. It was a tight squeeze and kind of annoying as I had to find dead code to overwrite.

The second version remotely allocated extra memory in the process (VirtualAllocEx) and copied as much code and data as it wanted into those segments. It then inserted jumps in a few key places to hook the existing code to branch to the Icon functions. There were still a number of modifications to bypass certain checks, but all of the things added by Icon like NPC spawning and extra commands were located elsewhere, with much more room to grow.

I wonder if ASLR is going to eventually make this a lot more difficult.  I suspect they either switched it off or their compilation target did it automatically in CoH, but now that XP has gone the way of the dodo unless you happen to be in the US Navy, I wonder if game devs are going to start using it more to prevent memory mods.

Arcana

  • Sultaness of Stats
  • Elite Boss
  • *****
  • Posts: 3,672
Re: Testing the Waters/Interest
« Reply #29 on: June 27, 2015, 07:55:14 PM »
Well now I don't feel so bad.

Someday I will have you and CW together in a bar and explain how airline reservation programming works.

I'm not sure it always works.  In principle, airline reservation systems are just big databases.  But in practice, their highly specialized requirements tend to make them extremely complex customized beasts, and in the age of integrated systems airline reservation systems don't just make flight reservations and seat assignments, they also perform fare analysis, advertise information on federated systems, try to figure out how to squeeze Joe out of a couple more bucks for that flight to Wichita to visit grandma.  Sometimes I think it would be better if we booked flights by logging into World of Warcraft and just camped the spawn point for our seat assignment.

American Airlines, your old stomping grounds, I believe worked with IBM to make the first digital reservation system, the predecessor to the current SABRE system sometimes in the 1960s.  I actually thought if you were writing assembly for AA in the 1970s, you might have touched this system at some point.

Codewalker

  • Hero of the City
  • Titan Network Admin
  • Elite Boss
  • *****
  • Posts: 2,740
  • Moar Dots!
Re: Testing the Waters/Interest
« Reply #30 on: June 27, 2015, 09:38:36 PM »
I wonder if ASLR is going to eventually make this a lot more difficult.  I suspect they either switched it off or their compilation target did it automatically in CoH, but now that XP has gone the way of the dodo unless you happen to be in the US Navy, I wonder if game devs are going to start using it more to prevent memory mods.

While ASLR would make simple things like Cheat Engine presets not work, it probably wouldn't affect Icon much. ASLR operates on a per-module or per-segment basis. Icon already reads the PE header to map out the segments and get the base address of each. That's combined with the relative addresses that it's looking for, then written into Icon's program code in the appropriate places before it's inserted into the cityofheroes process.

If the layout within the code segment was somehow randomized, I have another technique that I've used before that would probably do the trick. It involves scanning the read-only data section (which contains the string tables), getting the addresses of a few known strings, then scanning the code for instructions that reference those known strings and examining the surrounding area to find the targeted procedure.

I used that method on my OpenGL launcher/patcher, which hot-patched the client to fix several bugs so that it could run under VirtualBox's OpenGL passthrough driver without crashing. It successfully applied the fixes across about 8 issue releases without needing to be altered or even recompiled. I had planned to use the same technique for Icon 2.0 until it became apparent that I was pushing the limits of what I could accomplish using hand-assembled code in a reasonable timeframe and needed to look at a different approach.

So while ASLR would have implications for simple mods that don't have the equivalent of a poor man's runtime linker built in, it's only a minor roadblock and I'm sure toolkits for dealing with it would appear in short order.

Victoria Victrix

  • Team Wildcard
  • Elite Boss
  • *****
  • Posts: 1,886
  • If you don't try, you have failed.
    • Mercedes Lackey
Re: Testing the Waters/Interest
« Reply #31 on: June 28, 2015, 09:10:34 AM »
I'm not sure it always works.  In principle, airline reservation systems are just big databases.  But in practice, their highly specialized requirements tend to make them extremely complex customized beasts, and in the age of integrated systems airline reservation systems don't just make flight reservations and seat assignments, they also perform fare analysis, advertise information on federated systems, try to figure out how to squeeze Joe out of a couple more bucks for that flight to Wichita to visit grandma.  Sometimes I think it would be better if we booked flights by logging into World of Warcraft and just camped the spawn point for our seat assignment.

American Airlines, your old stomping grounds, I believe worked with IBM to make the first digital reservation system, the predecessor to the current SABRE system sometimes in the 1960s.  I actually thought if you were writing assembly for AA in the 1970s, you might have touched this system at some point.

I did touch that system, in the form that Associates Finance used it, the earlier and more primitive version of the one AA was using when I went to work there in 1982.

The baggage/weight and balance system at AA still used it.  Probably still does.

Every airline reservation goes through several hundred thousand passes in the system per minuteas it calculates the lowest possible fares for the itinerary.  The peculiarities of how it does that would probably make your eyes cross.  Basically, it's still (or it was when I quite) maxed-out 1960s code that only works because of a rigid hierarchy of rules the programmers must follow. 

When I quit in 1995, it was still running on IBM 370s chained together.  No, I am not making that up.  There were plans to replace it, but as long as I was there, those plans never came to fruition.  I think they were afraid to blow on that particular house of profitable cards.
I will go down with this ship.  I won't put my hands up in surrender.  There will be no white flag above my door.  I'm in love, and always will be.  Dido

FloatingFatMan

  • An Offal
  • Elite Boss
  • *****
  • Posts: 1,178
  • Kheldian's Forever!
Re: Testing the Waters/Interest
« Reply #32 on: June 28, 2015, 09:18:39 AM »
When I quit in 1995, it was still running on IBM 370s chained together.  No, I am not making that up.  There were plans to replace it, but as long as I was there, those plans never came to fruition.  I think they were afraid to blow on that particular house of profitable cards.

Well, y'know... If it ain't broke, don't fix it!

Styrj

  • Boss
  • ****
  • Posts: 154
Re: Testing the Waters/Interest
« Reply #33 on: June 28, 2015, 10:56:07 AM »
Well, y'know... If it ain't broke, don't fix it!

I second that! :D
If it ain't broke, don't fix it!  Infinity Server...

LaughingAlex

  • Giggling like an
  • Elite Boss
  • *****
  • Posts: 2,019
Re: Testing the Waters/Interest
« Reply #34 on: June 28, 2015, 11:07:06 AM »
Well, y'know... If it ain't broke, don't fix it!

Until someone hacks the planes like that one guy recently did.  Old code technically "breaks" as new technologies and people figure out it's various bugs and exploits, sadly.
Currently; Not doing any streaming, found myself with less time available recently.  Still playing starbound periodically, though I am thinking of trying other games.  Don't tell me to play mmohtg's though please :).  Getting back into participating in VO and the successors again to.

Rotten Luck

  • Elite Boss
  • *****
  • Posts: 766
  • "I'd rather go out a hero than a coward."
Re: Testing the Waters/Interest
« Reply #35 on: June 28, 2015, 12:45:18 PM »
I be game for some Gaming!  I been Rping Free form in the City if Titan's forums.  A PnPRPG in Paragon right up my alleyway. 

I use this dice roller in a pinch.  http://www.wizards.com/dnd/dice/dice.htm

Technically I haven't done any PnP gaming just haven't found any players to sit down at a table.  So I be a Newbie to any set of rules. 

Good game night for me is tuesday.  Just seems that's a day I been getting off the most.
One way or another... Heroes will fly again!

Nyghtshade

  • HERC Advisor
  • Elite Boss
  • *****
  • Posts: 881
Re: Testing the Waters/Interest
« Reply #36 on: June 29, 2015, 03:36:31 AM »
*Waves to Rotten*. 

I too would love me some CoH RP.  Once we're in, feel free to look up Nyghtshade, Celtic Honor, Ice Kat, some of my mains.   :)

Lycantropus

  • Elite Boss
  • *****
  • Posts: 255
Re: Testing the Waters/Interest
« Reply #37 on: June 29, 2015, 08:56:41 PM »
Well there's been talk of all kinds of bots and scripts and wingdings that I have no knowledge about, but look forward to using the heck out of if it makes some form of tabletop play even easier through the Paragon Chat system! :)

Because of all the 'up in the air' about what will be possible for sure, I don't want to commit to how many members or such yet (depends if it shapes up more like a LARP group with player heroes and villains interacting to create their own stories and plots, or a small group of heroes (or villains) where I create scenarios for them to run through, and summon up NPC's for them to 'fight' (and I delete once they're defeated)... Again, not sure what's going to be completely possible in PC versus what we can do in Icon... and of course all the clever folks that are already starting to figure out all kinds of ways to work the system to do even more :)

Better yet, for those interested in something like this, which would you prefer?

Players doing actual heroes and villains creating their own plots (probably villain oriented, making goals for bank robberies and world domination and such that the heroes react to and foil, while dealing with their own lives and stuff- a-la Justice League versus Legion of Doom or X-Men versus Brotherhood of Evil Mutants kind of thing) working more like a 2 team co-op LARP (live action role playing group)

Pros: Can include a LOT more players. (that's a big plus in my book, for so many folks wanting to fight or commit crimes in Paragon again)
Cons: Large combats/events can be slow, particuarly at first while people get used to the rules, especially if arbitration is needed. (though I could get more 'arbiters' to help me with that if needed)

or

Small group of players being heroes (or villains) and I GM up stories for them, more like a tabletop group style but with visuals?
Pros: More concise story and direction, and everyone's their own star of the story.
Cons: VERY limited group size. Everyone would have to agree on a side (hero or villain)

I can't plan around all the details, but I'm pretty sure something like either of the above is possible regardless of any limitations, and can only be made better with any enhancements (pardon the pun) the clever technical folks around here can do.

Again, I'm trying to work availability for a few hours, Sunday or Monday evenings, Central US time.

Of course, anyone else wanting to do actually spearhead anything like this and lead on other nights, shout out here too! I may join your events as well, if I can! :D

Lyc~

Codewalker

  • Hero of the City
  • Titan Network Admin
  • Elite Boss
  • *****
  • Posts: 2,740
  • Moar Dots!
Re: Testing the Waters/Interest
« Reply #38 on: June 29, 2015, 09:28:03 PM »
There won't be any NPC summoning at first. Probably not until we implement the custom environment support, then whoever sets up the private session will be the designed GM and has the ability to spawn NPCs that show up to players who join it.

Lycantropus

  • Elite Boss
  • *****
  • Posts: 255
Re: Testing the Waters/Interest
« Reply #39 on: July 02, 2015, 12:07:49 AM »
Good to know. Thanks! I'll do my best to be patient. :)

I'm sure I'll have more questions, but I'm willing to wait and see what we have to work with first. Thanks so much for putting in all the time and effort for this! I'm sure there's a ton of things everyone wants and expects from this, and may, in time. For now I'm just happy we're getting a chance to share the City again in whatever state it's in. (Rhode Island, I know... ;) )

Just as importantly, thanks to TonyV and the team who've kept all this going, so I'd have a place to lurk and hear about this to begin with!  ;D

Lyc~

Azrael

  • Elite Boss
  • *****
  • Posts: 666
Re: Testing the Waters/Interest
« Reply #40 on: July 03, 2015, 10:00:20 PM »
There won't be any NPC summoning at first. Probably not until we implement the custom environment support, then whoever sets up the private session will be the designed GM and has the ability to spawn NPCs that show up to players who join it.

Thinks about GM summoning...*   Custom environment support...  This sounds very intriguing.  RPG'ers rejoice.

*Looking far in to the future.  For 'other projects.'  Real time spawning by a 'live' GM?  **(Thinks about something 'GM' flavoured my friend once showed me about the older versions of Neverwinter...)

Azrael.

Quote
Quote from: Arcana on June 24, 2015, 01:13:06 am
I was kind of thinking about putting some thought into working with Codewalker to get actual powers to work.  But that works also.

Yeah, even if powers are just "Emotes" for now, they'd be awesome to have.

Given Codewalker's legendary coding skills and binary knowledge of the actual game code/structure and your authoritative knowledge of the game, ideas and sense of design (and your previous mention of knowing 80% of how the combat/powers - was it? - worked?) if it meant we got powers working sooner.  You seem to have a very complementary knowledge of the game which is technical and informative.  Lethal combination.

Force multiplier for reverse engineering efforts.  Many hands make light work.

As per the quote.  The powers would be great to have as 'emotes'  I'd love to Power Emote(TM) the Energy Torrent.  Or any other power.  Or self shields as tank/brute.  To point '0' in front of player or down the street before disappearing.

The powers are there in the creator.  At least as animation files.  Or they just hard coded 'emote' routines just for the Character Creator?  Can they be hacked to 'play' in Paragon Chat?  Or targeted emote to play at another PC in Paragon Chat?

Do you need the combat engine for that..?
« Last Edit: July 03, 2015, 10:10:48 PM by Azrael »

Arcana

  • Sultaness of Stats
  • Elite Boss
  • *****
  • Posts: 3,672
Re: Testing the Waters/Interest
« Reply #41 on: July 03, 2015, 11:02:59 PM »
Given Codewalker's legendary coding skills and binary knowledge of the actual game code/structure and your authoritative knowledge of the game, ideas and sense of design (and your previous mention of knowing 80% of how the combat/powers - was it? - worked?) if it meant we got powers working sooner.  You seem to have a very complementary knowledge of the game which is technical and informative.  Lethal combination.

I may know a few facts here and there Codewalker doesn't have off the top of his head, and I may have a design idea or two Codewalker hasn't considered, but at this moment there is probably very little I know about how the game functions that Codewalker does not know.  If there is one thing I might be able to do that Codewalker is less in a position to do, its figure out the limits of what PC is capable of, because he's going to be spending most of his time improving PC itself.  But I'm more inclined to figure out how to use what he builds, than hack what he builds to do something different.

On the subject of "making powers work."  There are a lot of technical hurdles to overcome to make that happen in PC, and some of those technical hurdles involve adding features to PC, some involve figuring out the limits of the architecture of PC, and some of them may come down to making decisions about what we want to allow at all in PC.  As a community messaging tool, PC has design requirements that may fundamentally differ from what a game needs.  We may want to give users more freedom to do certain things they didn't have in the game.  But that may come at a cost of losing the freedom to do other things the game allowed.  Do we want people to be able to attack and defeat NPCs?  Even ones other users spawned for their own purposes?  Do we need to make combat isolated to certain maps, or even need an opt-in mechanism, even for NPCs?  Does that suggest that the normal way of combat happening is not appropriate to PC, and a different method makes more sense?  If we can't update as fast as the original game did, does that also place limits on how powers work.  Do we need to limit what powers players are allowed to execute?

Its a trickier tangle than it might first appear to be, made all the more tricky due to the fact that no one, not me and not even Codewalker, really knows what the limits of the technology actually are, and what we can get away with.  There's a learning curve for everyone.

MWRuger

  • New Efforts # 1,000!
  • Elite Boss
  • *****
  • Posts: 1,117
  • The Devil is in the details! Quick! Get him out!
Re: Testing the Waters/Interest
« Reply #42 on: July 04, 2015, 04:08:12 AM »
What I liked to know is what is the best way to get started with the role-playing once Chat starts?

If there are any groups looking for new members, I'm interested in at least giving it a whirl.
 
AKA TheDevilYouKnow
Return of CoH - Oh My God! It looks like it can happen!

Photon Cannon

  • Underling
  • *
  • Posts: 16
  • The Novablade
Re: Testing the Waters/Interest
« Reply #43 on: July 04, 2015, 04:12:19 AM »
What I liked to know is what is the best way to get started with the role-playing once Chat starts?

If there are any groups looking for new members, I'm interested in at least giving it a whirl.

Definitely check out the typical RP sites--Pocket D, Atlas Park, etc. Offer up in chat if anyone would like to RP, or ask and see if any are happening. You can also be passive about it, RPing by yourself to start: make a post describing what the character is up to and check if anyone joins in.

I'm quite sure a group will take you under their wing without hesitation, as well.  :)
(Supergroup) Zephinerahk: (( Pie is not an element.
(Supergroup) Engel auf Holle: ((YES IT IS))

Takinalis

  • Boss
  • ****
  • Posts: 107
Re: Testing the Waters/Interest
« Reply #44 on: July 04, 2015, 04:18:59 AM »
My *first* goal isn't powers. It's dice. The Dice emote is a good place to start.

Having said that, I seem to remember a 'fire1' command in Icon I'd like to see functional in PC at some point ;)
Valkyrie Blade - Virtue Server

Takinalis

  • Boss
  • ****
  • Posts: 107
Re: Testing the Waters/Interest
« Reply #45 on: July 04, 2015, 04:29:24 AM »
Shooting Mrs. Liberty in the face right now in Icon with a very complex set of commands that I'm not even sure how it works anymore LoL!

I want to see this work in PC if possible, but hopefully with a slicker tech set / not as hackish.

Requires CoxMacroDrive, and might not work for you.
(bind_load, accesslevel 9)
/seqbits COMBAT STRONG CAST ARCHITECT ONE$$target_name liberty$$costume_save fire1.0.POWERS.COLDCONTROL.ICEBLAST.fx$$costume_save delaycmd.1.seqbits-BRAWLING-QUICK-HIT-WEAPON$$costume_save delaycmd.1.unselect
Valkyrie Blade - Virtue Server

Takinalis

  • Boss
  • ****
  • Posts: 107
Re: Testing the Waters/Interest
« Reply #46 on: July 04, 2015, 04:43:45 AM »
Hell, just fire1 working will be AWESOME if other people can see it.

In your c:\
folder make a file called tfx.txt
Save an Fx in it. "POWERS/COLDCONTROL/ICEBLAST.fx"

Use the /fire1 command.

This won't play in aiming or reaction animations, but it does hit the target and play the power fx.
Valkyrie Blade - Virtue Server

Nyghtshade

  • HERC Advisor
  • Elite Boss
  • *****
  • Posts: 881
Re: Testing the Waters/Interest
« Reply #47 on: July 04, 2015, 05:22:30 AM »
Definitely check out the typical RP sites--Pocket D, Atlas Park, etc. Offer up in chat if anyone would like to RP, or ask and see if any are happening. You can also be passive about it, RPing by yourself to start: make a post describing what the character is up to and check if anyone joins in.

I'm quite sure a group will take you under their wing without hesitation, as well.  :)
You might check out Gemini Park in Galaxy City, too - one of the original RP gathering spots in the game. 

Lycantropus

  • Elite Boss
  • *****
  • Posts: 255
Re: Testing the Waters/Interest
« Reply #48 on: July 04, 2015, 05:49:38 AM »
My *first* goal isn't powers. It's dice. The Dice emote is a good place to start.

Having said that, I seem to remember a 'fire1' command in Icon I'd like to see functional in PC at some point ;)

Yup, There's the 6 sided die (and the unlockable 'cheater' roll 7 die)

The coin flip

Rock, Paper, Scissors

And the scorecards from 1 to 10

However, unless they're set up as full emotes with the random element they're just selectable for the number or side (at least that's how it is in Icon, not sure if that will be different in Paragon Chat)... Can still work with that, though... particularly the rock/paper/scissors, which has been used in LARP systems as the 'random' element.

May not be able to use powers, but if it's like Icon we can still set up macros for those emotes for quick combat/skill resolution. :) Like I said, before I start getting heavy into rules/play design, I want to see what we have to work with first, though I already have ideas sketched out in my head based on the if's and or's.

Lyc~

Vr2Lrose

  • Lieutenant
  • ***
  • Posts: 73
Re: Testing the Waters/Interest
« Reply #49 on: July 04, 2015, 06:13:23 AM »
rp spot predictions:

Pocket D is the obvious one,and will probibly be THE place to meet for BarRP and pick up RP
dont forget monkey fight club tiki room and ski chalet...

Now that there arent mobs/level and quest restrictions and hopfully limited areas like PdP and ski chalet will be opened year round.


Midnighters Club popular spot for people  who didnt like pocket D.
Ouraborus
RWZ (they stopped rping there be cause it became a hub for endgame raids)
Atlas was known more for Costume contests but  there was places you could find RP
Port Oaks very piratey and close to the D.
St martial had a lot of very themed senic spots for rp    has A vegas area and a carnival.
Croatoa was a favorate spot of Vampire/WOD rp.
People may have hated hallows in live due to the mobs  it would make an excelent spot for more D&D style rp.


Gemini park in galaxy was so well known for rp before they added pocket d they added a plaque
Paragon Dance party  not many people knew wherevit was but they probibly will now

Takinalis

  • Boss
  • ****
  • Posts: 107
Re: Testing the Waters/Interest
« Reply #50 on: July 04, 2015, 06:33:29 AM »
We may be able to make some use of the in game browser

The command is 'url' with a web address as a parameter [not web].  If someone creates a simple dice log website (maybe even some simple rules tracking) that might be a nice start
Valkyrie Blade - Virtue Server

Leandro

  • Elite Boss
  • *****
  • Posts: 310
Re: Testing the Waters/Interest
« Reply #51 on: July 04, 2015, 02:10:36 PM »
Takinalis: /url works in Titan Icon because it messes with the client memory to put dev-only commands in player reach (you need to use /accesslevel 9 first). It won't work in Paragon Chat, because it doesn't modify the client in any way.

Titan Icon and Paragon Chat are different projects that don't share any code, so don't assume that what works in one will work in the other.
« Last Edit: July 04, 2015, 02:39:15 PM by Leandro »

Arcana

  • Sultaness of Stats
  • Elite Boss
  • *****
  • Posts: 3,672
Re: Testing the Waters/Interest
« Reply #52 on: July 04, 2015, 07:19:47 PM »
Takinalis: /url works in Titan Icon because it messes with the client memory to put dev-only commands in player reach (you need to use /accesslevel 9 first). It won't work in Paragon Chat, because it doesn't modify the client in any way.

To be precise, if I understand the architectures involved, and to expand on the explanation, neither Icon nor Paragon Chat alter any of the game client files.  That means they can coexist with one copy of the client, since in both cases Icon and Paragon Chat just need the client files, but don't touch them.

However, Icon tampers with the running state of the client, which allows Icon to trick the game client into running even though there are no servers.  It also tricks the client into allowing things that would ordinarily require enhanced permissions normal game players didn't have, but developers had either with special characters on the live servers or when running the game client in developer mode to test game development.

Paragon Chat, on the other hand, doesn't tamper with the running state of the game client, so the client actually thinks its running normally.  Paragon Chat itself emulates enough of the client-server protocol to trick the game client into thinking it has actually connected to a real server.  The problem is that Paragon Chat itself doesn't yet understand everything a game client can do, so it cannot send the right messages to make certain things happen, like tell the game client that your character is currently flying (and thus to set the FLY bit and enable that movement mode).  It also cannot tell the game client to allow things that Icon could enable by messing with the memory state of the game client.

Because Paragon Chat is in effect implementing the same features by a completely different means - figuring out the right network traffic to send in the right order and in the right way and with the right state persistence - that Icon did by just flipping a couple of bits in the game client's memory, *everything* that Icon did besides a few things related to how players entered input and saw motion has to be recreated from scratch.  Which means if Icon did it, Paragon Chat probably could do it in theory, but its also true that just because Icon does it, doesn't mean Paragon Chat will do it, or even that Codewalker is currently capable of enabling it.  For many features there might be a ton of work between here and there.

Why the difference?  Because when its just you, you can play tricks with the game client to make it do anything.  But when its part of a multi-user system like Paragon Chat, anything you do by hacking the local client might not  be seen by everyone else, which defeats the purpose.  Everything that happens must happen with actual network traffic and client-server messages, so they can be sent to everyone else in the right way so everyone sees (roughly) the same thing.  And that's why Paragon Chat has to start from scratch.

MWRuger

  • New Efforts # 1,000!
  • Elite Boss
  • *****
  • Posts: 1,117
  • The Devil is in the details! Quick! Get him out!
Re: Testing the Waters/Interest
« Reply #53 on: July 04, 2015, 09:31:58 PM »
Thanks for the suggestions everyone! I will most certainly try it.
AKA TheDevilYouKnow
Return of CoH - Oh My God! It looks like it can happen!

MomentaryGrace

  • Lieutenant
  • ***
  • Posts: 66
Re: Testing the Waters/Interest
« Reply #54 on: July 13, 2015, 10:32:23 PM »
...
Because Paragon Chat is in effect implementing the same features by a completely different means - figuring out the right network traffic to send in the right order and in the right way and with the right state persistence - that Icon did by just flipping a couple of bits in the game client's memory, *everything* that Icon did besides a few things related to how players entered input and saw motion has to be recreated from scratch.  Which means if Icon did it, Paragon Chat probably could do it in theory, but its also true that just because Icon does it, doesn't mean Paragon Chat will do it, or even that Codewalker is currently capable of enabling it.  For many features there might be a ton of work between here and there.

Why the difference?  Because when its just you, you can play tricks with the game client to make it do anything.  But when its part of a multi-user system like Paragon Chat, anything you do by hacking the local client might not  be seen by everyone else, which defeats the purpose.  Everything that happens must happen with actual network traffic and client-server messages, so they can be sent to everyone else in the right way so everyone sees (roughly) the same thing.  And that's why Paragon Chat has to start from scratch.

Thank you for this explanation, it really helps me to understand the development issues and path (in the broad way that is what I can actually understand ;P)!

It also enhances my appreciation for the work, which can never be a bad thing. :)

 
Scrapperlock in ten... nine...

Zombie Hustler

  • Elite Boss
  • *****
  • Posts: 264
Re: Testing the Waters/Interest
« Reply #55 on: July 14, 2015, 04:47:20 AM »
When I quit in 1995, it was still running on IBM 370s chained together.  No, I am not making that up.  There were plans to replace it, but as long as I was there, those plans never came to fruition.  I think they were afraid to blow on that particular house of profitable cards.

As far as I am aware, this is still the case. I remember hearing a report on NPR not too long ago (less than a year) talking about this very thing, and how it was beginning to finally start showing signs of being unsustainable and a source of a lot of booking problems and grounded flights.

(It might have been more than a year, come to think of it, that I heard that story. I doubt much has changed since, either way.)

Sometimes I think it would be better if we booked flights by logging into World of Warcraft and just camped the spawn point for our seat assignment.

You should pitch them this idea. Especially if the terminals were live WoW farms as people tried to book seats.