Jump to content

Steam Networking


Josh
 Share

Recommended Posts

The Steamworks SDK has a networking library built into it, which you have full access to with Leadwerks Standard Edition. The nice thing about it is you can just pass data between Steam user IDs, which are just unsigned 64-bit integers. Obviously, the downside is it only works through Steam, but it looks ridiculously convenient. There's no worries about NAT punch-through or any other nonsense, it just works.

  • Upvote 2

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Hell yes. I'm sure I'm not the only one eagerly waiting to play with this. The obvious question is when but I assume there's no timeframe yet.

 

Much more importantly, is there a required process? Let's say you make a barebones program that in theory connects to a friend and sends an integer. Can you and your friend try it out immediately or is there some sort of Steam authorization process to go through? Or does your project need to be at least Greenlit?

 

Also, can savegames and other data be stored on the Steam cloud?

Link to comment
Share on other sites

does the networking only works when I have my game on steam?

 

I´m sure most of the features are useless when I dont get my game on steam right?

 

Obviously, the downside is it only works through Steam, but it looks ridiculously convenient.

 

Steamworks is useless if you do not plan do publish your game through steam.

  • Upvote 1
Link to comment
Share on other sites

What i see is LE3 is super tied to Steam even the C++ standalone version, it's good advert and make LE3 popular, but ...

 

Will it be some LE3 version totally free from Steam, i mean :

-No Steam files

-No Steam DLLs

Nothing Steam simply.

 

If i realease a stand alone platformer or RPG for solo play , for simply any PC and i publish on Desura or any others platforms i don't want any Steam stuff in it.Could it be possible ?

LE3 is 3D Engine not Steam 3D engine ... , i'm not sure majority of people are interested in Steam features, this should be optionnal not mandatory dry.png .

  • Upvote 1

Stop toying and make games

Link to comment
Share on other sites

I agree.

The problem if you want to publish elsewhere than Steam, your game project will embed Steam files and DLL, that's not good, and should be optionnal in Project Manager like some checkbox option :

Create new project :

[ ] Steam project checkbox

Stop toying and make games

Link to comment
Share on other sites

The rules of the Steam networking commands are basically just: you can send any data to any SteamID at any time, and receive data from any SteamID. There's no connection to make and break, and it's just automatic. So it's ridiculously straightforward, although there is certainly a tradeoff.

 

Valve employees have told me it is okay to distribute the Steamworks DLL, since it is statically linked to the Leadwerks, library, without initializing Steam.

 

Savegames actually can be stored in Steam cloud right now, but it's not documented or officially supported. smile.png

 

 

Link to comment
Share on other sites

The rules of the Steam networking commands are basically just: you can send any data to any SteamID at any time, and receive data from any SteamID. There's no connection to make and break, and it's just automatic. So it's ridiculously straightforward, although there is certainly a tradeoff.

 

That's great for Steam based games.

 

 

 

Valve employees have told me it is okay to distribute the Steamworks DLL, since it is statically linked to the Leadwerks, library, without initializing Steam.

This means all LE3 version will need Steam DLL library in published game even if you don't use Steam ?

Or can we remove all Steam files manually to create the published game version , and the game will work ?

Stop toying and make games

Link to comment
Share on other sites

From what I can tell, as long as you don't call any steam commands or constructors to initialize steam, then the end users shouldn't notice a difference. If the steam effects (overlay for example) can be disabled then the only thing that is impacted is the exe size as the library is statically liked to the LE Library. Is this correct or am I missing something?

bool Life()
{
 while(death=false)
 {
   if(death==true)
   return death;
 }
}

 

I have found the secret to infinite life

 

Did I help you out? Like my post!

Link to comment
Share on other sites

From what I can tell, as long as you don't call any steam commands or constructors to initialize steam, then the end users shouldn't notice a difference

 

It seems it's hard now for LE3 to remove Steam dependency or it would have been done already.

General others 3D engines offers like UE4 are not tied to any distributor system could it be Sony, Microsoft Steam or whatever.

LE3 is not as popular and needs some support to grow, and i understand Steam is central for that.

I would just take LE3 if i had a commercial for Steam platform, for non Steam i would simply take another 3D engine.

 

But not proposing some clean LE3 version without any files Steam dependency for non Steam games, this is just outstanding blink.png

Why ? Easy way and less work ? Some Steam hidden agreement or another Steam statistics hidden system ?

Stop toying and make games

Link to comment
Share on other sites

General others 3D engines offers like UE4 are not tied to any distributor system could it be Sony, Microsoft Steam or whatever.

Leadwerks games do not have to be distributed through Steam. With Leadwerks the option is there for easy integration. This is an extra feature no one else has, and it is there to use if you want it.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

I'm hoping that this is just a temporary fix for users wanting networking until proper time can be given to a true networking class that LE provides independent from distribution platform.

bool Life()
{
 while(death=false)
 {
   if(death==true)
   return death;
 }
}

 

I have found the secret to infinite life

 

Did I help you out? Like my post!

Link to comment
Share on other sites

It's not a fix of any kind. I am just pointing out that the capability is there and is accessible right now for anyone who feels like playing around with it.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Not possible in the lua version. The game doesn't even attempt to run. In windows, the console version immediately terminates.

You need the DLL, but you don't need to initialize Steam.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...