public inbox for xconq7@sourceware.org
 help / color / mirror / Atom feed
From: Eric McDonald <mcdonald@phy.cmich.edu>
To: Ramsey <salien@earthlink.net>
Cc: xconq7@sources.redhat.com
Subject: Re: xConq alternate combat engine project
Date: Sun, 04 Jul 2004 00:30:00 -0000	[thread overview]
Message-ID: <40E74E3B.7070207@phy.cmich.edu> (raw)
In-Reply-To: <17030786.1088898907645.JavaMail.root@skeeter.psp.pas.earthlink.net>

Ramsey wrote:

>              I'm part of a small team (two people) of undergraduate students at Portland State University. 
>We are looking into the possibility of building a pathway for alternate combat engines into xConq. 

Xconq already has two combat models. Model 0 resolves combat in such a 
way that each round must be explictly initiated, and involves only a 
single attack (with possibility of counterattack); combat hits are 
determined by tables of probabilities ('hit-chance', 'protection', 
etc...). Model 1 combat, which is used in the Advances and Civ2 games, 
loops until the combat is resolved, and relies on relative strength and 
defense values.

Following the example of Model 1 combat, you could conceivably add a 
"Model 2" combat system.

> What we would like to explore is the ability to substitute in other functions or other programs for the built-in 
> combat resolution system. They would be functionally equivalent, taking in the same arguments and returning compatible 
> return values.

Calling another set of functions for a new combat model shouldn't be 
that big of a deal. Talking to an external process would require that 
some IPC stuff be added to Xconq, or that the existing TCP/IP 
infrastructure be expanded.

> In the case of xConq, a separate interactive combat engine would be best for modeling conflicts where relatively 
> small forces (closely clustered in a small number of armies) manoeuver around a large area and engage in a small 
> number of decisive battles (i.e. the ancien regime conflicts of the 17th-18th century). Because these battles 
> were so important, it would be good to have a system to model them without bringing the strategic map down to the 
> scale in which it would allow tactical manoeuver (making it huge and unplayable).

Adding multiple scales is certainly something I have had in the back of 
my mind as something to do in the long term. However, to do so, would 
require significant work. If you guys are planning on doing this as a 
semester project or something, it would probably prove to be too much 
work in the given time frame. Even if you are doing this independently 
of any scholastic endeavor, you would probably want to familiarize 
yourself with Xconq better by working on a number of smaller things 
first, and maybe writing a game module or two....

>               What we would like to ask is:
> 1. Is there any logical way to do this without changing xConq's code?

You would have to write new code to add a new combat model to Xconq.
After we get the 7.5 release out the door some day, I hope to modularize 
  the combat system to the point that various custom models can be made 
just by toggling some booleans in GDL. But, we are definitely not there yet.

> 2. If not, where might be a good fissure point in xConq's action/combat system to interface a "black-box" combat 
> resolution system? Hopefully as early as possible after combat being joined.

I would suggest that you take a look at the various Model 0 and Model 1 
functions in 'kernel/combat.c'. Particularly, pay attention to how Model 
1 combat was spliced in.

>                Our idea, if this functionality is not already built into the system, is to add a GDL tag 
> that would turn on this extension and give the system the name and/or location of the combat resolution 
> system to be used.

There is already a 'combat-model' GDL tag. My recommendation would be to 
proceed along the lines of adding a new combat model.

Hope this information is of some help,
    Eric

  parent reply	other threads:[~2004-07-04  0:24 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-04  0:05 Ramsey
2004-07-04  0:24 ` Eric McDonald
2004-07-05 19:17   ` Christopher Wood
2004-07-05 20:18     ` Christopher Wood
2004-07-05 20:27     ` Eric McDonald
2004-07-05 20:44     ` Question on combat procedures Christopher Wood
2004-07-05 20:54       ` Eric McDonald
2004-07-05 21:25       ` Jim Kingdon
2004-07-05 22:12       ` Hans Ronne
2004-07-04  0:30 ` Eric McDonald [this message]
2004-07-04  0:38   ` xConq alternate combat engine project Eric McDonald
2004-07-04  0:45     ` Hans Ronne
2004-07-04  3:39   ` Christopher Wood
2004-07-04  5:22     ` Christopher Wood
2004-07-05  4:58     ` Elijah Meeks
2004-07-05 20:11       ` Christopher Wood
2004-07-04  0:43 ` Hans Ronne

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=40E74E3B.7070207@phy.cmich.edu \
    --to=mcdonald@phy.cmich.edu \
    --cc=salien@earthlink.net \
    --cc=xconq7@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).