WebSockets: What do you want?

Post your work in progress addons and get feedback

Post » Sat Oct 05, 2013 7:17 am

Now that I'm slightly more awake we were talking about cheaters and what they might be able to do in their own local environments. I think we might be moving forward on that question inch by inch, but we both seem to be asking questions back and forth at each other.

I don't know yet whether people can do, in C2, what has been described. I believe it is possible to deny access i.e. not allow anyone to manipulate what's going on in the browser code. If C2 denies access, then C2 covers that problem already.

Here's my current thoughts:

I think it's a terrible idea to continuously pass position or more generally state information and simply rely on that. I think it's a terrible idea for more than one reason. Outside of the cheat problem, it requires much more data to be passed than is needed and it builds latency problems. I would like to see more reliance on passing commands linked to behaviors that are defined by the game. That means each players UI code already knows how to handle the commands it receives. At the max. end of that, behaviors can be passed in real-time (but you don't have to it's something that seems like an interesting idea to me). Passing in new behavior can for example, be used when players go to a new level (and I have some other ideas). This may also make it more difficult for cheaters.

It can be done in a way that manipulating data would only confuse the cheater. Implementing that is down the line for me and I'm not even sure yet whether it can be a built in server feature or something that needs to be covered in tutorials for game builders.

One of the favorite cheats in some mmo pseudo-rt games is to set up robots that automatically do things. When the game logic is simple, it can be relatively easy to do. If you're building something, you go to the documentation and find the building schedule. Then you build a robot that automatically logs in and initiates the next building level as soon as the last one finishes. You might need wine in all your towns to keep villagers happy, but only produce wine in one town. So, you might want to automate shipping wine to nonproducing towns. Other players might not even notice the difference, let alone be irritated by it. How do they even know that the guy didn't wake up at 2 in the morning to click on the building to upgrade? It can be more irritating if someone automatically detects war ships on the way to their towns and recieves notification via text message.

On the other hand, mmo game companies may provide an option to buy automated services. Maybe you can get the commodity used to buy these services free, but that's not easy and you don't get much. So there's an option to buy more of that commodity with real money and that's in the overall strategy for the company to make money. So, companies running mmo systems define such robots as against the rules, code to defeat the behavior, and look for ways to detect it and boot people for doing it. Lots of people don't do it to begin with of course (which means money is still coming in) and mmos have gotten pretty good at defeating it. Anybody who wants to set up and run mmo games to make money that way should be aware and even thinking about that as the game is developed.

I also have an idea for people who are particularly driven to build such things as automated cheats pitting them against each other in a type of game that relies on those skills.

rogerfgay2013-10-05 07:23:14
B
6
S
1
Posts: 76
Reputation: 606

Post » Sat Oct 05, 2013 7:23 am

Are you planning to do all of this in C2 language or do you plan to use a plugin at some point.

I would love to offer my time, but at the moment I'm super busy. However if my plate clears in the near future I will speak up on interest about the subscription system and getting MP into C2.
B
90
S
18
G
9
Posts: 2,455
Reputation: 15,028

Post » Sat Oct 05, 2013 7:56 am

That's fantastic. You'll find my email address in the upper right hand corner of my blog ... http://highlevellogic.blogspot.se/

Not sure if I can use a C2 language exactly. Is that patented or copyright protected? Or, is it ok if it's like a C2 plug-in? But wait, I'm not planning to restrict development to C2 at this point. I don't have a business deal with the C2 people or anything.

I think the C2 tools and approach to allowing game developers without programming skills to build games is the thing I'm after. C2 isn't the only tool that does it. The idea is fairly generic. Plugging in actions related to events ("event sheets") is just a simple interface away from the XML form (which C2 and others also have).

I've done a simple proof of concept using the HLL WebSocket Server with C2. It was very simple with a single sprite. I'm imagining that C2 can have independent characters, but don't know that. If characters can be independently controlled, I think it's already possible to build multiplayer games.
rogerfgay2013-10-05 08:04:57
B
6
S
1
Posts: 76
Reputation: 606

Post » Sat Oct 05, 2013 8:00 am

Let me follow up to the already mounting commentary I've given in the past couple of hours. I'm sure you will all enjoy the book when it comes out. LOL!

Grain of salt on having all the logic in the browsers. What I have in mind, game developers will be able to decide how much logic is on the server. I think the details will become clearer as I implement, even for me. I'm not at this point, considering running a game loop on the server. I suppose that's possible, and might be a consideration at some point. But phase 1 anyways ... it'll just act like a good and proper server.
B
6
S
1
Posts: 76
Reputation: 606

Post » Sat Oct 05, 2013 10:37 am

Interesting question has come to mind from the discussions. Surely, there can be no doubt that I need to provide good support for game developers, making it easy to build the games. But who's my target market?

If what game builders are saying is that they need a subscription service, so that all they need to do is upload their games; maybe I'm looking mostly for people who want to set up and run a subscription service: Either that or someone who wants to run mmo games ... either way ... someone who's interested in running servers.

A lot of independent game developers aren't interested in doing that.
Some might be.
rogerfgay2013-10-07 09:01:32
B
6
S
1
Posts: 76
Reputation: 606

Post » Mon Oct 07, 2013 11:43 am

Not sure I've been perfectly clear about everything. I think game exchanges should be command driven, not by constantly updating the state of each character. Even holding down an arrow key can be done with "left down" and "left up" or "left" and "stop left" for example. I believe that there does need to be some basic synchronization supported by the server as well as a simple way to deal with latency. But that's a far cry from putting all the game logic on the server.

RE: Cheat ... teleporting as an example. If there is no teleporting command in the game, you won't be able to teleport in the multiplayer world. If someone finds a way to change their local position, it won't show up on any other player's screen. It will just leave the cheater confused.

I'd like to see good responsiveness, but until the activity is making huge bucks, I don't think I'll start an R&D project on the cutting edge of Internet connection speeds. I'm comforted by the fact that photon torpedoes can take as much as 15 seconds or so to reach their targets in Star Trek movies. Cool effect. Why wouldn't you want to see the photon torpedo run its course? With everything from sluggish goofy old canons and catapults to futuristic energy blasters (I've seen it in games already), it's possible to use projectiles that take at least a few seconds to reach their target. And that's more than enough time to sync up.

If the game does larger troop movements, it can take a second or two for ground commanders to respond to the player. I'm not saying that's technically required, just saying it wouldn't be bad to design the game as such. Player / general orders swordsmen to attack the flanks - couple seconds later, acknowledgment from the ground commander. Humans are like that. Why should it not be so in the game? (This can also work if you're giving instructions to an individual character rather than directly remote-controlling it; although I'd have to think more about a game in which that's interesting to do.) It then takes time for the group of swordsmen to move in and fight ... lots and lots of time for sync.

That's just a couple of examples. There might also be some good examples for extremely rapid action play, but I'm just not treating conservative / safe action as what I'm after right now. I'm not against rapid interaction, you understand. And maybe somewhere during the development of what I've described, I'll see an opening, or at least be set for some preliminary timing tests. As I start out though, I don't want to lead game builders astray. I'd rather advise them to do things that we know will work. For those who have the time and interest, ok, they can test the outer limits if they want to. I'm just not going to push someone who just wants to get a good game on the market into doing experiments. I think that's part of responsible support.

And once again ... My WebSocket server is fast, very fast, but WebSockets don't make data move faster over the Internet. rogerfgay2013-10-07 11:50:28
B
6
S
1
Posts: 76
Reputation: 606

Post » Mon Oct 07, 2013 11:52 am

And now I'm also considering the business model and who / where / how servers will be installed.
B
6
S
1
Posts: 76
Reputation: 606

Post » Mon Oct 07, 2013 1:15 pm

BTW: Just now, I'm seeing about a 50ms latency on http fetches between two different cities in Sweden. That's about 20 times faster than the human eye can process imagery (Wikipedia). It's under 10 times faster than film refresh rates in the later half of the 20th century and somewhere around half that (still faster) than TV, which was synced with electric power cycles (50-60 per second).

In 50ms, a real life bullet will travel 3-25 feet.

But since you've all spent time on computers and the Internet, you know that you're not always getting what is possible. Switching protocols doesn't solve that problem. Still though, there's a great deal of potential fun. :)rogerfgay2013-10-07 13:27:02
B
6
S
1
Posts: 76
Reputation: 606

Post » Wed Nov 06, 2013 6:47 pm

Hey Roger,

We briefly talked before when you put out your Websocket post and I ended up not being able to get back to you and I apologize!

All of this sounds awesome/interesting and I too would like to help/be a part of what is needed. My 9-5 job is a FileMaker developer (kind of like C2 of the database world) and know plenty of SQL so I know my way around data and databases. As for servers, I'm a bit behind on that aspect but always trying to catch up.

I'm currently trying to finish up a board/card game in C2 to put on iOS and Android which I really really want to finish ASAP, but after that I wanted to do more online/server connection games with C2 which seems like a good time for us to try some stuff out.

Feel free to shoot me messages whenever you have something or ideas and I will get back to you, and I will make sure I come back here when I have more time!

Nick
Twitter: https://twitter.com/pudgyplatypus

Learn to make a clicker game for cheap!
https://www.scirra.com/store/games-with ... e-game-666

Try out Pixel Golf on the Scirra Arcade!
https://www.scirra.com/arcade/sports-ga ... el-golf-67

Pudgy Platypus Games website!
www.pudgyplatypus.com
B
59
S
20
G
5
Posts: 212
Reputation: 7,390

Post » Thu Nov 28, 2013 9:26 pm

Very interesting thread, working on a chess like multiplayer game in C2 and might be one of your customers. I hope this project of yours is still alive.
B
10
S
4
G
4
Posts: 25
Reputation: 3,174

Previous

Return to Work in Progress Addons

Who is online

Users browsing this forum: No registered users and 0 guests