Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Hilfe: Mac-Coding
#1
Hallo zusammen!

Wie vielleicht auf der Packung schon gelesen wurde, soll die Schicksalsklinge sowohl für PC als auch für Mac erscheinen. Von unserer Basis her ist das kein Problem, und ich habe auch schon getestet, die Schicksalsklinge läuft auch auf meinem Mac Mini genauso wie unter Windows :).

Jetzt habe ich aber als alter Windows-Coder leider nur sehr wenig - respektive bisher gar keine - Erfahrung mit dem Mac und der "Infrastruktur". Unter Windows gibt es schon einen netten Installer von der CD und einen Launcher, mit dem man auch gleich auf Updates hingewiesen wird (völlig anonym und DRM-Frei, versteht sich), die man da auch gleich runterladen und installieren kann.

Ich würde sowas auch gerne für Mac machen - also Installer, Launcher und Updater - und würde mich sehr freuen, wenn sich jemand findet, der mir da ein paar "Basic"-Fragen beantworten kann.

Lustigerweise ist das mit Steam alles überhaupt kein Problem, weil Installation und Updates da komplett geregelt sind, auch für Mac ;).
Zitieren
#2
Linux :pfeif:
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
Zitieren
#3
Naja, von Linux hab ich auch weit mehr Ahnung, da wär das sogar um ein Eckhaus leichter, weils da die Package Manager gibt. Aber MacOS is da ... wie soll ich sagen. "Kreatives Chaos" triffts glaub ich noch am Ehesten - also eigentlich perfekt für den "Mac-Normaluser": Kreativ, unkonventionell, trendy, aber auch etwas unorganisiert :)
Zitieren
#4
Ein Installer? Das ist aber nicht Mac-like. Ich als Mac-User bevorzuge ganz klar die Application-Bundle's, welche mittels drag'n'drop von der CD in den Programme-Ordner verschoben werden. Package Manager sind eine Pest!

Leider bin ich kein Programmierer und kann dir daher nicht weiterhelfen, aber vielleicht kannst du dich mit den Leuten von Feral in Verbindung setzten, die erstellen z.Zt. die besten Mac-Portierungen von Windows-Spielen. Deren Spiele haben alle eine Startfenster in dem man diverse Einstellungen vornehmen kann und es besteht hier auch die Möglichkeit Updates automatisch zu installieren.

Übrigens: Sucht ihr noch Beta-Tester für die Mac-Version? :D
Zitieren
#5
Uxl, es kann schon sein dass Package Manager eine Pest sind, aber ich glaube nicht dass du es sinnvoll finden würdest, jedes mal etwa 3.8 Gb herunterzuladen, nur weil wir drei Rechtschreibfehler in einem Textfile korrigiert haben - daher die Idee mit dem Autoupdater. Außerdem würden wir dann im Endeffekt die DRM-Freie Version mehr oder weniger öffentlich und vollständig zum Download anbieten, was zumindest mir jetzt auch nicht gerade sinnvoll erscheint.

Der Basis-Build kommt ja als App-Bundle, das habe ich auch schon gecheckt, aber wie gesagt, da sind dann halt auch die Textfiles "gebundled" und durch die nonexistente Infrastruktur dann auch nicht aktualisierbar.

@Betatester Macversion: Meld dich einfach mal an, aber wen dann rasch, wir wollen kommende Woche starten.

Ach ja, und @Feral: Super Idee, wir haben aber kein Budget dafür, außerdem brauchen wir keine Portierung, das Game läuft ja bereits komplett auf Mac, wir brauchen nur eine Patching-Funktion, mit der wir nachträglich Korrekturen machen können.
Zitieren
#6
Ich schicke mal voraus, dass ich kein Apple-User bin. Aber wie wäre es denn, das mit Unix-Bordmitteln zu lösen? Ein Shellskript als Starter, das ggf Updates holt.
Zitieren
#7
(08.06.2013, 21:58)chrisfirefox schrieb: @Betatester Macversion: Meld dich einfach mal an, aber wen dann rasch, wir wollen kommende Woche starten.

Hatte mich schon beworben, aber gerade in Sachen Mac Plattformen kann ich einiges zum Testen anbieten, falls ihr daran Interesse habt. Habe Berufsbedingt zahlreiche Mac-Plattformen und OS Versionen installieret, vom Mac mini über div. Laptop-Konfigs bis hin zum Mac Pro.
Zitieren
#8
Hallo chrisfirefox, der Hinweis mit Feral war nicht auf eine Portierung bezogen. Deren Autoupdater für Rome: Total War bspw. lädt bei einem Update nicht das gesamte Bundle erneut runter, sondern nur ein paar MB mit den zu ersetzenden Dateien. Die hätten somit das Know how, das ihr sucht.

Ich bin leider kein Programmierer, aber was ist hiermit:
- Installer
- MojoPatch
- iPatch
Zitieren
#9
Know-How gibt man für gewöhnlich nicht so einfach heraus, und wenn sie ein selbstgestrickte Lösung haben - wovon ich ausgehe - hilft es noch viel weniger.

@Installer: Danke für den Hinweis, der ist mir noch nicht untergekommen, aber damit lässt sich arbeiten
@iPatch: Zuletzt aktualisiert 2007 und hat ein paar "macht mehr kaputt als ganz"-Reviews, die nicht sehr vertrauenerweckend sind
@MojoPatch: 2004 wurde es Source-Geöffnet, und schaut seither nicht wirklich aktualisiert aus

Also sagen wir mal "ein bisschen professioneller darfs schon sein" :). Danke trotzdem fürs Schauen uxl!

@Rabenaas: Ist das nicht genau die Art von "hintenrum versteckt etwas machen", die du bei DRM so kritisierst? Wenn dann sollte das nicht "irgendein Script" sein, sondern schon eine vernünftige Software, die auch den Namen verdient, mit so Sachen wie "User Feedback". Außerdem fällt mir grade ein, dass die Package Manager ja auch nur volle Pakete runterladen und keine Patches machen. Und wie gesagt, bei 3.8Gb aktueller Größe - da kommt noch einiges an Voiceover dazu - ist das aus meiner Sicht einfach nicht gangbar und zudem relativ unsicher, weil wir ja die komplette Software offen verteilen. Klar, kann jeder Andere theoretisch auch, aber wenn wir als Hersteller das machen, ist es bei jedem Anderen nur noch schwer einklagbar...
Zitieren
#10
Zitat:Ist das nicht genau die Art von "hintenrum versteckt etwas machen", die du bei DRM so kritisierst?

Nein, das wird oft so gemacht, z.B. Firefox schaut auch nach, ob er noch aktuell ist. Ich hätte auch keine Sorge um meine Privatsphäre, wenn beim Start versucht würde, eine Datei mit einer Versionsnummer von eurem Server zu laden. Inakzeptabel wäre es, wenn diese Abfrage Bedingung für den Start des Programms wäre. Aber davon ist ja keine Rede.

Zitat:Wenn dann sollte das nicht "irgendein Script" sein, sondern schon eine vernünftige Software, die auch den Namen verdient, mit so Sachen wie "User Feedback".

Für POSIX-Betriebssysteme sind Skripte nun mal genau so vernünftige Software wie Binaries und oft die eleganteste Lösung. Bei Mac kenne ich mich, wie gesagt, nicht aus, aber in der Linux/BSD-Welt sind solche Starterskripte nichts ungewöhnliches. Außerdem gibt es keinen Grund, immer das gesamte Paket runterzuladen. Der direkteste Weg wäre doch, die auszutauschenden Dateien in ein Zip zu packen und dann einfach drüberzukopieren.

Für meinen Geschmack denkst Du in dem Zusammenhang etwas zu sehr von Windows her. ;)
Zitieren
#11
Naja, ich denke in den Daten, die ich zu verwalten habe. Nur die auszutauschenden Dateien zu ersetzen wäre natürlich mein erster Gedanke gewesen, das Problem ist dass das teilweise trotzdem mehrere Hundert Megabyte pro File sind, weil das in einem Unity-Build gepackte Daten sind, die alle Daten für eine Szene enthalten, bzw. auch alle Assets, die in der Szene vorkommen. Wenn ich jetzt eine minimale Änderung an einem Gebäude in Thorwal vornehme, dann sind das zwei geänderte Dateien mit insgesamt 800 Mb Speicherbedarf, wo ein Binary Patch in etwa 1.5 Mb hätte.

Ich denke also nicht zu sehr Windows, sondern habe halt mehr Informationen über die Struktur meiner Daten zur Verfügung, die ich nicht gleich in den Startpost gepackt habe, das ist alles.
Zitieren
#12
Mich hatte auch eher das "irgendein Skript" irritiert. Skripte werden unter Unixoiden nun mal viel öfter verwendet, als unter Windows.
Du weißt, dass diff und patch auch mit Binärdateien umgehen können? Anschließend kann man noch md5sum drüberlaufen lassen. So würde ich das jedenfalls machen.
Zitieren
#13
Ja Rabenaas, auch das ist mir bewusst. Und wenn ich die Zeit hätte, mich mit dem Skripting auseinanderzusetzen, dann würde ich vermutlich auch eine Lösung selbst zusammenpfriemeln (sorry für den Ausdruck). In erster Linie sollte ich aber ein Spiel machen, drum suche ich (und hab sie mittlerweile gefunden) eine Lösung, die möglichst wenig Einarbeitungszeit und idealerweise Updates und Bugfixes (für die Lösung) von extern bekommt, sowie schon mal getestet wurde.

diff und patch können das übrigens soweit ich gesehen habe nur unter cygwin oder eben direkt in Linux. D.h. um einen Windows-Patch zu machen, müsste ich meinen Linux-Emulator anwerfen, damit das dortige Skript mir meinen patch rauswürgt, für den ich dann noch ein cygwin brauche, das es mir unter Windows mein Game aktualisiert - oder so. Egal. Zu viel gepfriemelt für eine Bezahlsoftware :).

EDIT: diff und patch sind zumindest laut dieser Antwort auf Stackoverflow nicht für binary Files gedacht (diff liefert dann nur "are different"). es gibt bsdiff (für Files bis 120Mb, weil 32 Bit und Speicherhunger Ende nie) und xdelta. Unsere geplante Lösung verwendet bsdiff, d.h. entweder wir kommen mit unseren Binärdaten runter (schwer) oder wir werden doch eine ... gepfriemelte Lösung nehmen müssen *seufz*.
Zitieren
#14
Moment mal. Von Windows war keine Rede. Der Titel hier bezieht sich auf Mac. Für Win gibt es sicher eine Menge fertiger Update-Lösungen.

Es stimmt nicht (auch wenn es eigentlich ein anderes Thema ist), dass Cygwin ein Emulator ist. Cygwin ist ein Windows-DLL, die Posix nachbildet. Ist die gelinkt, dann laufen diff.exe und patch.exe wie jede andere Windows-Exe auch. Willst Du unter Windows ein sh-Shellscript ausführen, brauchst Du natürlich auch eine entsprechend mit Cygwin kompilierte Version der Bourne-Shell. Möglich, aber tatsächlich nicht das Mittel der Wahl.

Ansonsten ist das mit Diff und den Binärdateien so eine Sache. Bei einigermaßen aktuellen Versionen (und ich gehe davon aus, dass OS X die hat), gehen Binärdateien problemlos. http://www.gnu.org/software/diffutils/ma...inary.html

Wenn Du Dir eine Strategie überlegt hast, sei es ein spezielles Tool oder eine DIY-Lösung können wir sicherlich unterstützen durch Tests bzw. Vorschläge für Skripte.
Zitieren
#15
Ok, ich versuch mal etwas mehr Einblick zu gewähren: Wir haben aktuell schon die Notwendigkeit für insgesamt 2 verschiedene Builds, Windows und Mac, und dann noch jeweils zwei Updatestrategien, einmal "DRM-Free", einmal Steam. Wenn ich jetzt für Mac und Windows auch noch unterschiedliche Lösungen brauche, und dann vielleicht noch eine dritte Plattform (Linux) dazukommen soll, dann dreh ich langsam am Rad, weil ich dann für jeden Patch einen Tag sitze, damit der überall verfügbar ist. Daher ist es glaub ich nur logisch und verständlich, dass ich eine Lösung suche, die Mac UND Windows gleichermaßen abdeckt. Mittlerweile bin ich aber soweit, dass ich unsere ursprünglich geplante Lösung (die bereits integriert in die Unity ist und zumindest Win/Mac Cross Plattform unterstützt) soweit anpassen werde, dass auch die bisherigen Probleme damit (bsdiff Filegröße und ein paar andere Kleinigkeiten) behandelt werden, weil die Alternative, nämlich eine komplett selbst gestrickte Lösung, mir noch mehr Kopfweh machen würde.
Zitieren
#16
Wie sieht es mit Desura aus? Das ist ja die Konkurrenz zu Steam. Lässt sich damit etwas anfangen?

P.S.: OpenSource ist nur ein Teil der Clients...
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
Zitieren
#17
Ne, leider. Und Desura ist *eine* Konkurrenz zu Steam, Downloadplattformen sind mittlerweile so verbreitet, dass sogar die Deutsche Telekom eine hat ;).
Zitieren
#18
Solange ihr nicht Origin oder noch schlimmer Microsoft Games for Windows verwendet, ... ist mir alles egal! ;) :P Mit diesen beiden Systemen habe ich persönlich sehr schlechte Erfahrungen gemacht...
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
Zitieren
#19
Die Idee einer fertigen Lösung für Windows und MacOS finde ich ziemlich optimistisch. Aber sei's drum.

rsync kann so ziemlich alles, was Du verlangst. Und es läuft (auch lokal) auf allen drei Plattformen. Vielleicht kannst Du das ja irgendwie mit bsdiff im Installer/Updater austauschen.
Zitieren
#20
rsync braucht doch das vollständige Verzeichnis einmal verfügbar, damit Änderungen sinnvoll abgeglichen werden können. Dann kann ich das Game aber auch gleich gratis verteilen und selbst auf die Torrents stellen, jegliche Raubkopie wäre dann völlig legitimiert nach dem Motto "ich habs mir doch ohnehin direkt vom Entwickler geholt, der verteilt es ja gratis". Und bevor du jetzt vorschlägst, das mit ssh abzusichern, ersetze ich lieber zu große Files durch einen vollständigen Download, das ist immer noch besser als rsync.

Und eine fertige Lösung für Windows und MacOS ist die Unity doch auch, sogar der compilierte Programmcode ist bis runter auf die Byteebene identisch, weils auf beiden Plattformen mit Mono läuft - warum sollte es dann keine CSharp/Mono-Patching-Lösung geben, die auf beiden Plattformen läuft? Aber egal. Danke jedenfalls für deine konstruktiven Vorschläge Rabenaas, wir kriegen das schon hin :)
Zitieren




Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste