Du bist nicht angemeldet.

Werbeanzeige

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 692

Wohnort: Gießen

  • Private Nachricht senden

1

15.12.2016, 15:06

Gründe gegen die Unity Engine

In diesem Thema soll es rein um die Unity Engine gehen. Im Forum liest man - zumindest ich - des öfteren mal, wie schlecht die Engine sei. Aber leider nur, dass sie schlecht ist, nie warum wieso weshalb :D

Wenn man im Internet durch Foren stöbert lässt sich immer sagen Unity wird von einer breiten Masse genutzt und ist sehr einsteigerfreundlich, zumindest mehr als die anderen Engines. Man kann innerhalb überschaubarer Zeit recht schnell etwas kleines zusammenbasteln, da die Engine ja doch einiges an Arbeit abnimmt.

Auf der anderen Seite liest man viel über Performance Probleme. Aber da denke ich mir mit sauberem Code sollte das doch kein Problem sein...

Deshalb wollte ich mal wissen, wieso Unity denn jetzt unbedingt so schlecht ist :) Da ich mich ja noch nicht so sehr auskenne wie viele andere hier, ändert das ja vielleicht auch meine Sicht.

2

15.12.2016, 15:46

Ich bin zwar kein Experte was die Engine angeht aber ich vermute dennoch das viele Leute einfach behaupten die Unity Engine hat eine schlechte Performance weil sie ein Spiel entwickeln im Ausmaß von sowas wie Battlefield oder WoW. Es ist doch wie bei allen anderen Engines auch. Was will man damit überhaupt erreichen? Mit einem RPG Maker kann man keine 3D Spiele entwickeln, aber dadurch ist der RPG Maker trotzdem nicht gleich schlecht, sondern nur für das Entwicklungsziel nicht ideal.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

3

15.12.2016, 15:54

Aber da denke ich mir mit sauberem Code sollte das doch kein Problem sein...

Da ist der Knackpunkt. Es ist durchaus möglich mit Unity sauberen Code zu schreiben, allerdings ist das nicht unbedingt auf den ersten Blick ersichtlich und wird in den meisten Tutorials auch nicht berücksichtigt. Wer z.B. mit GameObject.Find und GameObject.SendMessage arbeitet wird sehr schnell verzweifeln, weil es langsam und fehleranfällig ist.

KeksX

Community-Fossil

Beiträge: 2 154

Beruf: Game Designer

  • Private Nachricht senden

4

15.12.2016, 17:38

Naja - wenn ich einen Neuling an DirectX setze bezweifle ich genau so, dass der da von Anfang an sauberen Code schreibt. Bloß dass mich DirectX sehr schnell dazu bringt, mich mit dem Kram zu beschäftigen. Das ist glaube ich eher der Knackpunkt.

Also ist das denke ich eher eine Frage der Lernweise. Unity hat halt enorm viele Abkürzungen und Sachen, die mir als Anwender egal sein können. Das resultiert halt in Unwissen bzw. Ignoranz gegenüber einigen doch ziemlich wichtigen Dingen. Wenn mein Anspruch also ist, ein kompetenter Programmierer zu sein, der nicht nur "Fachidiot" für ein Tool ist, ist der Einstieg mit Unity nicht gerade optimal.

Das ändert sich dann, wenn man einfach nur möglichst flott ein Spiel erstellen möchte. Bloß ist die Frage wie lange man damit durchkommt.
WIP Website: kevinheese.de

5

15.12.2016, 17:42

Die Physikengine von Unity ist ziemlich begrenzt.
z.B Konnte man vor ca. 2 Jahren Dinge nicht unter Last kaputt gehen lassen, Box2d dagegen kann das.
Ansonsten kann man mit Unity nicht ordentlich lernen, wie man Software aufbaut, da das Framework einen einschränkt und man das Konzept der Gameobjects mit Scripten hat.

Das sind wie gesagt nur Kritikpunkte, aber es gibt eine sehr lange Liste an positiven Dingen.

Zitat von »Chad Fowlder«

Leider hat die Software-Branche viele flache Spezialisten hervorgebracht, die die Bezeichnung Spezialist nur als Entschuldigung dafür verwenden, nur eine Sache zu kennen.

6

15.12.2016, 19:39

Wie sieht das eigentlich mit C# und .NET aus? Ein Kollege hat als negativen Kritikpunkt immer angegeben, dass man einfach den Code auslesen kann. Außerdem lese ich viel darüber, dass man Unity Games mit einem "DotNetResolver" relativ einfach manipulieren/hacken kann. Da allerdings Hearthstone mit Unity gebastelt wurde... bezweifel ich einfach mal, dass man sich problemlos unendlich Mana 'hacken' kann...?! Ich sehe da zwar nicht so genau durch, aber das mit dem Auslesen des Codes müsste doch eigentlich stimmen, da C# anders funktioniert bezüglich des Interpreters und Compilers?! C++ hingegen ist ja viel hardwarenäher und somit kann man den Code nicht (oder nicht so einfach...) auslesen?!

Ich bin mehr im Design Bereich unterwegs, daher kann ich Unity durchaus empfehlen (außer man will ein Portfolio aufbauen und hat den Anspruch, dass die Leute das möglichst unkompliziert spielen können... weil da sieht's mit Unity und Google Chrome doch eher mau aus ...). Mich erschreckt bei sowas eher die Vielfalt... ich kann nämlich nicht wirklich einschätzen, was nun wirklich "gut" und was dann doch eher "schlecht" bzw. für meine Zwecke ungeeignet ist. Aber das ist denke ich auch nur eine Sache der Gewohnheit bzw. wie sehr man sich in der Engine auskennt?!

David Scherfgen

Administrator

Beiträge: 10 198

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

15.12.2016, 19:43

Nein, man kann nicht “einfach den Code auslesen“. C# wird in eine Zwischensprache kompiliert, die zwar abstrakter und für den Menschen einfacher zu verstehen ist als Maschinencode, aber den Originalcode bekommst du nicht zurück. Zudem gibt es Obfuscator-Tools, die das Reverse Engineering stark erschweren.

BlueCobold

Community-Fossil

Beiträge: 10 890

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

15.12.2016, 19:54

Zum Beispiel Hearthstone sollte man noch sagen, dass das Spiel selbst nur ein "dummes Frontend" ist. Die Spiel-Logik und ob ein Spieler eine gewisse Karte spielen kann, wird vom Server geprüft. Daher würde es nichts nützen, wenn sich ein Spieler auf seinem PC "unendlich Mana" hacken würde. Der Server würde das nicht fressen. Vermutlichh landet man sogar auf einer Ban/Bot-List, wenn man Dinge zum Server schickt, der das reguläre Frontend nie tun würde.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

hawkeye_de

Frischling

Beiträge: 68

Wohnort: Baden-Württemberg

  • Private Nachricht senden

9

15.12.2016, 20:38

Es kommt letztendlich drauf an, was Du entwickeln willst...mach doch einfach paar Tutorials und dann bekommst Du ein Gefühl.

Ich habe Unity ein paar Wochen probiert, bin aber dann auf Scala/Libgdx umgestiegen. Nicht weil die Engine schlecht ist, sondern weil ich die Features (Editor etc.) für mein 2D-Roguelike nicht wirklich benutzt habe, da ich sehr viel mit prozedural erzeugten Content arbeite und Scala produktiver ist, als eine veraltete C#/.NET Version, welche Unity zur Zeit noch benutzt...
"Große Geister besprechen Ideen; durchschnittliche Geister besprechen Ereignisse; kleine Geister besprechen andere Leute"

-Admiral USN Hyman Rickover, Vater des 1. Atom U-Boots "Nautilus"

Tobiking

1x Rätselkönig

  • Private Nachricht senden

10

15.12.2016, 22:28

Bei C# klappt das Decompiling tatsächlich ziemlich gut. Bei Hearthstone kommt dort lesbarer Code mit allen Klassen- und Variablennamen raus. Selbst wenn es nicht der Originalcode sein sollte, ist es ziemlich nah dran. Wie aber schon gesagt wurde, heißt das nicht das man einfach etwas editieren kann, da die Logik auf dem Server läuft.

Werbeanzeige