Coder Social home page Coder Social logo

steamworks.net's Introduction

Steamworks.NET

Steamworks.NET is a C# Wrapper for Valve's Steamworks API, it is intended for use with Unity. This project relies on dynamic libraries created by CSteamworks. (Prebuilt and included for ease of use)

Steamworks.NET was designed to be as close as possible to the original C++ API, as such the documentation provided from Valve largely covers usage of Steamworks.NET. Niceties and C# Idioms can be easily implemented on top of Steamworks.NET.

The included CSteamworks.dll was built with VS2010, and as such requires Microsoft Visual C++ 2010 Redistributable Package (x86). You must also ship this to customers via Installation -> Installers on the Steam Partner Website.

Steamworks.NET currently supports Steamworks SDK 1.28.

Support via Gittip Support via Paypal

Support via Flattr

Usage

To use Steamworks.NET you must be a Steamworks developer. Steamworks.NET requires Unity Pro for the plugin functionality.

  • Clone or download a Zip Archive: Stable (2.0.0) -- Master (Cutting-edge Development)
  • Extract and copy Steamworks.NET's Plugins/ and Editor/ folders into your Assets/ folder.
  • Open Plugins/Steamworks.NET/redist/steam_appid.txt and replace 480 with your own AppId.
  • Launch your Unity project. It should copy steam_appid.txt (and steam_api.dll if your on windows) into the root of your project.
  • Close Unity and relaunch the project so that it loads the newly copied steam_appid.txt & steam_api.dll.
Linux

If you plan on shipping a Linux build (do it!) then you must edit Plugins/Steamworks.NET/redist/linux/launchscript and replace REPLACEWITHYOURGAMENAME with your games name.

Your game must then be launched through the script (which will be copied to the output folder and renamed to your executables name automatically.)

Samples

Check out these sample projects to get started:

Not using Unity?

If you are not using Unity then you have two routes that you could take.

  • A: Copy Plugins/Steamworks.NET into your C# project. In Visual Studio open your project properties, change to the Build tab and include STEAMWORKS_WIN, STEAMWORKS_LIN, or STEAMWORKS_OSX in Conditional compilation symbols.
  • This is only recommended if your binary is not portable across platforms already. If you ship on multiple platforms you must have multiple build targets for each platforms. Please prefer the second route.
  • B: The peferable route is to build the standalone assemblies, with the project file located in Standalone/. Alternatively you can download the prebuilt binaries (2.0.0).
  • Further instructions are provided by the README.md in the Standalone/ folder.

Using Steam Encrypted App Ticket?

If you wish to use the functions from sdkencryptedappticket.dll then you will need to manually place the dll/so/dylib in the following location:

  • Windows: Next to steam_api.dll
  • OSX: In /Contents/Frameworks/MonoEmbedRuntime/osx/
  • Linux: Next to CSteamworks.so

sdkencryptedappticket.dll can be found in the Steamworks SDK.

Limitations

  • Only x86 builds are currently supported
  • Steamworks.NET does not currently support ISteamAppTicket or ISteamGameCoordinator.
  • The following Interfaces are largely untested (but should be completely functional):
ISteamMatchmaking (May require some work!)
ISteamNetworking
ISteamUGC
ISteamUnifiedMessages
ISteamGameServer
ISteamGameServerHttp
ISteamGameServerNetworking
ISteamGameServerStats
ISteamGameServerUtils
  • The following are Unity specific and are out of our control, ALL Steamworks wrappers for Unity experience these.
  • When used from within the Unity Editor, Steam will think you are in game constantly. This is normal and does not effect usage.
  • The Overlay and Steam Controller only work when launched from Steam directly. (A small number of Steamworks features rely on the overlay being present. Prefer using a Local Content Server for testing.)

steamworks.net's People

Contributors

rlabrecque avatar martindevans avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.