MunkiLord Posted February 27, 2020 Share Posted February 27, 2020 On 2/22/2020 at 7:58 PM, Cipher said: After this first stage I may continue developing it into a full build editor and planner, but in the meantime I’m looking forward to hearing what you all think and incorporating your ideas and feedback! Would it be possible for to extract our character data into a CSV or Excel file? For no other reason that looking at my character information and to see interesting data, like which power I take most often(I actually know that one, it's Combat Jumping. I don't think such an export would need to be anything pretty or have any formulas in it already. The Trevor Project Link to comment Share on other sites More sharing options...
FallenHero Posted February 27, 2020 Share Posted February 27, 2020 (edited) 7 hours ago, Sif said: Now that I finally stopped being lazy and implemented the last missing feature for being able to parse the powers.bin (100% coverage now!), I intend to write down what I've learned on how to parse the format. I'm not sure if anyone else would be interested in my parser's code, since I don't think anyone else is working with Rust. A few weeks ago I was bored. I started messing around with Python trying to read/extract data from piggs. I was using this link and this link as references. I'm not a programmer. But I was/am interested in how the pigg/bin/geo files work. I have been reading what documentation I can find but as of yet haven't dug into any of the code for the existing parsers (sometimes I enjoy reinventing the wheel). I would find any documentation (or code) you were willing to share to be interesting. I've actually been bouncing between trying to parse piggs and doing the Rust tutorials in my free time. So even more interest from my end. I appreciate those who are willing to share their CoH related knowledge and code. 7 hours ago, Sif said: Index Obscurum Neat. Edited February 27, 2020 by FallenHero Missing links Link to comment Share on other sites More sharing options...
Sif Posted February 27, 2020 Share Posted February 27, 2020 3 hours ago, FallenHero said: and this link as references As a heads up, the bin format described there is for Parse6, which is used by the i24-based servers. HC uses Parse7, which is mostly similar, but primarily treats strings differently (I'm not sure all the differences, since what I know of parse6 is only from the time I spent accidentally working on pre-sunset pigg files instead of the HC files!) Link to comment Share on other sites More sharing options...
Olly Posted February 27, 2020 Share Posted February 27, 2020 On 2/24/2020 at 11:20 AM, The Philotic Knight said: To make a long story short (too late!), IMO there needs to be a White Paper (or white papers) for the CoH codebase I think you are expecting a lot for a commercial game that had its code leaked. Maybe calm down a bit? And not be so upset at the Homecoming devs who are trying to do their best while legal negotiations are taking place? Besides, you (and everyone else) has access to the i25 server files. The only thing they have that we don't are our character data and the Homecoming server customizations. You've already referenced the Ouro wiki, which has a ton of resources. I don't have programming experience but I can see quite a few resources that could easily be reverse-engineered to figure out how to make things work. Someone interested enough just has to learn it. The information is out. Specifically for the .bin files, I see there's already python code, something like "CoHTools" on GirHub: https://github.com/ovekaaven/cohtools I found that reading through what's in Ouro wiki, which you already seem to be aware of, but not digging deep enough into. 1 1 1 Link to comment Share on other sites More sharing options...
_NOPE_ Posted February 27, 2020 Share Posted February 27, 2020 @Olly a four year old parsing tool that references specific memory addresses for just one version of the bin files from before the leak does not a "white paper for the CoH codebase" make. And as for the OuroDev wiki? It's currently a largely disorganized set of ideas, which even Clowd, the head of OuroDev has admitted to me directly is sorely neglected for a lack of interest. It looks like I'm the only one that seems to care about documentation. So, I'll work on my little project. And, when it's done, I'll release it, along with documentation on everything that I learned along the way, as @RubyRed has stated that they are going to do, and as too few have done before. 4 1 I'm out. Link to comment Share on other sites More sharing options...
Olly Posted February 27, 2020 Share Posted February 27, 2020 4 hours ago, Olly said: Specifically for the .bin files @The Philotic Knight, correcting your statement. ** Not ** equating that python code in github to a "white paper". Also, what is wrong with that python code? The codebase had been stable since 2012-ish. Wouldn't someone be able to reuse 90% of it? And couldn't you reverse engineer it to get to the powerset and IO data you wanted, or at least 90% of it instead of crawling through manually? I'd think updating the python code would be a far easier task than reworking everything from scratch. I'd ask you be open-minded about this rather than rejecting the idea outright. Or also, why not use Mid's dataset? It's already on Github as a db. I'm curious. Link to comment Share on other sites More sharing options...
_NOPE_ Posted February 27, 2020 Share Posted February 27, 2020 (edited) Nothing is wrong with the code itself, from what I can see, it seems perfectly competent. I just disagree with the methodology. It's the same route that DragonSire took with his application - trying to duplicate and enumerate the structures ahead of time based on what's in the existing code. It's fine - if you just want to have something that parses based on what you already know. But, what about the things that you don't know about yet? If I was to make such a script or tool, it would try to "figure out" the structure in a generic way (which I already sort of am doing with my def tools that will release with my project), and then convert those structures into generic objects, which can then be interpreted by an intelligent programmer. I wouldn't bake the definitions into the tool - the definitions should be baked into the other code that USES the tool to decompile/compile the data. But then, I guess I might be a bit different from most coders - sure, I'll take the "path of least resistance" to get the initial result that I want, but then I'll go back after I get that result to try to "do it right". Why not use Mids? Because Mids is a static dataset. As you'll see when I release my code, mine is setup with a static dataset to start, sure, but I've built in a "scanning" method that you could theoretically point to any data def directory, and it will spit out another new "database" of data to use. That way, the application can be used on HC, OuroDev, CoXG, or whatever you're using - as long as you have access to the source def files. Why? Because I wanted my tool to be as "time-proof" as possible, and to work going forward with as little future coding work as possible. So, rather than have a pre-set set of data structures that were pre-defined at one point in time and have to keep getting updated, I have generic methods that attempt to extract the data into generic objects, and then if the objects start to change, I should just have to change how I'm processing those objects - rather than changing the parsing itself EVERY. TIME. someone decides to change a structure. Edited February 27, 2020 by The Philotic Knight 4 I'm out. Link to comment Share on other sites More sharing options...
_NOPE_ Posted February 27, 2020 Share Posted February 27, 2020 Reading that back to myself, I come off as an ass who thinks he's the best coder in the world. Far from it. I'm human like anyone else. I make mistakes, in code as well as in life. I just try, in my coding, to work from a place where I build it so that I never have to touch it again, if possible, in the future. Mostly, because I'm lazy. I don't want to have to re-write something if I can help it, so I try to write my code in a way that I try to foresee the future and make it modularly so that when and if I DO have to rewrite anything, I don't have to rewrite much, if that makes any sense. 6 3 I'm out. Link to comment Share on other sites More sharing options...
RubyRed Posted February 27, 2020 Share Posted February 27, 2020 4 hours ago, The Philotic Knight said: If I was to make such a script or tool, it would try to "figure out" the structure in a generic way (which I already sort of am doing with my def tools that will release with my project), and then convert those structures into generic objects, which can then be interpreted by an intelligent programmer. I wouldn't bake the definitions into the tool - the definitions should be baked into the other code that USES the tool to decompile/compile the data. I've kind of struggled myself with the 'do it right' mentality when approaching this. The problem in the instance of the .bin files though is that they're not self-describing... even if you figure out that the structures of data are a series of 32-bit floating point numbers and booleans (which accounts for most of it), there's so many of them that it's nearly impossible to know what you're looking at. And if someone goes in and adds a new bit of data, it's not immediately obvious where it is or what it is, and you have to decipher that. Even though I'm referencing the i25 code from early last year, I ran into several parts that have changed since then and that slowed me down quite a bit. I'm glad I have the code to reference because this effort would have taken ten times longer if I was reverse-engineering from scratch, and I don't really have the time for that. I'll live with the fact that my code is a bit messy (but probably easier to figure out what's going on) rather than the perfect, generic solution. That said, now that I know a lot more, I think when I'm done I'll share some tips that could save other people time if they want to go down the same route and not have to look at the CoH code base (which is an adventure all on its own). 3 hours ago, The Philotic Knight said: Reading that back to myself, I come off as an ass who thinks he's the best coder in the world. Nah, not really. At least not to me, I understand the mindset as I tend to approach things the same way (at first... I change my mind a lot). 1 "We're out of options, I'll have to use the jetpack," I said, strapping on the jetpack and ignoring the many non-jetpack options still left. Having trouble deciding your next alt? Just need a cool name? Try out City Suggests Looking for powers data? Try the Powers API Link to comment Share on other sites More sharing options...
Clave Dark 5 Posted February 28, 2020 Share Posted February 28, 2020 10 hours ago, The Philotic Knight said: I just try, in my coding, to work from a place where I build it so that I never have to touch it again, if possible, in the future. Mostly, because I'm lazy. "If you want to find out how to do a job quickly, give it to a lazy man," as they say. 1 1 Tim "Black Scorpion" Sweeney: Matt (Posi) used to say that players would find the shortest path to the rewards even if it was a completely terrible play experience that would push them away from the game... ╔═══════════════════════════════════════════════════════════════════════════════════╗ Clave's Sure-Fire Secrets to Enjoying City Of Heroes Ignore those farming chores, skip your market homework, play any power sets that you want, and ignore anyone who says otherwise. This game isn't hard work, it's easy! Go have fun! ╚═══════════════════════════════════════════════════════════════════════════════════╝ Link to comment Share on other sites More sharing options...
FallenHero Posted February 28, 2020 Share Posted February 28, 2020 22 hours ago, Sif said: As a heads up Thank you. Link to comment Share on other sites More sharing options...
Redlynne Posted February 28, 2020 Share Posted February 28, 2020 7 hours ago, Clave Dark 5 said: "If you want to find out how to do a job quickly, give it to a lazy man," as they say. Is it better efficiency through laziness ... or better laziness through efficiency ... I can never remember. 1 1 Verbogeny is one of many pleasurettes afforded a creatific thinkerizer. Link to comment Share on other sites More sharing options...
Rylas Posted February 28, 2020 Share Posted February 28, 2020 On 2/22/2020 at 7:58 PM, Cipher said: My current plan with this project is to get it to the point where it can be used as a fully functioning online build browser and viewer (where you can search for and view public builds) and release it as such. This would be awesome! It would be great to have a tool like this available for when we seek build advice on the forums. Especially if we're not in a place where we could pull up Mids to export those builds for posts. On 2/23/2020 at 3:59 AM, The Philotic Knight said: That all being said... I'm of a torn mind about this. On the one hand this looks awesome and I hope it gives people what they need, on the other... I feel like I just wasted a shit ton of my time on nothing. Ugh. I think I'll stop working on mine now. I know the feeling. I finished creating hi-res versions of all the AT power sets and decided to take a little break. Now I'm back and there's a new power set being developed and now they have a new power icon border to do, and I still haven't gotten to EATs/VEATs or pool powers. Ugh! 1 Make Energy Melee Great Again! Join the discussion. Request hi-res icons here. Link to comment Share on other sites More sharing options...
Troo Posted February 29, 2020 Share Posted February 29, 2020 As a build browser how would we know how successful the character is/was? It might be great to see some additional information beyond slotting. (badge counts and maybe some stats) "Homecoming is not perfect but it is still better than the alternative.. at least so far" - Unknown (Wise words Unknown!) Si vis pacem, para bellum Link to comment Share on other sites More sharing options...
City Council Cipher Posted February 29, 2020 Author City Council Share Posted February 29, 2020 21 minutes ago, Troo said: As a build browser how would we know how successful the character is/was? It might be great to see some additional information beyond slotting. (badge counts and maybe some stats) The build browser is one component of the larger system that I am working on that will have a place to view that information for characters that opt in 🙂 1 Cipher City Council If you need help, please submit a support request here or use /petition in-game. Got time to spare? Want to see Homecoming thrive? Consider volunteering as a Game Master! Link to comment Share on other sites More sharing options...
City Council Cipher Posted March 1, 2020 Author City Council Share Posted March 1, 2020 Small progress update as I wrap up for the night: I've started calculating and rendering attributes (numbers!) This does not include global boosts from enhancements such as Shield Wall, Steadfast Protection, etc yet Enhancements now properly boost the attributes of the power they're slotted in (with ED) Power tooltips now show some attributes, including their base and enhanced values Self-affecting click and toggle powers can be toggled on or off Auto powers are toggled on by default (Small demo using Defense powers. Non-pool powers hidden to condense view. Note that the UI is still temporary! Green = toggled on) In-game from the same build: 8 Cipher City Council If you need help, please submit a support request here or use /petition in-game. Got time to spare? Want to see Homecoming thrive? Consider volunteering as a Game Master! Link to comment Share on other sites More sharing options...
Bionic_Flea Posted March 1, 2020 Share Posted March 1, 2020 Niiiiice. Link to comment Share on other sites More sharing options...
SuperPlyx Posted March 1, 2020 Share Posted March 1, 2020 Starting to get excited Link to comment Share on other sites More sharing options...
Ura Hero Posted March 1, 2020 Share Posted March 1, 2020 Very snazzy. Looking forward to using it. Link to comment Share on other sites More sharing options...
Waypoint Posted March 2, 2020 Share Posted March 2, 2020 Will we be able to make builds with this, too, similar to mids/pines? Or is this strictly uploading? 1 Link to comment Share on other sites More sharing options...
Herotu Posted March 2, 2020 Share Posted March 2, 2020 On 2/24/2020 at 4:20 PM, The Philotic Knight said: To make a long story short (too late!), ❤️ Clue. ..It only takes one Beanbag fan saying that they JRANGER it for the devs to revert it. Link to comment Share on other sites More sharing options...
BurtHutt Posted March 3, 2020 Share Posted March 3, 2020 On 2/28/2020 at 8:15 PM, Cipher said: The build browser is one component of the larger system that I am working on that will have a place to view that information for characters that opt in 🙂 This and the entire system seems awesome. I had this as a suggestion a while ago - or something like it. Mid's has been awesome but there should be something more official that ties right into the game and updates. I never understood how a character builder wasn't included from the start with the original dev team. Oh, am I correct in thinking this will be like Mid's but always current and tied to the game directly? Link to comment Share on other sites More sharing options...
Seigmoraig Posted March 4, 2020 Share Posted March 4, 2020 On 3/2/2020 at 7:06 PM, BurtHutt said: Oh, am I correct in thinking this will be like Mid's but always current and tied to the game directly? This is supposed to be a tool that will export your current build and enhancement setup from the game to a web page for people to consult existing builds. From what I understand, at this stage it is not meant to be a builder but a viewer. Link to comment Share on other sites More sharing options...
BurtHutt Posted March 5, 2020 Share Posted March 5, 2020 9 hours ago, Seigmoraig said: This is supposed to be a tool that will export your current build and enhancement setup from the game to a web page for people to consult existing builds. From what I understand, at this stage it is not meant to be a builder but a viewer. Oh that is too bad. When I started this game, I jumped right into it...not having any idea about builds, slots etc. I think most find a builder essential so maybe one day it can incorporate building as well 🙂 Link to comment Share on other sites More sharing options...
Carandiru Posted March 12, 2020 Share Posted March 12, 2020 On 3/1/2020 at 4:10 AM, Cipher said: Small progress update as I wrap up for the night: I've started calculating and rendering attributes (numbers!) This does not include global boosts from enhancements such as Shield Wall, Steadfast Protection, etc yet Enhancements now properly boost the attributes of the power they're slotted in (with ED) Power tooltips now show some attributes, including their base and enhanced values Self-affecting click and toggle powers can be toggled on or off Auto powers are toggled on by default (Small demo using Defense powers. Non-pool powers hidden to condense view. Note that the UI is still temporary! Green = toggled on) In-game from the same build: when can we test? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now