Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top


I've recently created some interest in Overlays for games. Examples can be Steam/Xfire which use these overlays ingame so the user can access their programs while being in a game. I love this idea and I'm wondering how steep the learning curve would be to eventually create such an overlay (not exactly as advanced as the ones mentioned above).

I'm currently programming mainly in C#, I have no experience with C++ whatsoever nor DirectX. During my education most focus was placed on C# and Java. As I much prefer C# over Java. My skill set for C# isn't bad. As I recently graduated I wouldn't call myself a C# wizard however.

The main questions I have are:

Where do I start with my goal to create overlays for games?
Does anyone here have any experience with it?
How steep would the learning curve be?

Thank you for your time reading my question!

share|improve this question

The Steam API, called Steamworks, is only exposed through C++. Although Steam accepts games written in C# with XNA you will have to write the code that calls the overlay functions in C++. Since all you need to have is a simple function call, the part of your code in C++ can made very small. From [][1]:

If you want your game to activate a dialog in the Steam overlay, use the function SteamFriends()->ActivateGameOverlay(). It takes the name of the dialog to open, or just activates the overlay if nothing specified. See ISteamFriends.h for more details.

As for the case of an application such as Xfire, it involves swapping the Direct3D/OpenGL dynamic library the game is using for one that wraps the real one. In the wrapper dll, after the game has been given a chance to draw but before the buffer is swapped, it passes Xfire the rendering context for it to draw the overlays.

share|improve this answer
I believe that Niels Willems wants to create an overlay for either any arbitrary game or his own, not specifically a Steam game. – DMan Dec 10 '10 at 4:17
That is indeed correct, however this information is really interesting It's not specifically a Steam game that i'm looking to code an overlay for. – Citroenfris Dec 10 '10 at 11:44

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.