Fayte":2aaczhnx said:
Aphadeon you seem pretty knowledgeable when it comes to coding. How deep does that knowledge go?
That's a very hard question to answer.
My experience and abilities are remarkable because they are unorthodox. I have a very atypical background and interests in programming, and have pursued those to often ridiculous means simply to challenge whether I could. For example, I am much better at figuring out how to do something than I am at actually doing it. Any time I touch a piece of software, whether a game or not, I subconsciously start tearing it apart in my mind. I work out what the actual mechanics are, when you hide the 'fluff', and what makes them work, or fall short. I guess the best way to describe it is that I have two specialties: reverse engineering, and hypothetical programming.
I started out modding ROMs, well before we had all the wonderful tools we do today. From there, moved on to hacking PC games- started with graphics hacking, and moved up to making trainers and such. Started to encounter resistance to hacking, as developers worked on anti-cheat solutions, so I gradually learned to get around those (which ended up teaching me a lot of other stuff about optimization, compression, and such). From there, picked up a couple actual game engines, and started cracking away at systems- focusing on doing the basic elementary stuff, but to do it well. Little things like inventory and such. From there, branched out to modding as that became a more common thing.
I have to credit Minecraft for sparking the hypothetical side of things - when working on modding it, I realized how they achieved something so difficult. That is, to have 'way too many' instances of blocks without actually storing much data for all of them. This immediately piqued my interest. What other perceived limitations could be scaled up in a similar fashion? Started trying to answer questions that weren't being asked yet, and I would say that as nonsensical as that sounds, it's a very interesting exercise. I generally try to imagine a goal that's not presently done, but not too far off. Then I work out a number of steps to get there, and figure out how I would work towards the first one, were I in charge of an R&D team.
As for languages, I've tinkered with the majority of the recognizeable names. Assembly, C++, C, C#, Ruby, D, Java, Javascript, Haxe, Rust, Go, to name the ones that come off the top of my head. More comfortable in some than others, but the underlying logic doesn't really change, so I could learn any new language that allows a similar approach to constructing the logic; learning where to put the semicolons is just a matter of time. Personally, I'd say I'm most experienced with C#, and I'm a big fan of D- shame it's not more widely accepted than it is.
So, to summarize... Knowledgeable might not be an accurate word. I would easily consider Glitchfinder or Xilef more knowledgeable than myself when it comes to code, and probably logic/math as well. I've never been all that interested in doing what everyone else is doing, the way they are doing it. Now if you want to discuss something outside the box, I'm all ears, and might have some ideas.
Edit:
A couple examples of things I have actually done, to better demonstrate what I mean by unorthodox:
1.) I assembled an HD Ocarina of Time setup in Project64, to ridiculous extents. This included writing a romhack to disable music, writing an external MP3 loader to read the currently playing track from the rom's memory inside of the emulator's memory, to load and play HD music tracks instead of the game's own music. It included remapping the UI to an xbox 360 controller (amusingly the hardest part of this was recoloring the 'C Buttons' to match the xbox face button colors). Ended up going with both a custom texture pack and several ROM edits for the UI stuff. Ofc, merged existing texture packs with some OoT3d rips to get a complete HD texture pack. Scaled up resolution, used another external tool to tweak fog values in a per-map basis. Configured ReShade to make sunlight actually warm. The list goes on and on, I can't even remember all the little edits. And purely for my own entertainment and to show off to a few IRL friends (who weren't actually interested at all, tragically); as distributing something like this in a legal way would be a nightmare I'm not about to embark on. Edit: Notably, in pursuit of a more legal option, I made a data exporter which exported maps, cutscenes, npcs, models, and dialogue/text from the 1.0 ROM. Was based on a lot of knowledge from the Z64 romhacking community. Was planning to open source the exporter and a separate engine that could play a similar game using exported data. That said, needed help, didn't really find any, wandered off to projects that would be more interesting to the world.
2.) Setup a bridge between my legit pokebank and an emulator on my computer so that I could store 'mons from emulators. (Not even going to detail what went into this here.)
3.) Made a trainer for Phantasy Star Universe which had two substantial features- it added a jump button, which actually felt kind of natural (mind you, the base game does /not/ have a jump feature), and was also capable of spawning any item you like. It could also do basic stuff like disable entity collision so you could pass through doors/npcs/etc, and the obligatory infinite hp and timer freeze. This one is notable because this was a popular, but poorly-designed and highly exploitable MMO. But still not an authoritative client, so it took some shenanigans.
4.) Made several functional colored lighting mods for Minecraft. This task is pure hell due to the way Minecraft is coded. Never did get one polished enough to be proud of, every approach so far had issues that would keep it from being widely adopted. But I maintain the stance that it enables better design to a degree that people don't properly appreciate. The world looks /amazing/ when it's applied well.
5.) Made a fourth-line Show Text patch for RPG Maker XP (which can be found on this very site. But the download stopped working and I don't have it anymore). Unremarkable by itself, as it is about as simple as using a resource hacker to edit the textbox - it was actually /supposed/ to be there but is bugged in all English versions (including latest). The remarkable part is that the RPG.exe is very well protected, and I made that edit in a way that bypassed the protections entirely (because reversing/disabling them in distributed content would be unacceptable by my own standards).
6.) Made a cross-character storage/serialization mod for Skyrim, which exported actual form data from your game to a standalone format that was not dependent on the savegame. This included handling adding/deleting savegame database entries. The only thing it was missing was custom potions, even supports smithed weapons and the like. It's current form is just a summonable cross-character chest, but with the data exported, it could be used for anything from online item distribution, to cloud sync, sharing chests in realtime with a friend, etc. I can only show you the door, lol.
I'll stop there. I think you should be able to get the idea. I could make "Skyrim Housing Mod #15931", but I frankly have no desire to do so, and probably wouldn't be very good at it. A similar example could be made for most of these. I specialize in trying to do things that noone else does, and as such, I've picked up a rather atypical set of skills along the way. It's my 'typical' skills that are sorely lacking. When it comes to things like setting up a scene graph, I'm a total n00b.