ID:151415
 
After thinking for a bit, while farming in WoW, something came to me and i had to ask here.

How would I create Downloadable Content or "Expansions" that are only available to play after paying say, a one time fee of like $5 or something, nothing outrageous like $40 as Blizzard does, just some extra stuff for players who pay for it. This includes raised level caps, access to new questing area's, ect. but are only accessible to the players who purchase the Expansion. What are some ways that i could achieve this goal? I'd appreciate more detailed answers rather than "You can use Paypal for billing." Common Sense, Arbitrary, and stupid comments like that, are a big pet peeve >.>

Also to be clear, i mean this for a game that's well written and WORTH the money, not just your generic BS rpg that sits on the hub most of the time, created by newbs trying to show off skills that they don't have to begin with :P Sorry if i sound hateful, but if you're creating an RPG and are not going to put 110% effort into it, just don't bother...

PS: I'm aware that not very many games would fit into this category, I just want idea's on how to set something like this up, weather connected with a great game or not...
You say you don't want an answer of "You can use Paypal for billing." and you say you want to know how to set this up... so what exactly ARE you asking for?

Are you asking how to differentiate things in the game code to segregate functionality between players? How to utilize Paypal with your game?
In response to Loduwijk
"You can use Paypal for billing" was just an example of common sense info that i don't need. I do wish to learn how to incorporate Paypal into my game, or at least a link to the download. As i asked before, how would i achieve something like this? Sorry if i seem a little vague.

EDIT:
Also i realize that i could simply use Subscriptions for this, but i need separate Expansions with only a 1 time fee.
In response to DarkLily762
I have never charged for anything on Byond, but I just read the CheckPassport() entry in the reference. I agree that Byond's built in subscription methods are probably not appropriate here.

I think you are going to have to rely on PayPal's payment system to set something up. I just Googled around and read a few articles and a few of PayPal's documentation pages, and I think their "IPN" (Instant Payment Notification) is the most appropriate method for you.

https://cms.paypal.com/us/ cgi-bin/?cmd=_render-content&content_ID=developer/ e_howto_admin_IPNIntro

If you look through a few of the pages at that location, you'll find descriptions, explanations, and even some examples.

I looked quickly through some of it, and I'm not sure if you can make use of this directly through Byond based on the description given there. You might need to include a DLL with your game's server, or maybe host a small, permanent web server that just handles recording subscriptions. If you used a DLL packaged with your game server, just the specific game server would get the subscription information, so that would cause other issues trying to synchronize the information between servers. Having a single, permanent webserver for this would probably be the best situation, then all running instances of your game server can get subscription information from it.

So, your best bet is probably to set up an account with Paypal to receive payments, set up a webserver that accepts messages from Paypal and records payment information, and set up Paypal's IPN to send payment messages to the webserver. Then have your game use world/Export() to query the webserver for subscription information; it could send a topic message of the client's key and the webserver could return a message telling what components the key is or is not subscribed to.

Then your game will have the subscription information and you can include that information in your game's logic however you want. Whenever players try to enter a certain expansion area or level up or whatever, check against the information (probably just a value attached to each client, a subscribedTo value or somesuch that you set when they login).
In response to Loduwijk
Would it be possible to use a MySQL server for this? It seems like the most simple option, if you can set the IPN to send a certain message to the server, allowing access to an expansion to that specific account. I planned to have a MySQL server anyways to save registered accounts and whatnot. Would this be a plausible solution?
In response to DarkLily762
DarkLily762 wrote:
Would it be possible to use a MySQL server for this?

Once you have the information from Paypal, you can do whatever you want with it, so you can store it in MySQL if you want.

It seems like the most simple option, if you can set the IPN to send a certain message to the server, allowing access to an expansion to that specific account.

I don't think you can define what the message is that gets sent to your server. It appears that the message that gets sent follows a specific format and you have to follow it, but once you have the information that a certain person has purchased a certain product, you have to make your server do something useful with that information, such as saving it in a database as you suggest.

When I was looking at their pages, I couldn't quickly find the exact specification of the message they send, but it's probably there somewhere. Either that, or they expect you to just modify the examples they give.

There is going to be a learning process here and you'll have to figure out a good way to piece it all together, but it certainly seems doable for anyone that wants to put the time into it.

I planned to have a MySQL server anyways to save registered accounts and whatnot. Would this be a plausible solution?

Sure
In response to Loduwijk
Reading along, you can't really define specific messages, but it will send to whatever server you're using a VERIFIED, INVALID, or DENIED based on the transition success. Thank you so much for the help, I'll look into it a bit more and figure it out.

Yours Truly,
-Lily S. Deliroso