Menü
Avatar von basisbit
  • basisbit

91 Beiträge seit 04.02.2009

Lazarus und fpc sind die Rettung für viele ältere Anwendungen -ich bin froh drum

tldr: habe letztes Jahr eine große, tote Karaoke Software wiederbelebt und mich mittlerweile gut an fpc und Lazarus gewöhnt. Es geht auch ohne Borland / Embarcadero / sonstiges proprietäres.

long version:
Ende letzten Jahres habe ich das damals seit 4 Jahren quasi tote Projekt UltraStar Deluxe übernommen. (eine SDL, OpenGL und ffmpeg verwendende Singstar ähnliche Karaoke Software unter GPLv2+). Ich hatte zuvor auch nur Erfahrung mit C#, Java, Python und Basic abgesehen von etwas Delphi aus der Schulzeit.
Damals haben mir andere Entwickler gesagt, sie würden den Quellcode der Software freiwillig "noch nicht mal mit einem 10-Meter-Holzstock berühren" wollen.
Die Software wurde zuvor zwar ein paar mal geforkt und diese Forks waren nach ein wenig Entwicklung meist aber wieder fast von der Bildfläche verschwunden.
Natürlich investiere ich extra für solch ein "totes Dinosaurier" kein Geld und wollte deshalb nicht mit Enterprise Borland/Embarcadero Software anfangen. Lazarus war und ist die einzige brauchbare Alternative. Da ich anfangs mit Lazarus überhaupt nicht zurecht kam (ich war/bin aktuelles Visual Studio Enterprise gewohnt), habe ich dann mit sublime und notepad++ gecoded. Nach ein paar Wochen wollte ich dann aufgeben, da die Karaoke Software so hoffnungslos veraltet war und es für fast alle dependencies keine aktuellen nach objective/freepascal übersetzten Header mehr gab und zu viele Entwickler an dem Quellcode der Anwendung zuvor quasi undokumentiert entwickelt haben.
Ein Freund hat mich dann doch dazu bewegt das Projekt nicht fallen zu lassen. Mittlerweile habe ich mich an Lazarus gewöhnt. Man braucht es unbedingt um ordentlich durch den Code debuggen zu können und nach ein paar Stunden gewöhnt man sich auch dran (ich halte es für "ausreichend" um produktiv zu entwickeln. Außerdem kam genau zu dem Zeitpunkt gerade das neue Lazarus 1.6 mit FreePascal 3.0 heraus - das war gefühlt 100 mal besser als das vorherige unstabile und sich unfertig anfühlende Konstrukt, kann ordentlich mit diversen Unicode/UTF-8/Ansi/... String Formaten umgehen ohne dass man sich selber drum kümmern muss und erlaubt besseres und schnelleres Debugging.

Mittlerweile habe ich viele Codedateien (-> je eine Unit/Klasse) durch Standard-FPC/Lazutils Klassen ersetzen können, die Header-Übersetzungen auf ffmpeg 2.8 geupdate, das Spiel auf SDL2 geported und vieles neu geschrieben.

Das ganze hat mir sehr viel Spaß gemacht und ich habe dabei sehr viel gelernt, da ich nicht einfach stackexchange / google nach einer Lösung befragen konnte, sondern mir oft selber helfen musste =D

Jetzt ist mir auch völlig egal ob ich Objective-/FreePascal oder C# oder Java für solch ein Projekt benutze wo man sowieso fast nur third-party libraries/Frameworks verwendet.
Die Syntax und der Compiler haben mit der Anwendungslogik an sich recht wenig zu tun.

PS: Ich suche noch Mitentwickler und Karaoke-Fans! Die "neue" Version der Karaoke Software ist noch in Arbeit, aber Code und Compiling Instructions usw gibts alles auf github unter https://github.com/UltraStar-Deluxe/USDX

PPS: ja, es haben schon viele mehr oder weniger mit Erfolg die Software zu C# / C++ / Java / JS+NodeJS portiert. Die meisten Ansätze davon starben nach ein paar Tagen wieder weil es zu viel Arbeit ist. Vocaluxe (Windows only) und Performous haben es großteils auch geschafft, sind allerdings bei weitem nicht mehr so schön einfach und intuitiv nutzbar wie UltraStar Deluxe 1.1 oder 1.3. Mir ging es anfangs eher darum das Spiel nur etwas länger unter aktuellen Betriebssystemen am laufen zu halten ohne groß etwas neu zu entwickeln. Irgendwann hatte es mir aber zu viel Spaß gemacht die Verbesserungen weiter zu entwickeln :D

Das Posting wurde vom Benutzer editiert (27.06.2016 20:00).

Bewerten
- +
Anzeige