Idea: MMOG in Blitz with php and sql

Blitz3D Forums/Blitz3D Programming/Idea: MMOG in Blitz with php and sql

Braincell(Posted 2004) [#1]
MMOG stands for Massively Multiplayer Online Game.

I've just had an idea and i thought it might be nice to share it with people and see what you think.

I used to play an online game called Imperial Conflict which has thousands of players online competeing in galaxies. Each game lasts about 3 months, and it's a browser text based game. WAS extremely fun to play. You build your empire very slowly during the course of the month and a lot depends on how often you connect to the game and how you cooperate with others. The concept of this was great but the graphics were simply non-existant. It was a bunch of lists with a few pictures, boxes and buttons. It uses php and an sql database. Each hour the game is updated so its 1 turn per hour, and theres a lot to do during 1 hour sometimes especially in time of war.

Since its possible to communicete and read HTML in blitz, it might be a good idea to create a game that clients download and simply use as a "browser" to play this online game with a lot of 3d graphics. The server can be any php server making it very popular, so you can sell the server php code to others which can spread it and make their own rules and stuff. It's practical, and i believe would be very popular. Just an idea i had in case someone wants to make a turn-based online game with a huge amount of players. It can even be done for smaller simple games that last a few weeks, such as having 3 resources, 3 units, 100 planets to conquer and nothing else type of game.

Or does something like that exist already? Maybe EVE online is similar but not so much turn based?

[edit: the game link i mentioned is http://www.imperialconflict.com/ ]


Kanati(Posted 2004) [#2]
I've occasionally thought of making a tradewars-type game as you describe. But never got up the energy to actually start prototyping.

Sounds good though.


Techlord(Posted 2004) [#3]
I've played a similar turn-based online RTS game called Thardferr. Its 100% text with only a few graphics to brighten up the website. There are several other similar web-based games.

There is plenty of room in Blitz3D to craft a turn-based mmog or mmorpg as you propose. I'm not sure why these type of games dont have graphics...maybe its due to their lengthy turn duration.

Perhaps graphics could be rendered with the generation of a series of still frame images in a storyboard depiction of many events. Better yet a cinamatic scene can be generated and rendered from event data. In either case, the imagery would be post-generated not real-time.

We could easily use Blitz3D for client interface. However I would propose to use Blitz as the game server and image generation and allow standard web browsers provide user interface to the game.

This approach would allow us to focus on game play design and let web browser handle the user interface. Using common web-based formats for images and movies would make the game virtually cross platform only dependent on the web browser.

I can see a great deal of potential for the concept. I can also see various genres using the turn-based approach.


Elgen(Posted 2004) [#4]
Im currently working on a game like this, only its 100% based on UDP in blitz, no html...

http://www.planetdomination.net


Strider Centaur(Posted 2004) [#5]
Yea, if you use Blitz as the client, don't see what value HTML will bring. You could code a much more flexable scripiting language for graphics that could support things like Verctor drawing using circles, squares, lines, etc. and of course directly manipulate 3D entities. HTML is a very poor langauge for anything really graphical.

Id say just use PHP on the server to make and load pure text files( not HTML) and have your client translate that data. Now if you want, you could easily use HTML to handle making a connectionless connection(?) so that you dont need to code any real server side networking code. But I would still avoid HTML for the actual data. If you want a strong data format that is web friendly( and there is no reason for the client to be web friendly ) then look into XML.

I did something like this back in the 80s for BBS, natuarally no HTML existed then. It was called GCP( Graphics Control Protocal ) and would allow 2D animation and drawing, you could even define mouse regions( as entered, clicked, or clickedAt ) so you could make buttons, and what not. The format was something like:
~[command_name|Value1|Value2|....]

so a circle that used X,Y,Radius was:
~[circle|100|100|20]

For bitmaps I has load, download and all the standard manipulations available. Needless to say with 9600bps being the fastest thing in town at the time, download was not the most prefered, but I did use YModem protocol to handle them. Example:

~[downloadBmap:filename] ; sent a file to the client called filename( would only accept .gif extensions )

~[putBmap|BmapName:X:Y]


The main goal and the best part I like about GCP is everything was human readable, so you could in theory code an entire document by hand to make menus and what not that looked like something from a local app. Now mind you that was all before HTML. There were other protocols at the time that did graphics, but mine was the first that I know of that supported direct manipulation and scripting of bitmap activities. It died, mainly because in the early 90s some idiot had to go and invent HTML, which is far superior to what I had in a global distributed data sense. It got shot in the head a second time when some other nut jobs had to go and make Flash... Man I could have been like, really well known and poor had I just been a little faster on the ball. LOL


Braincell(Posted 2004) [#6]
ea, if you use Blitz as the client, don't see what value HTML will bring.


It will bring the ability of people easily installing servers on their websites such as by having a simple account at Brinkster or whatever. If you allow minor rule changes to the game itself by the server admin, you make the possibility of having different flavours of games. However, you are right to conclude this being a MASSIVELY m.o.g it might not be so wise to have too many servers. Maybe the html solution would be better for smaller games with about 80 players max so that groups of people can launch a server as easily as a website. Not many people know how to configure a server properly for any game.

Id say just use PHP on the server to make and load pure text files( not HTML)


Clever. Its what i'd come up with if i had given the idea more than 78.4 seconds of consideration.

As for GCP, lucky we got Blitz now ey? I'm sure you'll prove yourself here quite well :)


Techlord(Posted 2004) [#7]
Lenn,

Are you interested in developing this as a Community Project?


Braincell(Posted 2004) [#8]
Not really Frank, it was just an idea. At least not now, maybe in several months or so. Why, i thought you were into Plasma?


Techlord(Posted 2004) [#9]
Lenn,

I'm a code monkey involved in several projects. I would like to see Community Projects for all types of games, applications, code libraries, and media packs.


jtfrench(Posted 2008) [#10]
Btw — I'm actually coding a project using this very same concept. It's something I've been thinking about for a few years now, and starting this past summer I rolled up my sleeves and started doing it.

Background:

I ran a moderately-popular (16,000+ players) web-based (HTML-only) online game called Fantasy Hip Hop (fantasyhiphop.com). Think Fantasy Baseball or Fantasy Football, but you manage a record label instead of a sports team.

Next month I'm releasing my latest reincarnation of the game — Fantasy Hip Hop RPG. I can make use of the 10,000+ lines of PHP server / game logic code that I have, and focus on writing a whole new visual interface for interacting with and triggering those same PHP functions. It's been an *amazing* experience, as it has opened the door to so many creative possibilities for making an indy MMORPG feasible (I'm living testament to that — personally writing every line of code myself ).

Throughout this development process I've found ways to make networked games fast on the client, and simple to develop on the server. Plus, I can update my game engine from my iPhone — since all my tools are web-based and just make changes to MySQL tables.

If anyone wants to talk more about this (I know this is an old thread) just give a holler.

-Jason


Kryzon(Posted 2008) [#11]
I'm pretty sure everyone that posted here 4 years ago are dead of old age.


Wings(Posted 2008) [#12]
Code it in Java.. proble msolved.


me myself makes my b3d program output html files to display statistics etc.. and i also made a game that client telneted to server. and server output a bmp image. client used html to make a refresh every 1 second :) it worked even via proxy server :)


Nate the Great(Posted 2008) [#13]
hmmm... it would be fun to have a community project MMOG... I have no idea where to start though...


Kryzon(Posted 2008) [#14]
hmmm... it would be fun to have a community project MMOG... I have no idea where to start though...

It would take so much organization that it'd be rather pointless to try to do it.


Luke111(Posted 2008) [#15]
BlitzPlus has a MMOG Optional code. I dont think u can do much gaming with plus though. I am now moving on to max with 3d and gui.


jtfrench(Posted 2008) [#16]
It would take so much organization that it'd be rather pointless to try to do it.


Organization is possible. If the project was run in such a way that there's at least some form of person with executive decision / vision on the project, then it could very well move forward.

The most common project (IMHO) with community project is the whole too many cooks in the kitchen-type problem. There needs to be someone in charge of the overall vision, and then people appointed to manage subsections of the project. A sense of "ownership" allows for decisions to be made quicker.

I think it'd be an awesome social development experience. I wouldn't mind posting up a suggested roadmap at one point or another to see if there were other's willing to assume the necessary positions.


Mahan(Posted 2008) [#17]

I wouldn't mind posting up a suggested roadmap at one point or another to see if there were other's willing to assume the necessary positions.



You can sure try, but the problem is that there are many persons wanting to be the leader. There are probably fewer people wanting to assume the "code-slave", "3d-modeler-slave", "On-demand-for-free-lore-writer" and "The slavish philharmonic orchestra" positions for this mmorpg :)

The most known (at least to me) open source (community) mmorpg project today is: http://www.planeshift.it/

I guess many in the slave departments would rather join an ongoing project and contribute in the areas they find fun. And they are recruiting people: http://www.planeshift.it/recruitment.html


jtfrench(Posted 2008) [#18]
You can sure try, but the problem is that there are many persons wanting to be the leader.


True, though what I'm saying is that were would be many leaders for their own components/modules. That way their is enough autonomy that people feel that their design is uniquely theirs. The overseeing leader I don't think would be a super-coveted position as it is the least involved in any specific part of the game, and more so just there to keep the individual sub-modules connected to each other.

For example, I don't think there should ever be a position like a code-slave. I feel that if you broke down the entire software design into a large UML diagram (or something like that, not UML persay), you would give sub-trees of the design to individuals (or perhaps 2 people who work together) who then take care of everything.

So really the first step would be agreeing upon an API for the game. This could be one person who throws up an example at first, and then other community members ratify it until we agree upon a feature set. Then after that you can put people in complete charge of their own sub-systems, assuming it adheres to the common API for interacting with the rest of the system. Sub-systems would include:

* Sound Engine
* Level Editor
* Networking Engine
* Rendering engine
* GUI
* etc....

But yeah, I agree there is the problem of people wanting to lead, but from my experience in working on games in groups, the best way is to delegate sub-systems and agree upon the big picture. It's also best if there's someone who's dedicated to integrating and keeping all the sub-systems together and ensuring that people conform to our API to keep the sub-systems talking to each other correctly.

I've seen planeshift and it looks pretty cool. I personally don't find that style of game super-interesting, but I think the effort is pretty awesome. Starting a new project makes way for making new types of games.


Mahan(Posted 2008) [#19]
For example, I don't think there should ever be a position like a code-slave


No I understand that, and it was joke. But my humorous attempt was meant to underline the fact that people in a community project are working for free and thus its up to them to continue or stop working whenever they like.

The leader of an project gets lots of the credit for the project and I think its vital that the leader is widely accepted and that his effort is one of the biggest in the project.

As an example look at Linux and Linus Thorvalds. He started by writing the first version of Linux himself for several months until it was runnable and then he posted that first famous post to the newsgroup. The ball started rolling and today Linux is the largest "unix" to date.

Do you think Linux would have started and got this success if Linus said:

"Hai thar!

I got this awesome idea! We start an OS project with me as a leader and then we build this:

* Unix-like os.
* Multitasking.
* Stable/working filesystem.
* Thread support (future)
* Compiler: GCC (from GNU)
* glibc (from GNU)
* Signals
* Semaphores
* Scheduler
* At least 1 unix-shell to start with.


Well, I need volunteers for the different parts of the system. Email me.

kthxbai."


Likewise in an MMORPG project I think it would be much easier if the leader presented some first working proof-of-concept demo with working clients and servers and a small starter area where people could see a glimpse of the possibilities.

The demo would not have to be very nice graphically and there could be only 2 classes to start with and each class only had 2 abilities each etc. Maybe just 1 tradeskill etc.

If the leader put up the initial effort to make the demo and asked people to join in if they liked it, similarly to Linux, people would not question the leaders role very much because it was "his" project from the beginning in the first place.


Mahan(Posted 2008) [#20]
I forgot this in my last post:

I've seen planeshift and it looks pretty cool. I personally don't find that style of game super-interesting, but I think the effort is pretty awesome.


You know that this is also the essence of another big problem:

Leader: Ok, we build an MMORPG. Who is with me?
dev1: I'm intressted
modeler1: me too.
Sound technician1: and me.
dev2: Oh dev1 is joining so I want in too.
Leader: I want it to be a space MMORPG. Huge intergalactic battles and ...
Sound technician1: Hey! Wait just a minute. I think the MMORPG project should be medieval. I love that kind of music. For me scifi music is boring. I'm out ...
Leader: Ok, seems we need a new Sound technician.
<1 week later>
Leader: ok we got a new one Sound technician2. How are our efforts going on the Bloom-effects?
dev2: Well, I don't find bloom very fun nor relevant at this stage. I've been working with the game-objects->serialization->network->dbconnection persistence lately.
dev1: Well I know a dev3 and he loves Bloom, except he hates space-mmorpg's.
Leader: But I have scheduled to have bloom v0.05 ready before we continue on the "seamless on-demand-loading world" task.
dev2: You don't pay me to do this. I'm fed up. I quit.
dev1: If dev2 is not in anymore i quit aswell.



This example is another reason why the leader should put in a great deal of effort and make a working but minimal demo first before announcing the start of the project: People that would join the project would know a bit more what to expect and if the demo got their fantasy going about improvements it might just be that those people would be more in line with the project in the first place.


jtfrench(Posted 2008) [#21]
True...yeah, I think you might be right with first putting up a stable "seed" which others could build upon. It would provide others an easy way of telling if this is something they would want to join in on, and would avoid a lot of bumbling around in the beginning.

So yeah, the question is, who's gonna drop the seed to the community...that's a lot of work


AJ00200(Posted 2009) [#22]
Look at Travian
(travian.us)


Nike(Posted 2009) [#23]
ok i will try to help if anyone wants to do something like this. I dont know where to start tho.


AJ00200(Posted 2009) [#24]
Maybe I could save some time by mot putting a message and letting my signature finish it off.