Autor Wątek: Postrzeganie znanych, darmowych silników  (Przeczytany 3734 razy)

Offline chupachups

  • Użytkownik

# Sierpień 02, 2015, 17:36:27
Nie jestem pewien czy powinno to być w tym dziale, w razie czego przepraszam i proszę o przeniesienie.

Chciałbym zadać wam pytanie: jak postrzegacie gry tworzone na darmowych lub/i znanych silnikach jak Unity, UnrealEngine etc.? Oczekujecie od nich trochę więcej, może programiści na starcie mają - za "lenistwo"? Pytam całkiem poważnie, od 4-5 lat bawię się(m.in.) w programowanie, chciałbym podszkolić temat gamedevu, bo słabo go umiem i nie wiem, zabrać się za jakiś silnik(Unity kusi.) czy może tworzyć "własny"?
« Ostatnia zmiana: Sierpień 05, 2015, 00:25:01 wysłana przez chupachups »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Avaj

  • Użytkownik

  • +5
# Sierpień 02, 2015, 18:20:42
Nie. Liczy się stworzenie gry. Większość popularnych gier bazuje na silnikach lub chociażby na bibliotekach. Nikt nie krytykuje Wastelanda 2 za użycie Unity. Nawet to się chwali, bo człowiek nie traci czasu na silniki, co przy braku doświadczenia i jednoosobowym zespole kończy się wiecznym robieniem silnika. W 3D szczególnie, w 2D jeszcze można bardzo szybko sklecić "silnik", podpiąć Box2D i śmiga, dla 3D to już trzeba poświęcić sporo czasu żeby to miało ręce i nogi.

A dlaczego ludzie np. tutaj wszyscy piszą własny silnik? Niektórzy z nas nie lubią robić gier, bardziej interesuje nas technologia. Nie mamy artystycznych zdolności, to piszemy silnik, do demka silnika wystarczy kilka darmowych modeli z neta.

Jeśli chcesz robić gry, bierz Unity i się nie zastanawiaj. Jeśli chcesz przygody, która nie zakończy się stworzeniem gry - pisz własny silnik.

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

  • +10
# Sierpień 02, 2015, 19:00:43
Cytuj
Chciałbym zadać wam pytanie: jak postrzegacie gry tworzone na darmowych lub/i znanych silnikach jak Unity, UnrealEngine etc.? Oczekujecie od nich trochę więcej, może programiści na starcie mają - za "lenistwo"?
Z doświadczenia: jak widzę logo Unity, to oczekuję, że gra będzie działać 5x wolniej niż powinna, albo nie będzie działała wcale. Bo niestety z wydajnością jest bardzo słabo w porównaniu z tym co rzeczywiście da się na daej platformie zrobić.

Offline Kyroaku

  • Użytkownik

# Sierpień 02, 2015, 22:30:40
Nie wiem, czy daje ujemne punkty za użycie darmowego silnika, ale na pewno źle mi się kojarzy jego znaczek.
To nie przeszkadza mi jednak w tym, żeby dać grze szanse. W większości jednak, gry o których mowa, wypadają kiepsko.

Jeżeli jednak chodzi o tworzenie gier w owych silnikach, to popatrz na to w ten sposób:
Gry można podzielić na dwie grupy:
- tworzone na gotowym silniku
- tworzone na własnym silniku
Wspólny mianownik ? silnik

Jeśli chcesz tworzyć gry, to musisz się uczyć tworzyć gry, a nie pisać silniki ;)

Cytuj
nie wiem, zabrać się za jakiś silnik(Unity kusi.) czy może tworzyć "własny"?
Jeśli chcesz się wziąć za tworzenie silnika tylko dlatego, że chcesz na nim zrobić grę, to przykro mi, ponieważ sukcesem dla Ciebie będzie, jeśli za 5 lat zaczniesz w ogóle pisać docelowy silnik c(:

Offline Mergul

  • Użytkownik

  • +5
# Sierpień 02, 2015, 22:54:47
Słabe te dwie grupy. Można pisać grę bez silnika, jest wtedy duzo łatwiej niz pisząc silnik. Piszać efekty i cały rendering uwzględniając tylko jedną grę jest duuuuużo łatwiej, o tyle łatwiej ze można to samo zrobić nawet i dosłownie 100x szybciej ;)

Offline Kyroaku

  • Użytkownik

# Sierpień 02, 2015, 23:19:50
Miałem na myśli "gry", a nie "według mnie gry" :D

Cytuj
Piszać efekty i cały rendering uwzględniając tylko jedną grę jest duuuuużo łatwiej, o tyle łatwiej ze można to samo zrobić nawet i dosłownie 100x szybciej ;)
A "silnik" musi mieć koniecznie opcję tworzenia różnych typów gier ? :D
Jeśli napiszę silnik do tworzenia Mario, to to nie będzie silnik ? c(:

Offline Mergul

  • Użytkownik

  • +1
# Sierpień 02, 2015, 23:23:39
taki silnik w grze, to często ciężko nazwać silnikiem :D a jak rozumiesz już jak działa grafika 3D to możesz zrobić dosyć niezłą grę 3D w miesiąc :D chociaż nie ma co liczyć na mega efekty i super animacje po takim czasie :D

Offline Kyroaku

  • Użytkownik

  • +1
# Sierpień 02, 2015, 23:50:31
Tak na poważnie, to miałem na myśli gry z prawdziwego zdarzenia, które pisze się między innymi dla zarobku. Pracę w grupie, gdzie raczej rzadko się kodzi grę bez silnika :)

OP w końcu pyta o postrzeganie gier na różnych silnikach, co kojarzy mi się raczej komercyjnie :P

Offline Mergul

  • Użytkownik

  • +1
# Sierpień 03, 2015, 00:56:50
Ok ;) Fakt, szybciej i łatwiej na gotowym silniku :)
Jeżeli chodzi o mnie to widząc grę na autorskim silniku wyglądającą nieźle, to od razu biorę ją pod uwagę. Jak widzę grę na silniku typu Unity, to podchodzę do niej z dystanesm, bo tam każdy moze zrobić coś co przypomina grę. Może mieć ładną grafikę, ładny świat, teoretycznie działający gameplay (który na silniku łatwo skleić byle jak), a w praktyce okazuje się do niczego i często nigdy nie wychodzi :) Ale jeżeli gra faktycznie okaże się fajna i działa na moim kompie to nie mam nic przeciwko :) Chociaż Unity akurat wyjątkowo nie lubię przez to ciagłe gadanie o nim :D

Offline nameczanin

  • Użytkownik
    • devlog

  • +3
# Sierpień 03, 2015, 01:25:20
Jak widzę Unity, to dostaję gęsiej skórki czy coś takiego. Przede wszystkim architektura (metoda "Update" w komponentach) tam jest E%@#RWFE@#$@#R, wymaga tyle if'ów, że nie wątpię w większą liczbę bugów, niż to akceptowalne. Unity się sypie, nie da się dzielić sensownie assetów, udaje, że jest wstecznie kompatybilne z wersji na wersję, a na koniec nie korzystamy z połowy ficzerów, bo albo są niewydajnie zrobione, albo wybrakowane i nie do końca konfigurywalne. Drag&drop przydaje się tylko grafikom/level designerom. Zrobić coś lekko niestandardowego (jak choćby rysowanie linii palcem po ekranie dotykowym) jest ciężkie. Natomiast wieloplatformowość na każdym silniku jest problemem, zwłaszcza na urządzeniach mobilnych, jednak czarna skrzynka nie ułatwia.

Jeżeli chodzi o dobieranie enginów, to weź sobie coś darmowego i małego, zamiast tworzyć własny. Trzeba wiedzieć jak się używa silników, żeby robić je sensownie. Niektóre silniki są dostosowane pod konkretny rodzaj gier (2D/3D, przygodówki, rpg, tekstówki, strzelanki, platformówki etc.).

Ja zdecydowałem się na używanie frameworka libgdx zamiast jakiegoś silnika. Silniki wymuszają zawsze jakąś architekturę (jak działa scena, jak się wczytuje/wrzuca tam obiekty itd.). Tutaj mam kontrolę nad architekturą, a tylko dobieram sobie klasy, które są mi potrzebne. Z typowymi silnikami zrobisz coś szybciej, ale znowu bez przesady. Zarządzanie sceną w jakimś stopniu Ci załatwi, wczytywanie jakichś plików też, renderowanie czy nawet kolizje także, ale grę i tak musisz zakodzić.

Moim zdaniem Unity to udręka i nie warto, zwłaszcza, jak dopiero w to wchodzisz. Ale sporo ludzi jest innego zdania, chociaż znam takich co zachłysnęli się, a jak z tyłu zabrakło, to narzekali, że już za późno na wycofywanie się. Jednego znajomego wprowadziłem w świat gamedevu właśnie libgdx-em (no niestety Java), jak programujesz nie od dzisiaj to powinieneś się tam odnaleźć.

Offline matheavyk

  • Użytkownik
    • rabagames.com

  • +3
# Sierpień 03, 2015, 08:03:15
To ja, jak zwykle, dla równowagi wypowiem się o Unitym inaczej, choć oczywiście nikogo nie zmuszam do używania.

W odniesieniu do libgdx: w Unity zrobię działającą grę kilkukrotnie szybciej, a to dlatego, że wiele spraw "technicznych" jest już rozwiązanych np. nowy system UI, automatyczne pakowanie obrazów do atlasu.

A, żeby pokazać inny punkt widzenia, nieco żartobliwie (acz zgodnie z prawdą) napiszę tak:
- przede wszystkim architektura (metoda "update") jest już napisana i nie muszę sam tworzyć identycznej (co i tak bym zrobił), jest dobra m.in. dlatego, że nie wymaga dużej liczby if'ów,
- Unity nie jest w 100% wstecznie kompatybilne, dlatego autorzy przy ostatniej zmianie wersji dołączyli narzędzie do automatycznej aktualizacji kodu do nowej wersji (to chyba nie jest udawanie),
- dzięki drag&drop praca jest szybsza, łatwiejsza i nie muszę np. pisać Image nowyObrazek = LoadImage("mój nowy obrazek.png") lub co gorsza aktualizować całego atlasu (pewnie napisałbym sobie do tego jakiś automat, ale już nie muszę, bo mam to w Unity), bo wystarczy, że przeciągnę swój obrazek z folderu w windows do edytora,
- rysowanie linii palcem po ekranie można zrobić łatwo, co jest tylko moim zdaniem, bo niby łatwo w porównaniu do czego? Przecież inne silniki mi tego nie ułatwiają, a jak już to właśnie Unity, bo z asset store'a można ściągnąć np. obsługę gestów.

Zgadzam się, że silnik zawsze narzuca architekturę, no ale w sumie poniekąd od tego jest. Pisząc w libgdx+java czułem, że programuję i "siedzę w kodzie", to jest fajne, bo od zawsze tak robiłem (w BlitzBasic, później C++ i Irrlicht, C# i MOgre, czy w innych językach pisząc programy konsolowe). Tyle, że dopiero Unity przyspieszyło znacznie moją pracę, a prawda jest taka, że kodu też dużo naklepałem i pod tym względem nie mam się czego wstydzić (a chyba też o to chodziło w pytaniu autora tematu).

A jak widzę grę z logiem znanego silnika, to w większym stopniu wymagam od niej, żeby była dokończona. Na inne gierki patrzę pobłażliwiej, co nie znaczy, że przynoszą mi większą radość z gry.

No i oczywiście nie uważam swojej opinii za lepszą, ani za gorszą od innych. Nie chcę też bronić Unity czy też namawiać kogoś siłą (aczkolwiek polecam). Chciałem tylko pokazać, że można mieć bardzo pozytywną opinię o Unity i dalej chętnie wchodzić na warsztat ;p

Offline JasonVoorhees

  • Użytkownik
    • The Immortal Life of the Son of Jay

  • +5
# Sierpień 03, 2015, 12:27:02
Z doświadczenia: jak widzę logo Unity, to oczekuję, że gra będzie działać 5x wolniej niż powinna, albo nie będzie działała wcale. Bo niestety z wydajnością jest bardzo słabo w porównaniu z tym co rzeczywiście da się na daej platformie zrobić.
Heh, to muszę skończyć z wersją personal, żeby nie było tego loga :D

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

  • +3
# Sierpień 03, 2015, 12:49:32
Heh, to muszę skończyć z wersją personal, żeby nie było tego loga :D
OK. Połowa problemu z głowy. A jak zaadresujesz problemy wydajnościowe już po uruchomieniu? ;)

Offline 10log

  • Użytkownik

  • +2
# Sierpień 03, 2015, 14:34:17
OK. Połowa problemu z głowy.

To ta mniejsza połowa. A co z większą połową? ;)

Offline JasonVoorhees

  • Użytkownik
    • The Immortal Life of the Son of Jay

  • +2
# Sierpień 03, 2015, 19:55:38
OK. Połowa problemu z głowy. A jak zaadresujesz problemy wydajnościowe już po uruchomieniu? ;)
Póki co, tworzę grę 2D i nie narzekam na wydajność (czy to na moim telefonie Samsung Galaxy Ace 4, czy to na laptopie produkcyjnym). Rozumiem, że w bardziej skomplikowanych grach, czy to 2D, czy 3D Unity może przymulać. Ba nawet w mojej grze na lapku produkcyjnym jak włączę rozdzielczość Full HD i jakość "Fantastic" to gra przymula. Ale akurat w moim projekcie nie widzę różnicy w wyglądzie między "Fantastic", a "Good" czy "Simple", a wydajność skacze w górę (pewnie przez wyłączenie dodatkowych filtrów, które nie mają większego wpływu na wygląd gry).

Poza tym Unity ma duży potencjał, chociażby na przyszłość. Załóżmy sytuację, że mam gotową grę utworzoną w Unity. Twórcy Unity wzięli się za wydajność -> np. dorzucili kompilację C# do C, przeprojektowali to i owo, doszły mechanizmy współbieżne itp. Ja nie muszę w grze nic zmieniać, wystarczy, że zrobię builda w nowej wersji Unity. Fajnie mieć nad sobą taką warstwę pośrednią.

Jak dla mnie, i tak w Unity techniczne sprawy załatwili lepiej niż ja pisząc swój pokraczny silnik. Wszystko mogę sobie ładnie zapakować w prefaby, komponenty i ogólnie łatwiej mi utrzymać spójność projektu. Nawet jeśli teraz dużo graczy nie ma komputerów/telefonów/tabletów potrafiących uciągnąć to co zrobię, to kiedyś będą mieli.
« Ostatnia zmiana: Sierpień 03, 2015, 19:58:36 wysłana przez JasonVoorhees »