123
-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 0|427|0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
Socoder -> Blitz -> On directplay

Fri, 11 Apr 2008, 14:40
Yo! Wazzup?
Posted by Tikihead: online game of mine


..Blitz and online...

|edit| Jay sez : Less inter-personal arguments, please.. |edit|



-.-

-=-=-
Hi everyone! I'm new to Blitz and only 10 years old so all things coding is gush to me
Fri, 11 Apr 2008, 16:08
Afr0
Hm... this brings up an interesting subject: Does DirectPlay enable you to create an MMO in Blitz? I don't really know the answer, but unless it's built on top of UDP, I'm guessing it's using select() to switch sockets, so then the answer would be no.

Short summary: If you wanna build an MMO game in Blitz, Google for something like 'select() + DirectPlay', or use UDP. Always keep in mind that using TCP in Blitz will limit you to 64 players max (unless you use Scienthsine's idea, and create a main server application that relays it's connection sockets to different worker applications. But the design approach sounds kinda wobbly, and there's no guarantee you'll ever be able to go above the threshold unless you can guarantee that none of your threads are ever using more than 64 sockets).

Edit: As per the interpersonal comment above, I mean no offense to Scienthsine, and I will be as proud as anyone (if not prouder) if he actually manages to pull off his approach and successfully prove that you can manage more than 64 sockets at once with TCP using Blitz.

Edit2: This post might be slightly off-topic, so to fill it up; No, I've not used DirectPlay in Blitz (or any other language), and as such I haven't had any problems with it, other than the fact that a nagging feeling in my head says it is based on TCP and it is using select(), so you should investigate further if you wanna build an MMO with it.

Edit3: Jay, what was up with your edit above? Does Yo!Wazzup? have a problem with Tikihead? Sounds to me like he's just knocking Sibly's implementation of the TCP commands in Blitz, and rightfully so - I do it all the time!

-=-=-
Afr0 Games

Project Dollhouse on Github - Please fork!
Fri, 11 Apr 2008, 16:42
Afr0
Hm, seeing as Blitz is a rather esoteric language (even within the BASIC family), it's kinda hard to find tutorials on it, but I did find this though.

Actually, all this talk about DirectPlay gives me vague memories of having used it in Blitz or Visual BASIC before. I don't quite remember what I did, but I did remember that the server needed an exclusive GUID. Maybe that will help you somewhat.

Also, if my memory serves me correctly, the DirectPlay API is designed to function like a lobbying system, and that would imply the following:

- ClientA connects to MainServer through teh intarweb (or a LAN, but that's rather pointless).
- ClientB connects to MainServer through teh intarweb.
- MainServer says to ClientA: 'ClientB did teh connectz0r! You can now C him!!!!!!!11'.
- ClientA says to MainServer: 'I wanna do teh palay with teh ClientB!!!!11'.
- MainServer sets up a game, asks ClientB to join, checks if the amount of players are met for a particular game, and then starts the game, acting as the server for that particular game.

So, basically, the main difference between this and a 'normal' client+server approach is that, normally, you'll have one server acting as a server for many small games, as opposed to one large one (as would be the case with, say, an MMORPG).

If you've ever played Battle.Net, you know what I'm talking about...

Edit: Oh yeah, and if you're trying to start a game over the internet, and it isn't working, I'm willing to bet 50 bucks that the problem is a router (if you happen to be behind one). Go to No-IP, register for an account, give it your computer's IP address, and type in a DNS host address that you'd like to use. Then feed this host address to your client, and it (should) work. You should also open up all the ports in your router that you might be using for your server. As a matter of fact, I suggest you might as well open up all the ports in the damn router while you're at it, so you won't run into that problem again.

-=-=-
Afr0 Games

Project Dollhouse on Github - Please fork!