All Projects → BlizzCrafter → Facepunch.Steamworks-MonoGame-Integration

BlizzCrafter / Facepunch.Steamworks-MonoGame-Integration

Licence: other
Facepunch.Steamworks + MonoGame.Framework = the easiest SteamAPI Integration for your app!

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to Facepunch.Steamworks-MonoGame-Integration

Steamworks.Net-MonoGame-Integration
This repo is for everyone who is about to integrate the Steamworks.Net.dll into a MonoGame project. It shows some Steamworks.Net features and how easy it is to integrate it into a MonoGame project.
Stars: ✭ 30 (+66.67%)
Mutual labels:  steam, steamworks, monogame
Facepunch.steamworks
Another fucking c# Steamworks implementation
Stars: ✭ 1,945 (+10705.56%)
Mutual labels:  steamworks, facepunch
Chat-LoggerPP
Steam Chat Logger
Stars: ✭ 13 (-27.78%)
Mutual labels:  steam, steamworks
steam.py
An async python wrapper to interact with the Steam API and its CMs
Stars: ✭ 74 (+311.11%)
Mutual labels:  steam, steamworks
steamworks
Steamworks implementation in Go that doesn't require CGo
Stars: ✭ 21 (+16.67%)
Mutual labels:  steam, steamworks
idle master extended
🃏 Get your Steam Trading Cards the Fast Way (Fast Mode Extension 🚀)
Stars: ✭ 1,771 (+9738.89%)
Mutual labels:  steam, steamworks
MonoGame.Forms
MonoGame.Forms is the easiest way of integrating a MonoGame render window into your Windows Forms project. It should make your life much easier, when you want to create your own editor environment.
Stars: ✭ 183 (+916.67%)
Mutual labels:  steam, monogame
CreamInstaller
Automatically finds all installed Steam, Epic and Ubisoft games with their respective DLC-related DLL locations on the user's computer, parses SteamCMD, Steam Store and Epic Games Store for user-selected games' DLCs, then provides a very simple graphical interface utilizing the gathered information.
Stars: ✭ 274 (+1422.22%)
Mutual labels:  steam, steamworks
Quaver
🎶 The ultimate community-driven, and open-source competitive rhythm game.
Stars: ✭ 282 (+1466.67%)
Mutual labels:  steam, monogame
steamworks
Steamworks API wrapper for Go
Stars: ✭ 26 (+44.44%)
Mutual labels:  steam, steamworks
hookey
Enables all the DLCs. Like Creamapi but just for linux and a subset of Paradox games.
Stars: ✭ 87 (+383.33%)
Mutual labels:  steam, steamworks
SalienSnake
A simple bot written on Python for the Steam 2018 summer sale.
Stars: ✭ 16 (-11.11%)
Mutual labels:  steam
node-steam-chat-bot
[Inactive] Simplified interface for a steam chat bot
Stars: ✭ 28 (+55.56%)
Mutual labels:  steam
pyXSteam
Python library for calculating properties of Steam and Water
Stars: ✭ 32 (+77.78%)
Mutual labels:  steam
VTFLib
VTFLib is a LGPL open source programming library that provides a C and C++ API for reading and writing Valve VTF and VMT format image files.
Stars: ✭ 68 (+277.78%)
Mutual labels:  steam
Steam watcher
yobot插件,Steam雷达,可自动播报玩家的Steam游戏状态和DOTA2图文战报
Stars: ✭ 21 (+16.67%)
Mutual labels:  steam
Conty
Easy to use unprivileged Linux container packed into a single portable executable
Stars: ✭ 198 (+1000%)
Mutual labels:  steam
SteamAuthOOP
OpenID-Login through Steam for your website
Stars: ✭ 32 (+77.78%)
Mutual labels:  steam
auto-task
此版本不再维护,新版本地址:https://github.com/HCLonely/auto-task-v4
Stars: ✭ 37 (+105.56%)
Mutual labels:  steam
Fixator10-Cogs
Cogs for Red-DiscordBot. Including port of Stevy's V2 leveler.
Stars: ✭ 66 (+266.67%)
Mutual labels:  steam

Twitter Follow

Facepunch.Steamworks MonoGame Integration

Facepunch.Steamworks + MonoGame.Framework = the easiest SteamAPI Integration for your app!

Hello Facepunch.Steamworks Hello Facepunch.Steamworks

Building

The following is required to successfully compile the solution:

How To

To set up your own MonoGame with Facepunch.Steamworks integration project you need to do the following steps:

  • Add the Facepunch.Steamworks.dll per NuGet or the included modified source

  • Add steam_api64.dll as a link to your project and set "copy to output directory" to "copy if newer"

  • Add steam_appid.txt this step is not needed anymore!

  • Initialize the API with the method SteamClient.Init(); like this:

using Steamworks;

protected override void Initialize()
{
    try
    {
         SteamClient.Init(480);
         IsSteamRunning = true;
         SteamUtils.OverlayNotificationPosition = NotificationPosition.BottomRight;
    }
    catch (Exception e)
    {
        Console.Out.WriteLine(e.ToString());
    }
}
  • Update callbacks with SteamClient.RunCallbacks(); like this:
protected override void Update(GameTime gameTime)
{
    base.Update(gameTime);
    
    if (IsSteamRunning) SteamClient.RunCallbacks();
}
  • ShutDown the Api with SteamClient.Shutdown(); like this:
private void Game1_Exiting(object sender, EventArgs e)
{
    if (IsSteamRunning) SteamClient.Shutdown();
}

Add the EventHandler Exiting += Game1_Exiting and then the SteamClient.Shutdown() method.

Samples

The greatest thing about Facepunch.Steamworks is, that you can write code in native C#! Say bye bye to manual function calling and finally code like this again:

foreach ( var friend in SteamFriends.GetFriends() )
{
    Console.WriteLine( "{friend.Id}: {friend.Name}" );
    Console.WriteLine( "{friend.IsOnline} / {friend.SteamLevel}" );
    
    friend.SendMessage( "Hello Friend" );
}
public static async Task<Texture2D> GetUserImage(SteamId id, GraphicsDevice device)
{
    var image = await SteamFriends.GetMediumAvatarAsync(id);

    if (image.HasValue)
    {
        Texture2D avatarTexture = new Texture2D(device, (int)image.Value.Width, (int)image.Value.Height, false, SurfaceFormat.Color);
        avatarTexture.SetData(image.Value.Data, 0, image.Value.Data.Length);
        return avatarTexture;
    }
    else return null;
}

UserAvatar = GetUserImage(UserID, GraphicsDevice).Result;

More samples here: https://github.com/Facepunch/Facepunch.Steamworks

Included Sample Projects

  • Hello Facepunch.Steamworks: Simple sample which sets up bare basics of the SteamAPI and displaying a welcome message which includes your steam user name.
  • AchievementHunter: Simple sample which shows you the correct way of implementing achievements and stats as well as storing them on the steam server. It's based upon the Steamworks Example 'SpaceWar' included with the Steamworks SDK.
  • Facepunch.Steamworks MonoGame Integration: Extendend sample which shows some features of the SteamAPI like UserStats, PersonaState, LeaderboardData, NumberOfCurrentPlayers, Steam User Avatar and so on.
  • SteamInput [HELP]: Shows how to activate action sets from an ingame-actions-file (IGA) and receive digital and analog input data from the SteamApi. It is a MonoGame.Framework.DesktopGL project without the Microsoft.Xna.Framework.Input namespace.
  • Workshop Tool: Shows the bare basics of a Workshop like Querry Items, Creating Items, Uploading Items, Subscribing Items, Unsubscribing Items, Deleting Items and getting additional information about Items and the SteamRemoteStorage. Created with WindowsForms and pretty feature complete:

Workshop

Note: You need to start your steam client before executing the examples. Otherwise you won't receive any data -obviously ;)

Have fun!

Twitter Follow

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].