Banner left   Banner center   Banner right

Germanenglish Home · News · Diary · Screenshots · Documentation (Wiki) · Downloads · Guestbook · Forum

Home · Benutzer registrieren · Suchen · Statistik · FAQ · Benutzerliste

Zur Zeit online: keiner ausser dir

 X-Force - Fight For Destiny - Forum —› Quellcode / Programmierung —› Free Pascal Compiler / Lazarus

Seite: << [1] [2] [3] 4

Autor Mitteilung
verfasst am: 25.12.2011, 19:51 · Edited by: sujin
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Ich habe eine Weile Eclipse mit PyDev gearbeitet und kann mich nicht beklagen. Aber ehrlich gesagt benutzte ich meistens einen Texteditor (unter Windows: Notepad++).
verfasst am: 25.12.2011, 22:58
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
macht erstmal einen thread im Programiererforum - den kann man später noch verschieben.
Hab momentan noch kaum Zeit mir was dazu zu überlegen...
verfasst am: 13.01.2012, 00:30
Registrierdatum: 22.08.2008, 15:51

 Beiträge: 403
Ich hab mich jetzt die letzten paar Wochen intensiv mit Python auseinander gesetzt und verstehe jetzt ein bisschen, warum die Python-Programmier so davon schwärmen. Und jetzt kommt das große aber: Python benötigt relativ viel Begleit-Code um ein so umfangreiches Projekt umzusetzten, welches das Lesen und Einarbeiten stark erschweren. Python hat ohne Zweifel das Potential einen eleganten rewrite zu produzieren, welcher dann aber eine überaus Komplexe Programmstruktur hat. Das KÖNNTE (auch ich kann mich irren)dazu führen, dass zwar jeder den Code "compilieren" kann aber kaum jemand dazu in der Lage sein wird den Code zu verstehen (ich sehe die aktuelle Situation so: die meisten können den Code lesen, aber kaum jemand compilieren). Da stehen wir mit einem vergleichbarem Problem da wie aktuell als Delphi die freien Versionen abgedreht hat.
Ich für meinen Teil werde versuchen, das Ganze jetzt doch in C# zu programmieren, da ich glaube, das hier die Übersicht und Verständlichkeit weit höher ist. Vieleicht komm ich in ein paar Monaten zurück gekrochen weil sich auch das als eine Sackgasse erwiesen hat, vieleicht habe ich Erfolg.
Es wäre jedenfalls sinnvoll, wenn wir Informationen, Konzepte, Ressourcen und ähnliches weiterhin in den von dir aufgemachten Threads sammeln und konzentrieren.
verfasst am: 13.01.2012, 15:20 · Edited by: sujin
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Deine Prämisse ist falsch. Ein Rewrite in Python benötigt solche Metaprogrammierung genausowenig wie ein Rewrite in C#. Ich hätte genauso ad hoc was zusammenbasteln können wie du beim experimentieren, ich habe nur mit sowas angefangen weil es eine interessante Idee schien. Es macht aber einiges einfacher, und würde die gleichen Vorteile auch in C# bringen (auch wenn es wahrscheinlich etwas komplizierter umzusetzen wäre). Das ist Sprachunabhängig! Die Frage ist hier also nicht, ob Python oder C#, sondern ob Metaprogrammierung und wenn ja wie viel.

Du weißt doch mindestens so gut wie ich, wie das aussieht, wenn man XML per Hand parst, schon bei dem wenigen was da geparst wird (Geoscape-Pfade und minimale UFOs, nochwas?). Nimm das hoch zehn für die ganzen Daten die gespeichert werden müssen, und dann versuch nach zwei Jahren daran was zu ändern. Da verspreche ich dir aber, das wird die Hölle. Ditto für Spielsatzeditoren, Eventhandling bei . Das sind komplexe Probleme, die durch automatisierung zuverlässiger, schneller UND deklarativer (generell ein Vorteil für die lesbarkeit!) erledigt werden. Das führt natürlich zwangsläufig zu einen. Aber ob ein Programmierer jetzt lernen muss, seinen Code auf genau diese Weise zu schreiben und alle diese Kleinigkeiten zu beachten, oder eine kleine DSL lernt die ihm das abnimmt... vom Aufwand her nimmt sich das nicht viel, und auch nach dem zusätzlich zu wartenden Code überwiegen mMn die Vorteile.

Ich bin immer für klar verständlichen Code und dagegen, dass Kram geschieht und keiner weiß wie oder warum.
Aber wenn ich die wahl habe zwischen Magie (die zwar undurchsichtig ist, aber klar definierte Aufgaben gut übernimmt) und handgeschriebenen und -gewarteten equivalenten Code (der massig ist und entsprechend viele potenzielle Fehlerquellen hat). Die Maschinerie, die dahinter steht, ist in der Tat kompliziert, aber das lässt sich eh nicht vermeiden - das ganze Problem ist kein Zuckerschlecken, egal ob man's automatisiert oder selbst macht. Aber die Anwendung, und dafür will ich garantieren, soll immer möglich und einfach bleiben für einen fähigen Programmierer der ein wenig Zeit zur Eingewöhnung investiert (und ich denke auch, dass ist z.B. bei model.py der Fall - importieren, von Model erben, Datenfelder und -typen deklarieren [was man in C# eh macht], Writer-Objekt erstellen, eine Methode zum serialisieren aufrufen). Andererseits muss auch klar sein: Es ist nicht sinnvoll, sich extra dumm zu stellen damit jeder Anfänger jede Ecke verstehen kann.
verfasst am: 19.02.2012, 11:36
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Was ist eigentlich aus deinem C#-Versuch geworden, Kreks? :)
verfasst am: 21.02.2012, 13:11
Registrierdatum: 22.08.2008, 15:51

 Beiträge: 403
Dem gehts recht gut, ich habe intensiv daran weiter gearbeitet, ähnlich wie du. Die bereits fretigen und sinvollen Stücke habe ich mir rausgepickt und die "zusammengebastelten" Stücke rausgehaut.
Kein einziges Programmstückchen ist zwar bisher "bis zum Ende" ausprogrammiert, aber das war auch niemals meine Absicht, es sollte alles langsam mitwachsen.
Innerhalb der nächsten zwei Wochen sollte ich was herzeigen können, dann bin ich mit der Basisfunktionalität zufrieden genug um sie der Welt zuzeigen.

Das letzte, was gemacht werden muss, ist in der eigenen Scriptsprache Schleifen und If's zu integrieren und da muss ich nur noch schauen, welches meiner beiden Konzepte besser funktioniert.
verfasst am: 21.02.2012, 13:28 · Edited by: sujin
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Schön zu hören. Man könnte sich jetzt ärgern, dass Arbeit möglicherweise doppelt gemacht wird, aber ich seh's positiv: Immerhin passiert etwas, und garnicht knapp :)

Bei eigener Skriptsprache bin ich allerdings kritisch. Nicht nur, dass es eine enorme Aufgabe ist, eine Sprache zu entwickeln und gut zu implementieren. Es ist so schwer, dass IMHO 99% aller Versuche dazu verdammt sind, nur eine ekelhafte, wenig brauchbare, zeitfressende Monstrosität.
Eine hausgemachte Sprache kennt kein Schwein, sie hat obskure Bugs, nervige Beschränkungen, und kostet viel Zeit. Eine bestehende Sprache einzubinden geht viel schneller (wenn sie einigermaßen einbindbar ist, und da gibt es bestimmt einige, auch für .NET), da gibt es bereits Programmierer für, sie ist eher eine vollwertige Programmiersprache, es gibt schon Bibliotheken, und man muss sie nicht selbst warten & weiterentwickeln.

Und falls diese "Programmiersprache" XML ist, erschlag ich dich ;)

Im übrigen, gibt's den Quellcode irgendwo öffentlich? Sorry wenn ich nerve, ich bin nur neugierig :)
verfasst am: 21.02.2012, 13:56 · Edited by: Kreks
Registrierdatum: 22.08.2008, 15:51

 Beiträge: 403
Das eine oder andere wird vieleicht doppelt gemacht, aber Dinge wie die grundsätzlichen Konzepte (zB Wegfindung) wird nicht doppelt gemacht.

Zitat: sujin
Und falls diese "Programmiersprache" XML ist, erschlag ich dich ;)

Ich bin zwar manchmal ein wenig wahnsinnig, aber das wäre übertrieben :)

Für .NET gibt's zwar Scripsprachen, aber darin alle nötigen events korrekt aufzurufen, ist eine sehr wilde Verrenkung und endet in einem komplizierten Code, der zwar sicher schneller ist, als der selbstgeschiebene, aber nicht schnell genug um das alles zu rechtfertigen (zwischen 15% und 5% Geschwindigkeitsgewinn durch die Benutztung einer Fremden Scriptsprache).

Der Source ist (noch) bei mir und wird erst mit den if und whiles öffentlich, aber ich zeige mal das funktionierende(!) "AI" Script her:
function init()
	setEvent(NewTurn, Event_NewTurn, this)
	setEvent(MoveComplete, Event_MoveComplete, this)
endfunction

function newturn()
	RegisterGlobalVariable(one, int, 1)
	RegisterGlobalVariable(two, int, 2)
	RegisterGlobalVariable(three, bool, evaluate(one, =, two))
	MoveToRandomPoint()
endfunction

function MoveComplete()
	EndTurn()
endfunction


Der Grund, warum ich bei der einen Rechnung globale Variablen nehm, ist, dass ich diese viel, viel leichter im Debugger auslesen kann.

Edit: Heut mach ich Rechtschreibfehler...
verfasst am: 01.03.2012, 13:38 · Edited by: Kreks
Registrierdatum: 22.08.2008, 15:51

 Beiträge: 403
Zitat: sujin
Was ist eigentlich aus deinem C#-Versuch geworden, Kreks? :)


So, ich habs auch auf eine herzeigbare Version gebracht, es muss zwar an allen Ecken und Enden gebaut werden, aber ich denke, es gibt einen ersten Eindruck. Ich hatte allerdings noch nicht die Möglichkeit, es auf einem Fremdsystem zu testen.

Es wird von Microsoft das 4.0 Framework und XNA-Redistributeable 4.0 zum Ausführen benötigt, Details in der ReadMe.

https://bitbucket.org/kreks/xa/src

vieleicht noch ein paar Screenshots:
http://imageshack.us/photo/my-images/846/76758534.jpg
http://imageshack.us/photo/my-images/408/71388676.jpg
http://imageshack.us/photo/my-images/100/32350625.jpg
verfasst am: 01.03.2012, 16:57 · Edited by: sujin
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Also bei mir crasht es, sobald ich die Zeit lostrete. XNA sollte ich noch haben von deinem ersten Prototypen (startet ja auch und Musik + Grafik klappt), .NET 4 hab ich auch. Ich debugge mal...

Edit: Die Exception sagt, dass XNA doch nicht gefunden wurde... ich installier es nochmal.

Edit 2: Ich bin doof, natürlich braucht's auch XNA 4.0 - jetzt funktioniert auch alles, Entwarnung! (Eine bessere Fehlermeldung wäre allerdings nützlich, und wenn man nur den Datumstext missbraucht.)
Allerdings ist mir nicht klar, warum mein Flugzeug immer in die linke obere Ecke teleportiert wird, wenn es ein anderes Objekt berührt.
verfasst am: 02.03.2012, 10:58
Registrierdatum: 22.08.2008, 15:51

 Beiträge: 403
Zitat: sujin
warum mein Flugzeug immer in die linke obere Ecke teleportiert wird, wenn es ein anderes Objekt berührt.

Naja, anstatt irgendein Kampfergebnis zu simulieren, ist das halt für das jetztige Stadium einfacher.
verfasst am: 02.03.2012, 14:55
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Wenn's gewollt ist ist ja gut, ist nur etwas verwirrend und ich war nicht sicher ob das absichtlich ist.

Seite: << [1] [2] [3] 4




Du musst dich registrieren um auf dieses Thema zu antworten.
Login :: » Name » Passwort

Ladezeit (sec.): 0.157 · Powered by miniBB 1.6 with parts of 1.7 © 2001-2003