luasteam - SteamWorks API Integration

Showcase your libraries, tools and other projects that help your fellow love users.
Post Reply
User avatar
yancouto
Prole
Posts: 8
Joined: Sat Jan 21, 2017 2:14 pm

luasteam - SteamWorks API Integration

Post by yancouto » Mon Jan 21, 2019 9:52 pm

luasteam

luasteam is a lua library that allows working with the SteamWorks SDK. It does not depend on LOVE, but can be used on LOVE games. Unfortunately, it is not pure lua, since the original SDK is in C++, but we do provide libraries for Windows, Linux and OSX.

Check the Getting Started guide on our documentation to... get started.

Not all SteamWorks SDK functions are implemented in luasteam (I basically implemented what was necessary for my game, Marvellous Inc., which means most of the achievements, leaderboards and Workshop related functions). However, we are open to contributions! Send us PRs on our GitHub repository.

If you have any problems with luasteam, please let us know and we will try to help.

rilifon
Prole
Posts: 3
Joined: Sun Apr 29, 2018 1:28 am

Re: luasteam - SteamWorks API Integration

Post by rilifon » Tue Jan 22, 2019 12:43 pm

Wow, this is so incredible, thanks for the amazing work lover!

Rickton
Party member
Posts: 114
Joined: Tue Mar 19, 2013 4:59 pm
Contact:

Re: luasteam - SteamWorks API Integration

Post by Rickton » Sun Jan 27, 2019 3:27 pm

Thanks so much for posting this, this is amazing! It works great on Linux, but unfortunately the Windows version closes without apparent error after loading the DLL. Running through the console doesn't output anything, and it does seem to crash immediately after the "require" line (I tried printing immediately beforehand, and then immediately after, and only the before hand print comes through).

I actually saw this project back when it was on v0.0.2, and that version works fine on Windows, but 0.0.3 and 1.0.0 don't. I tested both 32 and 64 bit versions (with the applicable love version) and both behave the same way.
Possession - Escape from the Nether Regions, my roguelike made in LÖVE for the 2013 7-Day Roguelike Challenge
And its sequel, simply called Possession , which now has a Steam Page!

User avatar
yancouto
Prole
Posts: 8
Joined: Sat Jan 21, 2017 2:14 pm

Re: luasteam - SteamWorks API Integration

Post by yancouto » Sun Jan 27, 2019 4:11 pm

I'm sorry. The problem was that the Windows version was linked using Lua 5.1 instead of LuaJIT. I fixed this a couple days ago and reuploaded the binaries for v1.0.0 (not for v0.0.3).

Could you download them again? Let me know if it works :)

Rickton
Party member
Posts: 114
Joined: Tue Mar 19, 2013 4:59 pm
Contact:

Re: luasteam - SteamWorks API Integration

Post by Rickton » Sun Jan 27, 2019 5:38 pm

Looks like it works now. Thanks!
Possession - Escape from the Nether Regions, my roguelike made in LÖVE for the 2013 7-Day Roguelike Challenge
And its sequel, simply called Possession , which now has a Steam Page!

Timon
Prole
Posts: 3
Joined: Fri Jan 26, 2018 12:08 pm

Re: luasteam - SteamWorks API Integration

Post by Timon » Wed Mar 13, 2019 11:18 am

It works really. Thanks!

What about User/Friends Avatar functions? i.e.

Code: Select all

imgid = Steam.friends.GetFriendAvatarID(uid, 2) 
and

Code: Select all

local imgdata, w, h = Steam.utils.LoadImageByID(imgid)
imgdata = love.image.newImageData(w, h, imgdata)
Thank you a lot for luasteam ))

User avatar
yancouto
Prole
Posts: 8
Joined: Sat Jan 21, 2017 2:14 pm

Re: luasteam - SteamWorks API Integration

Post by yancouto » Wed Mar 13, 2019 4:03 pm

Hey Timon! I'm glad you're using luasteam.

It seems what you're looking for is an implementations of functions like SteamFriends::GetLargeFriendAvatar. These are not implemented, since I didn't have to use them yet :P

Feel free to add them yourself, and please submit PRs on our repo. I just improved our Contributing Guidelines with some tips, please take a look at it.

These functions are a bit tricky since it would be nice to be able to return LOVE images from them, but we don't want a strong requirement on LOVE. I think a good solution would be to return the actual RGBA matrix if the global value "love" does not exist, and otherwise return an actual LOVE image.

If you want to implement this but have any doubts, please comment here, or reach out to me directly on @yancouto on Telegram.

Post Reply

Who is online

Users browsing this forum: Bing [Bot], Google [Bot], smartelissa and 3 guests