Zkušenosti s vývojem her v Unity

Zkušenosti s vývojem her v Unity
« kdy: 28. 02. 2021, 22:27:17 »
Mate nekdo zkusenosti s vyvojem 2d a 3d her v Unity potom/predtim, co jste vyvijeli v nejakem "neklikacim" engine/frameworku? Rozhoduju se, jestli mu dat sanci. Po vikendu hrani si s nim vidim, co umi, ale nedokazu si predstavit pracovat s nim v tymu a nejak kontrolovat nove pridane featury. Jak spolupracovat pres git a delat code review, jak nejak automaticky testovat a deployovat atd. Zkratka ty pridruzene veci v rizeni projektu.

Rikam si, ze na to mozna koukam ze spatneho uhlu a chci resit veci, ktere se v Unity neresi. Vzdyt prece Unity pouzivaji i velka herni studia, nemuze to byt tak spatne, jak se mi to nyni zda ;)
« Poslední změna: 28. 02. 2021, 22:58:34 od Petr Krčmář »


Re:Zkušenosti s vývojem her v Unity
« Odpověď #1 kdy: 01. 03. 2021, 10:23:30 »
Proc se jich teda nezeptas?

Re:Zkušenosti s vývojem her v Unity
« Odpověď #2 kdy: 02. 03. 2021, 00:44:55 »
Po pravde je to dost zlo. C# kod se da verzovat celkem normalne(odhledneme-li od toho, ze Unity ke kazdemu souboru vyblije nejaky meta file a ze nemas kontrolu nad strukturou projektu - .project soubory generuje unity pri kazdem spusteni, takze kdyz chces pridavat treba zavislosti, je to drbani levou nohou za pravym uchem), ale nejake assety(sceny, prefaby) se dost dobre verzovat nedaji. No a kvuli podobnym prasarnickam se v hernim vyvoji misto gitu pouziva zoufaly perforce, kde se pri kazde modifikaci soubor zamkne(coz se da udelat i v gitu, ale neni to moc komfortni). Dale je celkem neprijemne, ze ti prakticky kazda nova verze Unity neco rozjebe, takze je nejlepsi javascriptovy pristup - po pocatecni fazi vyvoje se "knihovny" zabetonuji a s tim ten projekt dozije. Testovani je taky zlo, ale to by bylo na dlouhe vypraveni.

Jestli chces udelat nejakou indie hru a jde ti o dusevni zdravi, tak se radsi koukni na Godot. Umi prakticky to same, je nesrovnatelne rychlejsi(alespon co se tyce vyvoje) a je open source.

Re:Zkušenosti s vývojem her v Unity
« Odpověď #3 kdy: 02. 03. 2021, 08:50:04 »
C# se dá verzovat úplně normálně (metafile je prostě jen info pro Unity, které se mění jen vyjímečně, takže zavarzuješ a neřešíš), s assety je potíž, ale to bude hádám v každém enginu. Jinak Unity od jisté verze (možná 2018?) podporuje textově definované assety (scény, prefaby) a ty už se dají verzovat trochu lépe. Co se týče závislostí, ty je lepší řešit přímo v Unity projektu, než v csproj (což ani nejde, protože jsou při každém buildu přegenerované). Ve všech herních studiích, kde jsem dělal (spíš indie), se používalo SVN nebo GIT, Perforce nikde, protože je drahý (afaik ho používá Bohemka).

To, že každá nová verze něco rozjebe je bohužel fakt - někdy jsou to drobnosti, někdy zásadní věci. Přechod na vyšší patch release v rámci jedné verze ale většinou není velký problém. Jinak se to dělá tak, jak píše jehovista, až do konce projektu používáš stejnou verzi Unity, případně (pokud potřebuješ třeba nějaké novější featury) uděláš přechod a vyřešíš jednorázově všechno rozjebané.

Co se testování týče, to je složitější. Nějaké unit testy apod. to (afaik) nepodporuje, jedině si to všechno udělat externě, což ne vždy má smysl. Nikde, kde jsem dělal se unit testy na hru nedělaly, testovalo se ručně nebo pomocí toolů jako Selenium.

Automatizovat build process není problém (s externími tooly), všechno se dá volat i z commandline, nebo si můžeš zaplatit build server od Unity.

Re:Zkušenosti s vývojem her v Unity
« Odpověď #4 kdy: 25. 03. 2021, 19:41:54 »
Po pravde je to dost zlo. C# kod se da verzovat celkem normalne(odhledneme-li od toho, ze Unity ke kazdemu souboru vyblije nejaky meta file a ze nemas kontrolu nad strukturou projektu - .project soubory generuje unity pri kazdem spusteni, takze kdyz chces pridavat treba zavislosti, je to drbani levou nohou za pravym uchem), ale nejake assety(sceny, prefaby) se dost dobre verzovat nedaji. No a kvuli podobnym prasarnickam se v hernim vyvoji misto gitu pouziva zoufaly perforce, kde se pri kazde modifikaci soubor zamkne(coz se da udelat i v gitu, ale neni to moc komfortni). Dale je celkem neprijemne, ze ti prakticky kazda nova verze Unity neco rozjebe, takze je nejlepsi javascriptovy pristup - po pocatecni fazi vyvoje se "knihovny" zabetonuji a s tim ten projekt dozije. Testovani je taky zlo, ale to by bylo na dlouhe vypraveni.

Jestli chces udelat nejakou indie hru a jde ti o dusevni zdravi, tak se radsi koukni na Godot. Umi prakticky to same, je nesrovnatelne rychlejsi(alespon co se tyce vyvoje) a je open source.

S Godotem mám malé zkušenosti, ale soubor projektu, scény, atd má v plaintextu, takže se dá verzovat jednoduše.