Jump to content

[WIPz] Skyrim Script Extender (SKSE64)


behippo

Recommended Posts

Ok, to shed a bit of light on the current situation, here's a brief overview of the people that were involved with SKSE and their roles:

 

Ian builds the core infrastructure and decodes the fundamental game systems. Most of his work happens when the game is released. He is the essential developer behind the script extender, but as you would expect from a person that skilled, he has a job and very little time.

He sticks around to do the game updates and packages releases, but he doesn't have the time to do all the grunt work that comes with adding high-level features.

 

Behippo handles decoding the game classes (that's lots of tedious work) and adding core script functions. He is a busy guy, too, so most of his work happens after release (at least for SKSE it was like that).

 

These guys do the groundwork, but they do not create mods themselves (or even play the game extensively). This makes it harder for them to come up with actual script functions to add.

The people best suited to do that part are the ones who have mods that require those functions. They know which functions and parameters they need and they have the mod set up the actually test those functions themselves, tweak them, etc. And that's how it should be IMO. We cannot expect two people who have been around for 10+ years to still do all the work. It needs people from the current generation of modders to step and contribute.

 

For SKSE, these roles were filled by Brendan and me. Event-based input, Papyrus-ActionScript communication, mod events, the extending Equip functions, serialization, etc. - those were things I needed for SkyUI, they did not exist yet, so I added them. I was a student at the time, so I had lots of free time and I was highly motivated. Same goes for Brendan, he added even more stuff for RaceMenu (I would list it, but I don't know the details).

 

In summary, it was two devs for the foundations, and two for the high-level features (though these roles are generally flexible). A good mix of people with experience but little time and vice versa.

 

SKSE64 development worked pretty much the same so far. Ian and behippo did their thing, the foundations are more or less done. But Brendan currently focuses on F4SE as I understand and I am no longer active now (that was clear from the start). Behippo had planned to take on the task of porting the functionality required for SkyUI as you know, but so far that did not happen. It doesn't surprise me at all, because I know that if I had to do it all over again, except with the drastically reduced amount of time I have now, I would not have been able to either. Porting existing functions is a bit less work than starting from scratch, but he still has to figure out many things for the first time because he did not originally add all of them.

 

So at the moment, there's not much going on. What could happen eventually:

- Brendan moves on to SKSE64.

- Behippo returns.

- I return to port SkyUI (and the required functions in the process).

- Ian gets mad and decides to do everything by himself in one hour :D

- Others decide to get involved and help.

 

But don't count on it, and do not assume any release schedule.

Thanks for the information Schlangster. :smile:

Link to comment
Share on other sites

  • Replies 885
  • Created
  • Last Reply

Top Posters In This Topic

In other words, working with both MS Visual Studio for the source coding and whatnot & using Hex Ray's IDA Pro for the (legal) reverse engineering...

 

I tried loading up the free version of IDA Pro yesterday and it was crash central on Windows 10. I suspect there's some dependencies that are not specified on the download page.

Link to comment
Share on other sites

I've been using x64dbg. I found the type descriptors for those classes but they are not pointing me to the vtbls, I'm trying to follow the first pointer in the type descriptor though, tonight I'm going to try following it backwards.

 

Edit: nope I'm an idiot and assumed the placeholder pointer at the start of the vtbl was the end of the vtbl

 

Edit2: there's several approaches to verifying offsets but I'm going to go with finding the vtbl then finding instances of said object by finding references to it.

Link to comment
Share on other sites

I've been using x64dbg. I found the type descriptors for those classes but they are not pointing me to the vtbls, I'm trying to follow the first pointer in the type descriptor though, tonight I'm going to try following it backwards.

 

Edit: nope I'm an idiot and assumed the placeholder pointer at the start of the vtbl was the end of the vtbl

 

Edit2: there's several approaches to verifying offsets but I'm going to go with finding the vtbl then finding instances of said object by finding references to it.

 

Outstanding :smile: I was hoping that some smart cookies would finally try their hand at this, hope there are more.

 

I started a thread on Reddit 2 days ago on schlangster's recent post and the status of SKSE64. Here it is:

 

https://www.reddit.com/r/skyrimmods/comments/6cbmw9/pc_skse64_update_of_sorts/

 

People might want to contact Qazyhn

He / she seems to be a main contact, here is their post on that thread:

 

 

We have plenty of offers, but we have yet to have anyone with the actual skill set and motivation we need. The skill bar is higher than some actual development jobs out there so it's not easy to get people who are interested and obviously won't be paid. Knowing C++ is a basic requirement, but it's not going to help with the development of SKSE64.

The C++ code is already all there, what we need someone who can:

  • decode classes (from memory)
  • verify class alignments (and fix them)
  • update addresses (this is actually easier than alignment fixing)

SKSE64 isn't something that can be realized by throwing developers who lack the required skills at it. Additionally these skills aren't something you can just learn in a few days like transferring to a new programming language. I can point people with prior C++ experience in the right direction for getting started but none of us really have the time to teach.

Edited by aristotle99
Link to comment
Share on other sites

I'm actually fairly new to reverse engineering, but I do have quite good c++ layout knowledge and I'm comfortable reading through assembly (as long as it's intel syntax. I almost failed a test back in college because they put a bunch of gnu style assembly on it)

 

I think I'll just decode at least one class and email the new offsets to the team email address.

 

Edit for anyone else attempting to help: the base type descriptor has a pointer to *its* vtbl, not the vtbl of the described type. *facepalm*

Link to comment
Share on other sites

I'm gonna laugh my butt off if you guys actually start getting some coding(probably to the point of the last update video at best) done, then Behippo comes back and has a release of SKSE64.

Link to comment
Share on other sites

I'm gonna laugh my butt off if you guys actually start getting some coding(probably to the point of the last update video at best) done, then Behippo comes back and has a release of SKSE64.

 

That's right, discourage people from contributing.

 

Lack of communication from behippo (even a message sent to an intermediary) is evidence that he has lost interest.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...