🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: aus.games
Article #15729

Chosing languages && user interface anyone?

#15729
From: Graham Matthews
Date: Sat, 14 Mar 1992 08:12
107 lines
5382 bytes
Hi

I would like some advice about chosing a programming language
for writing a game in. I know these sorts of requests usually
lead to language wars, however I am hoping to avoid this by
having a quite stringent list of language requirements.

The game is a campaign-strategy game crossed with a role playing
game. The design to date has a central email server which manages
the game database, and clients with local copies of the database
which allow players to browse the database. 

Ideally I am looking for a language which :-

a) can handle large databases - up to 20 meg for example.
I may need to move my objects around in memory, write them
out to disk etc. eg: if I am running the server on a Mac I
will not be able to keep all the database in memory at once,
so I will need to be able to save parts of it to disk, etc.
This requires the ability to control how memory is allocated,
saved etc in the language.

b) has OO features - this is useful as I will be creating a lot
of objects, and most of the game objects fall nicely into a class
framework.

c) I can save the database out to disk and re-construct it 
easily.

d) I can interface to some sort of automatic parser generator
(eg: yacc) as the game has a scripting language and I would prefer
not to have to hand-code a parser. I would prefer to use an
available tool.

e) is available on a lot of machines. I will be developing in a
Unix environment but there is no reason why the server, and
particularly the clients should not be able to run on any machine.

f) allows me access to system level software like say the UNIX mailer.

NOTE: speed is not a requirement as it is not a real time game.
Also I do not need to do any low-level 'hackey' stuff like bit
fiddling.

At present I have written all my test code in C. C meets the above
requirements as follows :-

a) no problems. I have developed a memory manager which handles
all memory and database issues quite transparently.

b) well, err? Actually with some effort and some clever pre-processing
scripts OO C is quite possible. No inheritance or anything but one
can get objects going quite well.

c) this is where C is great (along with the memory manager). My
memory manager uses handles, so to save the database to disk I do
*not* need to do the usual tree traversal saving all objects,
or restoring them on load up. Rather I can just dump the database
onto disk as a linear array, and load it up likewise, performing
fairly minimal relocation tasks.

d), e) and f) are all obvious in C.

My experience with other languages to date with respect to these
criterion is that there are generally three problems :-

a) handling the memory is a problem. I need to be able to move objects
around - but at the same time keep all references to the moved
objects up to date - load and save objects to disk etc. I need to
be able to get at the memory management. A lot of languages fall
down in this respect.

b) a lot of languages are not widely available on many machines. 

c) a lot of languages do not provide adequate access to system
level software. Being able to start up child processes, or have
inter-process communcation etc is nice. Perhaps this is an OS
question?

Anyway there is my problem. My experience of languages is that
none of them meet my requirements. eg: I have looked at Prolog,
various functional languages, Pascal, etc and all lose out to
C in some respect or another. I have also looked at C++ and
quite franky was not overly impressed, despite the fact that
in many ways it meets all my requirements. 

Comments folks?

Also if anyone out there likes writing user interfaces, knows
a bit about X windows, sunview, etc, and might be interested
in writing a client, please email me. I do not have heaps of
time, and develop mainly in my spare time (not too much of that
either!), so don't expect any great speed from me - but if you
want to develop a client over a time period of say a year,
I'd be interested in talking to you.

Cheers

graham

NOTE: I will be trying to restrict the discussion to rec.games.design
if possible, so if you are interested in the thread, look there.

--
Graham Matthews                 And it's true we are immune
Pure Math, Uni.Sydney, Oz       When fact is fiction and T.V. is reality
graham@maths.su.oz.au
Technical Details
Message-ID: <graham.700560737@dumas>
Path: arc1-ca.pugleaf.net!sparky!uunet!munnari.oz.au!metro!graham

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: fe306,b33d6fe3363d8c9e,start
X-Google-Attributes: gidfe306,public
X-Google-Thread: 1023e9,b33d6fe3363d8c9e,start
X-Google-Attributes: gid1023e9,public
X-Google-Thread: f5f75,b33d6fe3363d8c9e,start
X-Google-Attributes: gidf5f75,public
X-Google-Thread: 10589b,b33d6fe3363d8c9e,start
X-Google-Attributes: gid10589b,public
X-Google-Thread: f9c57,b33d6fe3363d8c9e,start
X-Google-Attributes: gidf9c57,public
X-Google-ArrivalTime: 1992-03-14 01:14:55 PST
Newsgroups: aus.games,rec.games.pbm,rec.games.misc,rec.games.programmer,rec.games.design
Path: arc1-ca.pugleaf.net!sparky!uunet!munnari.oz.au!metro!graham
From: graham@maths.su.oz.au (Graham Matthews)
Subject: Chosing languages && user interface anyone?
Message-ID: <graham.700560737@dumas>
Sender: graham@maths.su.oz.au
Nntp-Posting-Host: dumas.maths.su.oz.au
Organization: Sydney University Computing Service, Sydney, NSW, Australia
Date: Sat, 14 Mar 1992 08:12:17 GMT
Lines: 107