Advice on large scale econonomic mmo

Hi All!

I’ve been playing around with economic simulation type things in unity, and I was wondering what, in broad strokes, tools could I use to implement a large multiplayer system.

Understand that this is just me feeling the waters, trying to work out if this is even possible within unity, but I’m interested in seeing just how much work it would be to make the space themed economic mmo I have in my head.

What I am envisioning is a three level type game:

– Galaxy map: think similar to stellaris, showing abstractions of trade routes, what players own what planets etc. Only large scale stuff.

– System map: also think similar to stellaris, showing trading ships arriving and departing from your system, taking and giving resources

–Planet map: Probably just a text menu for a long time, but eventually would be nice to have civilization type map. Basically just a way to control what that planet is producing.

What I can tell as an inexperienced designer is that none of these use real time multiplayer, I kinda imagine the following taking place:

–Server containing information on basically everything, is on 24/7.
–Player makes change to their planet/system.
–This change is sent to the server, which then determines that because of this change the rate of production of a resource (or something) has increased on the planet. This results in a cascade of events that would depend on how in depth I model the economy. The server then determines that the resource will be ordered more because its cheaper.
–The end result is now the player can sell more of that resource being shipped from his planet.

Is this close to what would be an optimal, or even possible way of doing this? And if so how would I go about implementing something like that? Or do you have any suggestions on other ways to go about it?

Thanks.

i would use Gamespark, it have a very cool cloud code system that allow you to do logic the way you want, you can run function every minutes to increase productions value for each planet>factories, you have “runtime collections” to store planets data and assign a player id as owner etc, its not real time and very fast to develop when you use the Test harness, you can code directly from gamespark manager

Thanks Damien, I did briefly look over GameSparks and my concern was that the cloud code wouldn’t be appropriate to actually run the simulation part of my game–i.e. I’m not sure how much number-crunching it can do for me.

I was considering using a mysql database to store all information, create simulation code to regularly update the database and then use php to connect it to it like is done in this tutorial for high scores, and then use a local server to develop and get an amazon server or something if I actually manage to get this off the ground.

I have some concerns on what kind of performance and security I can expect interacting with the database in this way, but my plan was that after initially loading everything, to keep database interaction as minimal as possible. I like this method because I have experience in mysql and php.

EDIT: I’ve been doing more research, would it better for me to interact with my server over TCP in the way described here, interacting directly with the server program and using the database only for saving the game state? I have no real experience with setting up these kind of connections, but I assume this would be better practice then my HTTP solution?

I don’t know, did I get the wrong idea about GameSparks, would it actually be suitable for large amounts of number crunching?

Try SpatialOS for large simulations and number cruching… The guys there are very aproachable.

Also, I feel I should clarify that I’m not looking to make a commercially viable game here, just interested in this as a learning exercise to test the sorts of things I’m learning in my computer science degree. Specifically, I feel like I haven’t learned enough about networking type things and I’m interested in learning more.

That is quite interesting, I’ll have to look into it.

Wow SpatialOS has some interesting capabilities, although it might be a bit overkill for what I want. I signed up anyway, so I’ll see where that leads.

There are already a couple of MMORPGs using SpatialOS, so it might be exactly what you need :slight_smile:

Hi 1331ME,
I’m part of the customer success team at www.gamesparks.com. We are a Backend-as-a-Service provider, equipping developers with all the tools needed to build, tune and manage the server-side components of their projects. We currently have over 72 million players on average each month, and large enterprises, game studios and publishing companies such as Starbucks, Bandai Namco, Square Enix, Ubisoft and many more are utilizing our versatile and powerful platform.

We frequently see developers on the Unity forums looking to take the plunge into backend development.
Here is a rundown of our platforms features:

Core:
· Cloud Code Editor: (Add Logic, build your own API)
· Cloud Data: (Define MetaData/Runtime Data Structures)
· Binary Asset Manager: (Manage DLC, No more waiting for platform holders to approve your content)
· Push Notifications: (Setup all notifications from one centralized backend, localize global campaigns )

Social:

· Real time and Turn based multiplayer: (Reduced latency, highly scalable)
· Chat: (Cross-platform chat, p2p and group)
· Leaderboards: (Rank any aspect of player performance, highly scalable)
· Social Network Integration: (Pull Data from Facebook, Twitter, Google+ and others)

Economies:

· Currencies: (Up to 6 currencies. Manage rewards to increase retention)
· Virtual Goods: (Create and manage in-game store without need for client updates)
· Rewards and Achievements: (Easily manage both, a great way to drive engagement)
· Optimisation & Management:
· Analytics: (Completely customizable, build reports for almost any conceivable event)
· Segmentation: (Group players with Segments for analysis. Optimise monetisation by age, location, anything you want)
· Experiments: (Make drastic changes to game mechanics and only expose who you wish to those changes.)
· Player Management: (View player history and summaries of activity. Edit player records, reward top players or remove unwanted players)
· Dynamic Form Builder: (Custom forms for Community Managers and Game Operators to get the most out of GameSparks)

You can register for a free evaluation account here: https://portal.gamesparks.net/register.htm
Should you have any questions, one of our dedicated support team is always on hand and can arrange a skype call to delve a little further into each feature we have to offer and how this can impact your project.
Hope to hear from you soon,
-Patrick.