Recommended Posts

Ok, I am starting an summer vacation project that probably will last all year if not longer.
So I recently got thinking about Game Achievements and Steam along with some of my favorite games. Some of my favorite games don't have achievement support on Steam. I am Primarily a PC gamer so I thought this would be somewhat cool for PC Gamers.
I want to make an Program/SDK that has Achievement Support for allot of games. This also includes games that have been released back all the way back from 2000.
1. So how would i accomplish this without having to rewrite the entire game code?
2. This is going to be an Online community revolving around the achievement system. How would I prevent Cheating in the Form of Game saves, hacks, and the like? (maybe have the Achievements encrypted?)
3. Will I need a Server to host the entire Achievement System?
4. If I need an Server Should i build one or Rent one out?
5. Is there an SDK that i can look at that supports achivements?

Share this post

Link to post

Share on other sites

I am unfamiliar with Steam and the Achievement System you're talking about but I can at least answer some of your questions:

Question 2: Achievement encryption is probably not your answer. Cheating is a major problem and one that nobody can 100% effectively block. Your best bet is to first start with sanity checks (e.g., if a player suddenly starts getting a large number of achievments it may be time to take a closer look at them). It also depends a lot on the system that you use. Are you going to be using a web based interface? A stand-alone client? Even more importantly, preventing cheating is an on-going process. As soon as you patch up one thing malicious users will find another way to circumvent any anti-cheat measures you're taking. The problem is compounded if you make your software open-source (although could very well make you stronger against vulnerabilities). It also depends on how well your software is written -- exactly what skill level are you? What language do you plan to write your software in? Many vulnerabilities stem from poorly written and buggy software where the programmer doesn't take precautions to prevent your most basic attacks like buffer overruns and so on.

You'll need to think about all of these and many more questions before you try to tackle this because it's not as trivial a project as you seem to think it could be (although the 1-year dev time isn't unrealistic).

Question 3: Again, that depends on exactly what the achievement system is and how you want it to work. If you want to create a web interface, than it's a simple matter of using a web host (many can be found for $5 p/month). If it's not web-based than you'll need to write a basic server application that accepts incoming information and stores it locally. This can be done using flat files, a connection to a MySQL/PostGRE SQL database (easy web access) or a SQLite database (generally this would require clients to request data from the server).

Question 4: That also depends. First, do you have the cash to rent a server? It can easily start at $100 per month and quite likely much more than that. If you have a fast enough connection at home and are comfortable running a Linux box, you could give that a shot. I generally don't recommend running server software on a desktop Windows machine simply because 1) it's a nightmare to administrate and 2) you leave yourself open to too many vulnerabilities.