Advertisement

client-server-botclient architecture?

Started by December 08, 2002 11:59 AM
10 comments, last by mirrormack 22 years, 2 months ago
i haven''t gotten much into network programming and multiplayer games, but currently i''m working on one (my own). i''d love to add hundreds of autonomic bots to the game, but it would mean that the server would have to be a very powerful machine (server would handle the bots while clients would run the player characters). but then i thought that why not do the bots in the same fashion as the players. that would mean that the server wouldn''t compute any of the ai-bots as there would be bot-clients that would handle 1 to n bots each. if you''d need more bots to your world then you''d just add another bot-client to your game i.e. another machine. what do you people say? has someone done this already? i''d love to know if it works ok before i implement it. hell, the whole idea is so cool that i''m going to do it anyway.
You''d ened to make sure you had a good way to authenticate the bots, so other people don''t attatch their own modified bots to the server, but yeah sounds good.
Advertisement
You also need to make sure your server sends enough info about the world to the bots. Generally, the AI has more knowledge of the game world than the player does - it''d be very difficult to design an AI which can navigate around a world with as "little" info as a regular player gets.

If I had my way, I''d have all of you shot!


codeka.com - Just click it.

quote:
Original post by Dean Harding
You also need to make sure your server sends enough info about the world to the bots. Generally, the AI has more knowledge of the game world than the player does - it'd be very difficult to design an AI which can navigate around a world with as "little" info as a regular player gets.



yes, i'm aware of this fact. if one could make an ai that is
that much "general" it would be great as the ai would be
quite reusable in other projects as well. but making one
might take lots of resources while it would run so that we
might have at max one bot / one machine connected... ;P
i'm thinking about the sims-like "intelligent enviroment" or
how was it called? plus some reinforcement learning experiments,
but that's another story...

i was just wasking about this kind of architecture. i've
seen only such where the server does all the bots itself,
but then again i haven't seen much. so why not make the
bots use the same interface as the players (plus little more
info about the world)? just the thought of being able
to add new "life" to the world just by running more botclients
in new machines makes me want to start coding right now!
unfortunately i have two exams next week... ;(

[edited by - mirrormack on December 8, 2002 4:42:48 PM]
If you control all the machines which run the bots, and the network that connects them, then authorisation should be very easy - just keep a list of IP addresses from which bots are allowed to connect, if something claims it''s a bot, but isn''t on one of those IPs, then you cut it off, but if something from one of those IPs claims to be a bot you can pass it extra information.

John B
The best thing about the internet is the way people with no experience or qualifications can pretend to be completely superior to other people who have no experience or qualifications.
quote:
Original post by JohnBSmall
If you control all the machines which run the bots, and the network that connects them, then authorisation should be very easy - just keep a list of IP addresses from which bots are allowed to connect, if something claims it''s a bot, but isn''t on one of those IPs, then you cut it off, but if something from one of those IPs claims to be a bot you can pass it extra information.



i was thinking about some kind of a password authorisation
or something easy as that, as i''m not planning to run the
"games" ("experiments" might be a better word for now) in
public, but thanks for the tip! but before i invest much time
into security i''ll work on the ai and distributed network
parts of the code. they are under my interest.

i think that when it''s time for more security i''ll add that
ip-list for allowed bot-clients. thanks!
Advertisement
You might like to check this out: http://www.planetunreal.com/gamebots/. It was originally developed at Carnegie Mellon University to facilitate AI research. Basically it does what you''re planning, but with Unreal. It sends "sensory" input over a network connection to a bot client, which processes that info and sends movement commands (etc) back.


If I had my way, I''d have all of you shot!


codeka.com - Just click it.

quote:
Original post by Dean Harding
You might like to check this out: http://www.planetunreal.com/gamebots/. It was originally developed at Carnegie Mellon University to facilitate AI research. Basically it does what you''re planning, but with Unreal. It sends "sensory" input over a network connection to a bot client, which processes that info and sends movement commands (etc) back.



a quick look at the pages didn''t reveal what kind of an ai
they are using, but it does look interesting. i''ll read through
the docs for tips for my project right after these exams.
thanks!
quote:
Original post by mirrormack
a quick look at the pages didn''t reveal what kind of an ai
they are using, but it does look interesting. i''ll read through
the docs for tips for my project right after these exams.
thanks!


They don''t actually implement the AI - it''s just a framework for writing your own (as far as I can tell). There''s a few AIs for it available (for example, this Flipcode IOTD).

If I had my way, I''d have all of you shot!


codeka.com - Just click it.

hey, that sounds like a good idea... one problem i see is the extra lag that having more clients would create
you are going to have to have the botclients on a LAN, because you wouldn''t want them lagging the server...

also, why not have the bots know the same thing that the real people know? wouldnt that be a little more fair?...

M@ the MadProgrammer

This topic is closed to new replies.

Advertisement