A Single Player MMRPG

Started by
20 comments, last by RolandofGilead 19 years, 1 month ago
I've been planning this game for the past few years - you know how we each have *that* game that we each want to make? Well, here is my vision: A single-player game, based around mmorpg rules. Things included such as player-crafting, money + item accumulation, leveling, and most importantly, lots of npc traffic to simulate other players. I love the open-endedness of mmorpgs, and think it can quite easily be squashed into a single-player game without loosing too much of the magic. Now, i've done most of the game-design stage, and i'm on to designing the technical aspects of it. The game will be set in a sci-fi universe, in space as that is where it is easiest to simulate a living world. (Space ships + comm channels are a LOT easier to simulate than walking, talking npcs). Each time you start up the game, you can create a new 'universe' which will randomly generate a game galaxy (around 5000 star systems), populate it with npcs (about 1000 story npcs, and 50 - 200 active ones), seed the market, randomly generate npc empires and assign them systems etc. Or, you can connect to a universe you created earlier, and join the game from multiple characters that you can create within this universe. Technically, the game will run on 2 levels - one, the current solar system you are in, will be loaded into memory and updated in real-time. This will all be stored in memory. The second level is the galaxy, which will be updated each time you jump from system to system. This will be built into a database. When a system is left, the system data is compressed from memory, and thrown back into the database, and the new system is loaded into memory. Now, i've overcome a lot of problems already, the galaxy generation code is done, and produces some very nice spiral and globule galaxies, the dynamic-story-system is in the works and looking good. My problem is seeing problems down the road, i've never undertaken anything quite this big before and was wondering if i could call on your collective intelligence to highlight any problems design or code wise that you could foresee hitting me in the future. Thanks in advance, Synex Code Monkey
SynexCode Monkey
Advertisement
Quote:Original post by Synex
My problem is seeing problems down the road, i've never undertaken anything quite this big before and was wondering if i could call on your collective intelligence to highlight any problems design or code wise that you could foresee hitting me in the future.

Once you've removed human interaction, your game is really just an RPG. NPC interactions are always somewhat predictable and (unless you are the guru of AI) it's pretty much impossible to simulate the human player. That said, it's still a pretty cool idea.

First, I see a problem with your ratio to NPC/star systems. It seems like the chances of running into an NPC is very small. There's only a 1 in 5 chance that there will even be an NPC in the star system you're in. Then, the chance that you would even see the NPC in space is small. If you were talking 1000 NPC's within 50 star systems, it would still be somewhat of a low, but acceptable, ratio.

On the other hand, if you would like to keep all 5000 systems, the number of NPC's would have to be great (at least 100,000). The code managing NPC's would have to be pretty beefy.

By the way, have you considered how economy is going to work? This tends to be a pretty big issue with designing MMORPG's. What's being traded and why?

How are you storing the positions of NPCs/players/planets/etc.? In a game of this size, positioning becomes another issue. Imagine you store a game object as x, y and z, all three being double-precision. As the numbers get larger, the less accurate they are and movement becomes more jittery. Objects become misshaped. They no longer move in a straight line. Cats chase dogs. Duke Nukem Forever hits store shelves. It gets ugly, man! You'll need to develop a more complex positioning system.

Honestly, I think you should try creating a smaller version of your game first and build up from there. Perhaps, create a tech demo of space combat. Then, maybe a trade demo and so on and so on.

[EDIT]BTW, shouldn't this be in "Game Design"?[/EDIT]
Quit screwin' around! - Brock Samson
I agree, start small, very small. Another issue is have the NPC's update. Will NPC's do things while you are gone? That is the one nice thing about the client/server setup of a MMORPG.

Other issues deal with generation of enemies. Will they randomly popup? Will they come from planets with a certain level of "crime"? So you can actually prevent space combat by fixing crime on planets. It's something to think about. With a way to "destroy" a problem in a game makes it more fun, a real sense of accomplishment (this is much more useful in MMORPG's where team effort can be used). I bring this up because it will be central to much of the issues with monsters in the MMORPG I'm working on (Once - http://www.once.net.nz) - we are still early in development, but hey! To many games in general have no sense of accomplishment when dealing with problems. You kill something it will randomly popup somewhere else :(.

"I love the open-endedness of mmorpgs, and think it can quite easily be squashed into a single-player game without loosing too much of the magic."

The fact that you say you can do an RPG without losing much of the magic is telling. Meaning, MMORPG's are just RPG's with lots of human players running around doing there own thing, ignoring other human players. While this is an over statement, most commercial MMORPG's (AFAIK) don't emphasize team play as much as they should. Much of this deals with the generation of enemies (as detailed above).

BTW, are you creating Privateer 3? If so I'm very interested (that's kind of what this sounds like).

Hopefully I was informative.
Definatly brought up some interesting questions and ideas here...

First off, i'd say that 50% of the systems will have no life in them. Version 2 of the game i'm hoping to include player built structures, including mining rigs, factories etc, so the empty space will be primarly for:

A) exploring
B) Player colonisation.

The galaxy generation code throws some interesting things into the mix while creating the galaxy - it often includes a bad-land - a set of systems (usually 10-20 where the is lots of EMP interference - removes shields + lowers sensors) which i've got some cool ideas on how to show graphically. There is also a lot of other empty space for other stellar objects. Often clumped together are the 'core' systems - the gal-gen code starts by placing 2 - 4 'HQ' systems @ 1000 AD and then runs a load of algorithms at 'speed-time' from 1000AD -> 10000AD simulating wars etc. Each empire has a randomly chosen weight on 4 types of personality: War-Monger, Capatilist, Expansionist, Scientist and from there works out a history, a timeline, and seeds the galaxy with worlds.

It's come up with some interesting results so far:

One time it generated a galaxy with 4 starting races, but one of them wiped out the other three - in this case the galaxy should be seeded with a large number of ancient ruins, and systems where the planets have turned into roid belts. It also generated 6 pirate factions that inhabited the space left by the previous 3 races.

Another time it generated a galaxy with 3 races : all fairly equal number of systems - 1 with lots of war ships and a huge empire and the other two fairly small.

It took me quite a long time to get the system right, and it still throws up quite a few weird ones.

NPC interaction is mainly noticable around starports / stations. I've got a traffic control system similar to Freelancer in mind, where there is a lot of ships around all docking / undocking. Beyond that i'd like to make a dynamic quest system that generates quests for you depending on what you do.

I'm not very good at thinking up of game content, only game concepts, and therefore i'm trying to program as much as possible to be generated dynamically. The theory is to have small pirate bases to spawn. If they are left alone, the bases grow and the surrounding systems will have a greater number of pirates in. Also, things like police protection etc will have an influence on this (you wont find any pirate bases in 'core' systems.

The 'story-npcs' are basically just to appear in news etc - their names never changed, but they are likely to get included in dynamic quests etc. The 'active' npcs will change in relation to the system you are in - if you are in federation space, you'll likely have a large number of active federation npcs around.

The npcs in the system you are in will all be active, but will likely be destroyed when you leave - ingame explanation is that it will take a few 'days' to jump from system to system - it'd be weird to see the same people in the same place again and again - a major immersion breaker for a RPG i find!

The game has 2 coordinate systems - none of which *really* relate to each other. At the galaxy level, you have each system. The galaxy range is say +1000.0 -> -1000.0 So a system will have a 3D coord based within the galaxy.

Within a system each planet will have a coord, again it could be +1000.0 -> -1000.0. I'd actually like to see if i can generate a proper galaxy with stuff orbitting around other stuff, but i think it'll take a lot of work to do that.

I'll also look at planetary landings but at the moment i think i'll keep it all in space.

The economy will be fairly simple to start with - mainly buy/sell like Elite. I'd also like to see a stock market later on, and also to include mining, gas mining, planet mining, player-crafting, player factories and a tech tree. Oh yes... a proper dynamically generated tech tree!

Thats just a few ideas, as i say - its in the early days at the moment but i'm looking forward to it!

Your suggestion of keeping it simple is a very good one, i think i'll make it a simple space-sim to start with, and then probably a major re-write after i know what i'm doing! The 2nd version will aim to make the player-interaction affect the galaxy more, and include the dynamic story system so you can see you name in the newspaper!



Quote:Original post by coderx75
Quote:Original post by Synex
My problem is seeing problems down the road, i've never undertaken anything quite this big before and was wondering if i could call on your collective intelligence to highlight any problems design or code wise that you could foresee hitting me in the future.

Once you've removed human interaction, your game is really just an RPG. NPC interactions are always somewhat predictable and (unless you are the guru of AI) it's pretty much impossible to simulate the human player. That said, it's still a pretty cool idea.

First, I see a problem with your ratio to NPC/star systems. It seems like the chances of running into an NPC is very small. There's only a 1 in 5 chance that there will even be an NPC in the star system you're in. Then, the chance that you would even see the NPC in space is small. If you were talking 1000 NPC's within 50 star systems, it would still be somewhat of a low, but acceptable, ratio.

On the other hand, if you would like to keep all 5000 systems, the number of NPC's would have to be great (at least 100,000). The code managing NPC's would have to be pretty beefy.

By the way, have you considered how economy is going to work? This tends to be a pretty big issue with designing MMORPG's. What's being traded and why?

How are you storing the positions of NPCs/players/planets/etc.? In a game of this size, positioning becomes another issue. Imagine you store a game object as x, y and z, all three being double-precision. As the numbers get larger, the less accurate they are and movement becomes more jittery. Objects become misshaped. They no longer move in a straight line. Cats chase dogs. Duke Nukem Forever hits store shelves. It gets ugly, man! You'll need to develop a more complex positioning system.

Honestly, I think you should try creating a smaller version of your game first and build up from there. Perhaps, create a tech demo of space combat. Then, maybe a trade demo and so on and so on.

[EDIT]BTW, shouldn't this be in "Game Design"?[/EDIT]
SynexCode Monkey
Yes and no, the npc's will esentially be 'dead' while you are gone. However, the 2nd version will hopefully include the dynamic empire system which will manage the npc empires in a very simplistic strategy game simulation. Systems will go to war with each other etc. However, almost all of this will be done mathematically with a little randomness thrown in for good measure.

Example: Empire A attacks Empire B in System X - System at war for ~3 game-months. If you enter this system at the time, you'll see lots of ships shooting each other, and you'll get shot at depending in your standings with each empire. Demand for weapons etc in this system will skyrocket, as will taxi missions to get people out! At the end of the ~3 game-months, Empire A wins and takes over the system.

Over time this system could completely change the state of the galaxy from when you generated it. I'm planning tho that when you quit the game, the galaxy gets 'saved' and stops.

I like the idea of fixing crime on planets to get rid of pirates - i'll have a think about it.

And no, i'm not making privateer 3 exactly... tho i must remember to crack P2 : The Darkening out of its box sometime to check it out. This game is aiming to be a hybrid of all the genre. Elite, Frontier, Privateer, Freelancer, Freespace 2 and most recently Eve-Online. I loved Frontier's massive universe and feeling of immersion, Eve-Online's depth and story-background, Freespace 2's combat. Yes, it may be an ambitious project, but as i said... we *all* have our games that we dream to make!

Quote:Original post by duffolonious
I agree, start small, very small. Another issue is have the NPC's update. Will NPC's do things while you are gone? That is the one nice thing about the client/server setup of a MMORPG.

Other issues deal with generation of enemies. Will they randomly popup? Will they come from planets with a certain level of "crime"? So you can actually prevent space combat by fixing crime on planets. It's something to think about. With a way to "destroy" a problem in a game makes it more fun, a real sense of accomplishment (this is much more useful in MMORPG's where team effort can be used). I bring this up because it will be central to much of the issues with monsters in the MMORPG I'm working on (Once - http://www.once.net.nz) - we are still early in development, but hey! To many games in general have no sense of accomplishment when dealing with problems. You kill something it will randomly popup somewhere else :(.

"I love the open-endedness of mmorpgs, and think it can quite easily be squashed into a single-player game without loosing too much of the magic."

The fact that you say you can do an RPG without losing much of the magic is telling. Meaning, MMORPG's are just RPG's with lots of human players running around doing there own thing, ignoring other human players. While this is an over statement, most commercial MMORPG's (AFAIK) don't emphasize team play as much as they should. Much of this deals with the generation of enemies (as detailed above).

BTW, are you creating Privateer 3? If so I'm very interested (that's kind of what this sounds like).

Hopefully I was informative.
SynexCode Monkey
Isn't this the plot of .hack?
-----------------------------Play Stompy's Revenge! Now!
Quote:Original post by Stompy9999
Isn't this the plot of .hack?


I dunno whats .hack?!? :S

Can you post a link?
SynexCode Monkey
.hack is a single player RPG that takes place in a fictional MMORPG.
-----------------------------Play Stompy's Revenge! Now!
I'm totally convinced this is the gameplay of .HACK!
Hmm... well, they say there are no new ideas under the sun...

*scratches his head*

I googled it and couldn't find anything about it... I'd like to find out some more if someone can post a link or explanation?!?
SynexCode Monkey

This topic is closed to new replies.

Advertisement