Now, I won't get into the morality of piracy or anything along those lines, but I will say that, as a developer, I want people who play my games to pay for them. So, I had the brainstorm: MMORPGs (Massively Multiplayer Online RPGs) eliminate the piracy problem by moving all game logic onto _their_ servers. Why not do the same thing for a single-player game, and introduce the SPORPG (Single Player Online RPG)?
Now, there are various levels to which one could take this (hairbrained?) scheme. I could keep all game logic, levels, and everything on my server, and implement the client as just a dumb rendering client. This approach would virtually eliminate piracy; only someone who duplicates (or actually breaks into my server and steals) my logic code, levels, etc, can pirate the game. But, now I've got to deal with a lot of the MMORPG issues, like network lag, synchronization, etc.
A simpler design would be to treat my server as something like a secure file server. The game logic is run on the client, but whenever the player enters a new area, or perhaps even when he encounters a new type of creature (or whatever), the client goes to the server and asks for the level file and any associated assets (like graphics). Naturally the server would require a valid login, and could perform security checks like making sure a bunch of people aren't using the same login.
I like this simpler design, because it really wouldn't be too tough to implement. Piracy would be possible; if the pirate retrieves all of the levels and assets from the server, he could then hack the client code to have a non-online version of the game. However, if he missed some parts of the game (in a non-linear RPG, this is entirely possible), his hacked version would be gimpy; a player exploring parts of the game that he missed would get a broken experience.
So, from the player's point of view, positives:
- The game has basically implemented auto-patching of game content; the client would just grab new level and asset files as needed. Bugs in the client executable would still need some sort of patch program to run, though.
- The player's games can get saved online; no worry of lost files or whatever. In fact, as long as the player can remember his account, he can switch between computers, with seamless game saves.
- The demo version of the game would be the same as the full version; all the player needs to do is create (and pay for) an account and he can access the full content, right from within the game.
- I could easily implement community features, like online, player-generated hints, online high-score lists, chat, whatever. Since we're online, it's just a matter of how much code to I want to write.
- The player has to be online to play. In some ways, this really sucks. But maybe in this day and age, it doesn't suck too much; isn't anyone who is going to pay money for an indie-RPG likely to have a decent Internet connection?
- Level loading could be pretty slow if the game is trying to send a bunch of content. We can keep the files pretty small, and be careful about not re-sending files, but there is an issue here.
Oh well, just a brainstorm I had. Not sure if I'll do anything with it or not.