Chosing languages && user interface anyone? From: graham@maths.su.oz.au (Graham Matthews) Date: Sat, 14 Mar 1992 08:12:17 +0000 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 Up