Some question from a beginner

If you are a new Irrlicht Engine user, and have a newbie-question, this is the forum for you. You may also post general programming questions here.
Kalash
Posts: 11
Joined: Fri Nov 02, 2007 10:58 pm

Post by Kalash »

Ok, thank you for your reply rogerborg, I'll try to do something with all these elements. I don't really want to create a real game and publish it, I just want to start with 3D :)
Taymo
Posts: 55
Joined: Mon May 22, 2006 1:06 am
Location: Colorado Springs - CTU
Contact:

Post by Taymo »

Kalash wrote:Ok, thank you for your reply rogerborg, I'll try to do something with all these elements. I don't really want to create a real game and publish it, I just want to start with 3D :)
Therein lies your problem. An MMO isn't a very good medium to learn 3D game programming as shogun said, because they are mostly just tons of content and really simple (and stupid IMHO) gameplay.

You seem motivated and excited so why not put that energy into something more productive? If your aiming on learning and not making a game then an MMO is NOT the right idea.

I think, in the end you want to create a game that's fun and you can't make an MMO fun without resources that are out of your hands. This probably seems negative but do yourself a favor, don't "start" learning on a "massive" project.
Kalash
Posts: 11
Joined: Fri Nov 02, 2007 10:58 pm

Post by Kalash »

Taymo wrote:
Kalash wrote:Ok, thank you for your reply rogerborg, I'll try to do something with all these elements. I don't really want to create a real game and publish it, I just want to start with 3D :)
Therein lies your problem. An MMO isn't a very good medium to learn 3D game programming as shogun said, because they are mostly just tons of content and really simple (and stupid IMHO) gameplay.

You seem motivated and excited so why not put that energy into something more productive? If your aiming on learning and not making a game then an MMO is NOT the right idea.

I think, in the end you want to create a game that's fun and you can't make an MMO fun without resources that are out of your hands. This probably seems negative but do yourself a favor, don't "start" learning on a "massive" project.
Please... I said small mmorpg wow-like because everybody can understand the idea of what I want but it's only for the map and the character/NPC controler, don't talk about content, it's not my aim!
Taymo wrote:I think, in the end you want to create a game that's fun
Not at all.
dlangdev
Posts: 1324
Joined: Tue Aug 07, 2007 7:28 pm
Location: Beaverton OR
Contact:

Post by dlangdev »

maybe what you need is an outline of what you want to study. because learning something like a "small mmorpg" can be broken down into several pieces or components, now these components can further be sub-divided into several pieces known as sub-components.

and when you look at these sub-components individually, you may realize how they look similar to other components that other people use in their own projects.

yeah, why not sit down and write down something that looks like an outline of a "small mmorpg", i think it will open up new ways of approaching this small thing that seems to be bogging you down.

for example...

elements of small mmorpg:

1 3d engine.
2 networking module
3 sound module
4 game manager
4.1 main menu
4.2 game proper
4.3 scene node loader.
Image
Kalash
Posts: 11
Joined: Fri Nov 02, 2007 10:58 pm

Post by Kalash »

Ok, atm I only aim to :

Client:
-Load a terrain
-Load a character
-Control this character (I'll probably use bullet)
-Network module (Send current character position/orientation to the server and get current NPCs position/orienation in order to display them)

Server:
-"Know the terrain" (to be able to check collision)
-Load some NPCs
-Move Randomly these NPCs (with a collision test)
-Network module : Send NPCs current position/orientation after last update and get character position/orientation (to send it to the others clients)

I don't want to create a GUI or play sound at the moment.

I think I can do all these things excepted the server side collision.

I'm trying something, I'll tell you what in some hours, I'm currently testing it. I still have some problems in some cases...
Oh yes, I may need irrlicht on server side, but I won't display anything, just need some tools (load map, ...)
Kalash
Posts: 11
Joined: Fri Nov 02, 2007 10:58 pm

Post by Kalash »

Ok, here is an example of what I tried.

First, we have to consider that our NPCs is over or on the floor.
Each time I change his position:

I send 3 rays :
- The first start on the position of my node + a half of his height and stop 500 on the top of his position (y + height/2 to y + 500)
If There is a collision, it means there is a ceiling and I check if that would block the NPCs
-The second ray is cast from the position of the NPC - a half of his height and stop 10 000 under his position. Same trick, if there is a collision it means there is a floor and I can prevent him from falling trough the map.
-The last ray start from the previous position of the NPC (in the direction of the movement) and is long of a half of the bounding box of my NPC.
If there is a collision, it's mean there is a wall.

I don't care about the response (gravity etc) atm.

It's not the perfect way to deal with collision, but I didn't found an other one.

Also, I found this function in the API documentation : http://irrlicht.sourceforge.net/docu/cl ... er.html#a1
But I didn't found help to use it. Could it be useful in my case?

I need some advices!

Thanks again :)
dlangdev
Posts: 1324
Joined: Tue Aug 07, 2007 7:28 pm
Location: Beaverton OR
Contact:

Post by dlangdev »

set it up as a separate module, don't tie it to irrlicht. that thing you're coding will sit on a server. server-based code usually have its own environment. it's basically a dumb message-passing machine. with a little bit intelligence for resolving client synch issues. laggers, in this model are generally penalized the most.

your basic equation should look like this:

simulation(server) = simulation(n1,n2,n3,...,nN,...,nM)

simulation(server) = simulation(n1) + ... + simulation(nM)

when nX drops, it should now look like this...

simulation(server) = simulation(n1) + ... + simulation(nM-1)

also, approach your problems mathematically or you will get nowhere--falling faster than a brick to a void (like faster than 9.8m/s).

PS: i take back the part using irrlicht, it doesn't matter at the moment. you can use any api you like.
Image
Post Reply