Monday, February 11, 2008

Project Overview

Time for a quick overview of what the project will need:

1) Database server: I think MYSQL will work great for this project, quick to implement, fast, open standard, lots of interfaces, php support, cfm support, xml support and FREE!!! I am setting it up in the background on one of my servers for this project and will have it up and online shortly.

2) Web server: Obviously we need a site, artwork as well as the backend scripting support for the site. I think the user forums, user creation, etc can be setup using php on apache/windows. I have servers with both. I am thinking during this development time, I am going to implement this on the same server running the DB.

3) Database schema: We need to start to lay out what our game will need as persistent objects in the game world as well as what we need to maintain about the character states, login info, etc.

4) Artwork, Music, Voice Overs: The assessment flow has to be determined. 3dsmax to panda, x to panda, blender to panda, gimp, phototshop, etc. Music, voice overs, etc. I want to use as much free open source software for this project so that more people can participate so I am obviously leaning towards a work flow that is conducive to that.

5) Game Style and mechanics: UI, physics, etc. Would be great if we could allow for skinning, ui customizations, original story line, etc.

6) GMs and Quest makers: Need to create the tools to allow users to create content on servers.

7) Game Server: Responsible for connecting the client to all other services on the backend as well as managing the list of publicly attached servers.

8) Game Server toolset: Tools to govern the game server: Seeing who is on, booting people. I am thinking of implementing this in the client like WOW so GMS can login to the game world and admin it. I still think that maybe there should be a GOD tool so we could admin the servers from 'above'

9) I would like to be able to provide a server so others can download and host servers on their own but link them back to a public list so clients could browse within the software to a global list of servers. Each server could have its own maps, game play, etc.

Theres alot of work, please message me if you are interested in helping out on any of these pieces. I am going to start up an irc server so we can begin talking about these items but for now, email me and I'll start up a list of contributors.

5 comments:

Anonymous said...

Glad to see you back.

Do you have any concerns about the speed of Panda3d?

It's interpreted not compiled, right?

Also, do you intend to have exterior terrain areas in you MMORPG or just interiors and faux exteriors a la NWN2?

Antonio Sosa said...

Python is interepted but also can be compiled into bytecode so it does not go thru the compile type when they run the game. This actually speeds up the time cause the developer 'bakes' the code and the user just eats it :)

Anyway I did a test with Crystal Space, Ogre and several other C++ engines. True they launched quicker but once in the game running even 500 objects with collision detection and texture mapping, etc. Python does require a footprint although. It takes about 20 mb for the runtime. But that is not so bad when, you think even if you went and did a game in C# or VB.NET the program would also need to load up the NET framework which could take as much as 125 mb from the OS.

I personally think by 'backing' the python into its byte code and distrusting it with the media and using something like UPX to build a single binary, you will not only protect the code from being altered at the user level, you get a performance increase because it does not need to be compiled at runtime and you can have the benefits of the easier rapid prototyping of python. Besides lots of game companies currently use Python in their production games : EA Games, Activision, etc. It can be used with some amazing results. Plus I want people to get involved. I don't think I can do this project all by myself and python and panda are very easy to get and start working without having to setup an elaborate development environment. Let me know your thoughts.

Antonio Sosa said...

Oh your second comment - I want to include terrains as well as indoor. Plus I want to expand the game mechanics. I want game play like World of Warcraft but not just on land, in space, etc. I think its' important the game engine be flexible to allow for creation of game play not just on land. But terrain and indoor gameplay will be on the top of the list when I start coding --- we all must start somewhere. :)

Antonio Sosa said...

Oh its also noteworthy to say that panda3d is not really python. Its a C++ library which you can control with python. So the actual core engine is a set of C++ libraries which provide the functionality for: 2d, 3d, animation, sound, physics, networking and disk i/o. You can choose to actually do everything in c++ but I want to leverage the library's ability to be controlled thru python.

Anonymous said...

Good dispatch and this post helped me alot in my college assignement. Thank you as your information.