Evaluating bids

Backends for a virtual real estate game

Published on the November 07, 2022 in IT & Programming

About this project

Open

My studio is making an offline, top down, 3D, PC game that's similar to The Sims: you have a City where you can buy land and then build your house on it.

There is only one difference and why I'm here: There is only one world (one city) for the entire playerbase, meaning that each land lot in the city can only be purchased by a single player. And the purchase is done with real world money (via an intermediate currency, like "GOLD"). Every building constructed by any player is visible to every other player. But you can only build on your own owner lands (purchased with real money, via "GOLD").

Project overview

I need someone to take care of the web/server side backends and payment gateways. [I've made a sample python code to showcase how this API would be used] It can be by using something like Paypal and Firebase, not a problem. The game is being made in C++ and Python, so a rest api for all the operations is appreciated. Since it's a project that envolves purchases (money), it needs to be safe and resistent to hacks! We'd like to use an intermediate in-game currency, like "gold", that the user can buy (with real money) and then this gold could be used to buy anything else. If the land is not owned by anyone, purchasing it is instantaneously: if you have enough GOLD to do it, it's yours. If the land is onwed by someone else, then you'll be propted to provide a GOLD amount to make a purchase offer to the current owner. Then the sale is only completed if (and when) the current owner accepts it. When it comes to data structures, each land is identified by an unique ID and its content is stored in a Binary FILE. The land also needs to have fields for its name (different from the unique ID), description, an image (.png) for its thumbnail, the name of the owner (username or NONE, if not owner by anyone) and price. All those land fields are public (meaning that anyone can get them at any time). The player (user) needs to store its username, email, password, an image (.png) for its avatar, description and a list of land IDs owner by him. Everything, except email and password (of course) is also public. The APIs that we need for the Player: - Sign up (user + email + password) - Login (user + password) - Logout - Check to see if the user is logged. - Buy GOLD (with real money) - See how much GOLD the logged user have - Get list of land purchase requests made by other players - Option to accept or decline the offer - see if the purchase requests made by this player is "pending", "approved" or "refused" - option to cancel a pending offer - get a given player's status (username, description, avatar, owned land id list), included the logged one for the land (needs to be logged to do all of it): - get a list of all lands (id + status) - get a given land's (id) status (name, description, thumbnail, owner and price) - get a given land's (id) binary file. - Buy a land: - If there is no owner, it will buy instantly (if enough GOLD) - Otherwise, the user will need to pass an offer (GOLD amount) and wait for approval. - Only remove the GOLD amount after the offer was approved by the other user (and double check to see if there is still enough gold) - Upload a given land's (id) binary File - ONLY IF the user owns the given land (needs checking)

Category IT & Programming
Subcategory Web development
What is the scope of the project? Medium-sized change
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
API Integrations Payment Processor (Paypal, Stripe, etc.), Cloud Storage (Dropbox, Google Drive, etc.)
Roles needed Developer

Delivery term: Not specified

Skills needed