Ergebnis 1 bis 20 von 95

Thema: Neuer RPG Maker - RPG Maker MV

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Zitat Zitat von Lachsen Beitrag anzeigen
    Und Java? Bloß nicht.
    Klar kann man mit Java das selbe erreichen wie mit jeder Skriptsprache - nur mit dem Unterschied, dass es keinen Spaß macht und man sich die Finger wund schreiben muss.

    Im Vergleich zu Ruby/JavaScript ist Java vom Design sehr viel strikter veranlagt. Typen werden sehr genau genommen und jede Erweiterung muss vom Design exakt berücksichtigt werden (über Interfaces oder abstrakte Klassen).
    Shining hat in seinem Beispiel ja bereits erklärt, wie es das Erweitern von Klassen umständlich macht.

    Ruby/JavaScript sind hier was Erweiterbarkeit angeht viel flexibler. Natürlich kann man damit viel Mist bauen und sich damit in Richtung "schlechtes Design" bewegen, muss man aber nicht zwangsläufig.

    Letztendlich bin ich aber davon überzeugt das gerade bei der Spielentwicklung viele der strikten Design-Praktiken aus der allgemeinen Softwareentwicklung einfach nicht angebracht sind.
    Spiele brauchen a) nicht die Wiederverwendbarkeit von generischen Software-Libraries/Modulen und sind b) von ihrer Nutzungs/Lebensdauer derart beschränkt, dass ein besondere Augenmerk auf Erweiterbarkeit und sauberer Struktur ein verschwendeter Zeitaufwand ist. Insbesondere Spiel-spezifischen Inhalte darf man ruhig hacken. (wird z.B. auch von Naughty Dog so gemacht: http://www.dualshockers.com/2014/03/...our-long-talk/ )

    ...Im Endeffekt ist es natürlich alles persönliche Präferenz. Ich hatte meine paar Jahre mit Java und vermiss die Zeit jedenfalls nicht. :P
    Dass Java strikt ist ist ein Vorteil gegenüber den anderen Sprachen. Das, was nicht erlaubt ist (wegen der Striktheit), sind für gewöhnlich Dinge, welche in den anderen Sprachen auch zu einem Absturz führen würden. Aber Java warnt den Programmierer ohne, dass man das Programm dafür testen muss. Wie irgendjemand solch ein Verhalten als Nachteil ansehen kann ist außerhalb meiner Vorstellungskraft.
    Ich habe meine Zeit mit Ruby und den ganzen Scriptsprachen verabscheut. Die fehlende Sicherheit eines schützenden Compilers, die zusätzliche Zeit, welche in das Debugging gesteckt werden muss um triviale Fehler zu finden, welche mit anderen Sprachen garnicht möglich gewesen wären.

    Das Beispiel von Shining war, wie Shining es auch selbst herausgestellt hat, ein extrem schlechtes Beispiel. Die vorgestellte "Erweiterbarkeit" war hier eher etwas abstoßendes. Das Fehlerpotenzial solcher Scripte ist gigantisch und der Wartungsaufwand explodiert sobald man solchen Code schreibt.

    Zu dem was du zur Spieleentwicklung sagst, würde ich das komplette Gegenteil behaupten. Gerade Videospiele profitieren am meisten von gutem Design. Sie zählen zu den komplexesten Programmen überhaupt und eignen sich vortrefflich für die Anwendung von Programmier-Pattern und Software-Prinzipien.
    Besonders wenn man bedenkt, was für eine riesige Anzahl an Spiele-Projekten regelmäßig abgebrochen werden, ganz sicher auch wegen zu schlechtem Code. Denk nur darüber nach wie dringend Videospiele heutzutage von Updates abhängig sind. Neue Funktionalitäten, neuer Content, verbesserte Nutzeroberflächen, optimierte Performance, etc etc. Deine Philosophie im Sinne von "hoffen wir, dass es gut wird" ist keine gute Taktik für die großen Spieleentwickler, welche heutzutage Millionenbeträge in die Entwicklung von Spielen stecken. Spiele, welche in dieser Zeit den höchsten Qualitätsanforderungen gerecht werden müssen.

  2. #2
    Haha, großartig.

    Irgendwie könnt ihr beide letzendlich Recht haben, zumindest kann ich beide Meinungen nachvollziehen. Nur kommt es wahrscheinlich auf die Skalierung eures Teams an. Ein millionenschweres Blizzardspiel, das über die nächten 10 Jahre mit Erweiterungen zugeballert werden soll, würde ich auch niemals in einer Skriptsprache entwickeln und sollte an jeder Stelle auf sein Design achten. Das "kleine" Indieprojekt hingegen kann schnell an so einer fein säuberlichen Arbeitsweise dahingerafft werden. an dieser Stelle sind schnelle Entwicklung und unsaubere Handgriffe schon weitaus mehr zu verkraften, wenn am Ende ein fertiges Produkt bei rumkommt.

    Geändert von csg (28.08.2015 um 01:31 Uhr)

  3. #3
    Zitat Zitat von Cornix Beitrag anzeigen
    Gerade Videospiele profitieren am meisten von gutem Design. Sie zählen zu den komplexesten Programmen überhaupt
    Meinst du das ernst?

  4. #4
    Aber natürlich. Videospiele haben ALLES was es gibt. Man braucht ein ordentliches Model für die Datenhaltung, Nutzereingaben, Speichern / Laden, Netzwerkkommunikation, GUI programmierung, künstliche Intelligenz, Grafikprogrammierung, Zeitverhalten, Multithreading, Plugins, komplexe Algorithmen (Pathfinding, Graphenalgorithmen, etc) und wahrscheinlich noch viel mehr.

    Natürlich hat nicht jedes Videospiel all diese Dinge, aber Videospiele im Allgemeinen können eine beliebige Kombination aus all diesen Themenbereichen verwenden.
    Andere Applikationen, zum Beispiel Simulationssoftware, Finance oder Controller von eingebetteten Systemen müssen sich immer nur um ein paar ganz spezielle Teilbereiche kümmern. Aber in Videospielen sind alle diese Dinge wichtig, sie sind perfekt dazu geeignet um gutes Programmieren zu lernen und zu üben, darum verwenden wir in unseren Praktiken an der Universität immer Videospiele für die Gruppenarbeiten.
    Man kann sie zudem auch noch beliebig schwierig und komplex machen. Von Pong über Zelda zu World of Warcraft kann man die komplexität der Arbeit ins unendliche steigern.

  5. #5
    Ich stimme zu, dass die vielen Disziplinen es zu einem guten Lehrmittel machen, allerdings lassen deine Vergleiche darauf schließen, dass du von den Inhalten von Videospielen mehr weisst als von langweiliger Softwareentwicklung für Business und Industrie ;-)

    Wenn letztere wirklich "nur" so Arbeiten in einem Teilbereich wären, dann hätte ich wohl einen viel leichteren Job. Ein Spiel ist ( MMOs ausgenommen ) ein abgeschlossenes Produkt. Das Team fängt damit an und kontrolliert was rein kommt und wie es zusammen arbeitet. In der weniger spassigen Softwareentwickung ist ein sauberer Neustart, auch noch bei einem Produkt, dass nur für sich selbst funktioniert, ein Luxus, den man leider nur selten genießt.

  6. #6
    Es stimmt, dass man nicht so einfach neustarten kann bei einem kommerziellen Industrieprodukt, aber das ist nur ein weiterer Grund dafür, warum sich ordentliche Programmierung eher in Videospielen finden lässt. In ein Altprojekt kann man nur extrem schwer den "neuesten Stand der Technik" im Sinne von ordentlicher Programmierung integrieren. Und auch wenn es theoretisch geht, so ist es praktisch meistens eine dumme Entscheidung. Es entsteht zusätzlicher Aufwand ohne neue Funktionalität.
    In einem Industrieprojekt muss man mit dem Arbeiten was man bekommt, den Luxus sich an aktuelle Standards zu halten erlebt man nur mit Glück.

    Außerdem sind solche Programme meistens sehr viel stringenter gebaut. Sie tun eine Sache und nur diese Sache müssen sie gut machen. Ein Videospiel ist die Eier legende Wollmilchsau. Es muss in allen Teilbereichen der Programmierung ordentlich gearbeitet werden. Man kann nicht auf einer Seite anfangen ohne zu wissen wie die andere Seite aussehen wird. Bei Industrieprojekten weis man schon sehr viel eher wie das Endprodukt aus zu sehen hat, man kennt die Nutzer (meistens macht man vorher sogar eine Analyse der Nutzer) und Eigenheiten der Software kann man den Nutzern erklären.
    Spiele müssen für die breiteste Allgemeinheit erstellt werden. Plattformunabhängig (am besten auf Konsole und PC) und auch für allerlei Altersgruppen und in verschiedenen Sprachen. Sie sind einfach viel komplexer (im Allgemeinen, natürlich gibt es immer Ausnahmen).

  7. #7
    Zitat Zitat von Cornix Beitrag anzeigen
    aber das ist nur ein weiterer Grund dafür, warum sich ordentliche Programmierung eher in Videospielen finden lässt.
    Die Abteilung Budget- und Zeitplanung möchte dich sprechen, sofort.

    Zitat Zitat
    Bei Industrieprojekten weis man schon sehr viel eher wie das Endprodukt aus zu sehen hat, man kennt die Nutzer (meistens macht man vorher sogar eine Analyse der Nutzer) und Eigenheiten der Software kann man den Nutzern erklären.
    Echt? Ich bin schon froh wenn der Kunde selbst weiss, was er will

  8. #8
    Zitat Zitat von Corti Beitrag anzeigen
    Die Abteilung Budget- und Zeitplanung möchte dich sprechen, sofort.


    Echt? Ich bin schon froh wenn der Kunde selbst weiss, was er will
    Ich sage nicht, dass es in Videospielen notwendiger ist, oder, dass es in Industrieprojekten nicht notwendig ist. Ich sage, dass es in Videospielen eher zu finden ist.
    Wenn du alte Software warten musst, welche in den 60, 70 oder 80 Jahren geschrieben wurde wirst du halt nicht mit dem Stand der Technik konfrontiert werden. Du wirst mit dem Arbeiten müssen was die Leute damals verwendet haben. Ein kompletter Neustart ist zu kostenspielig und fehleranfällig und darum wird einfach weiter gewartet.
    Wenn etwas schlecht angefangen wurde kann man in einem multimillionen Euro Projekt nicht einfach neu anfangen. Man muss in den sauren Apfel beißen und es durchziehen. Wenn ein Spieleunternehmen wie Blizzard eine schlechte Engine für ein Spiel entwickelt hat können sie einfach bei dem nächsten Spiel von vorne anfangen. Da es alle 1 - 3 Jahre ein neues Spiel gibt muss man sich nicht lange mit dem alten Code quälen. Man lernt aus gemachten Fehlern und verbessert seine Arbeit bei der nächsten Iteration.

    Wenn bei uns die Studenten im ersten Praktikum einen schlechten Code-Stil verwenden und als Folge dessen ein Grauenvolles Projekt abgeben merkt man schon beim nächsten Praktikumsprojekt wie sie ihre Lektion gelernt haben und mehr Softwarepattern verwenden und weniger rumhacken. Ich rede von empirischen persönlichen Beobachtungen.

  9. #9
    Zitat Zitat von Cornix Beitrag anzeigen
    Ich sage, dass es in Videospielen eher zu finden ist.
    Weisst du das von den kommerziellen Spiele-Projekten an den du mitgearbeitet hast oder von den Berichten von Spieleprojekten bei denen genug Zeit und Geld vorhanden war um besonders sorgfältig zu arbeiten?

  10. #10
    java lol. java ist der grund weshalb ich android entwicklung so abstoßend finde. (und natürlich die sinnflut an china garbage im play store.) und wer will denn heutzutage noch applets im browser? okay minecraft. aba ansonsten ... dann lieber noch flash lol.

    wasn der unterschied zwischen javascript und typescript? ich hoffe mal typescript ist nicht noch mehr grammar nazi als javascript. semiklons am ende von befehlen ist zwar kein zwang aber schon teil der offiziellen javascript coding conventions (soweit ich weiß) und das ging mir schon ganz schön auf die eier. und all die klammern ugh. aber hey whatever javascript ist die zur zeit angesagteste skriptsprache also werd ich mal nicht weiter meckern und mich ordentlich freuen denn das klingt alles schon ziemlich cool...

    aba eins noch, ich mein 816×624 das ist doch ein schlechter witz wtf!????

  11. #11
    Zitat Zitat von Corti Beitrag anzeigen
    Weisst du das von den kommerziellen Spiele-Projekten an den du mitgearbeitet hast oder von den Berichten von Spieleprojekten bei denen genug Zeit und Geld vorhanden war um besonders sorgfältig zu arbeiten?
    Was ich eher sagen wollte war, dass in Videospielen die Vorraussetzungen eher vorhanden sind. Ob es wirklich eher zu finden ist kann ich nicht sagen. Das hängt wohl stark von der Art der Spiele ab. Bei AAA Titeln gehe ich davon aus, dass guter Programmierstil der Standard sein sollte. Bei billigen kleinen Scriptkiddy-Hacks wohl eher nicht.

  12. #12
    Zitat Zitat von Cornix Beitrag anzeigen
    Was ich eher sagen wollte war, dass in Videospielen die Vorraussetzungen eher vorhanden sind.
    Es gibt wohl kein Projekt dieser Welt, dass nicht von einheitlichem Codingstyle, sorgfältiger Arbeit, Unit-Tests, Dokumentation und angemessenem Einsatz von Codequalitätswerkzeugen profitieren würde. Ich bin nicht gegen das Zeugs, oder finde es gar nutzlos oder so, ich find sowas klasse. Da du auf Compiler als Antibockmist-Schutz stehst, schau dir mal statische Codeanalyse an. Da gibt es tolle Werkzeuge und aufgrund von Meckereien solcher Werkzeuge ( Hallo FxCop ) und den Begründungen hab ich schon eine Menge Dinge gelernt, die ich sonst wohl kaum erfahren hätte. Der Arbeitsalltag ist allerdings, sowohl was die an der Uni gelehrten Ideale, als auch optimierte Arbeitsweisen angeht, oft sehr desillusionierend. Je nach Produkt ist in der Praxis mehr oder gar kein Platz und/oder keine Zeit/Geld-opfernswerte Notwendigkeit dazu. John Carmack hat zu statischer Codeanalyse auf seiner Doom3-Engine mal einen lesenswerten Artikel geschrieben. Deren Quellcode kann man sich mittlerweile aus dem Netz ziehen und sie gilt als gutes Beispiel für sehr saubere Arbeit. Ist aber auch eine Grafikengine, ist dafür ausgelegt, dass andere Firmen sie kaufen und auch mit dem Quellcode arbeiten, wäre da Pfusch am Bau, würde das Produkt ja auch keiner kaufen. Das von Lachsen genannte Beispiel mit den kleinen oder mittleren Schweinereien, (die aber für die jeweilige Sache funktionieren) bei Naughty Dog ist in sofern auch normal weil Spielebusiness nicht unbedingt der Bereich mit dem tolerantesten Budget und den flexibelsten Zeitplänen ist. Sogar Firmen mit Geld wie Heu greifen ab und an zum unsauberen Hack. Blizzard wollte den Flugpatch für Warlords schon vor 'nem Monat bringen, sind noch immer damit beschäftigt die Nebenwirkungen der schnellen Problembeseitigung vom Releasewochenende auszubügeln.

    Ich finds gut, dass du ein Bewusstsein für Codequalität entwickelt hast, nur zügle deine Hoffnungen, die Welt da draussen hat so viele schmutzige Ecken

  13. #13
    Ich kenne mich ziemlich gut mit statische Code-Analyse aus. Meine Bachelorarbeit war ein Framework um beliebige dynamischen Code-Analyse an bereits existierenden Java-Programmen durchführen zu können ohne den Quellcode zu ändern.
    Dass nicht jeder sich an die besten Standards hält ist natürlich klar. In jeder Branche gibt es Menschen die gewissenhafter Arbeiten und Andere die es nicht tun.

    Mir geht es auch nur darum Leuten in die Quere zu kommen, welche dahergehen und soetwas wie das hier behaupten:
    Zitat Zitat
    ich [bin] aber davon überzeugt das gerade bei der Spielentwicklung viele der strikten Design-Praktiken aus der allgemeinen Softwareentwicklung einfach nicht angebracht sind.
    oder
    Zitat Zitat
    dass ein besondere Augenmerk auf Erweiterbarkeit und sauberer Struktur ein verschwendeter Zeitaufwand ist. [sic]
    Solche Aussagen sind einfach nur unprofessionell und sollten nicht ohne Weiteres stehen gelassen werden. So eine Denkweise war vielleicht in den 80ger Jahren angebracht, aber heute sind wir doch hoffentlich schon ein wenig weiterentwickelt.

  14. #14
    Corti hat das eigentlich bereits ausreichend ausgeführt. Dir fehlt scheinbar die nötige Erfahrung aus dem echten Berufsleben. ••••••••rei hat selten was mit einem mangel an Gewissenhaftigkeit zu tun. Man hat einfach selten die Möglichkeit seine Arbeit so gut zu verrichten, wie man selber könnte oder wollte.
    Und wirf nicht so mit dem Begriff "unprofessionell" um dich. Du weisst in dem Zusammenhang einfach nicht, wovon du redest.

    Und, ja, ich freu mich schon ein wenig auf den neuen Maker. Zum Glück interessiert mich das ganze Scripten nicht die Bohne. Ich bin altmodisch und nutze Events. Mal schauen, wie komfortabel es diesmal ausfällt. Was mich am meisten interessiert, ist allerdings die Sache mit der Auflösung. Enterbrain kriegt mein Geld nur, wenn man nicht wieder so ein kaputtes Format ertragen muss.

Stichworte

Berechtigungen

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