How to create a virtual world and manage it over a LAN?

Does anyone know how "virtual worlds" (like Second Life and GoJiyo) are created?

I would like to create a (much) shorter version for mine. I would host it in my computer and access it via LAN. May be a total of 4-5 users.

I would like to start with a single room, and low-res characters. Then I'll gradually upgrade.

I have some experience in 3D modelling and animation. But I have no idea how to make the characters (controlled by different users) interact.

I'll probably have to use an engine/ platform. I heard of OpenSim (OpenSim), but have zero experience with it. Anybody used it here?


I abandoned the previous thread because one of the main objectives has changed - I now want to host the whole thing in my own computer, mainly to overcome the cost factor. I want to do this for fun. In the process, I'll get to know many new things. :)
 
OP
gdebojyoti

gdebojyoti

AFOL
I think Hamachi or Tunngle will do

You don't understand my question. I have access to quite a number of computers. So operating via LAN (without Tunngle) is easily manageable.
My question is - how?


So far I have come to know this -

In a virtual world, some server has to keep track of the map and what is happening, and communicate with players . When one avatar moves around, it has to send the new position to all the other players. It also has to store the asset database (3D models, textures, etc.) so they can be sent to new players as needed for display.
What distinguishes a "game" from a "virtual world" is persistent state. A game always starts in the same place with the same conditions for everyone who plays. A world remembers past changes. So a new player sees the world as it is now - not in the default starting point.
 

Hrishi

******************
YOu should look about this info on "GameDev community" . Thee are some good posts about controlling and managing the "MMO engine".
 

pratyush997

Inactive
Just create the server and let the players join on that server by sharing IP out else it should be in LAN server list
 

Anorion

Sith Lord
Staff member
Admin
even for fun, it is cheaper to host the game in the cloud. people have bought out mmo engines for this reason... like owned the codebase so they could develop it as their own pet project. HeroEngine, is the closest to what you want to do, Unity second best, please flesh out details.
 
OP
gdebojyoti

gdebojyoti

AFOL
even for fun, it is cheaper to host the game in the cloud.
I can't afford that at the moment. I am just a college student.

Unity second best
Is it really possible to create an entire virtual world using a game engine? How do I handle the client-server communication part?
I also need to somehow connect to a database (like MySQL) to store the details (position, state, activities, messages, etc), right?

please flesh out details.
I think I have said everything that I want to start with. Is there anything else that I should say or something that I missed? Then do let me know.

Thanks. :)
 

Anorion

Sith Lord
Staff member
Admin
describe the project, what kind of virtual room, how big will that one room be... are you talking of an actual room sized room, or say a city block sized room, or even larger rooms... what the avatars in that room will be doing... what kind of changes do you want to track, how will these people interact with the environment and each other
maybe, just maybe you don't need a real virtual world
you can host an instanced version of a room, and get people to join and play in that instance, this would not need any of the laborious work on implementing a server, so you can probably make this as a quake 3 mod
maybe even the Creation Kit will suit your requirements, with the creation engine,
making second life will take a monumental effort, pref by a big team, there are hobbyist virtual worlds out there, and all of them rent server space, or come with a cloud component that needs configuring, but not worked on... so basically something like HeroEngine or Esenthel come with these components built in
you can also use some other game engines to do this, such as the Torque engine, and yes, Unity, or maybe Source, not sure
now for the networking stuff... there are networking engines, which can be used as middleware, unity uses raknet but there are other options
so unity is overall the soundest option, because they have an active community of users who respond to queries
database bits... depends on the engine, but guess SQLlite or mono will be supported


approaching the limits to how much I can answer these qs, doing a bit of this same thing with some friends, we are using HeroEngine, my involvement is only in making the 3D assets for it, license + server costs less than rs 5k a year, think that includes cost of the engine. lifetime subscription was available at one time for rs 10k, and this included the server costs. this is the easy way out, really, because the engine has already done most of the things for you.
 
OP
gdebojyoti

gdebojyoti

AFOL
describe the project, what kind of virtual room, how big will that one room be... are you talking of an actual room sized room, or say a city block sized room, or even larger rooms... what the avatars in that room will be doing... what kind of changes do you want to track, how will these people interact with the environment and each other

By room, I mean an empty rectangular box - an actual small to medium sized one.
Avatars in the room can move about (2 speeds - walking and running; no flying).
The players can chat with each other. Initially, a public chat will be available (something like the one in SL). Later I would like to incorporate private messaging.

As said earlier, I need to know how to host such a room, and how to allow other players to join it.

maybe, just maybe you don't need a real virtual world
you can host an instanced version of a room, and get people to join and play in that instance, this would not need any of the laborious work on implementing a server, so you can probably make this as a quake 3 mod

I didn't get this part. Will you please explain?

making second life will take a monumental effort, pref by a big team, there are hobbyist virtual worlds out there, and all of them rent server space, or come with a cloud component that needs configuring, but not worked on... so basically something like HeroEngine or Esenthel come with these components built in

As I've said earlier, I do not intend to replicate SL. I just want to create something similar, but on a much much smaller scale. Not just for fun, but also to learn how the whole thing operates. This, and the fact that I am a college student who can't afford the 10K right now, is the reason behind my decision to build it myself and host in locally.

you can also use some other game engines to do this, such as the Torque engine, and yes, Unity, or maybe Source, not sure
now for the networking stuff... there are networking engines, which can be used as middleware, unity uses raknet but there are other options
so unity is overall the soundest option, because they have an active community of users who respond to queries
database bits... depends on the engine, but guess SQLlite or mono will be supported

I'll have a look at those.

:)
 

Anorion

Sith Lord
Staff member
Admin
^its great that you want to try to make it yourself
SL is made using a modified version of unity. there are two parts of the software, one is the server. this is the bit that is hosted on rented space, or in this case, your machine. This software connects to all the players, keeps track of everything. The second part of the software is the client. This is the software installed with individual users, and the one they will use to interface with the server. this is against say counter strike, where anyone can host a match and anyone can join.
this is how a true virtual world works, that persistent virtual world... then there instances... they exist for a short time, people can come and go, but after a while, they are no longer there... this is a slightly less daunting task... but you wont end up learning how second life is made, if you want to do this only, still think unity is best suited based on your replies
there are many game engines that come with mod friendly tools. If all you want is people to spawn in a room and talk to each other, you can do this as a quake mod, HL2 mod, Skyrim mod (using the creation engine) - try this, or a Crysis mod using the CryEngine 3...
 
OP
gdebojyoti

gdebojyoti

AFOL
My exams are drawing near. So I cannot spend as much time on this as I would like to. Still, I'll try to use whatever free time I can get.
Will post here if I find something of use...
 
Top Bottom