Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411644 Posts in 69395 Topics- by 58450 Members - Latest Member: pp_mech

May 14, 2024, 09:58:30 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Wrapping an swf for steamworks
Pages: [1] 2
Print
Author Topic: Wrapping an swf for steamworks  (Read 7866 times)
st33d
Guest
« on: May 05, 2011, 04:44:55 AM »

Can't find any information on the internet at all about this.

Ideally it would be nice to have access to the stuff in the Steamworks SDK: multiplayer and achievements would become an option.

Are Steam just accepting swf projectors for this stuff or what? As I've said, I've looked about the internet and I can't find anything about wrapping swf in an executable other than a projector let alone getting it to communicate with an SDK.

Any help?
Logged
moi
Level 10
*****


DILF SANTA


View Profile WWW
« Reply #1 on: May 05, 2011, 10:56:17 AM »

have you tried google?
http://www.codeproject.com/KB/audio-video/flashexternalapi.aspx
http://board.flashkit.com/board/showthread.php?t=747758
http://forums.techarena.in/software-development/1351483.htm
Logged

subsystems   subsystems   subsystems
st33d
Guest
« Reply #2 on: May 05, 2011, 11:51:11 PM »

Yup. Tried google. Couldn't get any joy with: swf, flash, steam, wrapper, steamworks

What was the search sentence you used? I may need it in future.

Edit: Just checked those links, the first is for C# and the Steamworks API is in C++, does that mean that C# can communicate with C++? But then how would that work?

The other links refer to accessing C++ APIs, not actually wrapping the swf as an executable. Unless I've missed something that is.
« Last Edit: May 05, 2011, 11:57:27 PM by st33d » Logged
bateleur
Level 10
*****



View Profile
« Reply #3 on: May 06, 2011, 12:18:09 AM »

I don't know if this comment is actually helpful, but I've looked into this before and never found a way to do it.
Logged

moi
Level 10
*****


DILF SANTA


View Profile WWW
« Reply #4 on: May 06, 2011, 10:07:26 AM »

According to the link there seems to be a way but it requiers c# and possibly .NET (but not sure about this last one)
Logged

subsystems   subsystems   subsystems
st33d
Guest
« Reply #5 on: May 06, 2011, 12:38:54 PM »

Yeah, but that rules out a mac release, which bums me out a bit.

If I find anything I'll update here (regardless if it's a proprietary solution).

It's basically to address the endless mode complaint with Steamlands. I need a good pitch to show to my boss to justify the budget for more development time.

The clincher is multiplayer. If I could deliver multiplayer Steamlands (and I would fucking go for it if there was the avenue), then I could confidently offer it as a project to my boss (and throw in endless mode for free).
Logged
Richard Kain
Level 10
*****



View Profile WWW
« Reply #6 on: May 06, 2011, 11:40:05 PM »

If you had the technical know-how, you could port your flash project to Haxe, and then compile it to C++. This would allow you to generate all necessary C++ code for compiling your project to multiple platforms, and you could go in and add whatever Steamworks hooks you needed.

I've used Haxe to compile flash-based graphical applications to Windows, Linux, Mac OSX, and even the iPhone simulator. I'm not saying its the optimal solution, but it is A solution.
Logged
melos
Level 10
*****


View Profile
« Reply #7 on: July 04, 2012, 05:43:18 PM »

I know this is a bit of a necro, but the first few posts of this topic from a year ago have useful info so I didn't think it was worth making a new topic.

But it's about a year later, I was wondering if anyone knew any new solutions for this problem, I'm just curious. I looked around a bit and AS3 -> haxe -> C++ seems like the way to go, but hey who knows.

Logged

play hydlide 2
sigfarter
Level 7
**


卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐卐


View Profile
« Reply #8 on: July 04, 2012, 06:22:25 PM »

You're not supposed to vocalize each letter individually, the proper pronunciation is "swiff".
Logged
brettchalupa
Guest
« Reply #9 on: July 04, 2012, 09:06:20 PM »

SteamWorks Flash Runtime Extension is probably your best bet.

There's also some other solutions out there, but they aren't well documented or totally talked about. I know that the Realm of the Mad God developers successfully did it, and if you send them an email I am sure they'd be happy to help.  Smiley
Logged
Mattivc
Level 0
***

Level 21 Viking Programmer


View Profile WWW
« Reply #10 on: July 04, 2012, 10:26:13 PM »

Machinarium is flash as well i believe. Might be worth sending those guys a email as well.
Logged
brettchalupa
Guest
« Reply #11 on: July 04, 2012, 10:36:40 PM »

Did Machinarium have Steam overlay/achievements/cloud-saves? I totally forget!
Logged
Moczan
Guest
« Reply #12 on: July 04, 2012, 10:48:59 PM »

AIR let's you hook up native extensions, so if you can c++, you can write your own classes to communicate between Flash and Steamworks.
Logged
melos
Level 10
*****


View Profile
« Reply #13 on: July 05, 2012, 05:25:24 AM »

I can't C++ off the top of my head, but I can probably deal with learning however much I need to. I guess figuring out AIR and then the necessary C++ is just a matter of needing to put in enough time. I sent those two an e-mail. Thanks for the advice!
Logged

play hydlide 2
Fallsburg
Level 10
*****


Fear the CircleCat


View Profile
« Reply #14 on: July 05, 2012, 05:29:36 AM »

Use AIR?  You can use the native extensions to use C++.  Don't know if you have any reasons not to use AIR.
Logged
melos
Level 10
*****


View Profile
« Reply #15 on: July 09, 2012, 11:28:30 AM »

I think I will use AIR and that runtime extension to do this if it's ever necessary. I've never really dealt with this kind of thing before, so I'm a little confused on what exactly goes where and how to hook everything up...but I think it'll just take some head-banging.

Although if someone could give me a high level overview of how my AS3, AIR, and the C++ communicate that would be helpful as I dig into the guides for this stuff.

Anyways I'll leave what I find here for future people's references...

It seems that my IDE (FlashDevelop) is capable of dealing with compiling stuff to an AIR app if I fudge around with the configs, and I guess I can download older versions of AIR here if needed:

http://helpx.adobe.com/air/kb/archived-air-sdk-version.html

And I can do something to make the C++ work with it too:

http://www.flashdevelop.org/community/viewtopic.php?f=20&t=8830


Long guide here, will try to read at some point -

https://www.adobe.com/devnet/air/articles/extending-air.html
Logged

play hydlide 2
melos
Level 10
*****


View Profile
« Reply #16 on: March 01, 2013, 04:10:14 PM »

Necroing again, but for good reason rather than making a new topic. Surprise, we ended up getting onto Steam, so I actually have to do this soon. and I'm totally confused - can I just use the ANE as-is and it will magically work when run under Steam? Or do I need to compile something from their source code?

"So I've been reading through this - https://github.com/Oldes/FRESteamWorks . I can't figure things out - can anyone, by observation, tell if I can just include the ANE in my project and it'll auto-detect my game's ID? Initially I thought this because of FRESteamWorks.cpp having some SteamUtils()->GetAppID() call, but then in their FreSteamWorksTest/bin-debug there is a steam_appid.txt file with the test ID, 480 in there, and I'm not sure if that means I have to do something like that. But I don't see how that and the ANE interact.

Basically I'm totally lost and any help would be appreciated ".

Going to bang my head against the wall a bit more in the meantime, but figured it wouldn't hurt to ask for help early.


***2nd edit***

Andy Moore said the ANE works out of the box and that .txt file is for debugging, when you upload to steam it sets the app id. So I think I should be okay. Indie dev support network!
« Last Edit: March 01, 2013, 04:38:08 PM by seagaia » Logged

play hydlide 2
melos
Level 10
*****


View Profile
« Reply #17 on: March 01, 2013, 06:39:12 PM »

never mind, stuck again. here's what I e-mailed andy if anyone has any advice:

"Thanks! Here's an issue that I can't figure out
 
So when running adl - , I'm using this Run.bat included in FlashDevelop - this usually works and has worked throughout development.
 
adl  "%APP_XML%" "%APP_DIR%"
 
I added
 
  <supportedProfiles>extendedDesktop</supportedProfiles>
  <extensions>
<extensionID>com.amanitadesign.steam.FRESteamWorks</extensionID>
  </extensions>
 
to my application.xml , and now when running the above adl command I get
 
error while loading initial content
 
so I did some searching around and then read to specify the location of the extension as located in the lib folder:
 
adl  -extdir lib/ "%APP_XML%" "%APP_DIR%"
 
Where the folder inside of lib is another folder, FRESteamWorksLib.ane , which is just FRESteamWorks.ane added to a .zip and then unzipped.  lib is on the same level as my bin (right below the root).
 
Running that above adl command now gives
 
Argument 'appDeployedExtensionRootDir' not supported in current profile
 
And now I'm stuck. The help topic I used is this: http://www.flashdevelop.org/community/viewtopic.php?p=46511 and it says that  it shouldn't work if I don't have some steam_api.dll installed, which I don't think I do (haven't gotten Steam SDK access yet, still waiting on that), but I think my error might be different and searching doesn't show up much.
 
Anything you can figure out about this would be appreciated! "
Logged

play hydlide 2
Xienen
Level 3
***


Greater Good Games


View Profile WWW
« Reply #18 on: March 02, 2013, 06:20:19 AM »

steam_api.dll ships with just about every game, so if you own any games on Steam, you should be able to get the DLL from there.  Unfortunately, I can't help you with the AIR/ANE/ADL issues, as I've never worked with it before, but I do know Flash pretty well.  I also have extensive knowledge of Steamworks, as I developed the Community Express SDK for Unity.  Are you wanting to use Steam's Achievements and such? Or are you just trying to ship your game on Steam without any of those features?

Edit: It looks like they also ship a steam_api.dll with FRESteamworks, as well. I messaged you my contact info, if you'd like me to help you with this.
« Last Edit: March 02, 2013, 07:14:34 AM by Xienen » Logged

larsiusprime
Level 2
**



View Profile WWW
« Reply #19 on: March 02, 2013, 09:29:01 AM »

[Giant infodump Temporarily redacted while I wait to hear back from Valve about whether I can post this publicly without violating NDA]
« Last Edit: March 04, 2013, 01:25:48 PM by larsiusprime » Logged

Nostrils!
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic