questions about MORPG

Post your questions, suggestions and experiences regarding game design, integration of external libraries here. For irrEdit, irrXML and irrKlang, see the
ambiera forums
B@z
Posts: 876
Joined: Thu Jan 31, 2008 5:05 pm
Location: Hungary

questions about MORPG

Post by B@z »

Hello!
I'm sorry for making this topic, but I have a lot of questions, and I don't want to open too much topics, so I just put all to it.

I'm trying to make an RPG game (even if I can't do it for the last, it's a good experience, right? :P )
As for an RPG, I have to make a basic AI (I don't need too good, just follow the player, attack, and if beat, or too far, then go back)
It's ok, i did it, and work, but, if there are a lot of monsters, then they become one xD
of course, it's because the route is same (chasing the same player :P )
But it's ugly xD
How should I avoid this? I'm not expecting sources (but it will be handy too :P ) just an idea ^^;; I have no idea at all :D

that's all for now, thx
Last edited by B@z on Tue Jun 17, 2008 11:58 am, edited 2 times in total.
Lekane
Posts: 31
Joined: Thu Jun 01, 2006 7:07 pm

Post by Lekane »

collision? if they collide they wont become one :p
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Post by rogerborg »

That's an interesting problem. How you solve it is really dictated by the user experience you want.

Implementing simple collision detection would be one way of doing it, but then they'd just jump each other's silicone buttocks in an attempt to reach their destination.

Another way to do it would be to look at the pencil-and-paper RPGs solution, which is also how the classic documentary Xena: Warrior Princess handles it: have your antagonists attack from a limited number of directions around their target.

So instead of moving directly towards the target, each attacker tries to 'book' a slot to occupy and attack from. If one is available, the attacker books it and moves towards that position. Attackers who can't book a slot either don't attack, or perhaps move to a secondary position further away and wait for a primary attack slot to open up.

Did any of that make sense?
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
B@z
Posts: 876
Joined: Thu Jan 31, 2008 5:05 pm
Location: Hungary

Post by B@z »

Lekane -> the collision will look ugly. they want to go there, but can't, so trying... ugly xD

rogerborg-> that really make sense! if I make a circle around my character with some slot (hm.. maybe 6? or 8?), what always move with the player, then they wont go to the same place... that really make sense!

i think i'll try it, and tell you that it worked or not xD
anyway, thank you ;)
wyrmmage
Posts: 204
Joined: Sun Mar 16, 2008 3:12 am
Contact:

Post by wyrmmage »

check out the book "AI for game developers" by O'reilly if you have the chance...it's a very good book, and it explains different approaches to solving problems like the ones you're having.

That's a really interesting way of doing combat, Rogerborg...I'll have to keep that in mind :)
-wyrmmage
Worlds at War (Current Project) - http://www.awkward-games.com
Ganadu'r, The Eternal Sage (Other Current Project) - http://rpg.naget.com
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

Yeah i like the idea of booking a slot to attack from... It seems quite common in lots of games such as Heavenly Sword, Ninja Gaiden etc. You only really ever get attacked by a small proportion of the enemies that are present. The others just hold back and circle around you. tbh it seems a bit cheap and unrealistic... why wouldn't they all pile in on you, much higher chance of killing you, but then it might be too hard for the player (so just make the enemies a bit easier to kill so they don't have such an advantage if they pile on).

It happens in films too to be honest... so it's not uncommon and you shouldn't feel bad about doing it. If anything you could increase the number of slots available to attack from or something, or just don't have a huge number of enemies attacking at once.
Image Image Image
B@z
Posts: 876
Joined: Thu Jan 31, 2008 5:05 pm
Location: Hungary

Post by B@z »

Hi!
i think i've done xD
it wasn't hard, but if somebody is interested, i can send the source

here a picture about it :D
Image

and this is how they are following
Image

and maybe interesting vid xD
http://dotdotdot.extra.hu/FTP/ai.avi
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

Nice work! Your input scripting sort of thing looks really cool and incredibly useful for testing out the application, did you write that all yourself?
Image Image Image
B@z
Posts: 876
Joined: Thu Jan 31, 2008 5:05 pm
Location: Hungary

Post by B@z »

thx xD
yep, i wrote it by myself. and it's really handy :P
especially at making waypoints, or changing factions.. :P
B@z
Posts: 876
Joined: Thu Jan 31, 2008 5:05 pm
Location: Hungary

Post by B@z »

I put up videos from the AI.

it can do this features:

3 vs 3
http://youtube.com/watch?v=-Psi5dMe8uk

waypoint and 3 vs 3
http://youtube.com/watch?v=vGyZyQ8YdJw

all vs boss
http://youtube.com/watch?v=5VfHkoki07k

all vs player
http://youtube.com/watch?v=kNTeS3lt_h0
B@z
Posts: 876
Joined: Thu Jan 31, 2008 5:05 pm
Location: Hungary

Post by B@z »

hi
i have a question again.
It's about XP and levelup xD

so, if i kill a monster, i get xp. that's ok.
but the problem is calculating the level up. so how many xp do i have to get to level up.
of course i don't want to input it manually (if i wanna have 70 levels and so on xD), so i have to make a procedure, what calculates the borders.

any ideas?


-----------------------

and from now xD
This game will be an MMORPG game, but i have some questions about it.
i read a lot of topics about it, and i decided to use sql databases.
but, there is something i don't get.
if i save the datas in the sql, why do i have to make a server?
why can't just the client insert the sql dates, or read from there?

and, even if i have to make a server, what should the server save, what the client, and what the sql? :P

i think, the monster types (for example a board, the starting hp, start point, level, and so on). it wouldn't change so much but it has to be changeable. i get it.
but what about the positions? i saw a database of mmorpg before, and the sql had the positions of monsters and players and so on.
but can't just the server save it? all of the monsters just replace to the original place (respawn place), with full hp, and so on. isn't it ok?
and when the server is up, the server can give the positions to the client, so i don't have to use sql.
only i have to save in the sql the player positions but it's ok.

so, i'm confused, what should i save where xD somebody pls help me.

and an another question.
what about controlling the monsters?
if i make a server, i don't want to run irrlicht in that, because it eats the memory, but what about collisioning, or moving, attacking?
something has to control it.
i thought about that, the client controls it. if there is a monster nearly, the player controls that, and send it to the server, but it isn't good, because if there are more player in same area, there will be a little problem xD

what do you think about it?

(and yeah, i know, i'm inexperienced for a mmorpg, and it's expensive, and about small massive morpg and so on.
i just want to make it. even if i can't make at the last, it's a good experience, isn't it? :P )
Dark_Kilauea
Posts: 368
Joined: Tue Aug 21, 2007 1:43 am
Location: The Middle of Nowhere

Post by Dark_Kilauea »

if you want a persistent world, you need to setup a server and have it handle the sql server. The server should also handle all gameplay and AI, as well as double checking anything the client sends to it. Your clients should NEVER access the database directly.

#1 rule of multiplayer games and client/server interactions in general is: Never trust your clients. EVER. You never know if a client that has connected to you will try to modify the data in order to crash your server or gain an advantage . And there are people out there bored enough to do it.

You should be able to run a server without irrlicht at all. Your AI and gameplay calculations should not be dependent on irrlicht. You can always use simplified physics on the server, or use the services of a physics library.

Also, you want to use sql to give you a backup in case the server crashes, or you have to take it down for maintenance , etc. Your players will be very angry if they lose all their levels due to a server crash. SQL will be able to save that data, and give you a backup batch of data that you can go back to if things go terribly wrong.

Leveling should be easy. Use a formula to calculate the amount of XP needed for the next level based on the current level. When that hits max, increment the level and use the formula to figure out how much more XP they need to hit the next level.
rogerborg wrote:Every time someone learns to use a debugger, an angel gets their wings.
B@z
Posts: 876
Joined: Thu Jan 31, 2008 5:05 pm
Location: Hungary

Post by B@z »

wow, thank you!

so, every data, what the server get from clients, i have to save it in sql right?

and if a client wants to get data (about other monsters and so on), it demands to the server, the server gets it from the sql, and send it to the client, right?

i get it, thank you :P about AI..... uhm, right... i'll try to make it independent.

about leveling, yeah, if i get the formula, it's easy. but i don't know the formula xD and have no idea about it :P
Dorth
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Post by Dorth »

No. You can (and should) keep most, if not all, active data in memory. You do not request them from the SQL unless it's a previous inactive section (joining player, new zone, instance, new item, monster, etc.) You do not save them always unless you REALLY have a fast system, you save, for example, every 5 minutes things that change a lot and 30 mins things that change lightly.

If you want a good exp ramp, you can look at DnD 3.0/3.5 ramp, it's pretty good. 1000xp required for lvl 1, 2000 for lvl 2, 3000 for lvl 3, etc, restarting at 0 everytime. Also, the exp received is in regards to your lvl and your enemy's lvl. A certain enemy won't give you a constant xp.

Furthermore, you can't realistically be calling your project a mmorpg. at the very least, use smorpg or morpg, but leave out the massive. Unless it stands for mini...
B@z
Posts: 876
Joined: Thu Jan 31, 2008 5:05 pm
Location: Hungary

Post by B@z »

i got it. thank you very much!

about leveling..
Also, the exp received is in regards to your lvl and your enemy's lvl. A certain enemy won't give you a constant xp.
i don't know how to do this part.
i set a constant xp, and i have to change it, right?
but how? is there a formula for this? and do i really need this? (i don't like wow's system, where it's a disantage if you party with a higher level player. i like power leveling :P )

yeah, yeah i know xD changed the title.
but even if i can't make it massive, so huge servers, etc, the system is same, right?
if you run wow in your private network, playing with your friends, then it isn't mmo?
i think mmo is a system, not the size.
but it doesn't matter at all, i think xD
Post Reply