-affected in BUILD_ARK gesetzt
[aymargeddon/current.git] / html / doc / Techdoc.lyx
1 #LyX 1.3 created this file. For more info see http://www.lyx.org/
2 \lyxformat 221
3 \textclass article
4 \language english
5 \inputencoding auto
6 \fontscheme default
7 \graphics default
8 \paperfontsize default
9 \spacing single 
10 \papersize Default
11 \paperpackage a4
12 \use_geometry 0
13 \use_amsmath 0
14 \use_natbib 0
15 \use_numerical_citations 0
16 \paperorientation portrait
17 \secnumdepth 3
18 \tocdepth 3
19 \paragraph_separation indent
20 \defskip medskip
21 \quotes_language english
22 \quotes_times 2
23 \papercolumns 1
24 \papersides 1
25 \paperpagestyle default
26
27 \layout Title
28
29 Technisches zu 
30 \begin_inset Quotes eld
31 \end_inset 
32
33 Die letzten Tage von Aymargeddon
34 \begin_inset Quotes erd
35 \end_inset 
36
37
38 \layout Author
39
40 Aymargeddon Development Team
41 \layout Date
42
43 9.10.2003
44 \layout Standard
45
46
47 \emph on 
48 Warnung: Die Information in diesem Dokument ist zu nicht unerheblichen Teilen
49  veraltet.
50 \layout Section
51
52 Generelles Design
53 \layout Standard
54
55 Das Spiel besteht aus folgenden Komponenten:
56 \layout Enumerate
57
58 Eine Relationale Datenbank
59 \layout Enumerate
60
61 Ein Dämonprozess im Server
62 \layout Enumerate
63
64 Serverseitige Scripten zur Benutzerinteraktion
65 \layout Enumerate
66
67 Ein Weltengenerator
68 \layout Enumerate
69
70 FROGS
71 \layout Enumerate
72
73 Ein Programm, dass die Integrität der Datenbank überprüft
74 \layout Enumerate
75
76 Eine Bibliothek für gemeinsame Funktionalität
77 \layout Standard
78
79 Die Aufgaben dieser Komponenten stellen sich wie folgt dar:
80 \layout Section
81
82 Datenbank
83 \layout Standard
84
85 In dieser Datenbank wird der Zustand aller Spielwelten gespeichert.
86  Außerdem alle Spielerdaten, alle Spieleraktionen und alle Nachrichten an
87  Spieler.
88  Sie sorgt mittels ihrer Transaktionen dafür, dass auch bei konkurierendem
89  Zugriff die Datenintegrität immer erhalten bleibt.
90 \layout Standard
91
92 Wir verwenden MySQL zur Implementierung und PhpMyAdmin zur Administrierung
93  der Datenbank.
94 \layout Standard
95
96 Felder, die in vielen Tabellen vorkommen und immer wieder das selbe bedeuten:
97 \layout Description
98
99 GAME Das ist die Id des Spiels.
100  Dadurch können alle Spiele in der selben Datenbank verwaltet werden.
101  Es kann maximal max(unsigned smallint) Spiele gleichzeitig geben.
102 \layout Description
103
104 LOCATION Feldkoordinaten auf dem Hexraster-Torus.
105  Ein String der Form <x>_<y>.
106  Die maximale Größe der Welt ist max(unsigned smallint) für die Y-Koordinate
107  und max(unsingend smallint)*2 für die X-Koordinate.
108 \layout Description
109
110 PLAYER,OWNER,...
111  Spieler-Ids.
112  Die Spieler-Ids bezeichnen den Spieler 
113 \emph on 
114 unabhängig 
115 \emph default 
116 von seiner Rolle.
117  Sie gilt spielübergreifend.
118  Die maximale Anzahl Spieler ist auf max(signed smallint) beschränkt.
119 \layout Subsection
120
121 Bewegung und Kämpfe
122 \layout Standard
123
124 Einheiten, die sich bewegen, bleiben im Feld stehen, werden aber auf nicht
125  available gesetzt.
126  Am Ende des Befehls werden sie in das neue Feld gesetzt.
127  Sie werden nur wieder aktiv, nachdem alle denkbaren Kämpfe ausgeführt wurden.
128 \layout Standard
129
130 Kämpfe werden als Quasi-Befehl wieder in die Befehlsqueu geschrieben.
131  Erst nach Ablauf dieses Quasi-Befehls wird ausgewertet, welche Einheiten
132  auf welcher Seite am Kampf teilnehmen.
133 \layout Standard
134
135 Einheiten, die sich zurückziehen, werden ganz normal bewegt.
136 \layout Subsection
137
138 Tabelle MAP
139 \layout Standard
140
141 Das ist die zentrale Karte.
142  Für jedes Feld in jedem Spiel gibt es genau einen Eintrag.
143 \layout Description
144
145 HOME Eigentümer der Heimatstadt.
146  Das Feld ist -1, wenn es eine Heimatstadt ist, aber noch niemand spielt.
147 \layout Description
148
149 OCCUPANT Besitzer des Feldes
150 \layout Description
151
152 TERRAIN kann sein eins aus: WATER, CITY, MOUNTAIN, ISLE, PLAIN
153 \layout Description
154
155 PLAGUE ist das Feld verseucht? Kann eine aus einer Liste von Seuchen sein
156 \layout Description
157
158 ATTACKER Hier steht der leitende Erdling eines Angriffs drinnen so lange
159  gekämpft wird.
160  0 sonst.
161  Man kann hier also auch ablesen, ob das Feld umkämpft ist.
162 \layout Description
163
164 LAST_PRODUCE Zu dieser Zeit wurde zu letzt ein Krieger (bei Städten) bzw.
165  ein Priester (bei Tempeln) produziert.
166  Der Dämon entscheidet anhand dieser Daten, wann neue Einheiten produziert
167  werden.
168 \layout Description
169
170 FLUXLINE Hier stehen die Richtungen, in die sich Avatare momentan kostenlos
171  bewegen können.
172  Die benachbarten Richtungen kosten 1 MP, alle anderen 2MP.
173  Dieses Feld wird bei einer Änderung der IdS für die gesamte Karte neu berechnet.
174 \layout Description
175
176 TEMPLE Steht auf 'Y', wenn dort ein Tempel gebaut wurde, auf 'N' sonst.
177 \layout Subsection
178
179 Tabelle MOBILE
180 \layout Standard
181
182 In dieser Tabelle werden alle beweglichen Objekte abgespeichert.
183  Das sind also zunächst: Krieger, Helden, Priester, Avatare und Archen.
184  Dabei gibt es nur einen Eintrag für gleichartige Einheiten im selben Feld
185  im selben Spiel.
186 \layout Standard
187
188 Manche Felder werden nur für manche Objekttypen benutzt.
189  Hier wird also ein bisschen Speicherplatz geopfert um die Struktur möglichst
190  einfach zu halten.
191 \layout Description
192
193 ID Eine eindeutige ID.
194 \layout Description
195
196 TYPE Ist einer aus WARRIOR, HERO, PRIEST, AVATAR, ARK
197 \layout Description
198
199 OWNER Der Spieler, der die Einheit steuert
200 \layout Description
201
202 ADORING Der Gott, den der Priester anbetet
203 \layout Description
204
205 COUNT Anzahl
206 \layout Description
207
208 AVAILABLE Wird auf 0 gesetzt, wenn die Einheit beschäftigt ist (sich also
209  z.B.
210  bewegt)
211 \layout Description
212
213 STATUS Eines aus HELP, BLOCK, PEACE.
214  Avatarstatus.
215 \layout Subsection
216
217 Tabelle COMMAND 
218 \layout Standard
219
220 In diese Tabelle tragen die Scripten die Aktionen der Spieler ein und der
221  Dämon führt diese dann aus.
222  Zusätzlich kommen hier auch noch die Quasi-Befehle des Dämons selber rein.
223  Das ist alles, wo er sich für später dran errinnern will.
224  Zur Zeit wird dieser Mechanismus nur für Kämpfe benötigt.
225 \layout Description
226
227 TIME Die Zeit zu der das Kommando eingetragen wurde
228 \layout Description
229
230 ACK Hier wird vermerkt, dass der Dämon das Kommando zur Kenntnis genommen
231  hat, aber noch nicht ausgeführt.
232  Das ist nötig weil bei vielen Kommandos schon am Anfang Nachrichten generiert
233  werden müssen, lange bevor sie ausgeführt werden.
234  Z.B.
235  erhalten die Eigentümer eines Feldes, in das man sich bewegt, eine Nachricht,
236  schon wenn man sich auf den Weg macht.
237 \layout Description
238
239 DONE Hier werden abgearbeitete Befehle vermerkt
240 \layout Standard
241
242 Alle drei Felder sind Timestamps und müssen immer GMT enthalten!
243 \layout Subsection
244
245 Tabelle MESSAGE
246 \layout Standard
247
248 In diese Tabelle trägt der Dämon Nachrichten an die Spieler ein und die
249  Scripten zeigen diese dann an.
250  Nachrichten an Alle Spieler müssen für jeden Spieler einzeln eingetragen
251  werden.
252  Wenn man es anders machen wollte, müsste man wiederum für jeden Spieler
253  vermerken, welche Nachrichten er nicht mehr sehen will, was fast auf das
254  selbe rauskommt.
255  
256 \layout Description
257
258 TIME Der Zeitpunkt, an dem die Nachricht generiert wurde
259 \layout Description
260
261 FROM Der Absender.
262  0 bedeutet, dass es eine automatisch generierte Nachricht des Dämon ist.
263 \layout Description
264
265 TO Der Empfänger
266 \layout Description
267
268 TYPE Message, Error, Warning, ...
269 \layout Description
270
271 MSG Die eigentliche Meldung.
272  Bzw.
273  ein Tag, dass erst noch lokalisiert werden muss (Siehe Tabelle LOCALIZE)
274 \layout Description
275
276 ARG1...4 Die Argumente für die Lokalisierung.
277 \layout Subsection
278
279 Tabelle GAME 
280 \layout Standard
281
282 Hier stehen allgemein Infos das Spiel betreffend.
283  Pro Spiel gibt es nur einen Eintrag.
284 \layout Description
285
286 SIZE Die Größe des Spiels.
287  Höhe und halbe Breite des Spielfeldes.
288  Maximale Anzahl Erdlinge.
289 \layout Description
290
291 FORTUNE Der Glücksfaktor
292 \layout Description
293
294 LAST_TEMPLE Die LOCATION des letzten fertig gestellten Tempels.
295 \layout Description
296
297 TEMPLE_SIZE Größe des nächsten Tempels.
298 \layout Subsection
299
300 Tabelle PLAYER 
301 \layout Standard
302
303 Hier wird spielunabhängig gespeichert, was es alles über einen Spieler zu
304  wissen gibt.
305  Pro Spieler ein Eintrag.
306 \layout Subsection
307
308 Tabelle ALLIANCE 
309 \layout Standard
310
311 Hier wird beschrieben welche Freunde und Feinde man hat.
312  Pro Spieler-Spieler-Relation in jedem Spiel höchstens ein Eintrag.
313  Status kann sein 
314 \begin_inset Quotes eld
315 \end_inset 
316
317 FRIEND
318 \begin_inset Quotes erd
319 \end_inset 
320
321
322 \begin_inset Quotes eld
323 \end_inset 
324
325 FOE
326 \begin_inset Quotes erd
327 \end_inset 
328
329  oder 
330 \begin_inset Quotes eld
331 \end_inset 
332
333 NEUTRAL
334 \begin_inset Quotes erd
335 \end_inset 
336
337 .
338  Wenn kein Eintrag vorhanden ist, wird neutraler Status angenommen.
339  
340 \layout Standard
341
342 Man beachte dass Spieler A, Spieler B als Freund ansehen kann, wärend umgekehrt
343  Spieler B Spieler A als Feind betrachtet!
344 \layout Subsection
345
346 Tabelle GOD 
347 \layout Standard
348
349 Hier werden Daten für die Götter gespeichert.
350  Pro Gott und Spiel ein Eintrag.
351 \layout Description
352
353 DEATH_AVATAR Die Anzahl der für diesen Gott in diesem Spiel gestorbenen
354  Avatare
355 \layout Description
356
357 DEATH_HERO dsgl.
358  für Helden
359 \layout Description
360
361 ARRIVAL Hier entstehen neue Avatare.
362  Dieser Ort wird nach jedem Tempelbau diesen Gottes neu berechnet.
363 \layout Subsection
364
365 Tabelle LOCALIZE 
366 \layout Standard
367
368 Mit Hilfe dieser Tabelle kann die Darstellung in verschiedenen Sprachen
369  erfolgen.
370 \layout Description
371
372 TAG Der Eintrag mit dem man wiederkennt, um welche Message es sich handelt
373 \layout Description
374
375 LANG Die Sprache des Eintrags.
376  Zur Zeit werden nur 
377 \begin_inset Quotes eld
378 \end_inset 
379
380 DE
381 \begin_inset Quotes erd
382 \end_inset 
383
384  und 
385 \begin_inset Quotes eld
386 \end_inset 
387
388 EN
389 \begin_inset Quotes erd
390 \end_inset 
391
392  unterstützt.
393 \layout Description
394
395 TEXT Der Text der Nachricht in den einzelnen Sprachen.
396  Dabei wird mittels 
397 \begin_inset Quotes eld
398 \end_inset 
399
400 %n
401 \begin_inset Quotes erd
402 \end_inset 
403
404  das n.te Argument eingefügt.
405  
406 \begin_inset Quotes eld
407 \end_inset 
408
409 %%
410 \begin_inset Quotes erd
411 \end_inset 
412
413  gibt ein Prozentzeichen aus.
414  
415 \layout Subsection
416
417 Tabelle ROLE 
418 \layout Standard
419
420 Hier wird die Rolle eines Spielers in einem Spiel beschrieben.
421  Pro Mitspieler in jedem Spiel ein Eintrag.
422 \layout Section
423
424 Dämon
425 \layout Standard
426
427 Dieses Programm liest Spieleraktionen aus der Datenbank, berechnet die sich
428  daraus ergebenden Ereignisse und schreibt Nachrichten an die Spieler zurück
429  in die Datenbank.
430 \layout Standard
431
432 Wir verwenden Perl 5.8 zur Implementierung des Servers.
433 \layout Section
434
435 Scripten
436 \layout Standard
437
438 Sie lesen den Zustand der Welt und die Nachrichten aus der Datenbank, halten
439  Session-Informationen vor und bereiten dies alles in HTML zur Darstellung
440  mittels eines üblichen Web-Browsers auf.
441  Schließlich schreiben sie die Aktionen des Benutzers in die Datenbank und
442  verändern den Aktivitätsstatus von beweglichen Einheiten.
443 \layout Standard
444
445 Wir verwenden EmbPerl auf Apache zur Implementation.
446  Siehe: http://perl.apache.org/embperl/.
447  EmbPerl scheint genauso einfach und schnell zu sein wie PHP und hat für
448  uns den zusätzlichen Vorteil, dass wir gemeinsame Bibliotheken mit den
449  anderen Komponenten des Servers benutzen können.
450 \layout Subsection
451
452 Seiten
453 \layout Standard
454
455 Folgende Seitenlayouts werden benötigt.
456  Auf allen Seiten findet man ein Hauptmenu.
457  Auf Login und Home gibt es  auch noch ein Aymaegeddon-Banner
458 \layout Description
459
460 Login Hier gibt es neben News einen kurzen Einleitungstext sowie eine Möglichkei
461 t sich zu registrieren und mal in einem Fakespiel zu schnuppern.
462 \layout Description
463
464 Home Liste aller Spiele, pro Spiel: Liste aller Nachrichten, aller Ereignisse,
465  Statistik
466 \layout Description
467
468 Karte Aktuelles Feld, Beschreibung, Befehle
469 \layout Description
470
471 Spieler Beschreibung des Spielers
472 \layout Description
473
474 Rolle Beschreibung der Rolle
475 \layout Standard
476
477 Feldnamen/-koordinaten sind überall immer zur Karte mit dem Feld als aktuellem
478  Feld verlinkt.
479  Rollennamen sind zu der entsprechenden Rollenseite verlinkt.
480 \layout Subsection
481
482 Karte
483 \layout Standard
484
485 Zentrale Komponente der Darstellung ist eine Karte des Hex-Torus.
486  Dazu werden 3 Tabellenzellen pro Feld verwendet, nämlich so:
487 \layout Standard
488 \added_space_bottom 0.3cm 
489 <BILD FEHLT>
490 \layout Standard
491
492 Diese Karte ist scrollbar.
493  Ein Feld ist immer als aktuelles Feld umrandet.
494 \layout Subsection
495
496 Farbdarstellung
497 \layout Standard
498
499 Wasserfelder blau, Landfelder, Archen und Inseln in Erdfarben.
500  Dabei gibt es 5 Farbtöne für eigene, befreundete, neutrale, feindliche
501  sowie unbesiedelte Felder.
502  Tempel und Avatare werden in 5 verschiedenen Götterfarben (eher grell)
503  dargestellt, wieder je eine für eigene, befreundete, feindliche sowie neutrale
504  Götter.
505  Die 
506 \begin_inset Quotes eld
507 \end_inset 
508
509 eigene
510 \begin_inset Quotes erd
511 \end_inset 
512
513  Farbe kann auf andere Erdlinge/Götter verändert werden.
514  
515 \layout Subsection
516
517 Icons
518 \layout Standard
519
520 Folgende Icons werden benötigt.
521 \layout Standard
522
523 Zentriert:
524 \layout Itemize
525
526 IdS
527 \layout Itemize
528
529 Eigentum auf Wasser (Schiff)
530 \layout Itemize
531
532 Städte
533 \layout Itemize
534
535 Tempel
536 \layout Itemize
537
538 Heimatstädte
539 \layout Itemize
540
541 Inseln
542 \layout Itemize
543
544 Berge
545 \layout Standard
546
547 Nicht zentriert:
548 \layout Itemize
549
550 Avatare (oben bis zu vier)
551 \layout Itemize
552
553 Archen (unten, nur eine)
554 \layout Itemize
555
556 Kampf (unten)
557 \layout Itemize
558
559 Avatarkampf (oben)
560 \layout Section
561
562 Weltengenerator
563 \layout Standard
564
565 Dieses Programm wird einmal zu Beginn eines neuen Spiels aufgerufen um eine
566  neue Welt in der Datenbank zu generieren.
567  Der Generator verteilt die verschiedenen Geländetypen: Wasser, Manapol,
568  Insel, Berg, Stadt, Heimatstadt, Land.
569  Er erhält die Anzahl der Erdlinge als Parameter und ermittelt alle anderen
570  Werte daraus.
571  
572 \layout Standard
573
574 Die Game-ID kann automatisch als die erste Freie in der DB ermittelt werden.
575  Dieses Programm sollte als erstes entwickelt werden, damit man eine sinnvolle
576  Testumgebung für die anderen Teile des Systems hat.
577 \layout Standard
578
579 Wir verwenden Perl 5.8 zur Implementation.
580 \layout Section
581
582 FROGS
583 \layout Standard
584
585 FROGS steht für 
586 \series bold 
587 F
588 \series default 
589 ramework for 
590 \series bold 
591 R
592 \series default 
593 ealtime 
594 \series bold 
595 O
596 \series default 
597 nline 
598 \series bold 
599 G
600 \series default 
601 ames of 
602 \series bold 
603 S
604 \series default 
605 trategy.
606  Dort werden alle Funktionalitäten versammelt, die nicht nur von Aymargeddon,
607  sondern auch von anderen Browser-MMOGs verwendet werden können.
608  Das sind im einzelnen:
609 \layout Itemize
610
611 Nachrichtenverwaltung
612 \layout Itemize
613
614 Befehlsverwaltung
615 \layout Itemize
616
617 Spielerverwaltung
618 \layout Itemize
619
620 Spielverwaltung
621 \layout Itemize
622
623 Rollenverwaltung
624 \layout Itemize
625
626 Verschiedene Standardkarten (hier erstmal nur Hextorus)
627 \layout Itemize
628
629 Bewegliche Einheiten
630 \layout Itemize
631
632 Lokalisierung
633 \layout Itemize
634
635 Sessionhandling
636 \layout Itemize
637
638 Bestenlisten
639 \layout Itemize
640
641 Datenbank
642 \layout Standard
643
644 FROGS basiert dabei auf der Annahme, dass bestimmte Felder in bestimmten
645  Tabellen vorhanden sein müssen.
646  Außerdem werden die konkreten Funktionalitäten über Hooks in das Framework
647  eingehängt.
648  So wird z.B.
649  für jeden Befehl ein Name festgelegt mit drei Hooks:
650 \layout Description
651
652 test Diese Funktion tested, ob der Befehl überhaupt ausführbar ist.
653 \layout Description
654
655 ack Diese Funktion wird ausgeführt, wenn der Befehl zum ersten mal vom Dämon
656  zur Kenntnis genommen wird.
657 \layout Description
658
659 do Diese Funktion führt schließlich den Befehl aus.
660  Dazu sind am Anfang noch weitere tests nötig.
661 \layout Standard
662
663 Ziel für Frogs ist, dass man relativ einfach neue Browserspiele bauen kann.
664  Es wird auch ein Satz von Standardseiten in EmbPerl mitgeliefert mit denen
665  Funktionen wie Einloggen, Spielverwaltung, Bestenlisten etc.
666  schon vorhanden sind.
667 \layout Standard
668
669 Hier noch eine Liste von FROGS-Modulen und was sie tun sollen:
670 \layout Description
671
672 Map.pm Dies ist eine Basisklasse für alle denkbaren Topologien.
673  Jedes Modul einer abgeleiteten Klasse sollte auch eine Klasse Location
674  zur Verfügung stellen.
675  Außerdem müssen abgeleitete Klassen einige Funktionen mitbringen, damit
676  die in Map vorhandenen Funktionen funktionieren.
677 \layout Description
678
679 HexTorus.pm Dies ist die von Aymargeddon verwendete Topologie.
680  Kann aber auch von anderen Spielen verwendet werden.
681  Abgeleitet von Map.pm.
682  Stellt auch die Klasse Location zur Verfügung.
683 \layout Description
684
685 Checker.pm Hier werden die verallgemeinerbaren Funktionen des Checkers zur
686  Verfügung gestellt.
687 \layout Description
688
689 Scheduler.pm Hier wird die Befehlsqueu durchgegangen und die oben definierten
690  Funktionen werden aufgerufen.
691 \layout Description
692
693 Localize.pm Hier wird die Lokalisierung ausgeführt.
694 \layout Description
695
696 DataBase.pm Hier werden Basisdatenbankfunktionalitäten zur Verfügung gestellt
697 \layout Description
698
699 ...
700  weitere Module noch unklar
701 \layout Standard
702
703 Auch FROGS wird in Perl 5.8 bzw.
704  EmbPerl implementiert.
705 \layout Section
706
707 Checker
708 \layout Standard
709
710 Dieses Programm überprüft, ob die Daten in der Datenbank noch konsistent
711  sind.
712  Dabei werden die Checks zu algorithmisch ähnlichen Gruppen zusammengefasst
713  und durch allgemein Funktionen ausgeführt.
714  Bisher sind folgende Funktionen identifiziert worden:
715 \layout Enumerate
716
717 Jeder Eintrag in Tabelle X muß auch in Tabelle Y existieren.
718  
719 \layout Enumerate
720
721 N Einträge in der selben Tabelle müssen eine logische Beziehung erfüllen
722 \layout Standard
723
724 Diese allgemeinen konfigurierbaren Check-Funktionen sollten auch Teil von
725  FROGS werden.
726 \layout Standard
727
728 Der Checker überprüft im einzelnen (Zahlen beziehen sich auf obige Funktionslist
729 e):
730 \layout Itemize
731
732 Jede Spielnummer muß in der Tabelle GAME zu finden sein (1).
733 \layout Itemize
734
735 sämtliche Spieler-IDs müssen in ROLE zum selben Spiel passen (1).
736 \layout Itemize
737
738 sämtliche Spieler-IDs müssen in PLAYER vorhanden sein (1).
739 \layout Itemize
740
741 Location muß immer in MAP vorhanden sein.
742 \layout Itemize
743
744 Location muß immer die kanonische Form haben (2).
745 \layout Itemize
746
747 HOME nur gesetzt in MAP, wenn TERRAIN = CITY (desgl.
748  für GOD_HOME und MOUNTAIN) (2).
749 \layout Itemize
750
751 Keine Zwei Erdlinge im selben Feld, außer es ist Kampf.
752 \layout Itemize
753
754 Alle Einheiten in COMMANDS müssen inaktiv sein.
755 \layout Itemize
756
757 Nur Priester ADORING in MOBILE (2).
758 \layout Itemize
759
760 AVAIABLE immer kleiner oder gleich COUNT in MOBILE (2)
761 \layout Itemize
762
763 Während eines Kampfes nur aktive Erdlinge eines Spielers im selben Feld.
764 \layout Itemize
765
766 Keine blockenden Avatare von zwei feindlichen Spielern im selben Feld ohne
767  Kampf .
768 \layout Itemize
769
770 Jedes Tag in MESSAGE sollte in LOCALIZE vorhanden sein.
771  Mindestens in einer Sprache.
772  Warnung, wenn nicht in jeder Sprache.
773 \layout Itemize
774
775 Die Anzahl der Argumente in MESSAGES sollte mit den nicht doppelten %-Zeichen
776  in LOCALIZE übereinstimmen (für jede Sprache).
777  
778 \layout Itemize
779
780 CREATE <= EXEC <= ACK <= DONE in COMMAND
781 \layout Standard
782
783 Dieses Programm sollte möglichst früh entwickelt werden, da es vor allem
784  im Entwicklungsprozess benötigt wird.
785 \layout Standard
786
787 Wir verwenden Perl 5.8 zur Implementation.
788 \layout Section
789
790 Bibliothek
791 \layout Standard
792
793 Hier werden alle Funktionalitäten versammelt, die von mindestens zwei der
794  Komponenten (Scripten, Generator, Dämon, Check) verwendet werden.
795  
796 \layout Standard
797
798 Dabei bleiben in dieser Bibliothek nur Sachen, die nicht noch allgemeiner
799  sind und somit in den FROGS-Teil gehören.
800  Momentan ist noch unklar, ob da überhaupt was übrig bleibt.
801 \layout Standard
802
803 Wir verwenden Perl 5.8 zur Implementation.
804 \layout Section
805
806
807 \lang german
808 Copyright
809 \layout Standard
810
811
812 \lang german
813 (c) 2003 Aymargeddon Development Team
814 \layout Standard
815
816
817 \lang german
818 Permission is granted to copy, distribute and/or modify this document under
819  the terms of the GNU Free Documentation License, Version 1.1 or any later
820  version published by the Free Software Foundation; with no Invariant Sections,
821  with no Front-Cover Texts, and with no Back-Cover Texts.
822  A copy of the license is available at http://www.aymargeddon.de.
823 \the_end