Designing an achievement system for a steam multiplayer game



So I’m trying to implement an achievement system for a steam game that has both multiplayer and singleplayer. For singleplayer I have the steam api on the client so I have no problem checking the achievements, I can create the stats for the achievements on steam. For multiplayer I am not sure what to do. I thought about a publish/subscribe design where each client would have to send a request to subscribe for certain events that are of interest to them for achievements they haven’t unlocked yet, and then the server would just send him the events. I’m not sure how to send those events and subscription requests to client/server. Would I use RPC? And I am not sure how to assign events to the achievement ID in some neat way. Is there some other way I can do this that I haven’t thought of?


I haven’t tackled multiplayer so not really sure, @sampattuzzi should have an answer for you.


I was looking at the IMessageBus: in UE4 because it seemed the most similar to what i needed. But I am not sure how to use it over the network and I couldn’t find much on it anywhere.


Why allow the client to register it’s own achievements? Seems like you would want the server to do this for the client no?

automatically bumped #5

automatically bumped #6