Ergebnis 1 bis 20 von 69

Thema: Cuina Projekt

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Die Engine ist zu viel mehr fähig als nur 2D-RPGs. Komplett 3D geht auch theoretisch schon, aber wer braucht das schon?
    Ein schönes 2D-RPG ist doch viel besser als ein kantiges, hässliches 3D-Spiel.

    @Deamonic: Wenn du schönere Icons haben willst, dann zeichne/mal uns doch welche.

    @MagicMagor: Ich werde mal in Zusammenarbeit und Absprache mit tws mal schauen, wie wir das mit dem Quellcode machen können.

  2. #2
    Zitat Zitat von niR-kun Beitrag anzeigen
    Die Engine ist zu viel mehr fähig als nur 2D-RPGs. Komplett 3D geht auch theoretisch schon, aber wer braucht das schon?
    Ein schönes 2D-RPG ist doch viel besser als ein kantiges, hässliches 3D-Spiel.
    Wobei beides sich keineswegs ausschliesst.
    Einige meiner absoluten Lieblingsspiele sind zB Final Fantasy Tactics (PS1) und Xenogears. Sie kombinierten in den Kämpfen die Flexibilität von 3d Hintergründen mit 2D animierten Characteren. Das Manko bei Xenogears war damals nur, dass die Charactere zu extrem gezoomt wurden und dadurch extrem pixelig wurden. Aber die Idee ansich ist zeitlos.
    Ein Maker, der ein solches Battlesystem bieten würde, hätte bestimmt viele Anhänger. Mir jedenfalls gefällt sowas.

  3. #3
    Leider hab ichs immer noch nicht zu einem vollwertigen Release geschafft.
    Wusse nicht, dass Ein Eingabeformular so furchtbar viel Zeit in Anspruch nimmt.
    Aber es läuft mehr oder weniger.

    Jedenfalls stellt ich mal die Subversion-Link rein. (Ja, ich hab langsam einen Durchblick bei SF^^)

    Engine:
    http://svn.code.sf.net/u/thewhiteshadow/cesource/

    Editor:
    http://svn.code.sf.net/u/thewhitesha...editor/editor/

    Eigentlich sollten es 2 unabhängige Prohjekte werden, aber um Redunanz zu vermeiden, greifen sie auf gemeinsame Ressourcen zu.

    P.S. Ein KS wie FFT braucht nur ein 3D-Renderer. ICh hab keine Lust einen zu schreiben, würde aber helfen, wenn sich jemand dazu finden lässt.

    mfg TWS

  4. #4
    Hab mal eben kurz durch den Quelltext gestöbert. Mir sind ein paar Dinge aufgefallen die du (oder ihr, keine Ahnung ob du das Projekt jetzt noch alleine machst) vielleicht beherzigen solltest.

    • Leg dir einheitlichere Conventions zu. Ich würde dabei zu den Standard Java Code Guidelines raten. Dann sieht dein Programm wie 99% aller anderen Java Programme aus, und wenn später mal jemand helfen möchte fällt das leichter. Aber egal welche Codeconventions du auch für dich entscheidest, vermische sie nicht. Einmal sehe ich multi_word_variable und einmal multiWordVariable. Auch sind Methodennamen wie _init() nicht gerade gängig. Der _ vor der Methode gibt mir das Gefühl die Methode sei irgendwie nur intern wichtig, aber dann ist die Methode public. Warum also der _? Mag unwichtig klingen, ist es aber nicht.
    • Widerstehe dem Drang alles selber zu schreiben. Ich sehe da drin eine Klasse zum auslesen von Ini-Files. Die Properties Klassen aus Java machen genau das. Warum also neu schreiben?
    • Das Userinterface sieht stark handcodiert aus. Nutz lieber einen GUI-Editor. Der spart dir enorm viel Zeit, und wenn er Databinding unterstützt umso mehr.
    • Wirf Exceptions. Eine Methode wie "public abstract boolean finishEditing();" die false im Fehlerfall zurückliefert ist suboptimal. Wenn du schon keine Exceptions werfen möchtest (warum auch immer, die sind nämlich eine viel schönere Lösung zur Weitergabe von Fehlern), liefer wenigstens ein Fehlerobjekt zurück wo du Informationen über den Fehler lieferst. Es sieht ganz so aus als würdest du die Fehlerbehandlung in der finishEditing Methode selber machen müssen, und nur für den Caller den Hinweis geben, dass etwas schief gelaufen ist. Code Smell vom feinsten.
      Achja, und benutze Exceptions richtig.
      Code:
      try
      {
      	ini = new Ini(new File("editor.cfg"));
      }
      catch (IOException e)
      {
      	e.printStackTrace();
      	return;
      }
      In einem Konstruktur ist einfach nur scheusslicher Code. Man fängt eine Exception immer nur dort wo man sie auch richtig behandeln kann. Was du machst ist: Die Exception gleich an der erst besten Stelle zu fangen, und dann die Objektinitialisierung abbrechen. Derjenige der eine Instanz von der Klasse erstellt hat somit erstmal gar keinen Plan ob die Instanz überhaupt richtig erstellt wurde und arbeitet evtl mit einem unfertigen Objekt weiter ohne es zu wissen. Ganz übel.
    • Pluginsysteme sind äußerst kompliziert zu schreiben. Greif lieber auf ein System wie das NetBeans Module system oder OSGi zurück.
    • Schreib UnitTests. Die sind nicht nur ein guter Indikator für sauberen Code, sondern helfen dir auch dabei Stellen zu identifizieren wo du durch eine Änderung an existierendem Code, einen Fehler an anderen Stellen produziert hast, ohne nach jeder kleinen Änderung sämtliche Stellen manuell neu testen zu müssen.
    • Verwende Ant oder Maven zum Bauen des Projektes. Damit können auch Leute wie ich, die kein Eclipse (vermute ich einmal) verwenden, dein Projekt bauen. Und du kannst CI Tools wie Jenkins verwenden.

    Geändert von The_Burrito (03.01.2012 um 13:32 Uhr)

  5. #5
    Zitat Zitat von The_Burrito Beitrag anzeigen
    Leg dir einheitlichere Conventions zu. Ich würde dabei zu den Standard Java Code Guidelines raten. Dann sieht dein Programm wie 99% aller anderen Java Programme aus, und wenn später mal jemand helfen möchte fällt das leichter. Aber egal welche Codeconventions du auch für dich entscheidest, vermische sie nicht. Einmal sehe ich multi_word_variable und einmal multiWordVariable. Auch sind Methodennamen wie _init() nicht gerade gängig. Der _ vor der Methode gibt mir das Gefühl die Methode sei irgendwie nur intern wichtig, aber dann ist die Methode public. Warum also der _? Mag unwichtig klingen, ist es aber nicht.
    Das ist mir auch schon aufgefallen, allerdings ist das aber auch schon relativ alter Quellcode, der noch nicht an die festgelegte Convention angepasst wurde.

    Zitat Zitat von The_Burrito Beitrag anzeigen
    Widerstehe dem Drang alles selber zu schreiben. Ich sehe da drin eine Klasse zum auslesen von Ini-Files. Die Properties Klassen aus Java machen genau das. Warum also neu schreiben?
    Unwissenheit, dass es so was gibt. Das wird zu gegebener Zeit ausgetauscht. Das ist so gewollt.

    Zitat Zitat von The_Burrito Beitrag anzeigen
    Das Userinterface sieht stark handcodiert aus. Nutz lieber einen GUI-Editor. Der spart dir enorm viel Zeit, und wenn er Databinding unterstützt umso mehr.
    Die meisten GUI-Editoren erstellen einfach nur Spaghetti-Code. Das einzige vernünftige scheint der Swing Designer zu sein, den es erst ab Eclipse Indigo (oder war es doch Helios?) gibt.

    Zitat Zitat von The_Burrito Beitrag anzeigen
    Pluginsysteme sind äußerst kompliziert zu schreiben. Greif lieber auf ein System wie das NetBeans Module system oder OSGi zurück.
    Von OSGi und NetBeans Module system hab ich schon mal gehört, aber beide noch nie benutzt. Auf der TODO-Liste vermerkt.

    Zitat Zitat von The_Burrito Beitrag anzeigen
    Schreib UnitTests. Die sind nicht nur ein guter Indikator für sauberen Code, sondern helfen dir auch dabei Stellen zu identifizieren wo du durch eine Änderung an existierendem Code, einen Fehler an anderen Stellen produziert hast, ohne nach jeder kleinen Änderung sämtliche Stellen manuell neu testen zu müssen.
    Da eignet sich JUnit4 sehr gut für. Auf der TODO-Liste vermerkt.

    Zitat Zitat von The_Burrito Beitrag anzeigen
    Verwende Ant oder Maven zum Bauen des Projektes. Damit können auch Leute wie ich, die kein Eclipse (vermute ich einmal) verwenden, dein Projekt bauen. Und du kannst CI Tools wie Jenkins verwenden.
    Die meisten nutzen ja Eclipse (oder NetBeans), weil sie nicht nur das Projekt bauen, sondern auch verändern/erweitern wollen. Vielleicht wird der Build-Process auf Ant oder Maven umgestellt, mal schauen. Also jetzt gibt es ein von eclipse generiertes Ant Buildscript für jedes Projekt eins.

    Ich habe gerade keine Zeit um mich um das Projekt zu kümmern. Dafür ist das Studium (besonders jetzt gegen Ende des Semesters) einfach zu zeit-fressend - in den vorlesungsfreien Zeiten und am Wochenende hab ich vor allem viel Zeit für das Projekt.
    Du bist natürlich herzlichst eingeladen dich an dem Projekt zu beteiligen.

    EDIT:Kleines Update.

    Geändert von niR-kun (06.01.2012 um 19:33 Uhr)

  6. #6
    Zitat Zitat von niR-kun Beitrag anzeigen
    Die meisten GUI-Editoren erstellen einfach nur Spaghetti-Code. Das einzige vernünftige scheint der Swing Designer zu sein, den es erst ab Eclipse Indigo (oder war es doch Helios?) gibt.
    Versuchs mal testweise mit dem neuen XDEV 3. Es hat einen sehr guten GUI-Editor und erzeugt keinen Spaghetti-Code. Es kann nachträglich Projekte in ihrer bestehenden Struktur übernehmen.

  7. #7
    Der GUI Designer von NetBeans erstellt in meinen Augen auch brauchbaren Code. Allerdings ist das auch nicht unendlich wichtig. Den GUI Code vom Editor greift man nachher sowieso kaum an...

    Zitat Zitat von StarWolf Beitrag anzeigen
    Versuchs mal testweise mit dem neuen XDEV 3. Es hat einen sehr guten GUI-Editor und erzeugt keinen Spaghetti-Code. Es kann nachträglich Projekte in ihrer bestehenden Struktur übernehmen.
    Irgendwie komm ich selbst nach einer erfolgreichen Registrierung/Aktivierung eines Benutzerkontos nicht auf die Downloadseite.
    Ah doch, jetzt geht es. Musste wohl nur ein paar Minuten warten.

    Geändert von The_Burrito (04.01.2012 um 10:46 Uhr)

  8. #8
    Zitat Zitat von The_Burrito Beitrag anzeigen
    Der _ vor der Methode gibt mir das Gefühl die Methode sei irgendwie nur intern wichtig, aber dann ist die Methode public. Warum also der _? Mag unwichtig klingen, ist es aber nicht.
    Der ganze Aufbau dieser Klasse ist ein mehr oder weniger veraltetes Konzept der Engine. Der Umbau wird nur etwas größer und so viel zeit hab ich grade nicht.
    Zitat Zitat von The_Burrito Beitrag anzeigen
    Widerstehe dem Drang alles selber zu schreiben. Ich sehe da drin eine Klasse zum auslesen von Ini-Files. Die Properties Klassen aus Java machen genau das. Warum also neu schreiben?
    Ich mag die Properties-Klasse einfach nicht als Ini-Adapter
    Gibt zwar noch andere Gründe, aber das ist der Hauptgrund.^^
    Zitat Zitat von The_Burrito Beitrag anzeigen
    Wirf Exceptions. Eine Methode wie "public abstract boolean finishEditing();" die false im Fehlerfall zurückliefert ist suboptimal. Wenn du schon keine Exceptions werfen möchtest (warum auch immer, die sind nämlich eine viel schönere Lösung zur Weitergabe von Fehlern), liefer wenigstens ein Fehlerobjekt zurück wo du Informationen über den Fehler lieferst.
    Könnte man machen...
    Zitat Zitat von The_Burrito Beitrag anzeigen
    Pluginsysteme sind äußerst kompliziert zu schreiben. Greif lieber auf ein System wie das NetBeans Module system oder OSGi zurück.
    Für den Anfang reicht ein Interface, alle Implementierungen in einem Ordner suchen und verwenden.
    Für später... mal sehen
    Zitat Zitat von The_Burrito Beitrag anzeigen
    In einem Konstruktur ist einfach nur scheusslicher Code. Man fängt eine Exception immer nur dort wo man sie auch richtig behandeln kann. Was du machst ist: Die Exception gleich an der erst besten Stelle zu fangen, und dann die Objektinitialisierung abbrechen. Derjenige der eine Instanz von der Klasse erstellt hat somit erstmal gar keinen Plan ob die Instanz überhaupt richtig erstellt wurde und arbeitet evtl mit einem unfertigen Objekt weiter ohne es zu wissen. Ganz übel.
    Zum Glück ist der Konsturktor private^^
    Aber sauber ist es nicht, war auch eher zur schnellen Fehlerbehandlung gedacht.
    Wird demnächst korrigiert.
    Ich programmier Java halt so wie ich Spiele programmier. Schönes Intro kommt zum Schluss^^

    Zitat Zitat von The_Burrito Beitrag anzeigen
    Der GUI Designer von NetBeans erstellt in meinen Augen auch brauchbaren Code. Allerdings ist das auch nicht unendlich wichtig. Den GUI Code vom Editor greift man nachher sowieso kaum an...
    Du vielleicht nicht. Ich mach das aber immer.^^

    mfg TWS

    Geändert von TheWhiteShadow (06.01.2012 um 22:00 Uhr)

  9. #9
    Zitat Zitat
    Den GUI Code vom Editor greift man nachher sowieso kaum an...
    Uhhhh~ Das würde ich aber nicht so leichtfertig sagen Bist du dir sicher dass das wirklich der Regelfall ist? Ich bin mir fast sicher es ist umgekehrt Ganz oft muss ich in den GUI-Code vor allem wenn ich dazu gezwungen bin einen Gui-Generator zu nutzen :/

  10. #10
    Gui-Designerprobleme lol

    -Corti.NET

  11. #11
    Ich weiß nicht, was man am GUI Code noch großartig bearbeiten sollte. Hätte darin weder die Notwendigkeit noch den Nutzen gesehen.
    Da würde mich jetzt echt mal ein paar Beispiele von euch interessieren wofür das notwendig sein sollte.

  12. #12
    Um mal ein Beispiel aus meinem MapMaker zu nehmen: Überschreiben von paintComponent

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •