Commit | Line | Data |
---|---|---|
bb5d4e1a RS |
1 | \input texinfo @c -*-texinfo-*- |
2 | @c %**start of header | |
3 | @setfilename tasks.info | |
4 | @settitle GNU Task List | |
04e86524 | 5 | @c UPDATE THIS DATE WHENEVER YOU MAKE CHANGES! |
d9e20e57 | 6 | @set lastupdate 16 September 1997 |
bb5d4e1a RS |
7 | @c %**end of header |
8 | ||
9 | @setchapternewpage off | |
10 | ||
bb5d4e1a RS |
11 | @titlepage |
12 | @title GNU Task List | |
d6eb79ad | 13 | @author Free Software Foundation |
bb5d4e1a | 14 | @author last updated @value{lastupdate} |
bb5d4e1a RS |
15 | @end titlepage |
16 | ||
17 | @ifinfo | |
55616d18 | 18 | @node Top, Intro, (dir), (dir) |
d9e60f52 | 19 | @top GNU Task List |
bb5d4e1a | 20 | |
d6eb79ad RS |
21 | This file is updated automatically from @file{tasks.texi}, which was |
22 | last updated on @value{lastupdate}. | |
bb5d4e1a RS |
23 | @end ifinfo |
24 | ||
bb5d4e1a | 25 | @menu |
7c4978a8 RS |
26 | * Intro:: |
27 | * Highest Priority:: | |
cab856b0 RS |
28 | * Documentation:: |
29 | * Unix-Related Projects:: | |
30 | * Kernel Projects:: | |
d6eb79ad | 31 | * Extensions:: |
cab856b0 | 32 | * X Windows Projects:: |
ca0afed9 | 33 | * Encryption Projects:: |
cab856b0 | 34 | * Other Projects:: |
d6eb79ad | 35 | * Compilers:: |
cab856b0 | 36 | * Games and Recreations:: |
bb5d4e1a RS |
37 | @end menu |
38 | ||
7c4978a8 | 39 | @node Intro |
c05524ad RS |
40 | @chapter About the GNU Task List |
41 | ||
7c4978a8 | 42 | If you did not obtain this file directly from the GNU project and |
9459fac1 JG |
43 | recently, please check for a newer version. You can ftp the task list |
44 | from any GNU FTP host in directory @file{/pub/gnu/tasks/}. The task | |
7c4978a8 | 45 | list is available there in several different formats: @file{tasks.text}, |
541d49e1 JG |
46 | @file{tasks.texi}, @file{tasks.info}, and @file{tasks.dvi}. The GNU |
47 | HURD task list is also there in file @file{tasks.hurd}. | |
48 | @c to fix an overfill, join the paragraphs -len | |
7c4978a8 RS |
49 | The task list is also available on the GNU World Wide Web server: |
50 | @url{http://www.gnu.ai.mit.edu/prep/tasks_toc.html}. | |
c05524ad | 51 | |
d9e60f52 DM |
52 | If you start working steadily on a project, please let @code{gnu@@prep} |
53 | know. We might have information that could help you; we'd also like to | |
54 | send you the GNU coding standards. | |
bb5d4e1a | 55 | |
c05524ad RS |
56 | Because of the natural tendency for most volunteers to write programming |
57 | tools or programming languages, we have a comparative shortage of | |
58 | applications useful for non-programmer users. Therefore, we ask you to | |
59 | consider writing such a program. | |
bb5d4e1a | 60 | |
d17fd035 RS |
61 | Typically, a new program that does a completely new job advances |
62 | the GNU project, and the free software community, more than an | |
63 | improvement to an existing program. | |
64 | ||
65 | Typically, new features or new programs advance the free software | |
66 | community more, in the long run, than porting existing programs. One | |
67 | reason is that portable new features and programs benefit people on many | |
68 | platforms, not just one. At the same time, there tend to be many | |
69 | volunteers for porting---so your help will be more valuable in other | |
70 | areas, where volunteers are more scarce. | |
71 | ||
72 | Typically, it is more useful to extend a program in functionality than | |
73 | to improve performance. Users who use the new functionality will | |
74 | appreciate it very much, if they use it; but even when they benefit from | |
75 | a performance improvement, they may not consider it very important. | |
bb5d4e1a | 76 | |
7c4978a8 RS |
77 | @node Highest Priority |
78 | @chapter Highest Priority | |
79 | ||
80 | This task list mentions a large number of tasks that would be more or | |
81 | less useful. With luck, at least one of them will inspire you to start | |
82 | writing. It's better for you to work on any task that inspires you than | |
83 | not write free software at all. | |
84 | ||
85 | But if you would like to work on what we need most, here is a list of | |
86 | high priority projects. | |
87 | ||
88 | @itemize @bullet | |
89 | @item | |
632c6364 | 90 | If you are good at writing documentation, please do that. |
7c4978a8 RS |
91 | |
92 | @item | |
93 | If you are very good at C programming and interested in kernels, you can | |
541d49e1 JG |
94 | help develop the GNU HURD, the kernel for the GNU system. Please have a |
95 | look at @url{http://www.gnu.ai.mit.edu/software/hurd/hurd.html}, and | |
96 | then get a copy of the latest HURD task list from: | |
97 | ||
98 | @itemize @bullet | |
99 | ||
100 | @item | |
101 | @url{http://www.gnu.ai.mit.edu/prep/tasks.hurd.html}, via the World Wide | |
102 | Web. | |
103 | ||
104 | @item | |
105 | @url{ftp://prep.ai.mit.edu/pub/gnu/tasks/tasks.hurd}, via anonymous FTP. | |
106 | ||
107 | @item | |
108 | @email{gnu@@prep.ai.mit.edu} via e-mail. | |
109 | ||
110 | @end itemize | |
7c4978a8 RS |
111 | |
112 | @item | |
541d49e1 JG |
113 | If you are a Scheme fan, you can help develop Guile. Please have a look |
114 | at the URL @url{http://www.gnu.ai.mit.edu:/software/guile/guile.html} | |
115 | and then contact @email{guile@@gnu.ai.mit.edu}. | |
7c4978a8 RS |
116 | |
117 | @item | |
118 | Help develop the GNU web browser, E-scape. | |
119 | ||
120 | @item | |
121 | Help develop Windows NT emulation for GNU systems---for example, WINE. | |
122 | ||
123 | @item | |
124 | Implement the Kermit data transfer protocol. (See below.) | |
125 | ||
126 | @item | |
632c6364 RS |
127 | Develop a free compatible replacement for Qt, a GUI toolkit library. Qt |
128 | is not free software, because users are prohibited from distributing | |
129 | modified versions. Thus, Qt cannot be included in a free operating | |
130 | system (adding it would make the system as a whole non-free). | |
131 | ||
132 | But some developers are writing free applications that use Qt and cannot | |
133 | run without it. These programs, although free software, are useless for | |
134 | free operating systems because there is no way to make them run. | |
135 | ||
136 | This is leading to a serious problem, and a free replacement for Qt is | |
137 | the only solution. Hence the high degree of urgency of this project. | |
7c4978a8 RS |
138 | |
139 | @item | |
140 | Develop a substitute, which runs on GNU systems, for some very popular | |
141 | or very important application that many non-programmers use on Windows, | |
142 | and which has no comparable free equivalent now. | |
143 | @end itemize | |
144 | ||
d6eb79ad | 145 | @node Documentation |
bb5d4e1a RS |
146 | @chapter Documentation |
147 | ||
148 | We very urgently need documentation for some parts of the system | |
149 | that already exist or will exist very soon: | |
150 | ||
151 | @itemize @bullet | |
bb5d4e1a | 152 | @item |
c05524ad RS |
153 | A C reference manual. (RMS made a try at one, which you could start |
154 | with). | |
bb5d4e1a RS |
155 | |
156 | @item | |
157 | A manual for Ghostscript. | |
c05524ad | 158 | |
c05524ad RS |
159 | @item |
160 | A manual for TCSH. | |
bb5d4e1a RS |
161 | |
162 | @item | |
163 | A manual for PIC (the graphics formatting language). | |
164 | ||
bb5d4e1a RS |
165 | @item |
166 | A manual for Oleo. | |
167 | ||
168 | @item | |
169 | A book on how GCC works and why various machine descriptions | |
170 | are written as they are. | |
171 | ||
172 | @item | |
173 | A manual for programming X-window applications. | |
174 | ||
175 | @item | |
176 | Manuals for various X window managers. | |
177 | ||
178 | @item | |
261597d4 | 179 | Reference cards for those manuals that don't have them: C |
c05524ad | 180 | Compiler, Make, Texinfo, Termcap, and maybe the C Library. |
bb5d4e1a RS |
181 | |
182 | @item | |
261597d4 | 183 | Many utilities need documentation, including @code{grep} and others. |
bb5d4e1a RS |
184 | @end itemize |
185 | ||
d6eb79ad | 186 | @node Unix-Related Projects |
d9e60f52 | 187 | @chapter Unix-Related Projects |
bb5d4e1a | 188 | |
d9e60f52 | 189 | @itemize @bullet |
bb5d4e1a RS |
190 | @item |
191 | An improved version of the POSIX utility @code{pax}. There is one on | |
c05524ad | 192 | Usenet, but it is said to be poorly written. Talk with |
d7d39d78 | 193 | @code{thomas@@gnu.ai.mit.edu} about this project. |
bb5d4e1a | 194 | |
5aba97f2 | 195 | @ignore |
bb5d4e1a RS |
196 | @item |
197 | Modify the GNU @code{dc} program to use the math routines of GNU | |
198 | @code{bc}. | |
5aba97f2 | 199 | @end ignore |
bb5d4e1a RS |
200 | |
201 | @item | |
202 | A @code{grap} preprocessor program for @code{troff}. | |
203 | ||
204 | @item | |
205 | Various other libraries. | |
206 | ||
207 | @item | |
208 | An emulation of SCCS that works using RCS. | |
c05524ad | 209 | |
948c942f | 210 | @item |
c05524ad RS |
211 | Less urgent: @code{diction}, @code{explain}, and @code{style}, or |
212 | something to do the same kind of job. Compatibility with Unix is not | |
213 | especially important for these programs. | |
bb5d4e1a RS |
214 | @end itemize |
215 | ||
d6eb79ad | 216 | @node Kernel Projects |
d9e60f52 | 217 | @chapter Kernel-Related Projects |
bb5d4e1a | 218 | |
d9e60f52 | 219 | @itemize @bullet |
bb5d4e1a | 220 | @item |
5aba97f2 | 221 | An over-the-ethernet debugger stub that will allow the kernel to be |
bb5d4e1a RS |
222 | debugged from GDB running on another machine. |
223 | ||
5aba97f2 RS |
224 | This stub needs its own self-contained implementation of all protocols |
225 | to be used, since the GNU system will use user processes to implement | |
226 | all but the lowest levels, and the stub won't be able to use those | |
227 | processes. If a simple self-contained implementation of IP and TCP is | |
228 | impractical, it might be necessary to design a new, simple protocol | |
229 | based directly on ethernet. It's not crucial to support high speed or | |
230 | communicating across gateways. | |
231 | ||
232 | It might be possible to use the Mach ethernet driver code, but it would | |
233 | need some changes. | |
234 | ||
bb5d4e1a RS |
235 | @item |
236 | A shared memory X11 server to run under MACH is very desirable. The | |
237 | machine specific parts should be kept well separated. | |
c05524ad RS |
238 | |
239 | @item | |
240 | An implementation of CIFS, the ``Common Internet File System,'' for the | |
241 | HURD. This protocol is an offshoot of SMB. | |
bb5d4e1a RS |
242 | @end itemize |
243 | ||
d6eb79ad | 244 | @node Extensions |
d9e60f52 | 245 | @chapter Extensions to Existing GNU Software |
bb5d4e1a | 246 | |
d9e60f52 | 247 | @itemize @bullet |
bb5d4e1a | 248 | @item |
d9e60f52 DM |
249 | Enhance GCC. See files @file{PROJECTS} and @file{PROBLEMS} in the GCC |
250 | distribution. | |
bb5d4e1a | 251 | |
a81ed99e RS |
252 | @item |
253 | Interface GDB to Guile, so that users can write debugging commands in | |
254 | Scheme. This would also make it possible to write, in Scheme, a | |
255 | graphical interface that uses Tk and is tightly integrated into GDB. | |
256 | ||
bb5d4e1a | 257 | @item |
b6a061a8 | 258 | Rewrite GNU @code{sed} completely, to make it cleaner. |
bb5d4e1a | 259 | |
2eebaacd | 260 | @item |
b6a061a8 RS |
261 | Rewrite Automake and Deja-GNU in Scheme, so they can run in Guile. |
262 | Right now they are written in Perl and TCL, respectively. There are | |
263 | also other programs, not terribly long, which we would also like | |
264 | to have rewritten in Scheme. | |
265 | ||
266 | @item | |
267 | Finish the partially-implemented C interpreter project. | |
2eebaacd RS |
268 | |
269 | @item | |
b74dc89e | 270 | Help with the development of GNUStep, a GNU implementation of the |
2eebaacd RS |
271 | OpenStep specification. |
272 | ||
5aba97f2 RS |
273 | @item |
274 | Add features to GNU Make to record the precise rule with which each file | |
275 | was last recompiled; then recompile any file if its rule in the makefile | |
276 | has changed. | |
277 | ||
bb5d4e1a RS |
278 | @item |
279 | Add a few features to GNU @code{diff}, such as handling large input | |
280 | files without reading entire files into core. | |
281 | ||
bb5d4e1a RS |
282 | @item |
283 | An @code{nroff} macro package to simplify @code{texi2roff}. | |
284 | ||
285 | @item | |
286 | A queueing system for the mailer Smail that groups pending work by | |
287 | destination rather than by original message. This makes it possible | |
288 | to schedule retries coherently for each destination. Talk to | |
d9e60f52 | 289 | @code{tron@@veritas.com} about this. |
bb5d4e1a | 290 | |
5aba97f2 | 291 | Smail also needs a new chief maintainer. |
bb5d4e1a | 292 | |
5aba97f2 RS |
293 | @item |
294 | Enhanced cross-reference browsing tools. (We now have something at | |
295 | about the level of @code{cxref}.) We also could use something like | |
296 | @code{ctrace}. (Some people are now working on this project.) | |
bb5d4e1a RS |
297 | @end itemize |
298 | ||
d6eb79ad | 299 | @node X Windows Projects |
d9e60f52 | 300 | @chapter X Windows Projects |
bb5d4e1a | 301 | |
d9e60f52 | 302 | @itemize @bullet |
bb5d4e1a RS |
303 | @item |
304 | An emulator for Macintosh graphics calls on top of X Windows. | |
305 | ||
bb5d4e1a | 306 | @item |
ca0afed9 RS |
307 | A music playing and editing system. This should work with LilyPond, a |
308 | free program for music typesetting. | |
7263f2f7 | 309 | |
bb5d4e1a RS |
310 | @item |
311 | A program to edit dance notation (such as labanotation) and display | |
312 | dancers moving on the screen. | |
313 | ||
b10fca68 RS |
314 | @item |
315 | Port the Vibrant toolkit to work on X without using Motif. | |
316 | ||
bb5d4e1a RS |
317 | @item |
318 | A program to display and edit Hypercard stacks. | |
319 | ||
bb5d4e1a RS |
320 | @item |
321 | A paint program, supporting both bitmap-oriented operations and | |
322 | component-oriented operations. @code{xpaint} exists, but isn't very | |
323 | usable. | |
cab856b0 | 324 | |
2eb394c2 RS |
325 | @item |
326 | A vector-based drawing program in the spirit of Adobe Illustrator | |
327 | and Corel Draw. | |
328 | ||
c05524ad RS |
329 | @item |
330 | An interactive 3D modeling utility with rendering/raytracing capabilities. | |
331 | ||
332 | @item | |
333 | A program for graphic morphing of scanned photographs. | |
bb5d4e1a RS |
334 | @end itemize |
335 | ||
ca0afed9 RS |
336 | @node Encryption Projects |
337 | @chapter Encryption Projects | |
bb5d4e1a | 338 | |
ca0afed9 RS |
339 | These projects need to be written outside the US by people who are not |
340 | US citizens, to avoid problems with US export control law. | |
bb5d4e1a | 341 | |
d9e60f52 | 342 | @itemize @bullet |
c05524ad | 343 | @item |
ca0afed9 | 344 | A free library for public-key encryption. |
c05524ad | 345 | |
ca0afed9 | 346 | This library should use the Diffie-Helman algorithm for public key |
c05524ad | 347 | encryption, not the RSA algorithm, because the Diffie-Helman patent in |
ca0afed9 RS |
348 | the US will expire in 1997. |
349 | ||
350 | @item | |
351 | A free program for sended encrypted mail using public-key encryption. | |
352 | ||
353 | This program should use the library described above for the public-key | |
354 | encryption. It should use triple-DES, not IDEA, for block encryption, | |
355 | because IDEA is patented in many countries and the patents will not | |
356 | expire soon. | |
f86b32b7 RS |
357 | |
358 | In other respects, it should be like PGP. If the new version of PGP | |
359 | no longer uses RSA and IDEA, compatibility with it may be feasible. | |
360 | ||
361 | There is a suggestion that the Blowfish algorithm might be a good choice | |
362 | for the non-public-key block encryption. I'm not an encryption expert | |
363 | so I don't have an opinion about that. | |
c05524ad | 364 | |
c05524ad | 365 | Many people believe that PGP is free software, but that is not actually |
7263f2f7 RS |
366 | true. The distribution terms do not allow everyone to use and |
367 | redistribute it. We used to think that these restrictions had been | |
368 | imposed by the patent holders for the RSA and IDEA algorithms, and that | |
369 | PGP could be free software if these algorithms were replaced by | |
370 | alternatives. But we have since learned that the owners of PGP are | |
371 | themselves unwilling to make it free software. Writing a new program is | |
372 | the only way to get free software for this job. | |
373 | ||
374 | @item | |
375 | A free secure telnet program more or less like ssh/sshd. Since this | |
376 | requires a public key encryption algorithm, it is closely related to the | |
377 | preceding item. | |
378 | ||
379 | This program should follow the draft standard for ssh. As always, it | |
380 | cannot implement the RSA algorithm, but must instead support the | |
381 | alternatives that will be patent-free in late 1997. It cannot support | |
f86b32b7 RS |
382 | IDEA, but can use triple-DES and/or Blowfish or other non-patented |
383 | alternatives. | |
c05524ad | 384 | |
bb5d4e1a | 385 | @item |
eee331a5 RS |
386 | Free software for doing secure commercial transactions on the web. |
387 | This too needs public key encryption. | |
ca0afed9 RS |
388 | @end itemize |
389 | ||
390 | @node Other Projects | |
391 | @chapter Other Projects | |
bb5d4e1a | 392 | |
ca0afed9 RS |
393 | If you think of others that should be added, please |
394 | send them to @code{gnu@@prep.ai.mit.edu}. | |
395 | ||
396 | @itemize @bullet | |
a47e454e | 397 | @item |
7c4978a8 RS |
398 | A free program that can transfer files on a serial line |
399 | using the same protocol that Kermit uses. | |
a47e454e | 400 | |
bb5d4e1a RS |
401 | @item |
402 | An imitation of Page Maker or Ventura Publisher. | |
403 | ||
404 | @item | |
405 | An imitation of @code{dbase2} or @code{dbase3} (How dbased!) | |
406 | ||
bb5d4e1a RS |
407 | @item |
408 | A bulletin board system. There are a few free ones, but they don't have | |
409 | all the features that people want in such systems. It would make sense | |
410 | to start with an existing one and add the other features. | |
411 | ||
412 | @item | |
c05524ad RS |
413 | A general ledger program, including support for accounts payable, |
414 | account receivables, payroll, inventory control, order processing, etc. | |
415 | ||
416 | @item | |
417 | A teleconferencing program which does the job of CU-SeeMe (which is, | |
418 | alas, not free software). | |
bb5d4e1a | 419 | |
bb5d4e1a RS |
420 | @item |
421 | A program to typeset C code for printing. | |
261597d4 | 422 | For ideas on what to do, see the book, |
bb5d4e1a RS |
423 | |
424 | @display | |
425 | Human Factors and Typography for More Readable Programs, | |
426 | Ronald M. Baecker and Aaron Marcus, | |
427 | Addison-Wesley, ISBN 0-201-10745-7 | |
428 | @end display | |
429 | ||
430 | (I don't quite agree with a few of the details they propose.) | |
431 | ||
7c4978a8 | 432 | @item |
541d49e1 JG |
433 | A program to convert Microsoft Word documents to text/enriched, TeX, |
434 | LaTeX, Texinfo, or some other format that free software can edit. | |
7c4978a8 RS |
435 | |
436 | @item | |
437 | A free replacement for the semi-free Qt library. | |
438 | ||
ca0afed9 RS |
439 | @item |
440 | High-quality music compression software. | |
441 | (Talk with phr@@netcom.com for relevant suggestions.) | |
442 | ||
443 | @item | |
444 | A program to play sound distributed in ``Real Audio'' format. | |
445 | ||
446 | @item | |
447 | A program to generate ``Real Audio'' format from audio input. | |
448 | ||
632c6364 | 449 | @ignore @c Software patents have made this domain off limits to free software. |
ca0afed9 RS |
450 | @item |
451 | An MPEG III audio encoder/decoder (but it is necessary to check, first, | |
452 | whether patents make this impossible). | |
632c6364 | 453 | @end ignore |
ca0afed9 | 454 | |
bb5d4e1a RS |
455 | @item |
456 | Speech-generation programs (there is a program from Brown U that you | |
457 | could improve). | |
458 | ||
459 | @item | |
948c942f RS |
460 | Speech-recognition programs (single-speaker, disconnected speech is sufficient). |
461 | ||
bb5d4e1a | 462 | @item |
b6a061a8 RS |
463 | More scientific mathematical subroutines. |
464 | (A clone of SPSS is being written already.) | |
bb5d4e1a RS |
465 | |
466 | @item | |
467 | Statistical tools. | |
468 | ||
eee331a5 RS |
469 | @item |
470 | A scientific data collection and processing tool, | |
471 | perhaps something like Scientific Workbench and/or Khoros, | |
472 | ||
bb5d4e1a RS |
473 | @item |
474 | Software to replace card catalogues in libraries. | |
475 | ||
ca0afed9 RS |
476 | @item |
477 | A project-scheduling package that accepts a list of project sub-tasks | |
478 | with their interdependencies, and generates Gantt charts and Pert charts | |
479 | and all the other standard project progress reports. | |
480 | ||
bb5d4e1a RS |
481 | @item |
482 | Grammar and style checking programs. | |
483 | ||
bb5d4e1a RS |
484 | @item |
485 | A translator from Scheme to C. | |
486 | ||
eee331a5 RS |
487 | @item |
488 | A fast emulator for the i386 which works by translating | |
489 | machine instructions into the machine language of the host machine. | |
490 | (Support for emulation of other machines would enhance the program | |
491 | but might make it much more difficult.) | |
492 | ||
ca0afed9 RS |
493 | @item |
494 | A map display or geographic information system. | |
495 | ||
bb5d4e1a RS |
496 | @item |
497 | Optical character recognition programs; especially if suitable for | |
498 | scanning documents with multiple fonts and capturing font info as well | |
261597d4 | 499 | as character codes. Work is being done on this, but more help is needed. |
5aba97f2 | 500 | |
bb5d4e1a RS |
501 | @item |
502 | A program to scan a line drawing and convert it to Postscript. | |
503 | ||
504 | @item | |
505 | A program to recognize handwriting. | |
506 | ||
507 | @item | |
508 | A pen based interface. | |
509 | ||
bb5d4e1a RS |
510 | @item |
511 | CAD software, such as a vague imitation of Autocad. | |
ca0afed9 RS |
512 | |
513 | @item | |
514 | A program to receive data from a serial-line tap to facilitate the | |
515 | reverse-engineering of communication protocols. | |
bb5d4e1a RS |
516 | @end itemize |
517 | ||
d6eb79ad RS |
518 | @node Compilers |
519 | @chapter Compilers for Other Batch Languages | |
bb5d4e1a | 520 | |
d9e60f52 | 521 | Volunteers are needed to write parsers/front ends for languages such as |
7c4978a8 RS |
522 | Algol 60, Algol 68, PL/I, Cobol, Fortran 90, Eiffel, or whatever, to be |
523 | used with the code generation phases of the GNU C compiler. | |
2eebaacd | 524 | |
cab856b0 RS |
525 | @c Fortran status is here so gnu@prep and the volunteer coordinators |
526 | @c don't have to answer the question -len | |
2eebaacd | 527 | You can get the status of the Fortran front end with this command: |
cab856b0 | 528 | |
2eebaacd RS |
529 | @example |
530 | finger -l fortran@@gnu.ai.mit.edu | |
cab856b0 | 531 | @end example |
bb5d4e1a | 532 | |
d6eb79ad RS |
533 | @node Games and Recreations |
534 | @chapter Games and Recreations | |
bb5d4e1a | 535 | |
c05524ad RS |
536 | Video-oriented games that work with the X window system. |
537 | ||
d9e60f52 | 538 | @itemize @bullet |
bb5d4e1a RS |
539 | @item |
540 | Empire (there is a free version but it needs upgrading) | |
541 | ||
2eebaacd RS |
542 | @item |
543 | An ``empire builder'' system that makes it easy to write various kinds of | |
544 | simulation games. | |
545 | ||
c05524ad RS |
546 | @item |
547 | Improve GnuGo, which is not yet very sophisticated. | |
548 | ||
bb5d4e1a | 549 | @item |
632c6364 | 550 | Write imitations of some popular video game: |
bb5d4e1a | 551 | |
d9e60f52 | 552 | @itemize - |
bb5d4e1a RS |
553 | @item |
554 | Space war, Asteroids, Pong, Columns. | |
555 | @item | |
556 | Defending cities from missiles. | |
557 | @item | |
2eebaacd | 558 | Plane shoots at lots of other planes, tanks, etc. |
bb5d4e1a RS |
559 | @item |
560 | Wizard fights fanciful monster. | |
561 | @item | |
562 | A golf game. | |
563 | @item | |
564 | Program a robot by sticking building blocks together, | |
565 | then watch it explore a world. | |
566 | @item | |
7c4978a8 RS |
567 | Biomorph evolution (as in Scientific American and @cite{The Blind |
568 | Watchmaker}). | |
bb5d4e1a RS |
569 | @item |
570 | A program to display effects of moving at relativistic speeds. | |
571 | @end itemize | |
bb5d4e1a RS |
572 | @end itemize |
573 | ||
574 | We do not need @code{rogue}, as we have @code{hack}. | |
575 | ||
576 | @contents | |
577 | ||
578 | @bye |