Skip to content

syntax-tm/SteamAchievementManager

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Repo stars Build Badge GitHub issues GitHub release (with filter)

SAM Logo

Overview

The Steam Achievement Manager lets you manage achievements, stats, and more for any currently supported Steam app.

SAM Screenshot

This project is a fork of the Steam Achievement Manager project with the goal of updating to .NET Core and WPF.

Project Structure

SAM is comprised of five projects.

SAM and SAM.Manager are the two application projects that create an executable. SAM is the executable that will display your Steam library and let you select an app (game) to manage. When the manager is started, it's passed an ID for a Steam app after which it initializes the Steam API client with that AppID just like any game on Steam would. Steam will show you as in-game, record your play time, and you can earn trading cards (if you have drops left).

The reason why there's two executables is because the manager (SAM.Manager) needs to be in its own process anyways in order to actually manage the achievements and stats. Once a process is registered with the Steam client it's not possible to re-initialize the Client with a different AppID. Steam will also treat you as in-game until that Process and any child Processes have exited.

Both SAM.API and SAM.Core are libraries (*.dll). As its name suggests, SAM.API contains the native Steam API wrappers. SAM.Core is referenced by both executable projects (more on these later) and allows them to both use the same types, resources, etc. without having to duplicate code.

%%{init: {"flowchart": {"htmlLabels": false, "width": "100%"}} }%%
flowchart TB
    subgraph Applicaitons
        S["SAM"]:::app
        SM["SAM.Manager"]:::app
    end
    subgraph Unit Tests
      SU["SAM.UnitTests"]:::unitTests
    end
    SC{{"SAM.Core"}}:::library
    SA{{"SAM.API"}}:::library
    S --> SC
    SM --> SC
    SC --> SA
    SU --> SC
    SU --> SA
    classDef app fill:#247FD4,stroke:#bbb,stroke-width:1px,color:#fff
    classDef library fill:#D63E48,stroke:#bbb,stroke-width:1px,color:#fff
    classDef unitTests fill:#9478F0,stroke:#bbb,stroke-width:1px,color:#fff
Legacy Project New Project Description
SAM.Picker SAM The main executable used to select a game (or app) from your library
SAM.Game SAM.Manager Allows for viewing and editing an app's achievements and stats
SAM.API SAM.API Managed Steam API wrappers
- SAM.Core Common resources used by both SAM and SAM.Manager.

Sponsors

JetBrains

A special thank you to JetBrains for their continued Support of Open-Source Projects like SAM.

Note

Active SAM contributors are eligible to receieve complimentary licenses [for non-commercial development] for all JetBrains products. For questions regarding eligability please refer to the Open Source FAQ.

Acknowledgements

DevExpress MVVMSteamCountriesWPF UI

Resources