Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - bagna

Pages: [1]
1
Technical Help: Problems BEFORE entering the game /
« on: April 13, 2004, 10:07:14 am »
Why no reply? :(

2
Technical Help: Problems BEFORE entering the game /
« on: April 07, 2004, 01:56:51 pm »
Ok :)

Looked at the code in npcclient and header files in net directory.
Now i must write some (personal) impressions, but first define the main actors in my view :

we can distinguish four main types of pc :
PC : real people playing planeshift. Stats, inventory, (position) is kept on the db.

MASTER NPC : they are exactly like pc so their stats, inventory, ecc is kept in the db. They are very important, legendary and powerful (eg. a great evil mage or a king for example).They have a STORY (the evil mage is like saruman for example, is trying to conquer the world for example).They move great forces and they are unique.

MAIN NPC : clan bosses, own groups of \"normal npc\", or a guard general for example. They\'re also kept on the db (with stats and inventory), but have no story.They are not unique.

NORMAL NPC : they have no inventory, common stats for all, and should NOT be saved on the db. The position is kept in memory ONLY and is lost in server crashes. They are usually \"around\" main npc.

----
Three types of network entities :

clients (many) : much cpu, should know HOW to render a mesh , which texture, how much detailed rendering must be, and how to render effects (a spell or an atomical part of it). Use a 3d engine (crystalspace).

player server : one cpu, should keep in a database PC and NPC stats (as described). Should also calculate paths for npc and do math stuff. Should not use engine for rendering but it can use for math.

ai server : one cpu, should tell to the player server what npc do, and what events occur in the planeshift world. Should NOT do math stuff or keep splines for path, should not say where a walking npc is at time x with spline y! Should only say : npc id A move to target B, or npc id R follow path W, and then the server do math calcs.
ai server also assign treasures, handle quests, ecc...
Of course ai ai server send messages to player server and player server send messages to ai server. Ai server should be completely indipendend from 3d engines.

What do you think about these things? Please reply i\'m very intrested in you comments :).

3
Technical Help: Problems BEFORE entering the game /
« on: April 07, 2004, 11:11:28 am »
Hahahahahah ok sorry :) i\'ll read it :)

EDIT :

i readed the xml files that orogor mentition in his post, but i not the code.

first impression of the code : mmm ... intresting ... :)

4
Technical Help: Problems BEFORE entering the game /
« on: April 06, 2004, 09:14:31 pm »
C is surely a great language for performance, but is not much scalable.
For a good ai system java is well suited. But anyway, ok C.
But consider the scalability problem : 3000 players with 3 servers, and server crashes. You must consider this issue : is important.
Today xml is the bridge for different languages. Consider distributing the work of the server.

:)

EDIT :

\"We are doing C since a time ago\"
I have not said throw everything away, i said, watching your files (xml only...hahaha), if you want to restructure a part of your architecture, consider one of these ways. :)

Anyway, i\'ll have a look to the code :)

Edit : me stupid ...

5
Technical Help: Problems BEFORE entering the game /
« on: April 06, 2004, 08:02:03 pm »
First thing : sorry for my English, free feel to correct :)

Well, i downloaded the source code from the cvs and have a look on some xml files. I looked the files you have mentitioned for npc.
Well, now you have 10 npc, you put 10 entries in the xml files.
But when you have 1000 npc, what you will do? You will put 1000 entries in your xml file? It seem not to be a good solution.
Now there are three solution :

a) ignore this comment, and send me a \"xxxx you\" :) hehehehe

b) create a STRONG xml specification for planeshift scripting, and when i mean strong i mean
-> npc global variables
-> npc local variables
-> sensors
-> events
-> actions
-> npc classes and instances
ecc ecc
but also
-> loops
-> conditionals
-> data structures ?
... and i can help writing and coding the specification and the xml for it ...
c) keep ai calcs in another \"server\", call it the \"AI server\" which can stay on the same machine or in another machine of course.
The AI server simply communicates with the planeshift server what ACTIONS should be done on the world (quest creation, creatures behaviour, ecc). With this separation of concerns you keep in the planeshift player server the player accounts and the full resource handling (net,zones, ecc), and the AI server (which communicates with xml with the planeshift player server) keep calcs of npc and world behaviour.
In this way we can see the planeshift server as a scriptable device.
Ok, now there are only npc. But think of levers, traps, and things like this. This can be done well with a good scripting/AI solution.
Tip : games like Dark age of camelot has three servers and about 3000 simultaneous players. Very often the server crashes, and they have 3 servers. How many players will have planeshift? Only 1000 ? No i don\'t think so. Looking at enemy territory stats you can see how many people play good free games, so when i say \"another server\" or \"more then one server\" and \"separation of concerns\" please think about it :) .

EDIT :

d) keep things as they are if you want to have a very rigid but simple  ai for monsters. But why have 10 little xml language when you can have one good? :)
Loading a resource from the disk (a texture for example) is an action for the engine, but also describe a piece of gui is an action, and also \"start rain in zone x\" is an action, and also \"npc id 3455 engage fight with npc id 5677\". Think about a big interpreter which executes actions in the server, not 10 interpreters for 10 types of thing. For types there are tags, or not? :)

Bye bye!

6
Technical Help: Problems BEFORE entering the game /
« on: April 06, 2004, 01:51:07 pm »
Many languages?
Is there a language specification somewhere for this languages?
I\'m intrested in making monster ai scripting :) if i can contribute.
Thank you.

7
I\'m here for a \"tecnical\" request. I know that planeshift is all done in C/C++, but why don\'t made scripting in Java? Yes, the graphics and the network/resource manager must be done in C/C++ for best performance, but i think scripting can be done in a language such as java. For example Vampire : The Masquerade is done exactly in this way, and it\'s a vary good game, with no performance problem.Also Star Wars : Galaxies (is a MMORPG) is done this way. And was a very old version of java for the first one (i think 1.1). I think that many java developers (included me) will give their help if this will be made possible. With \"scripting\" i mean \"monster AI\", but also quests \"creation\" and other things at a high level.
Please consider this request and reply! Thanks!
Bye bye!


Pages: [1]