Pioneer - MMORPG attempt

Soldato
Joined
6 Sep 2006
Posts
6,294
Location
London
Before you all go laughing and saying that everyone starts off making an MMORPG and they never go anywhere, this is for my final year project so even if the personal desire I have to make a MMORPG I'll actually enjoy isn't enough, if I don't get this done (or atleast make a damn good stab at it) I'll fail my college year so :p

I won't go into too many details at the moment right here, basically a year ago or so I made a post (I think on OCUK) ranting about how current MMORPGs sucked and what I'd make if I had the chance. I decided why not try to make one, at first it started slow, a lot of planning, brain-storming etc went into it, I made an attempt at a Java 3D engine which was getting nowhere quickly until I finally found XNA last May.

Since then I've been off and on developing a rudimentary engine for the game. It's at a stage now where I think it's starting to look pretty decent, the basic framework is all there, a lot of the basics that I wanted to get done before going further are in, quadtree culling, reflective/refractive water, nice streamlined code design, multi-threaded operation and more.

Right now by next big goal is to create a dynamic terrain generator, this will basically create 4km*4km tiles of terrain that the player can navigate through. Each tile will have around 100 people whose job it is to build up a village from very basic startings. I've always had a thing for colonising new worlds, making them your own. Basically this group of people will be put into the world with nothing but some ragged clothes. They'll start with a basic knowledge of creating simple spears and bows and other tools and from there a society will be born. Each village will remain isolated until they've reached a certain point where routes can be created between themselves and the neighbouring villages.

The main goal as you can see is to make sure that a new player is not thrown into a world that has people that've been playing for 2 years already and have all the cool things. Each new player will be put into a virgin land and it will be up to him how it's shaped.

The game will be completely classless featuring simple experience gain in whatever you're doing. My motto for this is "no limits".

If you want to read more head on over to this thread I made last november about the game, it's got a lot more detailed ideas:

http://www.rjcyberware.com/forums/showthread.php?t=156

And here is the youtube video of it so far:

http://www.youtube.com/watch?v=HxqhoXs1Y7s&fmt=18
 
Soldato
OP
Joined
6 Sep 2006
Posts
6,294
Location
London
Pioneer2008-10-3000-42-10-17.jpg


Pioneer2008-10-3000-44-07-75.jpg


Pioneer2008-10-3000-45-08-25.jpg


Pioneer2008-10-3000-45-17-01.jpg


EDIT: And yes it's a placeholder model :p
 
Last edited:
Soldato
Joined
12 Jan 2004
Posts
3,172
Location
Brighton
MMORPG = RPG + MMO (which is basically fancy networking)

RPG is what you need to be able to program. Its basically a management program with, for example, combat management, inventory + armoury management, ability management etc.
 
Soldato
OP
Joined
6 Sep 2006
Posts
6,294
Location
London
MMORPG = RPG + MMO (which is basically fancy networking)

RPG is what you need to be able to program. Its basically a management program with, for example, combat management, inventory + armoury management, ability management etc.

This is pretty much true. Instead of complex AI for NPCs you can just rely on the other players :D

Programming really isn't that difficult to get into anymore, there are so many tutorials out there, especially for Java and C#XNA that just about anyone should be able to get something up and running.

I learnt the very basics in college but 95% of the programming I know now is from learning it in my free time through the internet. Once you have the basic syntax and methods down the rest is just trial and error to see which way works best. Pretty much everyone has their own way of doing things too. I had a look over the source code for a similiar project to mine and it's layout isn't at all like mine but both engines have the same result at the same speed.
 
Soldato
Joined
12 Jan 2004
Posts
3,172
Location
Brighton
This is pretty much true. Instead of complex AI for NPCs you can just rely on the other players :D

Programming really isn't that difficult to get into anymore, there are so many tutorials out there, especially for Java and C#XNA that just about anyone should be able to get something up and running.

I learnt the very basics in college but 95% of the programming I know now is from learning it in my free time through the internet. Once you have the basic syntax and methods down the rest is just trial and error to see which way works best. Pretty much everyone has their own way of doing things too. I had a look over the source code for a similiar project to mine and it's layout isn't at all like mine but both engines have the same result at the same speed.

Its never been about programming, its always been about system design and domain specific knowledge (for example, physics if doing a physics engine).
 
Soldato
OP
Joined
6 Sep 2006
Posts
6,294
Location
London
Its never been about programming, its always been about system design and domain specific knowledge (for example, physics if doing a physics engine).

Bengaboy has never programmed before. He's going to have to learn some programming to be able to code a MMORPG :p
 
Soldato
Joined
1 Sep 2007
Posts
3,902
Bengaboy has never programmed before. He's going to have to learn some programming to be able to code a MMORPG :p

lol, might help if I learn the basics 1st hey ;)

Anywhere specific where you have learnt from or would go to a certain website you would recommend?
 
Associate
Joined
24 May 2008
Posts
142
Location
Derby, UK
Good to know you've had experience of UO. Had some good times in there. :)

I'd wager that you're gonna have to get some dirt under your fingernails at some point, especially networking and version control (for patching).

Based on your numbers and details above, you're going to need some method of letting the other 99 people in-game know when you've moved. Most efficient way is to use UDP to a central server, then UDP out to each player client, but only for non-critical information. Other information regarding things like buildings, interaction, etc will need TCP. Stumbling around the 'net for more information, it may be worth looking at Planeshift for examples of what goes on behind the comms.

Whichever way you look at it, you're going to need some form of comms layer that is separate from your modelling, client, etc. It'll simplify the development at the very least.

The other issue is persistance versus version control. Not sure if it's worth going into in great detail, but I suppose that depends on what kind of project you want to hand in at the end of the year.
 
Soldato
OP
Joined
6 Sep 2006
Posts
6,294
Location
London
Haven't actually played UO but I've read a lot of good things about it. I'm just sick of how restrictive current MMORPGs are and how similiar they all are.

As far as networks go atm anyway I'll be going for the less is more attitude. If I can get terrain tiles (the 4km*4km terrain with object data) downloading to the client and then just send the list of changes from server to the clients so many times a second I'll be pretty happy. Any changes to the .exe I'll probably just leave to the players to get themselves for now, like I said while this is still just a college project I don't predict more then a few people in my class and a few interested people from here or other forums will really test it out.

I'm aiming to have core functionality in place for the end of my college year. After that it'll be developing the network to cope with a lot of external testers, modelling a lot of the needed content and then hopefully going to a limited beta test.

My idea for the servers at the moment is to have one server instance governing just one tile each. Hopefully I can run a few servers on one machine just for the beta test if nothing else. If things look promising then I can look into getting some investment for a larger server base.

I'm also planning on an open content system where the community can contribute with their own item and building models in return for something in game. If you model a sword for example you might get a free "Master Quality" one gifted to your player in game. I've always been a fan of community involvement in the development process and I think this would be a good way to help people see it as more of a community rather then just a game.

That's all way in the future though. For now I'll be happy if I get the core completed for my project. I'm sure networking will be one hell of a hassle with the strict firewalls we have in college. I'll hopefully be scrounging parts together to form a dedicated server machine from my home (10mbps) connection which will hopefully be enough to cope with one tile instance atleast.
 
Soldato
OP
Joined
6 Sep 2006
Posts
6,294
Location
London
I was going through some of Riemer's tutorials a while ago - good stuff. Need to try to get back in to the XNA stuff - in fact, I am actually in the process of installing Visual c#2008 and XNA game studio 3.0 right now!

I believe it only works with 2005 still. Unless 3.0 changed that.

2008 wouldn't work for me when I tried it first back in may.

Next on the list for me is vegetation, need to apply it to the sectors as if I try it without culling it all grinds to a very slow 15fps or so.
 
Associate
Joined
25 Aug 2008
Posts
947
This is in java yes?

My understanding is there is a rather decent framework in java built upon openGL. Only issue with this is the fact that its approx 10-30% slower last I heard due to the framework.

I've thought about completing such a project myself, and making it OS to allow others to adapt/expand the world, but this has already been done with the likes of secondlife and PS3's Home.


One way I overcame the graphics slowdown was to build into the system and activeRenderView. Basically anything within a possible viewing range was rendered, with various levels (building/inside building etc)
Good luck anyway!
 
Soldato
OP
Joined
6 Sep 2006
Posts
6,294
Location
London
No this is XNA, DirectX in C# basically. It's quite fast even compared to purely C++ engines. For example that was running fine on my computer with 40+ fps without culling. That's about 1M polys renderered 3 times, for reflection, refraction and the main view. With culling the poly counts come down a lot but it's still very impressive.

Right now the only culling is the quadtree you can see above. I'll be further dividing the terrain tiles into smaller squares, it'll check the bigger squares then for each of the squares that are intersecting the view frustrum (not fully contained) then check the smaller squares within that.

On top of that will be distance culling, I'm not sure of what exact view distance I'll be using, it's currently viewing the full 5-6km diagonal pretty well, I'll probably drop the view distance down to 2-3km though, that should be plenty for this type of game.

And finally there'll be terrain LODs with varying polycounts per terran tile judged by distance, how exactly I'll sew the differing LODs together is yet to be decided.
 
Soldato
OP
Joined
6 Sep 2006
Posts
6,294
Location
London
It's certainly occupying most of my thoughts lately. This is definitely the biggest project I've ever even attempted. Even if I get a decent game engine up and running I'll be pretty happy. My latest idea is to go with an XML gui implementation to keep the internal code simpler and to allow people greater access to change their interface around.
 
Back
Top Bottom