1
$\begingroup$

My question is: When we are finished creating the game in Blender, how do we let others play it? Is there a game host service through Blender? or do we need to purchase a server from a 3rd party provider?

$\endgroup$
  • 4
    $\begingroup$ I'm voting to close this question as off-topic because this question is not about Blender as described in the help center, and in my opinion is out of scope for Blender Stack exchange. $\endgroup$ – brasshat May 31 '17 at 2:41
  • 3
    $\begingroup$ Please don't take this the wrong way, but if you/your company even has to ask this question then you are not ready to make a MMOG. $\endgroup$ – David May 31 '17 at 3:06
  • 1
    $\begingroup$ Not to mention, I am asking how do I host the BLENDER GAME that I create WITH BLENDER. It is a legit and honest question. I posted the question in the BLENDER GAME ENGINE forum because it is a question ABOUT the BGE. $\endgroup$ – Travis Trapani May 31 '17 at 3:22
  • 1
    $\begingroup$ So okay, Thank you for your reply. It is very relevant question. "How do you host the game when you are done creating it?" What I gather from your comment is that, I would have to find a 3rd party host....No problem. Question answered. All that other stuff is what was irrelevant. Why do you folks got to be so hateful. All you had to say is....: "You need a 3rd Party hosting service," Done! $\endgroup$ – Travis Trapani May 31 '17 at 3:59
  • 3
    $\begingroup$ @TravisTrapani - python includes network support that can be used in the game engine to transfer data between remote players or a central server. To share your game once created you could create a repo at github or a similar project sharing site or use a file hosting site like mediafire. itch.io offers game file hosting as well as payment services. If you want to have a central server that players use to play online together you will need to setup your own server. $\endgroup$ – sambler May 31 '17 at 6:56
4
$\begingroup$

Creation and Build

Blender is a "creation tool". You can create Blender games (and the assets) as application with it.

Blender supports you in a way that it builds the application and data files that form your game. It is not designed to act as application server outside of the development pipeline (running the game embedded inside Blender, or starting it from within Blender).

Running

The user runs the game on his own starting the game as standalone application.

The usual way is to start the blenderplayer and feed it with a blend file which contains the game's data.

blenderplayer.exe myFancyGame.blend

For your service Blender can bundle the blenderplayer with such a blend file forming a application file (still needs the libraries).

myFancyGame.exe

Be aware: in this case all content of the application file (what is inside the blend file) has to be published under GPL as the blenderplayer is GPL (see Blender licence).

Publishing

Typically you somehow provide the user a way to get all the necessary files (blenderplayer/game file/blend file/linked assets). This can be a download/CD/stick or whatever. This is outside of Blender. There are other applications that help you on distribution (e.g. creating an installation file, hosting a download page, offering update service)

Distribution

If you want to create a multi-instance multiplayer game you need to split the game into different parts anyway. Each user gets a client that runs on the user's environment. These clients can connect to each other (peer-to-peer).

You can run one or more servers that help to connect (lobby) and synchronize (game server) the different game instances (client-server).

Each part (server, client) needs to be published separately as they are installed at separate environments.

When you want to run the central servers I suggest to look for some third-party-services to help you on that. Blender can provide the application, but not the application server - not even a website. That is outside of the scope of Blender and outside of the scope of this answer.

Remark: this is an architecture decision. You create the client with Blender (or other tools) you can create the server with Blender (or other tools) as long as they can communicate with each other.

Running embedded

This is a followup from the comments.

You can run your game embedded inside Blender. This is typically part of the development process.

The average user does not want to start Blender, load a blend file and run the game from there, specially as it is possible to break something while having the blend file open.

Nevertheless it is possible to run your game embedded. You might even support the user with auto start script (starting the game when opening Blender).

This means Blender is part of your game (you need to deliver Blender and the game assets).

The advantage would be that the Blender API (bpy) is available. Be aware this still does manipulate Blender data rather than data of a running BGE game.

You could use this option to run your server. This way the end-user does not see Blender just the individual client. The clients can be the usual BGE applications.

$\endgroup$
  • $\begingroup$ "Blender can provide the application, but not the application server - not even a website." - Are you sure? Blender supports python scripting. If you can get a python script to listen on a port, you should be able to do all that, website and server. Having blender as the server applications could have an advantage for server-truth situations. $\endgroup$ – GiantCowFilms May 31 '17 at 16:13
  • $\begingroup$ That would be your own code - not Blender. I'm sure your code would run as standalone python application even without Blender. Yes, you can run Blender (and/or the embedded game) as the game server. This makes sense within the development phase (the same way as you start your game embedded). Is this the right choice on a production environment? $\endgroup$ – Monster Jun 1 '17 at 5:23
  • $\begingroup$ Well, you may gain benefits by piggybacking off blenders built in functionality, having the server do the physics is one example. Of course running an instance of blender does have a huge performance overhead. $\endgroup$ – GiantCowFilms Jun 1 '17 at 22:55
  • $\begingroup$ When the server is running physics it is the BGE (= the server part of your game) that runs it (unless you want Blender physics).Your game is still a separate application. There might be one benefit: Running your game embedded allows it to access the Blender API (bpy). Something that BGE games usually can't do. This might enable you to create new blend files on-the-fly (it will not manipulate the running game session). $\endgroup$ – Monster Jun 2 '17 at 5:25
  • $\begingroup$ Thank you guys for your replies. It is very pleasing to get a reply rather than people ridiculing me for not knowing. I don't know codes, but in "Game Development" it is advisable to form the overall play and development of the game with a team or crew. One such crew has begun building. I also found that the most direct and hassle free way to do this is to set up the game and libraries with Blender, then use a separate computer as a dedicated server running Blender internal Network service, Pay for hosting for that dedicated server, and upload the game files to that host. $\endgroup$ – Travis Trapani Jul 22 '17 at 4:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.