Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Project Spark - kurs tworzenia gier część 2, projektowanie lokacji w grze

W pierwszej części kursu poznaliśmy podstawy programowania logiki w grach. W tej części naszym zadaniem będzie wymodelowanie jakiegoś prostego świata. W kolejnych lekcjach chciałbym zachować ten rytm. Jedna lekcja o programowaniu, jedna lekcja o modelowaniu. Tak by całość pozwalała na sprawną naukę. Bo tak jak wcześniej napisałem Project Spark to wehikuł czasu który cofa nas do lat 90-tych gdy gry pisane były przez jedną lub dwie osoby. Musimy wiec nie tylko potrafić programować logikę gry ale także stworzyć własne poziomy. Jedno bez drugiego nie może istnieć. Naszym dzisiejszym zadaniem będzie zbudowanie domu Bag End należącego do Bilbo Bagginsa.

Project Spark posiada bardzo zaawansowany edytor do modelowania przestrzeni z pełnym zestawem narzędzi wymaganych do stworzenia dowolnego poziomu. Mamy narzędzia do dodawania/usuwania bloków terenu, do łagodnego rozszerzania/drążenia, wygładzania/wyostrzania a nawet specjalny filtr który przekształci nasz poziom na podobieństwo Minecraft. W ramach poziomu możemy dodawać setki obiektów gdzie przy każdym możemy definiować nie tylko jego kolory ale także zasady fizyki a nawet skrypty sterujące. Zapomnijmy o krzesłach, stolikach których bohater nie mógł przewrócić, jedna zmiana parametru i na element będą działały prawa fizyki które dodatkowo możemy modyfikować. Poza możliwością modelowania terenu i używania obiektów możemy także w pełni kontrolować oświetlenie. Od prostych spraw takich jak wybór pory dnia, pozycji słońca po pojedyncze źródła światła. Gdzie każde źródło światła poza podstawowymi parametrami może mieć własny skrypt sterujący jego zachowaniem. Ostatnim elementem jest obsługa kamery co także jest częścią modelowania świata ponieważ w poszczególnych miejscach możemy ustawiać konkretne ujęcia. Kto pamięta Alone in the Dark ten wie jak ważna jest odpowiednia praca kamery by budować klimat lub kierować gracza w odpowiednie miejsca. Możliwości są więc nieograniczone i bardzo trudno będzie je wszystkie opisać. Ale postaram się pokazać przynajmniej podstawy

Modelowanie terenu

Tworzymy nowy projekt i wybieramy pędzel ADD który służy do dodawania lub odejmowania pełnych fragmentów terenu. To najprostszy pędzel który w przeciwieństwie do pozostałych nie posiada parametru intensywności. Teren jest dodawany lub odejmowany a więc pędzel idealnie nadaje się by wymodelować wzgórze. Następnie wybieramy pędzel EXPAND odpowiedzialny za rozszerzanie by zapełnić braki terenu i całość wyglądała porządnie. Gdy nasza górka jest gotowa wracamy do pędzla odejmowania by wydrążyć w niej naszą willę Bag End. Najlepiej zrobić to pędzlem w kształcie walca ponieważ najłatwiej się go kontroluje. Możemy także użyć wygładzania co jest przydatne jeżeli zrobiły nam się schodki przy modelowaniu ścieżek które zmieniają wysokość

Ważna uwaga praktyczna. Project Spark obsługuje każdy rodzaj kontrolera. Możemy modelować za pomocą myszki czy gamepada ale ja osobiście polecam tą drugą metodę. Modelowanie przestrzeni 3D jest dużo wygodniejsze jeżeli możemy się naszym pędzlem poruszać wygodnie w trzech wymiarach co jest niemożliwe w przypadku myszki. W przypadku kontrolera mamy dwa analogi które pozwalają nam wygodnie poruszać się w poziomie, rozglądać, przybliżać. Wszystko kilka razy szybciej bo bez konieczności przełączania trybów obsługi myszy. Oczywiście w dalszym ciągu warto mieć pod ręką klawiaturę by nadawać nazwy zmiennym ale sam gamepad jest dużo wygodniejszym narzędziem do modelowania 3D niż myszka. Pełny układ kontrolera jest następujący:

  • X/Y - przesuwanie pędzla w pionie (niezależnie od kierunku obrotu kamery)
  • Lewy analog - poruszanie pędzla w poziomie (niezależnie od obrotu kamery)
  • RB + Lewy analog - przybliżanie oddalanie kamery
  • Prawy analog - rozglądanie się kamerą
  • LB + Prawy analog - zwiększa lub zmniejsza pędzel
  • LB + Krzyżak na boki lub lewy analog - wybieranie skalowania lub rotacji obiektów
  • Prawy trigger - selekcja obiektów oraz wybieranie
  • Lewy trigger - przyciągnięcie obiektu do terenu
  • Krzyżak lewy i prawy - wybieranie obiektów z menu
  • Krzyżak w górę - otwiera galerię obiektów i tekstur
  • Krzyżak w dół przez 1 sekundę - aktywowanie grida
  • Select - wycofywania poleceń
  • Start - menu aplikacji
  • RB + A - centruje kamerę na graczu
  • RB + B - szybki wybór kilku widoków na zaznaczony obiekt
  • LB + Y - edytor skryptów czyli Brain
  • LB + B - edytor bohatera
  • LB + X - usunięcie obiektu
  • LB + A - edytor właściwości obiektów

Teksturowanie terenu

Teksturowanie w przypadku Project Spark jest banalnie proste. Mamy kilkanaście slotów do których przypisujemy wybrane tekstury. Co jest dosyć nietypowe to takie tekstury to nie tylko płaski kolor jak w klasycznych narzędziach ale także animowane obiekty 3D. Dodatkowo taka trójwymiarowa tekstura dostosowuje się do powierzchni. Tak wiec wybierając jedną z nich możemy malować trawę na powierzchniach poziomych podczas gdy ta sama tekstura użyta na powierzchni pionowej rysuje animowane trójwymiarowe pnącza. Bardzo przyspiesza to modelowanie poziomów. Pędzel teksturowania posiada współczynnik intensywności więc możemy łatwo mieszać nasze tekstury. Przykładowo rysując łąkę a następnie z mniejszą intensywnością porozrzucać kamienie lub inne obiekty powiązane z teksturami. Kolorujemy więc nasz teren zgodnie z naszym gustem. Warto pamiętać że zmiana zawartości slotu zmienia nam wszystkie jego użycia w ramach poziomu co ułatwia testowanie. Można przykładowo zmienić trawę w śnieg itp.

Korzystanie z obiektów

Gdy mamy już zarys naszego wzgórza to zaczyna się najważniejsza faza modelowania terenu czyli umieszczanie obiektów. Od prostych obiektów typu kamienie i drzewa bo skomplikowane złożenia które sklejamy w całość. W Project Spark nie możemy tworzyć własnych obiektów więc musimy składać interesujące nas przedmioty z innych. Tak jak w przypadku kloców LEGO. Przykładowo na naszym poziomie potrzebowałem okrągłych drzwi które są charakterystycznym elementem Hobbitonu. Jednak wszystkie dostępne drzwi są prostokątne. Robimy więc złożenie kamiennego okręgu z klasycznymi drzwiami. Puste przestrzenie po bokach uzupełniamy obiektami desek. Gotowy obiekt sklejamy w nasz własny Assembly i zapisujemy go w naszej galerii. Od tej chwili możemy w każdym domu hobbita dodawać okrągłe drzwi.

Drugą ważną opcją jest edycja właściwości. Project Spark pozwala nam nie tylko na zmianę takich prostych właściwości jak kolekcja kolorów. Mamy pełną możliwość edytowania zachowania takiego obiektu. Możemy modyfikować jak działa na dany obiekt fizyka przykładowo wysadzając na kawałki drzwi które przed chwilą skonstruowaliśmy. Ewentualnie definiować pełne skrypty modyfikując mózg danego elementu. Obiekt jabłko domyślnie posiada skrypt pozwalający na jego zjedzenie który uzupełni nam żywotność. Jest to gotowy skrypt który oczywiście możemy dowolnie zmieniać. W naszym poziomie głownie zmieniamy kolory poszczególnych obiektów oraz ich wielkość. Dodajemy obiekty tak by wynik był zbliżony do naszej wizji domu hobbita

Ustawianie parametrów świata

Ostatnim elementem którym będziemy się zajmowali w trakcie dzisiejszej lekcji jest światło. Nasz dom posiada latarnię ale jest to tylko obiekt trójwymiarowy który nie jest źródłem światła. By latarnia świeciła musimy umieścić osobny niewidoczny obiekt symbolizujący źródło światła. Taki obiekt posiada sporo właściwości dzięki któremu możemy zmieniać jego kolor itp. Jak każdy obiekt w Project Spark posiada on także własny skrypt mózgu więc źródło światła możemy ręcznie oprogramować tak jak tylko sobie to wyobrazimy. Gotowe światło możemy połączyć z obiektem latarni i zapisać w jak nasz Assembly. Jest to szczególnie przydatne jeżeli zdecydowaliśmy się dodać jakąś bardziej zaawansowaną logikę. Ułatwi nam to dodawanie wielu obiektów tego samego typu oraz ich szybką modyfikację

I to byłoby na tyle. Wymodelowanie domu naszego hobbita zabrało mi dwie godziny od pomysłu do działającej gry. Zrobienie całego miasteczka z gotowych prefabrykatów które stworzyliśmy zabrałoby jeden weekend. A później wystarczyłoby wymyślić jakieś ciekawe zadania, dialogi i po tygodniu mielibyśmy naszą własną grę przygodową. Gra posiada także masę gotowych skryptów wzorcowych które pozwalają nam na szybką naukę programowania ale tym zainteresujemy się w kolejnej lekcji.

W następnym odcinku...

Plan na kolejny odcinek kursu to ścieżki ruchu które możemy wykorzystać do kontrolowania działań postaci NPC, poruszania mechanizmów typu windy lub ruchu kamery. Dodatkowo omówiłem także działanie systemu przekazywania energii który jest odpowiedzialny za aktywowanie się skryptów. Trzecia część kursu znajduje się pod tym linkiem. Zapraszam także do przeczytania poprzedniego wpisu o programowaniu logiki

Od dziś Project Spark jest dostępny dla każdego za darmo

Od 18 marca 2014 nie są wymagane klucze beta. Każdy może ściągnąć aplikację i tworzyć własne gry bez potrzeby wcześniejszej rejestracji. Zlikwidowano także abonament Spark Time który wcześniej ograniczał możliwość grania w gry używające DLC. Teraz każdy może grać we wszystko za darmo nawet jeżeli nie odblokował samemu zawartości DLC.

Project Spark - Sklep Windows 8.1

Na potrzeby tego kursu założyłem dodatkowe konto w grze gdzie będę publikował kod dla poszczególnych lekcji. Aktualnie są tam tylko najnowsze lekcje. Zapraszam. SatiricalCrab94.  

porady programowanie gry

Komentarze

0 nowych
dthlfwp   7 #1 17.01.2014 14:11

Sciagnalem i wlaczylem ale trzeba wpisac jakis kod czy cos a nie dostalem wczesniej zadnego! Po prostu nie dziala. Ta gra jest jakas zabugowana, dalem 1 gwazdke, moze to zmotywuje M$ do załatania gry.

dthlfwp   7 #2 17.01.2014 14:30

Tyle czasu to sciagalem a okazalo sie ze nie da sie tego uruchomic, ale tego sie mozna bylo spodziewac po M$. Zreszta srednia ocen mowi sama za siebie.

gowain   19 #3 17.01.2014 14:35

@dthlfwp to jest beta, zamknięta, dla osób które zapisały się i dostały klucz, nie ma jak ocenić coś, że jest zabugowane nie umiejąc czytać...

dthlfwp   7 #4 17.01.2014 14:43

to zobacz sobie oceny tej gry to zobaczysz ze inni maja ten sam problem, jak naprawia to przetestuje i dam moze wyzsza ocene. na razie nie da sie uruchomic wiec nie zasluguje na >1 gwiazdke.

halwiefal   3 #5 17.01.2014 14:53

Z checia bym sprobowal ale na PC mam Windows 7 (Windows 8.1 sprawia problemy, chyba kwestia karty graficznej AMD Radeon HD7790), da sie jakos to zaintsalowac nainnym systemie?
Z kolei na laptopie mam Windows 8.1, ale tam karta graficzna to Intel HD4600 (Haswell) -da radę?

gowain   19 #6 17.01.2014 15:36

Ale co Ty chcesz naprawiać? Wszystko działa o ile masz klucz do bety. Jak ktoś nie umie czytać, to potem daje takie oceny.

GameDev   4 #7 17.01.2014 16:04

@dthlfwp
"trzeba wpisac jakis kod czy cos a nie dostalem wczesniej zadnego! Po prostu nie dziala. Ta gra jest jakas zabugowana, dalem 1 gwazdke, moze to zmotywuje M$ do załatania gry"


Project Spark jest w trakcie otwartego testu beta. Klucz dostaje każdy kto się zarejestruje. Każda osoba która w ubiegłym tygodniu się zarejestrowała po przeczytaniu poprzedniego wpisu dostała klucz. Bez wyjątków. Autorzy gry poinformowali że wysłali ponad 100 tysięcy kluczy i dostał go każdy kto zarejestrował się od czerwca 2013 do 15 stycznie 2014. Wszyscy dostali klucze a następna fala dla osób zarejestrowanych przez 2 ostatnie dni pojawi się za kilka dni.

Tylko osoby które się w czwartek lub piątek nie mają jeszcze klucza. Każdy inny taki klucz posiada.

GameDev   4 #8 17.01.2014 16:08

gowain
"jest beta, zamknięta, dla osób które zapisały się i dostały klucz"

To jest beta otwarta. Kucz dostał każdy kto zarejestrował się przed ubiegłą środą (15 stycznia 2014). Tak więc każdy kto zarejestrował się po przeczytani poprzedniego wpisu dostał w środę klucz. Autorzy średnio wysyłają klucze partiami po 25 tysięcy i w sumie wysłali już ponad 100 tysięcy kluczy. Tak więc jest to bardzo otwarta beta. Rzadko zdarza się by autorzy jakiej aplikacji w ciągu miesiąca udostępnili 100 tysięcy kluczy.

GameDev   4 #9 17.01.2014 16:25

gowain
"Jak ktoś nie umie czytać, to potem daje takie oceny"


Brak znajomości języka angielskiego wciąż jest dużym problemem w Polsce. Ludzie nie wiedzą co znaczy słowo 'request a beta key'. Wejdź sobie na anglojęzyczną stronę sklepu i zobaczysz średnie oceny ok 4.5 i setki pozytywnych ocen na 5 gwiazdek. Osoby odwiedzające tą stronę są anglojęzycznie więc wiedzą co znaczy 'request a key'. Wchodzą na stronę, czytają opis aplikacji, rejestrują się i po kilku dniach mają klucz

http://apps.microsoft.com/windows/en-us/app/project-spark/735aaf10-e354-4645-9cb...

Wejdź następnie na polską stronę sklepu i można się załamać. Średnia ocena 2.5 gwiazdki i większość osób oceniających na jedną gwiazdkę. Jestem przekonany że powodem jest brak znajomości angielskiego.

http://apps.microsoft.com/windows/pl-pl/app/project-spark/735aaf10-e354-4645-9cb...


Zaskakuje mnie taka niewiedza. W poprzednim wpisie wyraźnie napisałem że trzeba się zarejestrować. Każdy kto się zarejestrował kilka dni później w środę dostał klucz dostępu. Wydawałoby się że nie powinno być żadnego problemu.

halwiefal   3 #10 17.01.2014 17:09

Zadziala na laptopie z i3 i integrą?

gowain   19 #11 17.01.2014 17:40

@GameDev to nie brak znajomości angielskiego, to po prostu coraz większe lenistwo. Gość wyżej napisał, że trzeba podać jakiś kod, czyli coś tam przeczytał, ale zamiast dowiedzieć się jaki kod, woli bezmyślnie hejtować i oceniać aplikację na 1 gwiazdkę - brak słów, dzieciarnia i tyle :)

GameDev   4 #12 17.01.2014 21:46

halwiefal
"Zadziala na laptopie z i3 i integrą?"

Może być z tym problem. Ja mam notebooka z kilkuletnim Core i5 oraz dosyć wolnym układem Nvidii i ten komputer jest zbyt wolny. Ale twój procesor może mieć szybszą grafikę. Musiałbyś sobie samemu sprawdzić czy całość ruszy. Spark jest darmowy, po zainstalowaniu poszukaj Swan Song który jest najbardziej wymagającym projektem i sprawdź czy twoja karta graficzna to obsłuży.

gowain   19 #13 17.01.2014 21:59

@GameDev beta otwarta to taka, która nie potrzebuje klucza, albo dostaje się go wraz z pobraniem gry/aplikacji, natomiast tutaj musisz trochę czekać, ja dostałem chyba w zeszłym tygodniu, jakoś chwilę przed Twoim pierwszym wpisem. Pobawiłem się, ale chyba nie mam tyle czasu :P To co mnie zachwyciło to edytor terenu - genialnie rozwiązany, przydałby się w niektórych strategiach - ostatnio zakupiłem na steamowej wyprzedaży grę Godus gdzie właśnie by się podobny edytor przydał :)

GameDev   4 #14 18.01.2014 08:06

gowain
"beta otwarta to taka, która nie potrzebuje klucza, albo dostaje się go wraz z pobraniem gry/aplikacji, natomiast tutaj musisz trochę czekać"

Ale to oczekiwanie nie jest długie. Testy beta wystartowały jakoś na początku roku i dosłownie co kilka dni pojawiała się informacja o wysłaniu kolejnej porcji 25 tysięcy kluczy. W niecałe 3 tygodnie autorzy wysłali klucze do każdego kto zarejestrował się przed ubiegłą środą

Finalna wersja edytora Spark planowana jest na wiosnę. Czyli zostały jeszcze 3 miesiące. W tym czasie mając 100 tysięcy testerów wyłapią wszystkie błędy. A ludzie stworzą co najmniej kilka tysięcy udanych projektów. Ja mam zamiar do tego czasu zrobić jeszcze kilka lekcji opisując coraz bardziej zaawansowane opcje. Jeżeli się uda to w dniu premiery ten blog będzie zawierał wystarczająco informacji by każdy mógł zrobić własną grę.

  #15 18.01.2014 22:39

Chetnie bym sprawdzil, ale na komputerze potrzebuję Autodesk Inventora, a ten powoduje crashe explorer.exe na Windows 8.1 (support Microsoftu od razu się pytał czy jest na komputerze Inventor, gdy się dowiedzieli jaki jest problem :) ), co potrafi być denerwujące.
Czy jest przewidziana rowniez wersja pod Windows 7 (po zakonczeniu bety)?
Widziałem też grę "Kodu", również od Microsoft Studios, Project Spark wygląda na rozwinięcie tamtej idei.
Pozdrawiam

GameDev   4 #16 19.01.2014 08:32

wojtek_gosc
"Autodesk Inventora, a ten powoduje crashe"

Adobe jak zwykle potrafi zaskoczyć. Z tego co zobaczyłem w sieci to taka licencja to 8-10 tysięcy złotych - za taką kasę to powinni dbać o to by działało to na dowolnym systemie, nawet XP lub 98 :)

  #17 19.01.2014 17:59

@GameDev,
Autodesk. Adobe to ci od Adobe Flash.
Zgadza się, powinno działać, ale niestety jest jak jest. Wydali jakiś czas temu Service Packa do Inventora, bo wcześniej nawet nie dało się go włączyć.

  #18 19.01.2014 18:01

A co do ceny, to prawie trafiłeś, tylko że waluta nie ta. 9 200 € za minimalną wersję która się nadaje do większych projektów :)

  #19 27.01.2014 18:23

Ty Game Dev jeśli według ciebie chodzi o znajomość angielskiego to się mylisz.
Pobrałem to zalogowałem się włączam jestem w menu klikam Create i to się wyłącza.
Wiesz ile ludzi ma taki problem?

GameDev   4 #20 27.01.2014 22:28

DJohn
"Pobrałem to zalogowałem się włączam jestem w menu klikam Create i to się wyłącza"

W ciągu miesiąca testów zawiesiła mi się może z 3-4 razy i tylko przy pierwszym uruchomieniu. Jeżeli aplikację uruchomiłem ponownie to działała już bez najmniejszych problemów. A używałem tej aplikacji na kilku komputerach z przedziału ostatnich kilku lat, zarówno w pracy jak i domu.



"jeśli według ciebie chodzi o znajomość angielskiego to się mylisz"

Oceny niskie są tylko w polskim markecie gdzie jest 10 opinii z czego 6 negatywnych. W markecie w USA jest 700-800 opinii i średnia w pobliżu 5. Aplikacja w Polsce działa tak samo jak w USA jedyną różnicą jest znajomość angielskiego