0 Favourites

[In Design]Bubble Game Server

  • Hello C2 Developers. awarmenhoven and myself last week stated a discussion to provide C2 developers full network gaming tools. So far as we know creating online multi-player games either means no server structure or requires C2 developers to do traditional programming. This creates two distinct problems

    A. No Server logic. No server side account management, data, world simulation and effective anti-cheating.

    or

    B. Requires many C2 developers to program. This is not the reason why most C2 developers use C2. This creates a barrier between C2 Developers and robust online multi-player design.

    So we want to present the start of development project know as

    <font size="6">Bubble Server</font>

    Bubble server goal is to provide C2 developers a way to access more effective server side development. We want C2 developers easier network gaming development along the same vision of C2. To provide game development to masses. While proving the use of the C2 program.

    However, such a project seeks input from C2 developers. We want your voice heard, questions asked and suggestions made. We want to enter discussions so that we can help make sure that use of the Plugin and Server is easy as we can provide while still being functional.

    Here is a presented series of early public early draft simple design documents for everyone to look at, examine and suggest. Even if your not a multi-player game developer yet. Now is not the future. So we want your input.

    Link to Data Architecture

    This image provides a basic structure view of data flow. It's important to convey that we want C2 developers to use C2 Applications as logic.

    Link to Client Plugin ACE

    This document provides the initial draft design for public review. We want your input on how to use the client for effective use.

    Link to Server Plugin ACE

    This is document is the initial draft design for public review. This document defines how C2 developers interact with the data and server logic.

    Link to Transmitted Data Blocks

    Once again an early draft of data between logic, client and server.

    This project is only in it's early design and with some hard work we can have something to show. However, we really could use your input. We will even answer theoretical questions.

  • How to deal with server side scripting on NodeJs?

    An editor like C2 to deal with creating server logic would be.. um well incredible.

  • Construct 3

    Buy Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Buy Now Construct 3 users don't see these ads
  • Developers will be using C2 for server side scripting. awarmenhoven is designing the core server in Go for cluster and parallel networking purposes. From the core server it will use clustered computers to handle logic. Which will be done by developers using C2. Developers will use a nodewebkit export.

    The only aspect of C2 that isn't tops for server logic is the canvas rendering. Which we will look into if/once we reach a releasable product.

    We wouldn't want to start a project like this without providing C2 developers to use C2 :)

  • jayderyu

    Is this server created by event sheet + server plugin, then exported by node-webkit (exe or linux)?

    Edit:

    I saw the answer at previous post, sorry.

  • jayderyu

    There are some gamer server frameworks using node.js like pomelo. How about binding these gamer server frameworks to be server plugin?

  • That's an interesting idea. Pomelo has some nice server game handling features.

    As for using Pomelo as a core server. It's more taking the opportunity that awarmenhoven is a server programmer with cluster networking solutions already. So that gives a benefit of trying to handle a direct solution for less technical developers. However, I'm more than interested in inclusion than exclusion. If we can find effective Pomelo support included. I don't see why not.

    Personally I would like to see Clay.io integration :). Much of this will come down to handling data and connections. So who knows what we will manage. But one step at a time, forethought and listening to the C2 developers :)

    On side comment. A few weeks ago before I did the MP Test shooter. I was looking around for a networking solution to achieve a similar design to Bubble. I cam across Pomelo. If I was working solo, I would likely follow up on a pure Pomelo or Action Hero layer.

  • Where do we stand with Multiplayer Features for Construct 2? Is this project still under development?

  • What timing. I was actually going to ask a question here in regards to development.

    Yes, it's in development, but it's still in the infancy stages. It is also at this time the spare time work of awarmenhoven and myself. I have more time, but work just on the client side. Where as my partner does the server and is busy :D

    Well that's a good question. What multiplayer features are you looking for. Our aim is to get the basics up and running first and then let the C2 developer get their hand on it. Then start incorporating useful features, but we could use some suggestions as to what is desired.

  • Well if you're going to use Nodejs I would suggest making a way to integrate npm modules.

    There are already quite a few game related plugs such as pathfinding.

    If you dont count the inordinate amount of useless voxel stuff.

  • awarmenhoven is writing the server. He is also using the Go language. Go is built for server concurrency and distributed networking. I thought we should have used NodeJS originally, but he has a convincing argument. NPM is great, but that would taking away the server logic from you the C2 developer.

    The focus on this server design is to give you the ability to write server game code using C2. Which means you would be using C2 Pathfinding plugin. Game Server code will be run on a node connected to a cluster. The game server code will be C2 app. So the NPM won't really be usable if we were to use NodeJS.

  • I somehow missed this when it was first posted - just wanted to mention it sounds amazing! Coding the server using c2 itself is exactly what I was hoping for.

    I've never done multiplayer coding before, so I don't know what else to ask for. As long as I can send ints, floats and strings back and forth between the two I'm not sure what else I would need.

    Am I correct in assuming this the type of thing that people could use to host their own games (if I coded it to work that way) by including the server plugin in the game itself? If the main server was down as a backup or something.

  • Servers written in C2 have already been done.

    It was a just-for-fun project, if this can be helpful for this idea, i'll release the code!

    Good work, it's interesting to see where C2 is going!

    edit: ahh, sorry, looks like you aren't using nodejs.

  • Arima

    We are going to set it up that data is transfered and used the same way C2 Function. That way it's familiar :) We will also release a tutorial and a simple model for real time movement. Chat is a great program to always teach the basics, but moving will help convey how developers structure the data for multiplayer.

    There will be 1/2 plugins. Client Function for the games and a Node Functions for server data which will offer more features needed. More Channel control, send to entire channels so on. However, it's still under consideration if we will just have it one plugin or 2.

    What would you like to see, both Client and Node as one plugin or two?

    BubbleBatch.exe will be available to self execution. So if you want to set up your own hardware you can run the server yourself, but we are also looking toward offering cloud based serving.

    In cloud based, you can either run your code on a remote computer. That way you don't need to host any hardware

    Or you can run a Node on your hardware and use a remote BubbleBath.exe

    We are still discussing avenues :)

    @JohnnySheffield

    heh, Like Arima I totally missed that :D. That's an awesome thing :) fantastic job. That's a great proof of concept and I'm sure you could probably make some games with that.

    What we are doing with Bubble is that BubbleBath(which is written in Go) is designed to cope as a routing based server. That way it can handle different games, Bath.exe can be launched on multiple computer and share the work load, handle large set's of Nodes into a cluster. So bubble will be more than just the connection, but to get some of the other work out of the way :)

  • I like the way you think, and i hope you'll manage to get this project in a some stable state...

    Although i respect your decision to get some early thought of the other c2 users, i think it would e the best for the project to get to a more or less stable state before you release anything, or try to get useful feedback form users. A lot of people, a lot of opinions. Sometimes useful, sometimes not.

    On the other hand, release early, release often.

    But, when in doubt, C4!

    I'll follow this thread carefully, sounds like you have something here.

    ---

    oohh, i forgot, i even did a simple plugin for writing udp servers in C2, if anybody is interested, here's the thread.

  • JohnnySheffield

    that's awesome that your working on a UDP for javascript and C2 through nodewebkit. Once WebRTC and unreliable channel comes out. Can I use your work on UDP?

    I appreciate your comments. I do agree. We won't release anything until there is enough to get some basic games going. For us that will be when Channel's, Channel list, channel data, user data is running.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)
Similar Topics Posts Views Last Post
Unread sticky
763 305,616
asikanddestroy's avatar
asikanddestroy
Unread hot topic
232 177,666
Tetriser's avatar
Tetriser
Unread hot topic
266 15,897
GameeApp's avatar
GameeApp