Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

16.03.2013, 01:54

Kritik für Wiki-Artikel gesucht

Ich hoffe einfach mal, ich hab die richtige Kategorie erwischt :D

Ich hab mir mal die Mühe gemacht den "Allegro-Tutorial"-Artikel neu zu schreiben, da ich mit dem Ersten (ebenfalls größtenteils von mir verfasst) absolut unzufrieden war.
Bevor ich jetzt aber die Änderungen übernehmen wollte ich euch mal um Kritik und Vorschläge bitten ;)

Hier geht's zum Artikel

EDIT: Bilder folgen noch, muss nur erstmal welche machen :D
"Wer Angst hat, dass ihm seine Ideen geklaut werden, der scheint nicht viele zu haben. "

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

16.03.2013, 09:03

Der Artikel gefällt mir schon ganz gut! Sag bescheid, wenn er fertig ist.
Sorry, dass das Wiki im Moment so übelst lahm ist.
Hoffentlich wird's mit dem neuen Server besser. Umzug kommt bald ;)

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

3

16.03.2013, 09:22

Ich finde es gut, dass du dir die Mühe für das Wiki gemacht hast. ;)
Da ich mich nicht mit Allegro auskenne, kann ich fachlich nur sehr eingeschränkt Anmerkungen machen.

Aufgefallen ist mir folgendes:
Unter "Was ist Allegro" hast du viele kurze Sätze. An und für sich nicht weiter problematisch, nur beginnen diese immer mit "Allegro" oder stellvertretend mit "Es". Einerseits könnte man die Sätze ein wenig mehr zusammenfassen, also die Informationen über weniger Sätze verstreuen, andererseits wäre es gut, die Sätze zumindest ein wenig umzuformulieren, damit der Text nicht so eintönig wirkt. Aber vielleicht liegt es auch nur an meinem Schreibstil, dass ich es so machen würde... =/
"Wo bekomme ich Allegro" sollte vielleicht etwas weiter runter nach "Installation von Allegro", da es dort teilweise erneut steht.
"Wenn der Quellcode für euer Betriebsystem/Compiler nicht erhältlich ist, [...]" -> du meinst wohl eher die Binarys, oder? ;)
"[...] die allegro-5.0.4-monolith-md.lib einbinden bzw. die allegro-5.0.4-monolith-md-debug.lib wenn wir im Debug-Modus arbeiten." -> "[...] die allegro-5.0.4-monolith-md.lib und wenn wir im Debug-Modus arbeiten die allegro-5.0.4-monolith-md-debug.lib einbinden."
"Die Namen wurden so gewählt, dass sie selbsterklärend sind." -> kann entfallen (wenn überhaupt, dann eher "Für dieses Beispiel wurden selbsterklärende Namen gewählt.")
"[...] Zu der Deklaration des key-Array bzw. des KEYS-enum sei gesagt, dass Allegro nicht speichert, ob eine Taste gedrückt ist [...]"
"Zu der Deklaration des key-Array bzw. des KEYS-enum sei gesagt, dass Allegro nicht speichert ob eine Taste gedrückt ist, sondern nur ob die gedrückt oder losgelassen wird. Darum speicher wir einfach den Status der Pfeiltasten in einem bool-Array." -> "Da Allegro nicht den Zustand der Tasten speichert, sondern nur über Änderungen der Zustände informiert, müssen wir den Status selbst speichern. In diesem Fall werden nur die Pfeiltasten benötigt, weshalb ein bool-Array ausreichend ist."
"[...] und überprüfen ob sie korrekt ausgeführt werden konnte." -> "[...] und überprüfen, ob sie korrekt ausgeführt werden konnte."
"[...] die Variable 'running' auf 'false' damit die Game-Loop [...]" -> "[...] die Variable 'running' auf 'false', damit die Game-Loop [...]"
Es wäre besser, wenn für Fehler eine eigene Variable verwendet werden würde.
"Selbstverständlich können wir nicht einfach ein Bild direkt in das Fenster zeichnen. Dazu müssen wir einige Dinge vorbereiten. Zuerst muss [...]" -> "Um ein Bild darstellen zu können, muss zuerst [...]"
"[...] das entsprechende Addon, das wir benötigen um überhaupt mit Bilder arbeiten zu können, initialisiert werden." -> "[...] das für die Bearbeitung von Bildern benötigte Addon initialisiert werden."
"[...] bevor wir unsere Audiodatei, in diesem Fall Test.wav, verwenden können."
"Wenn wir zusätzlich eine andere Schriftgrüße verwenden möchten, [...]" ... ^^
"Damit wir die Tastatur verwenden, können machen [...]"
"Dauer eines einzelnen Frames. Wenn wir z.B. 60 FPS haben wollen, geben wir als Parameter 1.0 / 60 an. Danach überprüfen wir, ob der Timer erstellt werden konnte." hat unter "Event-Quellen" nichts zu suchen. ;)
"Die Game-Loop ist eine Schleife, die solange wird, ausgeführt bis [...]"
"Danach überprüfen wir, ob der Benutzter evtl. das Fenster geschlossen hat. ist dies der Fall setzen wir die Variable running auf false."
"Als nächstes machen wir uns an das Abfragen der Tastatur. Dies ist recht einfach, wenn die entsprechende Taste gedrückt wird, setzen wir [...]"
"Am Ende zeichnen wir die Szene, falls redraw auf true gesetzt ist, neu."
Ich kenne mich mit Allegro nicht aus, aber da man auf Events wartet und bei einem beliebigen Event die Variable auf "true" gesetzt wird, wird die Variable redraw eigentlich nicht benötigt. Wäre es zudem nicht besser, wenn man einen festen Zeitwert wartet und nicht, bis ein Event riengeflattert kommt oder wartet Allegro aufgrund der angegebenen Framezeit max. 1/60 Millisekunden auf Events?
"[...], wollen wir vorher noch den verwendeten Speicher freigeben, um [...]"
Es wäre ganz hübsch, wenn man am Ende den gesamten Quellcode nochmal zusammengefasst sehen würde. ;)
Auch ganz gut wäre es, wenn am Ende noch ein Hinweis darauf stehen würde, womit sich ein Leser als nächstes auseinandersetzen könnte. Das könnten einerseits Übungsaufgaben sein, mit denen sich der Leser dann selbstständig beschäftigen könnte, um das gelernte zu vertiefen, es könnten aber auch Links zu anderen Tutorials sein.

PS: Ich hätte es eher in "Zur Website" eingeordnet...
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

4

16.03.2013, 11:51

@David
Es gibt schlimmeres als auf einen Server warten zu müssen ;)

@Sacaldur
Okay, DAS nenn ich mal konstruktive Kritik :thumbsup:

Zu dem "oberen" Teil sei gesagt, dass ich ihn aus dem alten Artikel übernommen hatte und er da von jemanden anders verfasst wurde. Werde ich mir aber auch noch mal anschauen ;)

Die anderen Vorschläge, werd ich am besten übernehmen.

PS Das 'redraw' wird nur auf true gesetzt, wenn ein Timer-Event stattfindet, also 60 mal pro Sekunde. Zwischenzeitlich können aber andere Events anfallen z.B. ein Tastendruck

EDIT: Wenn es keine weiteren Vorschläge gibt, würde ich ihn jetzt so lassen (bzw. nur noch ein paar Übungen hinzufügen)
"Wer Angst hat, dass ihm seine Ideen geklaut werden, der scheint nicht viele zu haben. "

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Mirac« (16.03.2013, 13:56)


5

16.03.2013, 14:43

Hallo!

Sehr schön, dass du dich noch mal dem Allegro-Tutorial gewidmet hast. Ich selbst benutze auch Allegro, habe damit aber noch nicht allzu viel Erfahrung.

Ein paar kleine Anmerkungen zu dem Artikel:

Zitat von »Mirac/Allegro Neu«

Da Allegro nicht den Zustand der Tasten speichert, sondern nur über Änderungen der Zustände informiert, müssen wir den Status selbst speichern.

Ich denke schon, dass man mit Allegro auch die Tastenzustände direkt abfragen kann:

C-/C++-Quelltext

1
2
3
4
ALLEGRO_KEYBOARD_STATE keyboardState;

al_get_keyboard_state(&keyboardState);
if (al_key_down(&keyboardState, ALLEGRO_KEY_ABC)) {...}


Zitat von »Mirac/Allegro Neu«

Die Dateien der Ordner \bin, \include und \lib steckt man dann einfach in die Ordner \bin, \include und \lib seines Compilers.

Wäre es nicht sauberer, solche Dinge über die Projekt-/Buildeinstellungen der jeweiligen IDE festzulegen?

Im Text steht mehrmals "das Bitmap". Im Deutschen ist Bitmap allerdings feminin, deswegen müsste es "die Bitmap" heißen.

Übrigens hatte ich bei Allegro am Anfang Schwierigkeiten damit, zu erkennen, dass in fast allen Beispielen und Tutorials kein Delta Timing verwendet wird, sondern ein Fixed Timestep. Bis dahin dachte ich sogar, es gebe nichts anderes als Delta Timing, um das "Zeitproblem" in Spielen zu lösen. Ich weiß nicht, ob man einen Hinweis darauf sinnvoll in den Artikel einbringen kann, aber ich finde, es wäre eine Überlegung wert. Ein kurzer Hinweis würde ja schon reichen.

So, das wars auch schon fürs Erste.

Weitermachen. ;)

6

16.03.2013, 15:02

Zu dem ALLEGRO_KEYBOARD_STATE hab ich grad extra noch einmal in die Dokumentation geschaut. Und anscheinend kann man die einzelnen Tasten mit der Funktion al_key_down abfragen, allerdings hab ich das so ehrlich gesagt noch nie gemacht und wusste es bisher nicht einmal :rolleyes:
ALLEGRO_KEY_STATE ist aber anscheinend nur ein Sanpshot des Status zu einem bestimmten Zeitpunkt und keine direkte Abfrage.

Das mit den Dateipfaden hab ich aus der ersten Version übernommen, es stammt aber von einem anderen Autor. Ich werde es noch verbessern.
"Wer Angst hat, dass ihm seine Ideen geklaut werden, der scheint nicht viele zu haben. "

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mirac« (16.03.2013, 15:11)


Werbeanzeige