Jump to content

Bootstrapping WebSocket technology for games.


Recommended Posts

(Following the suggested format++.)




Bootstrapping WebSocket technology for games. 



About me and my technology:


I'm a software engineer and have developed a framework for distributed systems (such as multiplayer games) and a WebSocket server. I'm almost imagining that every game developer in the world knows that WebSockets are by now, even if you haven't used them; but there's a short description at the bottom of this note(*) in case you haven't. I was one of the first in the world to have created a standard compliant WebSocket server and have had a simple online demo running 24/7 for two years. 

Link to the demo at the bottom of the short, out-of-date blog intruduction: http://highlevellogic.blogspot.se/2011/09/websocket-server-demonstration_26.html


The framework includes high level structures and logic that help make developing sophisticated systems more like filling in a form. If you are familiar with rule-based expert systems, you might understand that they were an inspiration for the idea back in the 1980s. In fact, part of the system wraps modern rule technology (which can include all kinds of objects within rules) with a higher level logic. The prototype was written before WebSockets existed but using WebSockets (in place of simple sockets used in the prototype) is a natural ... something I was seriously waiting for so that browsers could more easily be more fully included in the process.


I created the prototype framework during a project in advanced robotics that I got funded several years ago. Yes, I'm an engineer; math, physics, the whole 9 yards. And all the while I kept thinking there's a whole lot of similarity between robotics and game development - especially when you get into robot simulations, coordinating collaboration between robots, latency, etc. Communication and intelligent control are fundamental to both. I've been thinking and rethinking the idea of applying my technology to games for several years now. 


I've been writing code in a simple text editor since 1978. But the framework and the WebSocket server are written in Java SE. One of my goals is to have this sophisticated technology with a small enough footprint to run on smart phones. (No bloatware.) I tend to be a bit of a hacker, constantly trying to work out the most efficient simplest way to create something efficient, powerful, stable, and reliable. 


At developer's suggestion, I hooked my WebSocket server up to the free version of Construct 2 (which is quite limited in functionality) and got it to move a character around in response to server messages. Now I've moved on to writing my own simple demo game in JavaScript / HTML 5, and working out what it takes to create a good general game engine. I'm writing this on a short break between hooking my WebSocket server to it and writing some behaviors for a simple (demo) AI character to be controlled from the server. 


I'm not an artist and haven't been a game developer. I'm entrepreneurial but experience tells me that it's impractical for one person to do everything (unless it's pretty simple). I'm generally always looking for collaborators, "partners" of various types, developers willing to try early adoption or beta, etc. Big things take people. I know it. It seems to me that the smartest human interactions in the business world are about what we can do for each other. (And it's not a bad idea in personal life either.)


Le Project


After trying to chat up my technology with game developers for a while, I came to the conclusion that they really need to have something that's quite easy to use; or at least packaged neatly with examples and clear, easy instructions. Many of the developers I have encountered are not programmers and are using "no programming required" packages to build their games.


So, as a first step, I'm building a simple demo game from scratch. It will connect to my WebSocket server which will autonomously control one of the characters. Communication will go both ways, demonstrating how that is done. At this point, I'm thinking the JavaScript / HTML 5 (not obfuscated) source code should be freely available to everyone along with a compiled version of the WebSocket server, free version for development. I've dabbled a bit in supporting JavaScript for writing the server's handlers (what it does ... how it responds, etc.) I need to do more work on that. Currently, I'm writing the handlers in Java.


Beyond that, the sky's the limit. I have thoughts on tool development to make server-side development easier for example, as well as client side as it related to the server. There are possibilities of integrating with existing game development tools as well. And of course, games.



What I want:


I want to put this on a paying basis as soon as possible; via many people using the technology for their games who are willing to pay an appropriate license fee, or larger companies interested enough to provide "customer funding" to make all this work well for them, as efficiently and effectively as possible in a shorter time period.


I'm boot-strapping and it's my hope that I've included enough detailed information that some of you might already be coming to conclusions about what I need. That would be good, because one thing I need is to ask developers what they need in order to get interested and start using this technology. Please let me know if you have thoughts.



What I need:


Everything maybe ... or just the right fit.


I think I need to start building a community. I believe the best development will take place within the context of real people doing real things who can state what they need and even perhaps provide something back with good examples, game art, a web-based tutorial or two, etc. ... maybe even development contributions on open source parts. Ultimately, I'd like to have a core team; but think it's too early to conduct interviews.


If you're currently developing games and are interested in using WebSockets, what would it take for you to try mine?

If you might be interested in participating in a community, where do things need to be in order for you to start?

If you work for a large, or at least well-funded company, might this fit into what you're doing or want to do?

Other thoughts? Feel free to share.

  • Time window: Open, check the highlevellogic blog to see where things are.

Payment details: None currently. If funding becomes sufficient, there may be offers eventually.



* WebSocket is a web technology defined by an international standard established in 2011, that is now supported by all modern browsers including Mozilla, Chrome, Safari, Opera and continued promises from Microsoft. (They're supposed to have it in their most recent, but I won't promise it works.) Websockets provide full-duplex communications between browsers and the server. This means that servers do not need to wait for a request to send messages to the browser for processing and that messages can be passed both ways at the same time. Game players therefore do not need to refresh to get updates from the server, which may originate from other players.


Link to comment
Share on other sites

  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...