From: ap@jyu.fi (Patric Aalto)
Subject: SpaceGame routines (was Re: IBM Based Freakouts not Justified.)
Organization: University of Jyvaskyla, Finland
Date: Thu, 13 Aug 1992 10:14:32 GMT

In article <1992Aug12.105657.58078@cc.usu.edu> sl859@cc.usu.edu writes:
>I, wReam, has to jump into the action...
>> Well, I for one have been postponing the actual gaming routines in my game
>> for about two years now, as they REALLY are much harder to code than the
>> low-level graphics, movement, rotation etc. routines. I am talking about
>> the artificial intelligence routines of the enemy ships, the goal of my
>> game, etc. I am having big problems in coding the routines to handle these
>> things,
>	Have you posted any questions regarding this subject, after all
>that is the purpose of this forum.

Well.. No. (Don't I feel silly now?)

>  I really don't see how your point can
>be justified.  Perhaps you have mastered all these routines for your games,
>but in reality, many people are still learning.

I never intended to hint that those routines would be trivial,
just that they are well defined and therefore solutions to them are
easier to find than solutions to higher-level problems. I have nothing
against handling the low-level PC stuff in this newsgroup (after all, what
would be better than have one group where you can discuss every aspect
of your PC-based game, from hardware on up), but I think non-PC-based
readers would dislike that as much as I would dislike long discussions
about Amiga or MAC hardware-specific tricks. My opinion only.

>Please post your questions
>on building artificially intelligent computer players.  Give some specifics
>I am interested in this.

Well, I really don't even know what exactly I need to know. The simple
question could be 'how to program intelligent computer opponents', but
that is surely too wide a question. I'll try to give you an idea of what I
am trying to do.

I am coding a game, called 'LineWars II', which will be a much-improved
version of a shareware game I released a couple of years ago, called
'LineWars'. The old version was mostly a two-player game, playable thru
serial connection, with a very boring and limited single-play option.

I would like to have intelligent-seeming computer opponents in the new game.
Currently there are up to nine computer-controlled enemy ships, up to eight
computer-controlled friendly ships, plus the ship the player controls.
I would want the enemy ships to be aware of each other, so that they could
work as a group instead of separate (and stupid, at that) single ships.
But how? I have planned to let the player control the other friendly ships
by sending them messages ('form on my wing', 'attack my target', etc. like
in Wing Commander II from Origin). But how would I get the enemy ships
work like that? There should be an 'enemy leader' that can send messages
to other enemy ships, but I have felt the algorithms to make the enemy
leader sufficiently 'intelligent' are beyond my grasp, at least at the
moment.

>We (Josh and some others) were building a game
>to have a computer player, and eventually scrapped that entire aspect, because
>it seemed so difficult, at the time.  Since then I have encountered a few 
>"classic techniques" and have had some ideas on how to handle this.

I would be very interested to hear your ideas. Also, I need ideas for the
following questions:

1) What should happen when the player's ship gets destroyed? I want the game
   end only after all the enemy ships or all friendly ships are destroyed.
2) How about scoring? What sort of a scoring system?
3) Should the player's ship be stronger/faster/whatever, or equal to the
   other ships? Currently it is equal.
4) As I am planning to add LAN support, how should I handle players that
   pop in in the middle of on-going battle?
5) More questions will follow after I get my pending questions organized..

>Perhaps if this is such a problem a new grout could be formed called 
>rec.games.programmer.ibm  and we could branch off from that.  It may seem 
>like a stupid idea, but that's usually how things work when a news group
>gets too big for its britches.  

I am beginning to think that a new group might be a nice idea. Then we
could go as hardware-specific as we want.

>	I really don't think that its going to make a difference whether
>you complain or not, because this newsgroup gets to people interested in 
>things that know what they are talking about.

I don't think I was complaining... But let's get on with the discussion
and leave this PC/non-PC subject. Or at least that's what I am going to
do.

>    	Thankyou VERY VERY much to all those programmers that take time
>to respond to the different messages, no matter how machine dependant they
>are.  I really feel that this group has room enough for EVERYONE and that
>these tizzyfits over one machine type will pass.  KEEP POSTING YOUR 
>QUESTIONS AND ANSWERS, NO MATTER WHAT OTHERS MAY SAY...  I appreciate the
>pointers and this group is one of my favorites

With this I can agree wholeheartedly. Well put!

Patrick Aalto
ap@tukki.jyu.fi

Ps. Sorry that this message is so lengthy..