Hello, Guest the thread was viewed6.3k times and contains 47 replies

last post from detlef at the

Die richtige Enwicklungsumgebung & Programmiersprache für einen Character-/Sprite-Editor gesucht

  • Hallo zusammen,


    obwohl es schon einiges an Character-Editoren im Netz gibt habe ich noch nicht das Programm gefunden, was meine Ansprüche zu 100% abdeckt. Daher, und vorallem weil ich mal wieder Bock habe etwas für den PC zu entwickeln, überlege ich einen simplen Editor für Character und Sprites selbst in Angriff zu nehmen.


    Features sollen z.Bsp. sein:

    • Pixel-Editor für Character / Sprites
    • Erstellung animierter Character / Sprites mit Vorschau
    • Erstellung animierter Tiles (4x4, …) mit Vorschau
    • Export als File bzw. in die Zwischenablage
    • Grundfunktionen wie öffnen/speichern, Rückgängig, cut- & paste, ….

    Ich habe schon einiges in meinem Leben programmiert aber bislang noch keine GUI-basierten Anwendung. Bislang waren es neben BASIC 2.0 und Assembler auf dem C64, Programme fürs Studium in Pascal, Delphi und C. Später Java und Kotlin für ein paar Android-Apps, und etwas Visual Basic in EXCEL. Da waren bestimmt noch ein paar andere Sprachen dabei, die mir jetzt nicht einfallen. Das ist aber alles schon eine Weile her.


    Für mein Projekt überlege ich nun, welches die richtige Programmiersprache und -Umgebung sein könnte. Sie soll einfach zu erlernen sein und braucht nicht zu komplexe Anforderungen abzudecken, denn es soll ja nur ein Character-Editor dabei herauskommen. Funktionalität kommt vor Optik und es muss "Feierabend-tauglich" sein :D


    JAVA bzw. Kotlin wären eigentlich gut geeignet, aber ich habe damals mehr im Internet nach Klassen/Methoden und der Lösung meiner Probleme gesucht als das ich entwickelt hatte. Java ist einfach nicht meins.


    Als Entwicklungsumgebung hat mir Visual Studio immer gut gefallen. Nehme ein Button, positioniere ihn auf dem Screen und nach dem Drücken soll dir Methode XYZ ausgeführt werden. Alle Design-Aspekt kann man im GUI-Editor vornehmen ohne sich mit den Klassen auseinandersetzen zu müssen. So mag ich es ;)


    Leider muss ich mir eingestehen, dass ich aus den genannten Sprachen schon ziemlich raus bin. Die letzten zwei Jahre habe ich fast nur 6502-Assenmbler programmiert, was jetzt nicht wirlich hilfreich ist.

    Daher komme ich um eine Einarbeitung in die neue Programmiersprache nicht herum.

    Eigentlich wollte ich es in Python mit (WxPython, Tkinter oder Kivy als GUI) realisieren. Python ist echt easy und macht Spass aber es scheint keinen richtigen GUI-Editor zu geben der die freien Libaries unterstützt. Außerdem möchte ich möglichst ein Programm schreiben was ohne zusätzlichen Interpreter auskommt. Ob es schon aus dem Rennen ist weiß ich nicht....:?:



    Zusammengefasst sind das die wichtigsten Kriterien:


    • Windowskompatibel (gerne auch Linux) als möglichst eigenständige .exe-Datei (bzw. .bin) ohne Abhängigkeiten
    • Eine Entwicklungsumgebung mit GUI-Builder ala Visual Studio
    • Alle Tools sollten (zumindest für die Einarbeitung) frei sein und ohne kommerzielle Libaries auskommen.
    • Die Sprache sollte schnell zu erlernen sein und kann dafür gerne ein paar Abstriche an anderer Stelle machen
    • Ich möchte mich mehr mit der Problemstellung meines Projektes beschäftigen als mit den Eigenheiten von Klassen & Merkmalen. Programmieren kommt vor Recherchieren.


    Hier gibt es ja einiges an Entwickler-Kompetenz. Ihr könnt mich da bestimmt gut beraten.

  • Falls Du etwas komplett Neueres anschauen willst, welches auf .NET Core (C#) und Web UI Technologien in eine Desktop-App verpackt, schau Dir mal Photino for .NET an.

    Photino.Blazor hat dann auch das Javascript & co auch noch verpackt.

    Das ganze ist dann auch als Cross-Platform möglich.

    Ist halt noch sehr früh im Entwicklungprozess, aber vielleicht gerade deswegen interessant.


    Quote

    About Photino

    Photino is an open-source project based on Steve Sanderson’s WebWindow, which was based on .NET Core 3.1 and a pre-release version of WebView2. The goal of Photino is to enable developers to use Web UI (HTML, JavaScript, CSS, etc.) in native applications across platforms instead of learning platform-specific UI technologies.


    Längerfristig schauend würde ich persönlich keine neuen Windows Forms oder WPF Projekte mehr anfangen.

  • VB.net. :prof:


    Noch einfacher kann man Programmieren nicht machen. Das hab sogar ich weitgehend verstanden. :thumbsup:


    Bei Fragen findet man zu jedem Thema eine Antwort auf http://www.vb-paradise.de. Sogar das olle C# ist da erlaubt. :bgdev

  • Ich würde sowas heutzutage nur noch als Webanwendung umsetzen. Unabhängig vom Betriebssystem in fast jedem Browser nutzbar und als Entwickler kann ich dem Nutzer immer die aktuellste Version zur Verfügung stellen, ohne dass dieser sich mit Installation und Updates rumschlagen muss.


    Edit: Sowas in der Art: PETSCII Editor

  • Ich bin da altmodisch und bevorzuge Programme die man auch im Urlaub verwenden kann ohne dass man ständig eine Internetverbindung braucht, wenn es nicht notwendig ist.

    Ich bin auch altmodisch, sonst würde ich mich nicht mehr mit dem C64 & Co beschäftigen. ;)


    Aber für aktuelle Anwendungen (aus Entwicklersicht): Der Support einer Software ist um Welten einfacher, wenn diese "online" läuft. Es fällt im Prinzip alles an Wartung beim Kunden weg. Man muss sich "nur" noch um einen Server kümmern. Und man erreicht die maximale Anzahl an potentiellen Nutzern, weil man "nur einen Browser braucht".

  • Oracle gibt sich zwar alle Mühe, Java für den Desktop endgültig zu ruinieren, aber ich habe fast alle meine Programme mit GUI seit 2005 oder so in Java geschrieben und es nicht nur so, daß die damit auch automatisch auf Linux und dem Mac laufen, vor allem laufen sie auch immer noch auf einem aktuellen Windows ohne irgendwelche Kompatibilitätsprobleme und sind so inzwischen nativ 64bittig ohne jede Änderung. Und wenn man das OS-"Look and Feel" automatisch übernimmt, sehen uralte Javawendungen auf jedem OS immer noch einigermaßen zeitgemäß aus.

    Meine uralten Java-Programme laufen immer noch ohne jede Änderungen und wenn ich doch mal eine Kleinigkeit ändern will, kann ich mir einfach eine neue Eclipse-Version runterladen, ein paar Zeilen im Quellcode ändern und gut ist. Meine Win32-Programme aus der selben Zeit sind dagegen ein paar Jahre später schon unwartbar geworden und ich mußte sie nach C# portieren, aber weil Microsoft ja alle paar Jahre das GUI-Konzept über den Haufen schmeißt, sind sie inzwischen vermutlich auch nicht mehr zu retten.

  • Ich bin da altmodisch und bevorzuge Programme die man auch im Urlaub verwenden kann ohne dass man ständig eine Internetverbindung braucht, wenn es nicht notwendig ist.

    Und die vor allem auch dann noch funktionieren, wenn der Entwickler keinen Bock mehr hat, die Online-Anwendung anzubieten und zu pflegen. :D

    • Ich möchte mich mehr mit der Problemstellung meines Projektes beschäftigen als mit den Eigenheiten von Klassen & Merkmalen. Programmieren kommt vor Recherchieren.

    Auf Grund dieser Vorgabe würde ich auch zu einer Windows Forms Applikation in C# raten. Mit Visual Studio.

    WPF-Anwendungen sind mit ihrem MFC-Komzept (Model-View-Controller) deutlich komplizierter.


    Unter Linux läuft es dann nativ natürlich nicht. Das braucht dann eben Wine.

  • aitsch

    Wenn du magst kannst Du mir bei meiner Nerdsuite helfen. Momentan habe ich keine Muße daran weiter zu entwicklen.

    Das Ganze ist mit Java entwickelt und basiert auf der eclipse Entwicklungsumgebung.

    Hat aber ewigen Alpha Status.


    Nur so eine Idee.

  • https://www.qt.io/ oder als offline-fähige web-app z.B. mittels https://www.electronjs.org/.

    (offline-fähige web-app klingt komisch, ist aber so: Krempel in ein Verzeichnis entpacken (von mir aus auch gerne ein "git clone ...") und browser starten, kein Internet notwendig, los gehts).

    Sowohl Qt, als auch electronjs sind cross-platform. Windows (only) sucks.

  • Ich würde sowas heutzutage nur noch als Webanwendung umsetzen. Unabhängig vom Betriebssystem in fast jedem Browser nutzbar und als Entwickler kann ich dem Nutzer immer die aktuellste Version zur Verfügung stellen, ohne dass dieser sich mit Installation und Updates rumschlagen muss.

    Und aus Anwendersicht eine Vollkatastrophe. Wenn ich Excel im Browser sehe könnte ich kotzen.

    Ist wie Porsche fahren, nur mit Fahrradreifen die nix aushalten, daher max. Tempo 30. :D

  • Und aus Anwendersicht eine Vollkatastrophe. Wenn ich Excel im Browser sehe könnte ich kotzen.

    Ist wie Porsche fahren, nur mit Fahrradreifen die nix aushalten, daher max. Tempo 30. :D

    Ich rede ja nicht von einer kompletten Büro-rundum-Lösung, sondern von etwas "Kleinem", wie einen Char- und Spriteeditor.


    Wenn ich den hier verlinkten Online-Editor starte, dann ist der mehr als "schnell genug". So schnell kann ich gar nicht pixeln, wie es ginge. :)

  • Und aus Anwendersicht eine Vollkatastrophe. Wenn ich Excel im Browser sehe könnte ich kotzen.

    Ist wie Porsche fahren, nur mit Fahrradreifen die nix aushalten, daher max. Tempo 30. :D

    Naja, wenn man gammelige Software als Web-Anwendung portiert, hat man am Ende nicht gerade weniger Gammel (Ich sag nur: Beim Import das feine Datum-Autoformat eines Zellen-Wertes...). Da bin ich mit einem Porsche mit Fahrradreifen solider unterwegs ;)

  • Die Java-Fraktion muss ich an dieser Stelle leider entäuschen. Wahrscheinlich habt ihr die besten Argumente und auch Recht mit dem was ihr schreibt aber Java hat mir überhaupt nicht zugesagt.

    Eine zeitlang habe ich Apps für Android programmiert und Java echt als Höchststrafe empfunden. Evtl. trifft das auch schwerpunktmäßig auf die Android-Entwicklung zu. Aber ist Java erstmal raus.


    Eine Web-basierte Anwendung wäre wahrscheinlich genauso klug, ist mir aber zu viel Neuland. Da erinnere ich mich an CSS, HTML und JavaScript. Das sind dann mindestens drei unterschiedliche Sprachelemente (und das ist bestimmt schon wieder outdated). Das ganze soll ja abends, nach Feierabend umgesetzt werden und wäre mir bestimmt etwas zu viel des neuen.

    Das scheint alles gut auf C# mit Windows Forms zu passen. Da hast du Visual Studio mit einem richtig guten GUI-Editor.

    Kostest nichts, läuft mit Wine auch auf Linux.

    C# hatte ich mir vorher schonmal angesehen aber auch gelesen, dass es sehr Java-ähnlich sein soll. Deshalb hatte ich es erstmal verworfen.

    Ich habe heute mal versucht, C# in Visual Studio Code zum Laufen zu bekommen aber das war eher schwierig. Ein neues Projekt konnte ich nur über die Konsole erzeugen und ein GUI-Editor scheint nicht enthalten zu sein.

    Danach habe ich dann doch Visual Code Community Edition installiert. Sieht schon genau nach dem aus, was ich mit vorgestellt hatte. Die Gui-Elemente sehen zwar etwas XP-mäßig aus aber Funktionalität geht vor Schönheit.


    Merkwürdigerweise zeigt Visual Studio an, dass ich eine 30-Tages-Testlizenz habe??!! Wie gesagt, "Community Edition"

    In einem 1Std-YT-Video habe ich mir mal die Syntax angesehen. Sieht ja recht vertraut aus.


    Ich könnte mir den ganzen Code von deinem Editor klauen und wäre dann fast schon fertig :D

    sieht interessant aus.

    VB.net. :prof:


    Noch einfacher kann man Programmieren nicht machen. Das hab sogar ich weitgehend verstanden. :thumbsup:


    Bei Fragen findet man zu jedem Thema eine Antwort auf http://www.vb-paradise.de. Sogar das olle C# ist da erlaubt. :bgdev

    Meines Wissens wird vb.net von Microsoft nicht mehr weiterentwickelt. Deshalb könnte es jetzt unklug sein damit anzufangen.

    Ich kenne es ein wenig aus dem MS-Office-Bereich. Mal sehen ....


    Lust hätte ich schon an sowas mitzuarbeiten aber du hast das böse J-Wort gesagt. Ich schaue es mir auf jeden Fall mal an.



    Mich wundert das es gar keine Python-Verfechter für das Projekt gibt. :?:

    Immerhin rangiert Python seit Jahren unter den Top-10 im Programmiersprachen-Ranking.