Autor Wątek: Krysys twórczy  (Przeczytany 3846 razy)

Offline DanielMz25

  • Użytkownik

  • +1
# Listopad 01, 2016, 22:27:01
Zmień podejście do silniczka z myślenia o własnym projekcie jako o pracy na akord, na myślenie jak o pracy na etacie. Ustal sobie przykładowo 5h dziennie i licz ze stoperem. Jak startujesz stoper, to zero facebooka, zero youtuba, zero rozpraszaczy. Jak wstajesz od roboty to stopujesz stoper. Taka głupia zmiana systemu pracy może zatrzymać twoją stagnację, pomaga podejść do problemu bardziej na luzie, skupić się na samej pracy a nie na efekcie. Jeśli nawet nic nie zrobiłeś, ale siedziałeś nad problemem te 5h, to uznajesz dzień za udany, liczy się czas jaki twój mózg pracował, a nie sam efekt.

Offline Mr. Spam

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

Offline Rakieta

  • Użytkownik

# Listopad 02, 2016, 12:04:18
Podbijam co napisali JasonVorhees i Reg. Wszyscy chyba miewamy takie same problemy jak Ty. Sam akurat w niczym nie pomogę, bo jestem zbyt młody by doradzać w takich sprawach, chcę tylko opisać mój punkt widzenia. Uwaga, bo może zadziałać demotywująco.

Tworzenie gier stało się łatwe jak nigdy, ale jednocześnie wciąż jest za trudne by wszystko zbudować w pojedynkę. I tak jak ktoś pisał, jeszcze kilka lat temu budowałem swoje gierki od zera, to wymagało nauki na temat terenu, budowy modeli, animacji postaci, wypalania normal map, teksturowania. Ile to ja godzin spędziłem na nauce rzeczy, którymi jako programista nie powinienem się interesować.

A i tak robiłem to przecież gorzej niż ludzie, którzy skupiają się na tworzeniu grafiki. Wszystko potrzeba lat pracy. Może kiedyś programista mógł zrobić kwadratowe modele z teksturami 16x16px, nazwać to minecraftem i liczyć, że ludzie to chwycą. Dzisiaj już przecież ludzie wymagają, choć nie twierdzę, że nie widzę popularnych projektów ze słabą grafiką.

Natomiast dzisiaj w moim życiu już jest inaczej. Doszły nowe obowiązki i nowe problemy. Praca przy komputerze sprawiła, że nawet nie mam już takiej ochoty później przy nim dłubać. Kilka godzin kodzenia stron internetowych zdecydowanie wypala całą tą ochotę do kolejnych godzin budowy własnej postaci w blenderze. A i że mam tu teraz mało znajomych, przyszła zima i nie ma kiedy, gdzie odetchnąć od tematu.

W międzyczasie przez te lata zrozumiałem również prostą rzecz - gra stworzona przy pomocy gotowych modeli, ale ze zbudowaną mechanika jest więcej warta niż jedna scena tej gry na którą poświęciłem ten sam czas, ale zbudowałem dopiero jedną scenę samodzielnie. Ludzie pobierają gotowe skrypty Unity żeby oszczędzić pracy, a my się zastanawiamy czy warto użyć gotowych modeli. Tu też przy okazji można zaznaczyć, że nawet jako programista też pewnie nie raz skopiowałeś czyiś kod z tutoriali/dokumentacji.

Osobiście zmieniłem pewnego dnia taktykę jeszcze inaczej niż tutaj niektórzy polecają - zacząłem zatrudniać grafików. Byłem przekonany, że i tak nie znajdę gotowych modeli pasujących do gry. W rezultacie po roku lub dwóch, bo sam już nie wiem, i tak muszę przyznać, że nic szczególnego nie osiągnąłem w tym zakresie. Wydałem trochę pieniędzy, pobawiłem się w budowanie różnych gier, ale pozostałe problemy i obowiązki życiowe i tak mnie trochę pożerają. I codzień oglądamy podobne projekty tworzone przez studia w czasie 10x szybszym. A jeszcze większa gorycz pojawia się, gdy ktoś przyznaje, że ma grupę osób pracującą dla niego za darmo nad projektem i szuka jeszcze jednego darmowego pracownika.

A ja wydałem pieniądze tworząc gierki, które miały docelowo być darmowe, tylko dlatego, że chciałem być fair ze wszystkimi. Poświęcasz czas na mój projekt to Ci płacę.

Zdecydowałem więc o czymś jeszcze - porzuciłem wszystkie większe plany. Chciałem zająć się prostymi gierkami by czerpać pełnię frajdy z budowy, oglądać jak statystyki rosną i cieszyć się jeśli będą się podobać. W rezultacie poszukałem tym razem grafika 2D. Grafik się pojawił, stworzył dla mnie testowy obiekt, ale zajęliśmy się innym projektem. Obczaił go, stworzyłem cały szkic, podałem mu przykładową grę, która z podobnym mechanizmem osiągnęła spory sukces. Dostałem termin pierwszej pracy. Po tym terminie więcej się nie odezwał, wnioskuję, że stwierdził, że więcej zysku przyniesie mu stworzenie tej gry samodzielnie i poszukanie innego zleceniodawcy. Podobno miał jakieś tam doświadczenie w kodowaniu. Pare razy tylko znikał jeszcze z 'dostępnego', kiedy sam uruchamiałem komunikator :)

No i tak wyglądają moje przygody z samodzielnym tworzeniem gier. Pierwszą grę tworzyłem w okolicah 14-15 roku życia. Co innego pewnie gdybym poznał znajomego co chociaż chciałby scenariusze tworzyć. Co innego pewnie gdybym mógł sobie całymi dniami siedzieć, klepać kod i nie robić niczego innego.

PS. W tej chwili szukam kolejnego grafika...
« Ostatnia zmiana: Listopad 02, 2016, 12:05:51 wysłana przez Rakieta »

Offline Dab

  • Redaktor
    • blog

  • +1
# Listopad 02, 2016, 13:32:47
Z moich doświadczeń: nie ma co się porywać na zbyt dużo rzeczy naraz. Robienie jednocześnie techu, kodu gameplayu, game design, art directorowanie, modelowanie, level design i 100 innych rzeczy NARAZ jest po prostu poza zasięgiem 99.999999% ludzi (zostawiam mały zapas gdyby trafił się jakiś zdolny chiński ośmiolatek).

Działając w małym zespole (samemu == ekstremalnie mały zespół) trzeba działać bardzo sprytnie i mądrze wybierać swoje bitwy.

Klepanie własnego silnika ma sens TYLKO w jednym z dwóch przypadków:
- interesuje nas klepanie silnika samo w sobie
- jeżeli jest w nim jakaś unikalna featurka która BARDZO ułatwi nam życie w porównaniu z gotowcem

Inaczej po prostu nie da się nie być sfrustrowanym, jeżeli efekt naszej wielomiesięcznej pracy można wyklikać w Unity w 2 minuty.

To samo z kodem gameplayowym - zamiast walczyć od zera i tracić czas, można pomyśleć o kupieniu gotowego schematu gry i zaczęciu od jego modyfikacji. Oczywiście to nie zadziała, jeżeli chcemy zrobić jakąś bardzo nietypową grę - ale często tylko nam się wydaje, że gra jest nietypowa, a w praktyce jest to po prostu side-scroller z jakimś twistem. I wtedy można oszczędzić 75% czasu developmentu NIE zaczynając od zera.
Przykład: https://www.youtube.com/watch?v=Ezl1hk762jk

Art direction/level design - jest kilka różnych podejść do projektowania gier. Można zacząć od szczegółowej fabuły (nie polecam, #nikogo), ogólnej wizji gry (dobre, ale w doświadczonym zespole) albo pomysłu na gameplay i jego prototypu (najbezpieczniejszy wybór). Wtedy można zacząć projektowanie na whiteboksach i zrobić reskina gry mając już działające demo, co jest dużo łatwiejsze (nawet w kontekście szukania zespołu/kontraktora).


Offline Dab

  • Redaktor
    • blog

# Listopad 02, 2016, 13:58:41
A jeżeli głównym problemem jest zrobienie levelu (a na to mi wygląda) to najprostszym, najszybszym i najtańszym sposobem jest kupienie całego level construction kitu w rodzaju https://www.assetstore.unity3d.com/en/#!/content/16452. Masz wtedy nie tylko masę elementów do budowy leveli, ale też spójny kierunek graficzny. Paczek z Unity Asset Store można używać we własnym silniku, chociaż jest to oczywiście dużo bardziej upierdliwe niż import jednym klikiem do Unity.

Offline DezerteR

  • Użytkownik

# Listopad 02, 2016, 14:14:53
Ale ja doskonale wiem na co się porwałem, mam całkiem niezły plan i zoptymalizowałem swoje wymagania tak by były wykonalne. Tylko ta pustka gdy próbuję coś stworzyć. To jest problem.

Co do projektu, powstaje on głównie w celu eksperymentów z efektami graficznymi, gejmplejem, mechaniką i wszystkimi ciekawymi technologami używanymi w gamedevie. Bo mnie to po prostu ciekawi, nie zamierzam zamieniać tego w pacę, tej mam aż nadto.
To by było ładnie, to dodatkowy warunek, jakoś przyjemniej się wtedy pracuje.

Offline moonshield

  • Użytkownik
    • ::devBlog

# Listopad 02, 2016, 17:13:14
Fajnie czasem znaleźć sobie inspiracje. Moją głównie jest to: https://www.youtube.com/watch?v=6U04mprotZU . W teorii nic oryginalnego - kolejna pixelowata platformówka, ale trochę hałasu narobiła.
Co ciekawe, to 5 lat pracy jednego gościa.
W pojedynkę faktycznie można zrobić coś fajnego od zera (przykład wyżej), fajnie jednak znać swoje słabe strony. Jeśli tworzyłbym grę, na pewno nie robiłbym do niej grafik (co nie zmienia faktu, że chciałbym mieć wpływ jak one wyglądają). Gameplay i mechaniki zostawiłbym też lepszym znawcom.
Dziś będąc dobrym koderem trudno być wystarczająco dobrym grafikiem, animatorem etc. Samo zakodowanie gry (biorąc jeszcze pod uwagę fakt, że silnik jest nasz) wymaga odpowiednio dużego wachlarza umiejętności. 
Dodatkowo gdy już taka gra się pojawi, dochodzą jeszcze kwestie związane z marketingiem, promocją, community, wsparciem etc. Myślę, że zawsze dobrze mieć jakieś wsparcie. Wspólnik czy pracownik o innym skillsecie niż my sami jest bardzo ważny.

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Listopad 04, 2016, 17:44:53
Zmień podejście do silniczka z myślenia o własnym projekcie jako o pracy na akord, na myślenie jak o pracy na etacie. Ustal sobie przykładowo 5h dziennie i licz ze stoperem. Jak startujesz stoper, to zero facebooka, zero youtuba, zero rozpraszaczy. Jak wstajesz od roboty to stopujesz stoper. Taka głupia zmiana systemu pracy może zatrzymać twoją stagnację, pomaga podejść do problemu bardziej na luzie, skupić się na samej pracy a nie na efekcie. Jeśli nawet nic nie zrobiłeś, ale siedziałeś nad problemem te 5h, to uznajesz dzień za udany, liczy się czas jaki twój mózg pracował, a nie sam efekt.
Nie do końca się z tym zgadzam. To znaczy myślę, że takie podejście może mieć sens i przynieść efekty, ale myślę też, że lepsze efekty będzie przynosiło układanie sobie jasnych list TODO - zadań do wykonania i odhaczania na tej liście wykonanych. Można do tego ustalać sobie plan - np. w tym tygodniu albo dzisiaj zrobię to i to - albo nie, ale widzieć zrobione rzeczy (zarówno odhaczone na tej liście, jak i faktycznie zrealizowane i działające) to jest chyba bardziej satysfakcjonujące, niż świadomość, że przepracowałem ileś godzin bez zaglądania na Facebooka :)

Offline DanielMz25

  • Użytkownik

# Listopad 05, 2016, 11:21:11
Są momenty kiedy aby coś napisać musisz spędzić wiele godzin na samym myśleniu/męczeniu się z API/czy szperaniu w Internetach. Bywa też tak, że aby zobaczyć byle jaki efekt, trzeba naklepać kilka tysięcy linii kodu, gdzie nie wiemy czy nie narobiliśmy błędów gdzieś po drodze dopóki nie dojdziemy do końca. W takich przypadkach, jak przez cały tydzień nie możemy nic odhaczyć, pozostaje tylko czerpanie satysfakcji z dobrze spędzonego czasu.
Inna sprawa że normalnie, po dokończeniu taska miałem ochotę zawsze zrobić sobie przerwę. A odkąd liczę sobie czas pracy, świadomość że programowałem dziś dopiero 2h sprawia że szybciej biorę się za kolejne zadanie.
Nie wiem, być może taki sposób pracy działa tylko na mnie, nie mniej każdemu polecam spróbować.
« Ostatnia zmiana: Listopad 05, 2016, 11:30:56 wysłana przez DanielMz25 »

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Listopad 05, 2016, 15:31:00
Zrobienie jakiegoś mniejszego etapu z większego projektu, nauczenie się czegoś albo przemyślenie i zaprojektowanie rozwiązania też może być taskiem na liście :)

Offline laggyluk

  • Użytkownik
    • http://laggyluk.com

# Listopad 05, 2016, 15:35:20
Co mnie dobiło? Blender niezbyt dobrze radzi sobie z mapą wysokości 2049x2049, a potrzebuję pewnie jeszcze większej.
może programersko wygeneruj tą mapę jeżeli będzie to ciekawsze od modelowania

Offline DanielMz25

  • Użytkownik

# Listopad 05, 2016, 16:52:51
Dla mnie w ogóle sama idea takiej dużej mapy wysokości jest bezsensowna. Lepiej podzielić sobie mapę na jakieś chunki. Inaczej robienie jakiegokolwiek frustum cullingu traci sens.

Offline DezerteR

  • Użytkownik

# Listopad 05, 2016, 22:11:34
Dlaczego frustum culling przy dużej mapie traci sens? Chyba właśnie do tego służy? I dlaczego miałbym mapę dzielić na fragmenty? I tak wysokość wyciągam w shaderze.

W każdym razie postanowiłem zobaczyć co wyjdzie z przejścia na taki styl:
https://pl.pinterest.com/pin/717901996820200589/
https://pl.pinterest.com/pin/717901996820200588/
Zawsze mi się taki styl podobał tylko nie miałem i nie mam odpowiedniego podejścia do pracy z nim. Przynajmniej nie będę musiał tekstur malować.

Chciałby też odróżnić pracę nad kodem od tworzenia kontentu, przy pracy z kodem zazwyczaj korzysta się z jakiejś dokumentacji/tutoriali/prac naukowych/innych papierów efekt jest znany, mierzalny itp. I tu wszelkie scrumowe techniki sprawdzają się całkiem nieźle.

Bardziej ciekawiło mnie jak wy devowie radzicie sobie z tworzeniem kontentu, widzę na warsztacie mnóstwo projektów z niezłą grafiką, nie wierzę że to wszystko jest kupione/zrobione przez grafika. Skąd bierzecie pomysły? Jak karmicie wyobraźnię żeby potem coś tworzyć? Robicie jakieś szkice?

Offline DanielMz25

  • Użytkownik

# Listopad 06, 2016, 01:26:50
To jak Ty wyświetlasz tę mapę? Jak robisz frustum culling? Nooo chyba po to się dzieli height mapę na chunki żeby można było niepotrzebne odrzucić...
« Ostatnia zmiana: Listopad 06, 2016, 01:28:50 wysłana przez DanielMz25 »

Offline DezerteR

  • Użytkownik

  • +1
# Listopad 06, 2016, 09:09:56
Mam zbudowane quadtree, liście mają 33x33px. No i jak zrobię colling dostaję listę chunków o różnych poziomach LOD, na ich podstawie sadzę trawę i drzewa, wyciągam tez ich pozycje i wymiary, wrzucam do bufora i rysuje instancingiem. Wysokość i normalki sampluję w vertex shaderze.

Całość jest wystarczająco efektywna żebym nie czuł potrzeby optymalizacji, chociaż wypadałoby zoptymalizować drzewko pod cache.

Offline DanielMz25

  • Użytkownik

# Listopad 06, 2016, 11:43:28
Aha... a height mapę nakładasz w shaderze. A blender Ci potrzebny tylko po to żeby widzieć jak to będzie wyglądać. Brzmi rozsądnie. Musiałem mieć chyba zaćmienie mózgu że nie ogarnąłem wcześniej.