questions about MORPG
questions about MORPG
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? )
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 )
But it's ugly xD
How should I avoid this? I'm not expecting sources (but it will be handy too ) just an idea ^^;; I have no idea at all
that's all for now, thx
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? )
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 )
But it's ugly xD
How should I avoid this? I'm not expecting sources (but it will be handy too ) just an idea ^^;; I have no idea at all
that's all for now, thx
Last edited by B@z on Tue Jun 17, 2008 11:58 am, edited 2 times in total.
-
- Admin
- Posts: 3590
- Joined: Mon Oct 09, 2006 9:36 am
- Location: Scotland - gonnae no slag aff mah Engleesh
- Contact:
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?
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
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
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
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
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
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
Ganadu'r, The Eternal Sage (Other Current Project) - http://rpg.naget.com
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.
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.
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
and this is how they are following
and maybe interesting vid xD
http://dotdotdot.extra.hu/FTP/ai.avi
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
and this is how they are following
and maybe interesting vid xD
http://dotdotdot.extra.hu/FTP/ai.avi
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
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
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?
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? )
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?
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? )
-
- Posts: 368
- Joined: Tue Aug 21, 2007 1:43 am
- Location: The Middle of Nowhere
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.
#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.
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 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
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 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
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...
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...
i got it. thank you very much!
about leveling..
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 )
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
about leveling..
i don't know how to do this part.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 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 )
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