• Open Steamworks
    616 replies, posted
  • [QUOTE=winsanity;17951877]Oh my shit, we now have the ability to make an iphone app :D[/QUOTE] It uses the steam dll, which is not very portable.
  • If anything it could be used to make a normal Windows application with only messenger capabilities that would run normally under Wine.
  • [QUOTE=VoiDeD;17928901]The public key is either provided during the logon procedure or is stored in steam itself. I'm unsure as of which and I haven't spent much time figuring it out. Either way it's possible to login with a 3rd party client. However, reversing the network protocol would not be as hard as reversing steam.dll/steamclient.dll with an aim to recreate all network functionality. As for what I'm currently doing, I'm trying to figure out how to make steamclient.dll intefaces play well with steam.dll. I'm able to get steam.dll to logon to steam servers, but all secondary logon attempts with steamclient interfaces have failed.[/QUOTE] you may want to ask...uh... some of the people who have managed to crack steam. most of those programs are open source and you could look in those to see how they are doing it.
  • [QUOTE=Foda;17957565]you may want to ask...uh... some of the people who have managed to crack steam. most of those programs are open source and you could look in those to see how they are doing it.[/QUOTE] I think the standalone downloaders aren't open source. And even if they are, I think the downloads are handled via a different protocol. [QUOTE=noctune9;17955555]It uses the steam dll, which is not very portable.[/QUOTE] BUT you can make a client for your own server which connects to Steam with the Steam DLL (that's what most of the mobile IM clients for mainstream protocols do anyway)
  • [QUOTE=DrTaxi;17958352]I think the standalone downloaders aren't open source. And even if they are, I think the downloads are handled via a different protocol. BUT you can make a client for your own server which connects to Steam with the Steam DLL (that's what most of the mobile IM clients for mainstream protocols do anyway)[/QUOTE] Exactly my point, Wine can make that cross-platform. Wait a minute, even better... Isn't it possible to create a program using Mono that will use the steam.dll? [editline]06:49PM[/editline] This may help to determine if it'd work: [url=http://mono-project.com/MoMA]MoMA[/url]
  • steam.dll isn't a .net assembly, so mono would have no clue what to do with it.
  • [QUOTE=arienh4;17958914]Exactly my point, Wine can make that cross-platform.[/QUOTE] You could, you know, just run that on a Windows server?
  • [QUOTE=DrTaxi;17959963]You could, you know, just run that on a Windows server?[/QUOTE] A Steam client? Or a relay? Either way, if I go to Linux, I will not have access to one. Then Wine will still be the way to go.
  • blankthemuffin was working on seeing if it was possible to use winelib to get steam.dll working on linux. If he ever gets that figured out the only remaining step would be to create a new linux version of steam.exe. Two problems remain with this: blank hasn't managed to get winelib working, and I haven't figured out steamclient.dll logon yet.
  • Yeah I've hit an early roadblock with winelib, seems to be x86 vs x86_64 problems on my end, but I'll have to set up the former in a vm to test.
  • [QUOTE=VoiDeD;17960176]blankthemuffin was working on seeing if it was possible to use winelib to get steam.dll working on linux. If he ever gets that figured out the only remaining step would be to create a new linux version of steam.exe. Two problems remain with this: blank hasn't managed to get winelib working, and I haven't figured out steamclient.dll logon yet.[/QUOTE] Wouldn't you be able to hack debug functions into the winelib so you could understand more about how steamclient.dll calls the Win32 API (especially networking)? Oh wait, you could just use a network sniffer... dunno which option's better in this case.
  • I have no idea how wine/winelib works, so blank would have to answer that. As for implementing your own version of the network protocol, that's entirely feasible. It's far easier than recreating steam.dll, but still poses it's own challenges. I posted a little bit of how I think the protocol works, so check the previous pages of this thread if you're interested.
  • [QUOTE=VoiDeD;17960176]blankthemuffin was working on seeing if it was possible to use winelib to get steam.dll working on linux. If he ever gets that figured out the only remaining step would be to create a new linux version of steam.exe. Two problems remain with this: blank hasn't managed to get winelib working, and I haven't figured out steamclient.dll logon yet.[/QUOTE] yes yes yes (i hope)
  • [QUOTE=VoiDeD;17962461]I posted a little bit of how I think the protocol works, so check the previous pages of this thread if you're interested.[/QUOTE] Why would you need to know that for implementing your own protocol? It can be completely independent
  • [QUOTE=DrTaxi;17962865]Why would you need to know that for implementing your own protocol? It can be completely independent[/QUOTE] I meant your own implementation of the protocol valve uses.
  • [QUOTE=Gbps;17990438]"closedsteamworks | Official home of CSW project | Website shutdown. So-called project leader and mastermind arrested and indicted with copyright infringement." Bad news people.[/QUOTE] god damnt
  • The SVN is down until I work out some things that have come up. No I'm not being charged with anything and no valve has not contacted me about anything.
  • [QUOTE=VoiDeD;17992607]The SVN is down until I work out some things that have come up. No I'm not being charged with anything and no valve has not contacted me about anything.[/QUOTE] That's just what you want us to think.
  • [QUOTE=VoiDeD;17992607]The SVN is down until I work out some things that have come up. [/QUOTE] Why do you close the SVN during normal development?
  • [QUOTE=DrTaxi;17995772]Why do you close the SVN during normal development?[/QUOTE] Gabe rolled over the server.
  • [QUOTE=ShaRose;17996003]Gabe rolled over the server.[/QUOTE] And Half-Life 3 comes yet another month later..
  • [QUOTE=ZeekyHBomb;17996062]And Half-Life 3 comes yet another month later..[/QUOTE] and nothing of value was lost
  • Good news, the SVN repo is back online! Same location as before: [url]http://subversion.assembla.com/svn/steamworks[/url] However, you will need to re-checkout into either another folder or delete your current one and check out again. Changes since it's been gone: * [b] SteamAPI.h is now SteamclientAPI.h.[/b] Sorry for the breaking change but it's necessary for how certain files are laid out. * Added ENewsUpdateType and ESystemIMType * Updated IClientEngine to reflect the newest changes in the steam update. (This is the exact reason you shouldn't use IClient interfaces: things change and applications break) Note: I haven't looked if any other IClient interfaces have changed, so if you use these and something doesn't work please tell me. * Added a new project to fake what game you're playing. For those of you with L4D2/Borderlands you can troll your friends and whatnot. * Fixed servernetadr_t::ToString. Everything builds and runs fine on my side, but please let me know if anything is broken, as always.
  • The fake game project doesn't generate any .exe here, no error. EDIT : ok i got it working by changing the destination folder. but it doesn't work, it apparently bug before clientUtils->SetAppIDForCurrentPipe(8980);
  • Works fine on my side. Make sure you have steamclient.dll, vstdlib_s.dll, and tier0_s.dll in the same dir as the exe, and that steam is running. You can get those dll files from the steam directory.
  • [QUOTE=VoiDeD;18016454]Works fine on my side. Make sure you have steamclient.dll, vstdlib_s.dll, and tier0_s.dll in the same dir as the exe, and that steam is running. You can get those dll files from the steam directory.[/QUOTE] I got everything ok, i got working others things before this new release. I added some text in the code, and the client don't seems to update the appID.