// 03. Forays into Client/Server                                        //
//     By : Epesh                                                       //
//          Joseph B. Ottinger (Epesh) is a programmer for              //
//          Decision Consultants, Inc.                                  //

The Idea

The Idea

A few years ago, I came across a DOS program called P-Robots.
This program allowed users to write robot-controlling algorithms in Pascal,
providing functions to move, shoot, scan, etc.

P-Robots was neat. The Pascal implementation was extremely limited (no file I/O,
no arrays as I can recall), but that was part of the challenge: each robot had
to start from scratch.

I also found C-Robots, which
did the robot implementation in a crippled form of C, with pretty much the
same limitations as P-Robots as regards the language.

Then I ran across PC-Robots.

PC-Robots was easily the best of the three. It ran as a shell over compiled
executables, which meant that you could write in whatever language you liked
as long as it could support the low-level functions. Some functions, like
file I/O, were disabled at the BIOS level (through interrupt redirection), so
while you could build a much more complex robot if you liked, each one still
had to start from scratch.

There are more implementations of this idea, of course; you can find them on the

One day I was musing on the limitations of the "tabula rasa" effect, that each
battle started with each robot's memory wiped clean, you might say. Then I thought:
why not write one on my own and fix it? I am Programmer, hear me roar, and all that.

So now I've set out on my goals. I'm designing a project I call "NetRobots,"
which has the following goals.

1) Will be a server program, communicating with clients via TCP/IP.
2) Will not restrict the clients in any way, except to provide some
(likely insufficient) controls preventing any two robots on the same IP address.
3) Will use plain text for all messages, so that the client can be written in
any language, including Java, C, C++, and VB, that supports a TCP/IP interface.
4) Will be written on Linux, although the eventual goal is to create source
that can be compiled on non-UNIXish platforms like Windows95.
5) Will initially only have text diagnostics, although eventually I would like
the server to be able to use TTY graphics, X, and Windows to display the
current ongoing competition.

Next article: I'll describe the messages involved, and how they'll be constructed.


Decision Consultants, Incorporated (http://www.dcicorp.com)
Joseph B. Ottinger (http://www.freenet.tlh.fl.us/~joeo)

C Scene Official Web Site : http://cscene.oftheinter.net
C Scene Official Email : cscene@mindless.com
This page is Copyright © 1997 By C Scene. All Rights Reserved