MMO with B3D

Miscellaneous Forums/General Discussion/MMO with B3D

..okay...I know there are other tools out there, so i would like to skip that part if possible guys..i simply wanna know your real thoughts based on facts, is it possible to make MMO with B3D, on any way, some external libs for networking or whatever..but as i say, B3D... whats your thoughts?

Didn't they do it with Realm Crafter initially? So yes it's possible. I think they switched in the end but I'm not sure why.

http://freeworldonline.com/ was written in B3D, it vanished for a while and is back now - I dont know if it's still B3D.

The problem isnt the tools, it's making all of the media. From a programming point of view doing portalised data comms is not difficult and MMO gameplay is typically much simpler than more complex single player games. It's not something a newbie is going to pick up and run with on the first go, but Blitz is fully capable of delivering an MMO.

Out of choice I would personally use BMax for the server side, as running the game server on linux boxes is substantially cheaper - look at dedi server rentals and you'll find linux servers are around 60% of the price.

The other alternative is to build your own, which is what I do. Building it into the same case that your host uses should get you prices of around £60 a month, which is a bit cheaper than renting but the downside is maintenance in case of failure.

Most importantly though, is the issue of making all of the media. This is what kills very nearly every indi MMO ever attempted. MMO's need a LOT of media. A single player game has 1 main character, an MMO - well you need variety, people need individually identifyable avatars... You need dozens and dozens of combinations, if not hundreds. It's a lot of work.

I think MMO's are a pretty big waste of time. If you look at the landscape your probability of succeeding with one is lower than any other genre. I mean the only really big success stories were Ultima Online, EverQuest, and World of Warcraft. There were a few other ho-hum MMO's but even if you add them in there you might be talking 20 games total. At one point there were thousands of these things in development. I guess I'm thinking of MMORPG's though primarily. You'd probably have better luck with an MMO space ship game like Subspace. I'm sure you could do that in Blitz easily.

This guy has been making one for 4 years so far, and still looks like he has a long way to go:

http://www.blitzbasic.com/Community/posts.php?topic=80924

what would be the best(faster) lib for B3D, if you want to build MMO with it??

Already professional MMOs are going down due to the pressure they face from the top ones. Why should someone play yours?

and why is it so hard to try to answer question i asked without flaming me for something I never even mentioned(that im building one)??

Possible? Absolutely. Practical? No.

Specific issues that make B3D unsuitable:
1) No Object Orientation. Software is going to take longer to write, and be more costly to maintain. This is particularly important for a large complex game like an MMO.
2) No Multithreading. Since Blitz3D only runs in a single thread, there is going to be a natural limit to how many people you can support simultaneously, severely challenging the possibility of delivering on the "Massive" part of the acronym.
3) If you're going to have to find all sorts of workarounds for some of the limitations imposed by Blitz3D, you might as well pick a language that doesn't have those to begin with. Writing an MMO is going to be enough of a challenge as it is.

From a programming point of view doing portalised data comms is not difficult and MMO gameplay is typically much simpler than more complex single player games.
I think your appraisal of the complexity of writing an MMO, and your somewhat naive idea of how they work, is an inaccurate representation of facts. No doing "portalized data comms" [sic] isn't particularly difficult. For an MMO though, it's also insufficient.

I mean the only really big success stories were Ultima Online, EverQuest, and World of Warcraft.
You are embarrassingly misinformed.

Even indie games like "A Tale In The Desert" and "Yohoho Puzzle Pirates" get between 2.000 and 30.000 active subscriptions a month.

There were a few other ho-hum MMO's but even if you add them in there you might be talking 20 games total.
Sure. If you're only counting games that start with A, B and C.

Already professional MMOs are going down due to the pressure they face from the top ones.
It's not a matter of size, it's a matter of income vs. spending. I mean if Andrew Tepper could run A Tale In The Desert in his spare time, and subsequently build a successful company around the game, why shouldn't anyone else be able to do the same? I mean if you've got a couple of thousand people paying 14 bucks a month, you could probably live rather comfortably off that income.

Why should someone play yours?
Because it's not WOW?

I think Blitz is perfectly capable of doing something where you could run your own persistent server and have 8 - 10 of your friends join up. Could be fun!

..so far as i can see from posts above, limitation came from server side (if done with B3D)..assuming that server side is done in some other capable language for such task, and client remain B3D, MMO regarding 'massive' part of given game type, should not be a problem??

Also look at using something like raknet for the network code as it works on its own threads away from blitz, so won't clog up your client side.

B3Ds biggest limitation, in terms of client side is surface and bone count. If you have 20 bones for your character, what happens when 20 players go killing a hive of 30 monsters, thats 1000 bones that blitz has to keep track of, which will probably kill blitz.

A city with 100 people on screen = 2000 bones.

Unless you use MD2, but then you have more problems in terms of equipment attachment...etc.


You are embarrassingly misinformed.



The way I see it Ultima Online lead off, Everquest took it up a notch, and World of Warcraft finished it. Lineage is the only game I feel misinformed on. I hadn't previously heard of its success.


Sure. If you're only counting games that start with A, B and C.



Your list there consists of 12 MMORPG's and some of them are ho-hum so don't get too high and mighty there FlameChicklette.

I would agree with the animation aspect. I think your graphics will probably limit you to how many players, far before the server side does, unless you use MD2's or animated non boned formats. That and media creation will be a toughy, unless you can do some smart procedural stuff, and stuff with pre-fabs, like oblivion.

You are embarrassingly misinformed.
Maybe he is, but you can't say Ultima Online was not an awesome feat.

@Naughty
Nitpicking? I didn't feel that i was flaming, i just exposed my opinion on building a MMO from an Indie's perspective. If you ask such questions without some further thoughts, then well...

There might be a few who can make money with it but line them up against those who can't. Beside of that MMOs are boring. There you have it! :O)

I think your appraisal of the complexity of writing an MMO, and your somewhat naive idea of how they work, is an inaccurate representation of facts. No doing "portalized data comms" [sic] isn't particularly difficult. For an MMO though, it's also insufficient.

Given i've worked on a hugely successful system that draws some parallels to MMO's and has a player base of 30k, given that i'm a network programming specialist, given that my post was hardly in depth, given that I have a commercial MMO game on my day job development schedule starting mid-next year - I think it's a little unfair to label me naive my friend, based upon 1 paragraph :)

I did mention already B3D would not be my tool of choice for an MMO, although i'd be perfectly happy to use BMax. B3D can do it if you're happy with the graphics.

Multi-core isn't necessary at all, although BMax does support it. Clients dont need to run all the players in the game and servers are typically more hampered by bandwidth than CPU.

For instance, in my coming project I intend to build a cluster of servers, theoretically I could build numerous clusters, each cluster driving 'unlimited' data-zones in terms of CPU handling, the limit is the network capacity on the rack. They speak to a SQL staging server, which in turn goes off to a server farm for the database that the DB gurus deal with (not my forte). Despite all this CPU power, the bottleneck is the switch on each cluster.

So please, a little more credit. I don't say much around here, and sure I do ask stupid newbie questions often i'm scatty and forget the basics of Blitz, my day job doesnt involve Blitz. I program in Blitz for myself when I get the chance and I forget and I dont keep my ear close to the ground.

When I do say something though, and when i'm not taking the mick, I generally know what i'm talking about :P

Maybe he is, but you can't say Ultima Online was not an awesome feat.
Sure I can. Particularly if you fail to mention the first commercially successful MMORPG ever. It would be kind of like pretending that DOOM didn't exist when listing the most genre defining FPS games. Ultima Online and EverQuest added nothing to the table. Well EverQuest added level grinding and the infamous "Hell Levels" but most people generally agree that was a bad idea.

Given i've worked on a hugely successful system that draws some parallels to MMO's and has a player base of 30k,
The total player base is insignificant. What is important is number of consecutive players in a single persistent instance of a game world. You would have impressed me more if you had said you'd worked on an enterprise level document indexing and versioning system, used by thousands of people every day, which IMHO has lots more in common with most (and certainly most mainstream) MMOs, which is why, as you correctly pointed out, most of them feel like playing Microsoft Excel.

Multi-core isn't necessary at all, although BMax does support it.
Yes it is, and no it doesn't.

Clients dont need to run all the players in the game
They need to run the ones that are "in-sight" tho', which as boomboom demonstrated could be rather significant for even relatively benign encounters (never mind 60 people raids, or Age of Conan type PVP battles).

the limit is the network capacity on the rack.
Really? What possible amount of data are you using that sends more than 6GB of data between blades and 1 GB (per link) data each second to the SAN? I think you need to rethink your data model. CPU power will always be more important, because as amount of data (and thus utilized link bandwidth) increases linearly, processing power required increases, in a best case scenario quadruply, a more average scenario polynomially. Thus even on a relatively inexpensive SAN, you will max out your blade server capacity well before your SAN.

Despite all this CPU power, the bottleneck is the switch on each cluster.
Use a faster networking technology.

When I do say something though, and when i'm not taking the mick, I generally know what i'm talking about :P
I didn't mean to insinuate that you didn't. I simply said that I thought your idea of how the data is organized in large MMOs was naive.

A city with 100 people on screen = 2000 bones.
Yes indeed.. this brings back memories of attacks on Crossroads.. we would hurry there to fight the Alliance and then when we arrived the streets were covered in bones, sometimes even more than 2000. ;) Barrens chat!!

I disagree about Meridian. Although it was the first, Ultima was the mover and shaker. Meridian is like Ralph Baer if Ultima is Nolan Bushnell. Furthermore your Doom analogy is illogical. If anything Ultima Online was the Doom of MMORPG's, not the first but the game that really made the genre popular. Of course popular is such a subjective term.

Meridian was such a pain. Those who were interested in MMORPGs those days (and long before) were playing MUDs anyway.

Anyone remembering Lucasfilm's Habitat ( http://de.youtube.com/watch?v=VVpulhO3jyc ) btw?

Multi-core isn't necessary at all, although BMax does support it.

Yes it is, and no it doesn't.

Regrettably I must inform you that you are factually wrong on both counts. Firstly, I have sucessfully compiled a multi-threaded test application in BlitzMax, as have others. It's on the SVN if you'd care to look, possibly in a distro by now (I havnt looked in a while). Additionally MMO's have been around a lot longer than the multi-core fad, it is not essential to make use of multi-threading technology to write an MMO. Sure, I wont disagree you can do more with more processing power, but it is not a minimum stipulation just because you are writing an MMO. Running 60 odd 3D objects and receiving net data for them is not going to enforce a mandatorry requirement of making your application dual core, which as i've pointed out, you've refuted, and i've now provenanced Blitz Max supports anyway. On this point, you are, i'm sorry to say, utterly incorrect.

Really? What possible amount of data are you using that sends more than 6GB of data between blades and 1 GB (per link) data each second to the SAN? I think you need to rethink your data model. CPU power will always be more important, because as amount of data (and thus utilized link bandwidth) increases linearly, processing power required increases, in a best case scenario quadruply, a more average scenario polynomially. Thus even on a relatively inexpensive SAN, you will max out your blade server capacity well before your SAN.

I think I would need to study the business model more closely, remembering that this is a forum of mostly indi coders and Blitz is aimed at the indi market yes? MMO's do not require a minimum specification of a Blade server. In many models the server applications, or in some smaller business models, application (singular) can sit on any ordinary web server, or more commonly for indi-stuff a standard dedi Windows box. If you take a look around data centres you'll see not just rack mounted units, but also mini-ATX machines and other small form factor computers. You don't instantly need a Cray XPS or IBM's finest just because you're selling your game with an online business model.

Infact for many smaller MMO's it makes more business sense to use smaller machinery so that normal capacity is spread over more than 1 machine, giving you redundancy and fault tolerance in cases of a disaster. Again, you're taking the concept that all MMO's have to be like WoW with billions of players, this isn't the case.

I simply said that I thought your idea of how the data is organized in large MMOs was naive.

From one off-hand comment in a post which wasn't going in-depth at all you have summised an aweful lot. You sir, in my view, have trolled and sought argument on purpose for whatever reason I don't know, I can't explain why you felt need to imply I knew nothing of MMO's from a post which merely stated that you could write an MMO in Blitz - here is an example of somebody who has done it...

However, whilst i'm busy compiling multi-threaded applications in Blitz and planning the MMO i'm writing commercially next year, i'll be the one not thinking twice about someone who thought they knew better and didn't on an internet forum.

Surely not... the Duck is lost for words :O

Depends what you mean by 'MMO'. I really like how http://www.deadfrontier.com/ handles the multiplayers. Players set up servers, there's max 6 players that can play one level at time, but you have a character that lives in the world, thus you can get money, weapons & stuff by playing and then can trade it with others and join other servers using the stuff you have.

Works sweetly me thinks.

Firstly, I have sucessfully compiled a multi-threaded test application in BlitzMax, as have others.
Care to post the sourcecode for that?

It's on the SVN if you'd care to look, possibly in a distro by now (I havnt looked in a while).
I don't care to look because frankly setting up SVN to work with Blitz, considering the amount of usage it gets, doesn't seem cost effective, even if I do get to prove you wrong.

Additionally MMO's have been around a lot longer than the multi-core fad
Yeah. Back then it was a "multiple processor fad" instead.

Running 60 odd 3D objects and receiving net data for them is not going to enforce a mandatorry requirement of making your application dual core
I didn't say it was. But then again I seriously don't consider 60 simultaneous players particularly "massive". If it were then you'd be right, however normally when people are talking about MMOS, they aren't talking about game franchises like Tribes or Battlefield. They're thinking graphical versions of MUDs, with hundreds of simultaneous users. Now back in the day, when this was basically just "The Big Cave Adventure Online", this wasn't a big deal, because computers could cope with executing instructions faster than you could type them in. Today, the server needs to do a whole lot more than just interpret instructions, and send a quick message back to the user telling them it didn't understand what you're trying to do.

remembering that this is a forum of mostly indi coders and Blitz is aimed at the indi market yes?
Just because something is "indie" doesn't mean it has to be half-arsed. There are plenty of top quality indie MMOs like CCP Games' Eve Online, and if you believe for a second that their 60.000 consecutive users in a single universe is run off some discarded Windows box, you're sadly mistaken.

In many models the server applications, or in some smaller business models, application (singular) can sit on any ordinary web server,
This is where your analogy fails. MMOs are nothing like ordinary applications. The amount of data and computations needed for an MMO are several orders of magnitude greater than what most business applications need.

If you take a look around data centres you'll see not just rack mounted units, but also mini-ATX machines and other small form factor computers.
Oh I know. We have 2 ourselves in the datacenter that we use. But they're not running MMO's, they're running ordinary web applications. Our MMO when it was running on a similar system, could handle just about 30 consecutive players, before the game became increasingly unplayable.

You don't instantly need a Cray XPS or IBM's finest just because you're selling your game with an online business model.
Of course not. Especially if you're planning to fail. If you're planing to be even moderately successful (lets say 5000 sales in the first 6 months), you're going to have to scale up real quick, so you might as well start big. That way at least you're sure your software scales up as well as the hardware.

Infact for many smaller MMO's it makes more business sense to use smaller machinery so that normal capacity is spread over more than 1 machine, giving you redundancy and fault tolerance in cases of a disaster.
You mean like a blade server, which apart from full redundancy usually features hot swapping of defective blades? Thank you for reiterating my point. So we agree then that it would be foolish to invest in a lot of regular PCs and have to deal with all sorts of wierd synchronization issues, when a blade server and a SAN is cheaper (long term), has better redundancy, are easier to back-up and scale more elegantly (either up or down)?

Again, you're taking the concept that all MMO's have to be like WoW with billions of players, this isn't the case.
WoW only has about 6000 players in one world (or server or shard or whatever) IIRC. The fact that you don't seem to think that makes a difference, is probably the kind of thing you should keep to yourself and certainly not tell your investors. Or post somewhere they might accidentally stumble across it. Like on the Internet

You sir, in my view, have trolled and sought argument on purpose for whatever reason I don't know,
Your argumentum ad hominem has been duly noted.

I can't explain why you felt need to imply I knew nothing of MMO's
You don't need to explain it. I already explained it several posts ago. To summarize I thought what you were stating was "an inaccurate representation of facts". As it turns out you were just dead wrong, and I no longer need to imply that you don't know what you're talking about, because you've already made that plainly obvious.

However, whilst i'm busy compiling multi-threaded applications in Blitz and planning the MMO i'm writing commercially next year, i'll be the one not thinking twice about someone who thought they knew better and didn't on an internet forum.
Good for you. I'd suggest you throw a little research into your busy schedule though. But there's no reason to take advice from some random bloke off the Internet now is there? I mean not when you already know the one universal truth. Right?

Surely not... the Duck is lost for words :O
Rubbernecker! :o>

Works sweetly me thinks.
Indeed. How do they prevent cheating? Do you know?

Who's in the blue corner because im cheering for them lol

FlameDuck,

You're right Flame - I don't know why I even bothered. I have no experience in anything worthwhile or knowledge which may be brought to the arguement - I concede.

IPete2, sure. That's what I'm doing, haven't you been reading? Did you miss the part where I described my own experiences in the field or the time spent researching and prototyping that ultimately led to us deciding that web applications, was a more lucrative, and ultimately more satisfying endeavor than making an MMOG?

Perhaps you feel you could add something constructive to the conversation? Maybe you should enlighten all of us with your experience with MMOGs (creating, not playing), and point out particular things I'm mistaken about? Who knows, maybe this whole web application thing won't work out and we'll dust off the MMOG idea again, and it would be great for us to incorporate your invaluable insights into our business plan. Even if we don't maybe Naughty Alien or Banshee might be interested to hear what you have to say on the topic.

In either case please try and stay informative and refrain from argumentum ad hominem. Thanks.

Runescape is a popular MMO, and they have about a million members (give or take) they charge monthly. And the game itself is nothing too special (graphics or gameplay) and there's barely any sound.

Furthermore, they made some of the most obvious game design flaws possible to the game (which they are currently trying to recover from) and still people play.

I don't know about the networking capabilities, but you said you would use something else for that anyway. I'm sure its possible (but not easy). I don't have any experience making them, but those are my two cents.

Care to post the sourcecode for that?

No
I don't care to look because frankly setting up SVN to work with Blitz, considering the amount of usage it gets, doesn't seem cost effective, even if I do get to prove you wrong.

I'm not sure how cost-inneficient free software is, and no you wont get to prove me wrong. Here is a link to a stickied post from Mark himself announcing multi-threading support: http://blitzmax.com/Community/posts.php?topic=80344

Now, having providing more than adequate evidence, several times, can you finaly accept that on this point you have been thoroughly pwned.

Thank you.

Yeah. Back then it was a "multiple processor fad" instead.

Er. Multi-processor systems where about as popular as Bill Gates at a Linux convention with a protesting picket line of Apple Mac owners outside. Before dual core systems home users did not massively take up multi-processor systems, their distribution was very light.

I didn't say it was. But then again I seriously don't consider 60 simultaneous players particularly "massive". If it were then you'd be right, however normally when people are talking about MMOS, they aren't talking about game franchises like Tribes or Battlefield. They're thinking graphical versions of MUDs, with hundreds of simultaneous users. Now back in the day, when this was basically just "The Big Cave Adventure Online", this wasn't a big deal, because computers could cope with executing instructions faster than you could type them in. Today, the server needs to do a whole lot more than just interpret instructions, and send a quick message back to the user telling them it didn't understand what you're trying to do.

Your wrong on 3 counts. Firstly you raised the number 60, not me. I could raise the number 500x8 (4000) which is the number of units in the non-MMO game Total Annihilation - which plays fine on single core systems.

Then there's the fact that the client only processes what is local - now in most indi MMO's this will be a lot less than 60, but should the programmer be half competent there is nothing in Blitz that is going to stop an MMO author from supporting several thousand players.

We have full control over the data structure, we can portalise (oh there's that word again), we can use event based packet instancing, we can be cunning about where we route data and we can distribute servers sensibly to provide reactive comms.

Lastly, a well written server application does not need to constantly process a player. It only needs to process a player when it is sending information - in a typical MMO game like Everquest or WoW, this is once every 6 "turn". I'm not sure on WoW, in EQ a "turn" was 6 seconds. WoW I think might be 1 second. Data only needs sending more frequently than this when moving. Aside from newbies, only fools and those more interested in other aspects of game programming process data packets on a timer, an MMO author I would hope isn't that daft.

Just because something is "indie" doesn't mean it has to be half-arsed. There are plenty of top quality indie MMOs like CCP Games' Eve Online, and if you believe for a second that their 60.000 consecutive users in a single universe is run off some discarded Windows box, you're sadly mistaken.

The original post I was replying to was "Can an MMO be written in Blitz". I was answering that post in the context of it being a home driven effort aiming at the smaller end of the market. Somebody at the larger end of the market already knows the answer and wouldn't ask.

As for 60000 players. I see no reason why a Blitz written game couldnt handle 60000 players. You dont handle them all on one machine when you get to that size afterall, at 60000 players you can afford a few machines and can segment your gamespace in some way (i'd normally use the word portalise there, but that seems to set you off).

This is where your analogy fails. MMOs are nothing like ordinary applications. The amount of data and computations needed for an MMO are several orders of magnitude greater than what most business applications need.

I dont recall drawing parallels to Microsoft Office. But you're wrong anyway, Microsoft Office and other business applications are way more resource hungry than an MMO needs to be. Take a single Everquest 'zone' server for example. They used to run 4 instances of the server software per box, with a typical server load of 100 players total into those 4 server instances. At 1 packet per 6 seconds and during movement a peak of about 6 per second, it's hardly putting the machines under stress is it?

Our MMO when it was running on a similar system, could handle just about 30 consecutive players, before the game became increasingly unplayable.

Ahhh no wonder you have strong opinions, you are the author of a badly written MMO.

Of course not. Especially if you're planning to fail. If you're planing to be even moderately successful (lets say 5000 sales in the first 6 months), you're going to have to scale up real quick, so you might as well start big. That way at least you're sure your software scales up as well as the hardware.

You know I sort of agree with you for once, to a point. What you and I would do in a given situation isn't what we're discussing though is it? The MMO I linked ran for quite a long time, I think it is running even now - they seem to do OK, from what I understand that have 1 windows box running the thing. Not all business plans rely on exponential sales - and you know, some hobbyists do just do it for the fun...

You mean like a blade server, which apart from full redundancy usually features hot swapping of defective blades? Thank you for reiterating my point. So we agree then that it would be foolish to invest in a lot of regular PCs and have to deal with all sorts of wierd synchronization issues, when a blade server and a SAN is cheaper (long term), has better redundancy, are easier to back-up and scale more elegantly (either up or down)?

Again it depends on the scale of the project. You seem to have it in your mind that everyone wants to write WoW.

My work currently rent servers, i've no idea what they are, we plan to convert one of our research labs to a datacentre in some years time, for me it's just a "cluster of servers". I do understand big and I do understand your point, but there is more to MMO's than big. You need to see that the word MMO doesnt instantly meen everything has to be done on an industrial scale. There is no reason why somebody working from home can't setup a very cost effective solution costing no more than £60/£120 a month in datacentre costs whilst they get their first few thousand players.

WoW only has about 6000 players in one world (or server or shard or whatever) IIRC. The fact that you don't seem to think that makes a difference, is probably the kind of thing you should keep to yourself and certainly not tell your investors. Or post somewhere they might accidentally stumble across it. Like on the Internet

concurrent players. I dont think much of the WoW model personally, I dont see why end users are segregated by an impassable barrier. I dont see why an online game can only be expanded by duplicating the world rather than making it bigger. Then again, I don't work for Blizzard, if I did, WoW might be a better game. Not that they need me, they're marketting guys have done a damned good job.

I'd suggest you throw a little research into your busy schedule though. But there's no reason to take advice from some random bloke off the Internet now is there? I mean not when you already know the one universal truth. Right?

As i've said, answering the original posters questions, and what I do for a living, are two seperate things. I certainly dont need the advise of somebody who couldnt get 30 players running on a single server though, the last game I worked with is already handling 150 on a single machine and it's only at quarter capacity.

Maybe if your next idea fails as badly as the MMO and you want to return to it - you might want to consider hiring me. I'll want £80k per annum with flexible working conditions as I spend some of the year abroad.

...but that seems to set you off...

I think you'll find that simply typing is enough for that ;-)

Oh, and for the record, Mr Duck isn't allowed to have any ideas... it's in his contract. :-p

I think you'll find that simply typing is enough for that ;-)

lolz, I noticed. I just read through my reply and how long it is, I feel i've been drawn into a forum debate that's not worth having.

I'll be glad to continue discussing with Flameduck via email if he wishes, provided we move beyond the flaming and discuss MMO techniques etc, and of course, that he finaly admits defeat that Blitz has multi-threading.

I don't see how flameduck continueally gets away with posting like this (and he used to swear more), Even if you don't consider it flaming, it could be classed as trolling.

Other people have been baned for less.

I actually enjoy these debates, please don't take it to email. There's a lot to be learned from a good debate you know? It seems harsh but in a sense it's the highest form of learning.

I actually enjoy these debates, please don't take it to email.

Hm, well, i've learned before never to say i'm leaving or wont say anything - it's all to easy to be drawn back into a discussion when an invalid point is left unchallenged. The problem then is that is the path to Godwin's Law.

Fundamentally the problem here has been lost in the details. Flameduck is arguing from the stand point of all MMO projects must be big - if that was true, then all FPS games must be made by EA, and indie coders should stick to puzzle games. The details however, are about theoretical concepts based upon two different perspectives: One, the fixed experience of a single failed attempt; Two, the view that there is more than 1 way to solve every problem.

Whilst discussing these details from my perspective the points I raise will never fit into Flameducks view of what an MMO is, because he's tried making one and stuff I say may not apply to his game design.

It's a problem of fixed perspective, and nothing I say will make any odds. Even proof that BlitzMax has multi-threading was rejected first time around, and likely will again. There is little useful information 3rd parties can glean from such a debate.

Hmm, well I don't assume either one of you is wrong or right. Each of you has a solution to a problem I don't know much about so it's been interesting.

that and there havnt been any new xylvian threads lately ;)

here is A MMO i devlopment using only blitz3d and blizpluss for the server. and its having no problem with TCPIP yet. ! even if player are faraway with mobile 3g modems blitz handle it with care.


http://www.blitzbasic.com/logs/userlog.php?log=1540&user=6736


Client
http://server.tiberion.com/client.zip

Username and password to login
name: guest
password: guest

Registration still closed so one have to use guest account...

..is it correct to say that PureBasic is capable to be used for server side, speed wise? Or Bmax will do better as some of you suggested already??

BASIC for a server??? Good grief!

well..tht was question since I see some folks talking about BlitzPlus for serverside..sooo

I guess Pure Basic could run a server app, i'd think you are better off writing your server in the same language as the client though - this allows you to share rellevent source files and will reduce workload. Ultimately whether a language is 'fast' enough depends entirely on how fast the processor core the server applet runs on, how many players need to connect to the server applet, and how much processing your server side application needs to do per player.

If you are looking to scale up your MMO in the future you will likely have multiple server applets. One scenario might be

Global Chat Server (for handling long range /tell or /wispers)
<n> Global Voice Servers (for handling direct or group voice calls)
Login & Account Handling Server
<n> Servers Running a World Region
<n> Servers Running World Region Voice Chat
<n> SQL Servers (character and persistent state world storage & web site interaction)
Inventory Server
Probably a few more things besides, game design dependent.

Now all server applets can run on one machine, or as bandwidth and cpu requirements are reached you can break some off onto other machines. By using multiple applications, all communicating with each other and handing players over as needed, the language of choice becomes somewhat irrelevent as if a language is too slow, you just slap a faster CPU in or move some applets off to another machine when your player base allows you.

Also, as a point of reference to the multi-core/multi-threading debate. By using this model you can also see how a language doesnt need multi-threading on the server side, as the multiple applications will run on difference cores with the OS moving things between cores dependent upon load. External bandwidth from the I/O bus then becomes the limiting factor as to how much you can do with 1 machine.

I'm not sure how cost-inneficient free software is, and no you wont get to prove me wrong.
I was thinking in terms of man hours I would have to spend getting it up and running, compared to working on my actual project.

Now, having providing more than adequate evidence, several times, can you finaly accept that on this point you have been thoroughly pwned.
I will concede you're right that an unstable release of BlitzMAX has experimental support for multithreading. I'll take Marks word for it.

Multi-processor systems where about as popular as Bill Gates at a Linux convention with a protesting picket line of Apple Mac owners outside.
I had one. Go figure. But I wasn't talking about what systems home owners have. Still to this day, a large percentage of end users are using single core CPUs.

Then there's the fact that the client only processes what is local
I think I see where the misunderstanding is. I was never talking about the client. I would argue that which system an end-user is going to eventually play a PC game on is out of the hands of the developers, and needless to say doesn't need to scale as elegantly, or as quickly as the server architecture. So in my world the client machine isn't really part of the equation, since:

1) There really isn't much you can do about it.
2) If the server is thrashing, it doesn't matter what client machine you're running, the game is going to grind to a halt.

Lastly, a well written server application does not need to constantly process a player.
Well that certainly depends on what kind of game you're working on. Sure if it's basically IRC with graphics, no problems there, you could get away with what is essentially Meridian 59. If you want something a little fresher, like say the ill-fated Planet Side, Auto Assault or even Tabula Rasa, you're going to have to be processing players every turn, regardless of whether they're idling or not, because the actions of one of the active players could have consequences on their situation, and besides they're part of the physics simulation.

You dont handle them all on one machine when you get to that size afterall
But you'll be wanting a language that encourages that, so you can use in-memory references, rather than having to bog your "servers" down with redundant (and possibly unsynchronized) information and bog your network down with data exchange that might as well occur on the blade servers backpane.

But you're wrong anyway, Microsoft Office and other business applications are way more resource hungry than an MMO needs to be.
That's just absurd. Well maybe Microsoft Office, but in that case Microsoft Office is way more resource hungry than Office applications need to be.

They used to run 4 instances of the server software per box, with a typical server load of 100 players total into those 4 server instances.
Hrm. Lets see, that would be about 2000, right? That would be about the time I used to work at an educational institution. At the time we ran 150 thin clients, doing office applications, off a single NT4 terminal services server. Now I don't know which "box" SOE was running EverQuest off, but this wasn't, at the time, even close to cutting edge, and probably downright embarrassing by today's standards. They're still using it last I heard, mainly because they couldn't afford to upgrade it so that it would be usable with Windows 2003, or for that matter, afford the prohibitive cost of the new license. Compare that to your numbers for EverQuest. I maintain that an MMO, providing it's a little more than a glorified 3D chatroom, requires quite a bit more than practically any business application you care to compare it too, for the same amount of consecutive users.

Ahhh no wonder you have strong opinions, you are the author of a badly written MMO.
Sure. It was just a prototype, not much work had gotten into optimizing it at that stage, and we figured that with optimized code, and a half decent blade, we could probably get a best case scenario, 400 simultaneous clients going. But maybe the game was more complex than you're assuming?

You seem to have it in your mind that everyone wants to write WoW.
You seem to have it in your mind, that I seem to have it in my mind that everyone wants to write WoW. I don't know where you got that absurd notion from, since I explicitly said in my very first post in this thread that in my opinion, the main reason someone would want to play an MMO made in BlitzWhatever was Because it's not WOW! Why that would make you assume I was talking about making WoW in Blitz3D I have no idea.

Besides you don't even need to be as big as WoW to need enterprise level hardware. Enterprise comes in many shapes and sizes, from small business to government monolith. It's a matter of scalability more than anything else, and you want to be able to scale real fast if the need arises, and what faster way to scale than throwing in a new blade for some extra processing power?

Not all business plans rely on exponential sales
Well if your business plan relies on anything but the demonstrated bell-curve/S-curve sales curve, you are going to fail. Hard.

There is no reason why somebody working from home can't setup a very cost effective solution costing no more than £60/£120 a month in datacentre costs whilst they get their first few thousand players.
Except if those (I'm assuming virtual at that price) servers don't have the capacity for supporting thousands of players. When I'm talking about cost effectiveness, I'm not talking about the cheapest solution on an operational level. I'm talking the cheapest solution on a strategic level, as a function of the number of players over time. Granted for a number of players 'n', a virtual host might be a perfectly acceptable solution, the size of 'n' depending largely on the complexity of your game. But you need to figure out at which value of 'n' your virtual hosting becomes more expensive per player than a proper enterprise solution, and it might not be as large as you think. You can get an entry-level for £4000 and an entry-level SAN for as little as £1000.

In either case, if you want success in the MMO business your MMO has to offer something fresh, you cannot hope to compete with WoW/WAR/AoC. You need to carve out your own niche like Eve Online, Second Life or YoHoHo Puzzle Pirates. Simply making yet another fantasy MMO is not going to get you the market penetration you're going to need to survive.

I dont think much of the WoW model personally, I dont see why end users are segregated by an impassable barrier.
Neither do I, which is why I think Eve Online is a more useful example:

1) It's an indy game (although originally published by Simon & Schuster).
2) There is only one world. None of those artificial barriers that plague other games.
3) It's not a Tolkienesque medieval fantasy game.
4) Their server architecture puts WoW to shame!
4a) They can handle more than an order of magnitude more simultaneous players.
4b) They can hot-patch their game (server-side, client-side updates still require going off-line).

So if you were to make a successful indie MMO, it'd be a good place to get a few pointers, particularly if you're aiming high.

Maybe if your next idea fails as badly as the MMO and you want to return to it - you might want to consider hiring me.
The MMO didn't exactly fail, as the project never quite took off in the first place. Before throwing that kind of money at a project you need to be fairly convinced you're going to see a return on your investment. We decided that web applications were the safer bet. So far it seems we were right.

I'll want £80k per annum with flexible working conditions as I spend some of the year abroad.
You'd be willing to relocate to Denmark? Got a CV? Know Python? How about 40?

Oh, and for the record, Mr Duck isn't allowed to have any ideas... it's in his contract. :-p
Oh I'm allowed to have ideas, I'm just not allowed to capitalize on them. But that contract is out of the picture come January, if not sooner.

I don't see how flameduck continueally gets away with posting like this
Because he doesn't constantly whine and moan about all the other users on the forums? Maybe because he's one of those live-and-let-live people who (contrary to popular belief) don't really get that wound up about what people post on the Internet? Because despite how bad you might this exchange reads he doesn't really have an axe to grind with Banshee. Hell even back when he was almost constantly at odds with Antony, Casey, Jeremy Alessi, RedOktober, Amon and MadJack (apologies to anyone forgotten) he's never questioned the right of anyone else to post on these forums (although maybe their sexuality), and he's never really felt angry at them (for long). Hell even people who publicly endorse anabolic steroid abuse in their signatures (something I find far more offensive than occasionally using one of George Carlin's Seven Words You Can Never Say on Television), won't be on the receiving end of a stern mail from Simon if he has anything to say about it (which he doesn't).

Other people have been baned for less.
I doubt that's objectively true.

Flameduck is arguing from the stand point of all MMO projects must be big
You're half right. It's your point of view that I'm arguing from a position that all MMO projects must be big.

This is true to the fact that if your game isn't big, your game is not, by definition a Massively Multiplayer Online Game if it doesn't support thousands of players. It's simply a Multiplayer Online Game.

It's untrue however to the point where you're saying that Big absolutely has to be World Of Warcraft, particularly since I started by mentioning games like "A Tale In The Desert" and "YoHoHo Puzzle Pirates" as examples of what I thought was doable, and specifically excluded "World Of Warcraft".

Anyway, I had lots more to say, but I'm gonna call it a night, as this post is already rediculously long, and it's getting late. I'll catch up with all of you tomorrow.

OK, on the basis we're having interesting discussion, let's persevere.

you're going to have to be processing players every turn, regardless of whether they're idling or not, because the actions of one of the active players could have consequences on their situation, and besides they're part of the physics simulation.

I can see some game designs where realtime processing of a player is necessary - for instance, if the game features non-instant projectile weaponry you would process a players movement when there is a projectile in the region by setting their time delta to realtime. Most MMO's only require movement to be processed when data is sent though - and that was my point - you can use the timing of the packets as a delta, rather than calculate things every cycle. Certainly gameplay design has a huge impact on what you need to calculate and how often, but fundamentally the server side does not need to do as much of the CPU intensive work as the client does in most game designs.

Whether it is necessary to independently delta'ise each player, and whether it is possible, is down to the specifics of the game design - but if you cant scale down this way there are other optimisation tricks, my point being, the server doesnt necessarily have more work to do than the client even though it's handling more players.

you can use in-memory references

Hmm, personally i've never thought about reading and writing directly to the memory space of another applet within the server pool, it's an interesting approach - but I think then you would be forced to keep certain server applets on the same physical machine and i'd rather have the flexibility of being able to move them to a different box later, to allow for true scaleability, so using a socket for inter-applet communication would be prefferable. In most scenarios the data moving between applets isnt necessarily that massive anyway, the worst one in most cases is going to be global direct text chat between users in world, your global chat hand-over server needs to be accessible from all region servers anyway, so I can't see the advantage of this technique. Could you throw some scenarios out where it may be useful?

requires quite a bit more than practically any business application you care to compare it too, for the same amount of consecutive users.

Well I dont know why you brought the analogy of business software users up in the first instance, we may have had cross wires. Server side i'd agree, client side - well... if we're comparing to MS Office...

But maybe the game was more complex than you're assuming?

I've no assumptions, but struggling to get 30 players onto 1 server when I did a multiplayer game in the past that could run those player numbers over a 9.6k baud mobile phone modem did strike me as somewhat of a poor example of an MMO's server requirements. I wondered if your game design was ideally suited to an MMO - but I think you have realised some short comings of your project already yourself, why you chose to use it as an example to substantiate your point of view i'm not sure.

Except if those (I'm assuming virtual at that price)

No, putting your own box in a data centre with sufficient monthly bandwidth to run a popular online game costs from around £60. Ask me how I know :P. I said £60/£120 for a 1-2 machine approach for the hobbyist, putting your own in giving you two machines for that kinda money, renting one giving you 1 machine (a dedi Windows host is roughly £100 a month rental, Linux is less). This is why I earlier mentioned non rack mounted machines, if you build a machine to the same case your host uses they often stack mini-ATX's on their side, this allows them to get 6 machines into a 19" 4U rack space, reducing costs substantially. The figures are well within reach of a committed hobbyist, or a small group of contributors.

So if you were to make a successful indie MMO, it'd be a good place to get a few pointers, particularly if you're aiming high.

No doubt Eve is an impressive technical achievement. We'll leave gameplay discussions aside, i've not had much of a go of it but it looked a bit, well, borked... And plagued by Chinese farming bots from what I gather. That aside they've certainly pulled off some very impressive feets. I dont think it's necessary for an indi project to equal what they've done, but I certainly wouldnt hold it against you for using their model as a basis to work from.

You'd be willing to relocate to Denmark? Got a CV? Know Python? How about 40?

Hmmmm, possibly.
Not atm, I have a well paid job with excellent prospects.
No, but I know a lot of languages and new ones dont take long to master now.
Sorry but No. I even capitalised the N.

If I lose my job before xmas though i'll let you know ;P