36
CZYLI RÓBMY GRY TAK, JAK 20 LAT TEMU. Programowanie gier znów stało się łatwe Targi Kariera Programisty 12 maja 2012 Warszawa

Programowanie gier znów stało się łatwe

Embed Size (px)

Citation preview

Page 1: Programowanie gier znów stało się łatwe

CZYLI RÓBMY GRY TAK, JAK 20 LAT TEMU.

Programowanie gier znów stało się łatwe

Targi Kariera Programisty12 maja 2012

Warszawa

Page 2: Programowanie gier znów stało się łatwe

Na początek o mnie

Page 3: Programowanie gier znów stało się łatwe

Maciej Miąsik

Twórca gier od początku lat 90. ubiegłego wieku, amatorsko, a potem już zawodowo, aż do dzisiaj (ponad 20 lat).

Programista amator od 1985 roku – minikomputer MERA-100, mainframe Jednolitego Systemu Maszyn Cyfrowych, potem komputery domowe Atari.

W gamedevie: programista, projektant, producent, sound designer.

Pierwsza profesjonalna gra – Electro Body – opublikowana w 1992 roku.

Page 4: Programowanie gier znów stało się łatwe

Maciej Miąsik

Głównie projekty: 2012: Nowa gra one2tribe 2007: Wiedźmin 2004: Sentinel: Descendants in

Time 2003: Mysterious Journey II:

Chameleon 2003: Codename: Nina 2001: Schizm: Mysterious

Journey 1998: Reah: Face the Unknown 1996: Fire Fight 1994: Heartlight PC 1994: Robbo 1992: Electro Body (aka Electro

Man)

Poboczne projekty: 2011: Call of Juarez: The

Cartel 2010: Jodie Drake and the

World in Peril 2011: Wiedźmin 2: Zabójcy

Królów 2008: Wiedźmin (Edycja

Rozszerzona) 2007: Overclocked: A

History of Violence 1997: Wyspa 7 Skarbów 1997: Katharsis 1996: A.D. 2044

Page 5: Programowanie gier znów stało się łatwe

CZYLI JAK TWORZYŁO SIĘ W POLSCE GRY 20 LAT TEMU

Opowieści ze styropianu

Page 6: Programowanie gier znów stało się łatwe

Początki polskiego gamedevu

Wg Wikipedii – początek to 1962, gra na komputer Odra

California Games 1997-1991Dużo gier (od 1986) na komputery 8-bitowe, czyli

ZX Spectrum, Atari 800XL oraz Commodore 64Później trochę produkcji na 16-bitowe komputery

domowe: Amigę i śladowo na Atari STDalsza historia polskiego gamedevu do producenci

gier na komputery klasy IBM PC, czyli x-LanD, Metropolis, Techland i wielu innych.

Page 7: Programowanie gier znów stało się łatwe

Studium przypadku

Gra Electro BodyAutorzy gry: Janusz Pelc i Maciej Miąsik

Producent i wydawca: Marek Kubowicz (x-LanD)

Kiedy: 1991-1992

Page 8: Programowanie gier znów stało się łatwe

Co było potrzebne?

Page 9: Programowanie gier znów stało się łatwe

Pieniądze

Producent/inwestor chętny do zaryzykowania.Budżet około $9000.Wynagrodzenie każdego z twórców to około

2mln ówczesnych złotych, czyli około $180 (11k-13k złotych za $ w latach 1991-1992), przez 9-miesięcy produkcji.

Biuro, administracja, infrastruktura i sprzęt.

Page 10: Programowanie gier znów stało się łatwe

Sprzęt

1 komputer PC/XT, 640 kB RAM, HDD 40MB, monitor EGA

1 komputer PC/AT, 2 MB RAM, HDD 80MB, monitor VGA, monitor Hercules

Karta dźwiękowa Sound Blaster (z prywatnego importu, wraz z drogim SDK)

Serwer plików i druku z systemem Novell Netware, dyskiem 200MB.

Koszt komputera PC/XT z monitorem to około 7 mln, AT to koszt rzędu 10-12 mln – bardzo drogo.

Oprogramowanie za to za darmo.

Page 11: Programowanie gier znów stało się łatwe

Ludzie z pomysłami

Chęć wytyczenia nowych dróg w rozwoju rodzimego przemysłu IT – produkcja oprogramowania pudełkowego.

Doświadczenie w produkcji gier na komputery 8-bitowe.

Doświadczenie w produkcjach amatorskich gier na PC.

Mozolnie gromadzona wiedza z zakresu tworzenia programów w systemie DOS.

Dużo referencji i inspiracji.Młodzieńczy entuzjazm.

Page 12: Programowanie gier znów stało się łatwe

Jakie czekały wyzwania?

Page 13: Programowanie gier znów stało się łatwe

Wyzwania

Pomysł na atrakcyjną grę akcji do wyprodukowania w 2 osoby w krótkim czasie.

Różne platformy sprzętowe – grafika i dźwięk, bez wsparcia systemu operacyjnego i sterowników.

Wydajność – pamięć i prędkość procesora.Marne lub nieznane narzędzia, brak silników i

middleware’u.Development samej gry.Produkcja fizycznego towaru.Dotarcie do odbiorców, czyli sława i pieniądze.

Page 14: Programowanie gier znów stało się łatwe

Pomysł na grę

Postanowiliśmy rozwinąć pomysł zrealizowany przez Janusze Pelca w jego atarowskiej grze Misja

Samotny bohater przemierza labirynt lokacji walcząc z rozmaitymi przeciwnikami i przeszkodami.

Minimalny element łamigłówkowy – głównie polegający na orientowaniu się w labiryncie.

Brak scrollingu, przechodzimy od ekranu do ekranu – za każdym razem sytuacja na danym ekranie wraca do stanu początkowego.

Prostota i brak specjalnego wyrafinowania.

Page 15: Programowanie gier znów stało się łatwe

Różne platformy - grafika

Hercules – monochromatyczna grafika o rozdzielczości 720x348

CGA – 4 kolory (w tym cyjan i magenta), rozdzielczość 320x200

EGA – 16 stałych kolorów, rozdzielczość 320x200

VGA – 256 kolorów z262144 możliwych, rozdzielczość 320x200

Page 16: Programowanie gier znów stało się łatwe

Ekran EB na tle współczesnych ekranów wiodących smartfonów

Electro Body tworzyło obraz w rozdzielczości 320x200 (właściwie 312x192).

W obecnych czasach coraz trudniej znaleźć telefon z takim wyświetlaczem, o smartfonach nie wspominając.

Smartfony jednak mają ponad 100 razy szybsze procesory i 500 razy więcej pamięci RAM.

Page 17: Programowanie gier znów stało się łatwe

Różne platformy - grafika

Każdy sprajt miał lokalną paletę 16 kolorów wybieranych spośród 256 kolorów palety VGA.

Dla każdego koloru sprajta definiowany był ręcznie jego odpowiednik w paletach EGA, CGA i Hercules.

W przypadku Hercules mimo monochromatyczności, dzięki znacznie większej rozdzielczości, możliwe było uzyskanie kilku wzorów ditheringu symulujących więcej odcieni jedynego koloru.

Page 18: Programowanie gier znów stało się łatwe

Różne platformy - dźwięk

Zdecydowaliśmy się, że muzyka i efekty dźwiękowe będą zdigitalizowanymi dźwiękami naturalnymi.

W grę wchodziła 8-bitowa rozdzielczość, monofoniczny dźwięk o częstotliwości próbkowania zaledwie 8kHz.

Bezpośrednio na karcie Sound Blaster, która miała przetwornik DAC.

Podobnie na Covoxie – domowej roboty DAC podłączany do portu drukarki (LPT).

Głośnik – użycie modulacji szerokościimpulsu.

AdLib – modulacja szerokości impulsusyntezatora FM.

Page 19: Programowanie gier znów stało się łatwe

Wydajność

Gra musiała się zmieścić w sławnych 640 kB, które to miały wystarczyć każdemu.

Specjalne konfiguracje systemu (boot dyskietki) oferowały maksymalnie 520 kB wolnej pamięci.

Komputery PC/XT miały procesor 8088 z zegarem 4,77 do 10 MHz, a PC/AT procesor 80286 najczęściej taktowany 12 MHz. Inne (386, 486) praktycznie nie występowały – zaporowa cena.

Stały frame rate – 20 fps, ręcznie optymalizowany kod w assemblerze (wyświetlanie i dźwięk).

Page 20: Programowanie gier znów stało się łatwe

Narzędzia i silniki

Napisaliśmy własny silnik: Moduł wczytywania i wyświetlania grafiki +

„sterowniki” Moduł dźwięku + „sterowniki” Moduł zarządzania pamięcią i monitorowania zużycia Moduł wirtualnego systemu plikowego

Napisaliśmy podstawowe narzędzie – GGE – edytor sprajtów oraz poziomów: Rysowanie sprajtów i definiowanie tabel translacji

kolorów Edytor poziomów (16x16 ekranów) Definiowanie parametrów dla obiektów w grze (bitowo)

Page 21: Programowanie gier znów stało się łatwe

Edytor GGE w trybie edycji sprajtów

Po prawej stronie widać wersje tego samego sprajta na kartach VGA, EGA i CGA.

Trochę poniżej lokalna paleta sprajta wraz z translacją kolorów dla pozostałych kart graficznych.

Pod sprajtem pełna paleta 256 kolorów VGA.

Page 22: Programowanie gier znów stało się łatwe

Edytor GGE w trybie edycji poziomu

Po lewej 2 wybrane ekrany w trybie edycji.

Obok nich 3 warstwa edycji – każdy ekran miał 4 warstwy sprajtów.

Dalej 2 zestawy sprajtów, czyli maksymalnie 127 sprajtów wliczając animowane obiekty i przeciwników.

Gracz i bronie miały swoje zestawy sprajtów wspólne dla wszystkich poziomów.

Page 23: Programowanie gier znów stało się łatwe

Narzędzia i silniki

IDE Borland C++ (gra jednak napisana w C) plus Turbo Assembler

Autodesk Animator ProCorel DrawNorton CommanderOkazjonalnie Microsoft Windows 3.0Microsoft Word

Page 24: Programowanie gier znów stało się łatwe

Development

Szybki projekt gry.Napisanie silnika i edytora (wsparcie

kolegów).Stworzenie sprajtów w edytorze.Animacje sprajtów (wsparcie kolegów).Zbudowanie 8 dużych poziomów w edytorze.Testy funkcjonalne (wsparcie kogo się dało).Testy kompatybilności.

Page 25: Programowanie gier znów stało się łatwe

Produkcja fizycznego towaru

Napisanie podręcznika (wraz z opowiadaniem fabularnym) oraz złożenie go.

Projekt pudełka.Znalezienie wytwórcy pudełka.Znalezienie producenta kasety z muzyką.Produkcja Covoxów.Rozwiązanie problemu duplikowania dyskietek.Zdobycie folii termokurczliwej, zgrzewarki oraz

opiekacza.Konfekcjonowanie pudełek – znów nieocenienie

koledzy.

Page 26: Programowanie gier znów stało się łatwe

Dotarcie do klientów

Zaprojektowanie i realizacja reklamy radiowej.Plakaty reklamowe A2, monochromatyczne.Dobra polityka cenowa – 150.000 złotych za

wersję podstawową, 230 tys. za wersję z Covoxem.Sprzedaż! Około 8000 egzemplarzy w kraju, w

ciągu kilku lat.Ekspansja na świat: najpierw Niemcy (i okolice),

potem UK, a potem już za pośrednictwem Epic MegaGames – na cały świat (głównie USA).

Prekursorzy koncepcji Enhanced Edition, bo ukazała się ulepszona i upiększona wersja 1.5 Electro Body.

Page 27: Programowanie gier znów stało się łatwe

Ewolucja gamedevu

Page 28: Programowanie gier znów stało się łatwe

Rozrost zespołów

W 1995 roku nasz zespół liczył ponad 8osób, a budżet gry (Fire Fight) sięgnął$150.000.

Po koniec lat 90. zespoły liczyły pokilkanaście osób, a budżety byłypomiędzy $300.000 a $1M.

W latach 2000. pojawiają się wielkie studia i zespoły liczące 100 osób, które na produkcje wydają od $10M do $20M.

Romantyczne czasy gamedevu wydają się być przeszłością. Dominuje kasa.

Page 29: Programowanie gier znów stało się łatwe

Nie wszystko stracone

Mimo dominacji duży produkcji, zawsze było miejsce dla małych zespołów i niezależnych twórców.

Internet stał się doskonałą platformą dotarcia do odbiorców – marketing oraz sprzedaż bezpośrednia.

Rynek gier casual, mimo istnienia na nim dużych graczy, pozwalał także zaistnieć drobnym studiom.

Pojawienie się nowych platform dla gier, czyli telefonów komórkowych zaowocował powrotem do tworzenia gier jak 20 lat temu.

Obecny rynek aplikacji mobilnych, głównie dzięki działaniom firmy Apple otworzył fantastyczne możliwości dla nowych i starych twórców gier.

Page 30: Programowanie gier znów stało się łatwe

JAK DAWNIEJ

Róbmy gry

Page 31: Programowanie gier znów stało się łatwe

Korzystajmy z możliwości

Wymagania odnośnie gier znów są niewielkie. Można osiągnąć niebywały sukces prostą, ładną grą.

Istnieje bardzo duży potencjalny rynek, do którego łatwo dotrzeć: Gry online (Flash, HTML5). Sprzedaż bezpośrednia online. Dystrybucja poprzez sklepy aplikacji (iOS AppStore, Mac

AppStore, Google Play, Desura). Alternatywne metody monetyzacji (F2P, IAP, reklamy)

Bariery wejścia są stosunkowo niskie – sprzęt nie jest drogi, narzędzi jest pod dostatkiem.

Urządzenia mobilne są bardzo mocne i wydajne.

Page 32: Programowanie gier znów stało się łatwe

Korzystajmy z możliwości

Gotowe silniki, bardzo tanie, albo wręcz darmowe, bardzo często multiplatformowe: Corona SDK Marmalade SDK Moai SDK Unity 3D Adobe Flash/Adobe AIR

Jeśli oferują język skryptowy, np. Lua, to pozwalają skupić się głównie na rozgrywce, a nie technikaliach i zawiłościach różnych platform.

2D wciąż daje radę, warto o tym pamiętać i z tego korzystać.

Page 33: Programowanie gier znów stało się łatwe

Korzystajmy z możliwości

Mamy dostęp do olbrzymiej ilości wiedzy w zakresie projektowania i tworzenia gier: specjalizowane serwisy, artykuły i tutoriale w internecie (google twoim przyjacielem jest), książki, dużo tanich czy darmowych gier, aby się inspirować, czy szukać referencji.

Bez problemu można osiągnąć sukces (albo przynajmniej satysfakcję) w pojedynkę, albo w 2-3 osobowym zespole. Przyjemność tworzenia i dzielenia się ewentualnym sukcesem w takim gronie jest naprawdę godna pozazdroszczenia.

Page 34: Programowanie gier znów stało się łatwe

Ku przestrodze

Nawet te małe gry wymagają pieniędzy.Sprzęt Apple kosztuje.Tam, gdzie możliwość sukcesu jest

największa, jest też największa konkurencja i największe szanse porażki.

Nie warto wszystkiego kłaść na jedną kartę, trzeba mieć plan B (i C) i zdobywać wszystkie rynki w zasięgu. Są też alternatywne metody monetyzacji.

Widoczność kluczem do sukcesu. Gra musi być dobra i musi zostać zauważona.

Page 35: Programowanie gier znów stało się łatwe

KORZYSTAJMY Z MOŻLIWOŚCI TECHNIKIKORZYSTAJMY Z OTWIERAJĄCYCH SIĘ RYNKÓW

POŁĄCZMY SIŁY Z PRZYJACIÓŁMIBĄDŹMY KREATYWNI

RÓBMY GRY!

Podsumowując

Page 36: Programowanie gier znów stało się łatwe

Dziękuję

www.miasik.net