public inbox for xconq7@sourceware.org
 help / color / mirror / Atom feed
From: Peter Garrone <pgarrone@acay.com.au>
To: Stan Shebs <shebs@apple.com>
Cc: xconq7@sources.redhat.com
Subject: Re: Xconq language thoughts
Date: Thu, 20 Nov 2003 15:10:00 -0000	[thread overview]
Message-ID: <20031120144348.GA2078@leonardo> (raw)
In-Reply-To: <3FBC23C2.80204@apple.com>

On Wed, Nov 19, 2003 at 06:15:30PM -0800, Stan Shebs wrote:
> In all the discussion of extension languages for Xconq, the one thing I look
> for is "what is it for". It's always lots of fun to talk about languages and
> their good/bad points, but what do the game players and designers get 
> for it?
> 
> For instance, many of the games in Xconq are based on a randomly generated
> world, the purpose being to provide a new and different experience each 
> time.
> This is completely opposite to 95% of commercial game design, where 
> everything
> is so predetermined that you can buy a printed walkthrough at the bookstore.
> Random generation is harder; you can't just write a script for AI 
> behavior, the
> AI actually has to be able to do its own analysis. In return, you get a game
> where you can't win by knowing to send a full transport to 34,45 after 
> turn 30;
> transports may even be the totally wrong strategy. Now if people want to 
> write
> scripted scenarios for Xconq, that would be an interesting addition; but I
> haven't seen very many requests for that.
> 
> Another consideration is that there is a tension between generality and
> specificity; if you generalize everything a lot, you get more flexibility,
> but you also have to do more work to get something working.  In the most
> extreme case, you end up with one of those generic "game engines" that
> amounts to little more than a poor reimplementation of event loop and
> memory manager. Xconq is consciously designed to support only a very
> specific class of games; in return you get lots of functionality that "just
> works". For instance, there has long been an ability to write AIs customized
> for a particular game design, but so far everybody has preferred to just
> sponge off the generic AI instead. (Not too surprising, since AI writing
> is hard, and there is no possible API that can help you with the hard 
> parts.)
> 
> So when thinking about language integration, don't think about resumes
> or user familiarity or whatever; think about how much Xconq machinery you
> want to use as-is, vs how much you want to change.
> 
> Stan
>

I find the C code in the kernel to be reasonably structured and useable.
I dont see how C++ would increase its efficiency or useability
significantly. I suppose there is some replicated code there, that
might disappear into a base class. But to do that well would require a
lot of OO design effort. I dont see how the current kernel is a
developmental brick wall. When it does become one, then rewrite in
a new language.

I dont like the tcl/tk much. I cant get it to work well. The interface
is unresponsive. I think we should stick to one language as far as
possible. I am comfortable with C. I am also comfortable with GTK
without special designer tools. Just work it all out in the code.
I hate those interfaces where all the pixel positions are hard-coded.

I would like to see development in terms of 
1) integrating pathfinding into the AI, 
2) setting up a combat model so that multiple units on differing adjacent 
   hexes attack simultaneously, 
3) setting up a combat/turn system so that all combats can be resolved 
   at the end of a turn by a referee somewhere, so that play by email 
   would be possible without cheating, and tournaments can be set up.
4) Make it easier to implement the vast existing hex-cell game library,
   which have been game-tested over time. e.g. russian campaign.
5) Develop the AI interface so that a wider variety of AI algorithms
   might be tested, with game-specific specialization, 
   e.g. neural nets, genetic, perhaps simple parametric
   search might work. I havent gone into the details here.

None of this development is particularly language specific, just pick
good algorithms and implement them. There is no magic language bullet
to fix this. I dont think this is particularly generalizing the existing
functionality, just trying to extend it to its target market.

Hope this is on thread.
 Peter

  parent reply	other threads:[~2003-11-20 14:33 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-20  2:16 Stan Shebs
2003-11-20  2:47 ` Brandon J. Van Every
2003-11-20  3:05   ` Stan Shebs
2003-11-20  9:47     ` Brandon J. Van Every
2003-11-20 10:52       ` Bruno Boettcher
2003-11-20 15:10 ` Peter Garrone [this message]
2003-11-20 11:15 Brandon J. Van Every

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=20031120144348.GA2078@leonardo \
    --to=pgarrone@acay.com.au \
    --cc=shebs@apple.com \
    --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).