From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,cf9dfbced2c99710 X-Google-Attributes: gid103376,public From: Markus Kuhn Subject: Re: Ada for Game programming Date: 1998/06/20 Message-ID: <358BEDCD.516A09FF@cl.cam.ac.uk>#1/1 X-Deja-AN: 364514334 Content-Transfer-Encoding: 7bit References: <898358420.19245.0.nnrp-08.c2de5e53@news.demon.co.uk> Content-Type: text/plain; charset=us-ascii Organization: Cambridge University, Computer Laboratory Mime-Version: 1.0 Newsgroups: comp.lang.ada Date: 1998-06-20T00:00:00+00:00 List-Id: > I am attempting to write a game in Ada 95. I am aware that this is hardly > the most optimal platform for building a game, [...] On the contrary! Ada is an excellent game programming langauge, just the Ada standard library lacks the necessary functionality. I believe that Ada95 is one of the best programming languages for computer games, especially for video games with many different moving objects that interact in complex ways. Ada's tasks allows such applications to be implemented in a much cleaner and well-structured way than other programming languages such as C++. Remember after all that Ada has been developed for the world's largest buyer of wargame software. Most DoD applications in the end are shoot-em-up games, and the programming techniques used in avionics software and in a video game are strikingly similar. I am surprised to see how boring and without phantasy many examples in introductory programming classes and textbooks are. Student motivation could be increased an order of magnitude if the course goals are tought in the form of video game programming projects. Video games are absolutely excellent examples for teaching object-oriented programming, concurrent programming, and real-time programming. They also can be used as a vehicle to teach some aspects of artificial intelligence techniques. The Ada teaching community should put together a simple kit of Ada packages for game programming in introductory programming classes. This package should provide the following functionality: - user interface (keyboard, mouse, and joystick query) - graphics (procedures for loading bitmaps from files and for moving bitmaps efficiently around in memory, including masked bitblt operations) - sound (procedures for loading sound files into memory and playing them over the audio output) - one or two small excellently structured and documents example games that show how the library is used This educational game API need and should not be very high level, all it should do is to hide hardware dependent aspects of video game programming from the student. Especially implementing the concurrency aspects of games should be the student's task. I think there is a need for a well-writen introductory Ada95 textbook that does not try to just teach the language, but that makes it clear to the student that the goal of the course is to enable her to implement richly structured video games by using the Ada mechanisms for concurrency and program structuring. It is good practice to give students at the start of a course a vision of what they will be able to implement as their final project (e.g., a web browser or a video game). All material presented in the course should them presented to the students together with pointing out the relevance for this final project. Markus -- Markus G. Kuhn, Security Group, Computer Lab, Cambridge University, UK email: mkuhn at acm.org, home page: