4developers 2015: dying light: burzliwa historia action directora - andrzej blumenfeld, techland
TRANSCRIPT
Agenda
• Wstęp – Czyli kim jestem, czym się zajmuję i o czym jest prezentacja
• Teoria - Czyli co chcieliśmy i jak to zrobiliśmy
• Praktyka – Czyli zderzenie z rzeczywistością
• Wnioski – Czyli czego się nauczyliśmy
• Q&A
Kim jestem?
• Frontline Studios – Gene Labs
• Nitreal Games– Misja Bielany 2
– Mazowsze: Pogoń w czasie
• Vivid Games – Table Twister
– Ski Jumping 2012
– Neon Blitz
– V-Tech
• Techland– Dying Light
Programista Gier
• Crime Cites(2000)
• Speedway Championships (2001)
• Pet Racer (2001)
• Pet Soccer (2001)
• FIM Speedway Grand Prix (2002)
• Chrome (2003)
• Xpand Rally (2004)
• Chrome: SpecForce (2005)
• GTI Racing (2006)
• Crazt Soccer Mundial (2006)
• FIM Speedway Grand Prix 2 (2006)
• Call of Juarez (2006)
• Xpand Rally Xtreme (2006)
• FIM Speedway Grand Prix 3 (2008)
• Nikita: Tajemnica skarbu Piratów
(2008)
• Nikita – Piracki Wyścig (2009)
• Speedway liga (2009)
• Call Of Juarez: Więzy Krwi (2009)
• Nail’d (2010)
• FIM Speedway Grand Prix 4 (2011)
• Dead Island (2011)
• Call of Juarez: The Cartel (2011)
• Mad Raiders (2012)
• Dead Island Riptide (2013)
• Call Of Juarez: Gunslinger (2013)
• Dying Light (2015)
Cel
• Urozmaicenie gry
• Zachęcenie do eksploracji
• Zapełnienie świata
• Sprawienie wrażenia „życia”
• Ciekawe doświadczenie
Założenia
• Zdarzenia które polegają na ratowaniu NPC
• Zdarzenia zrzutów samolotowych
• Nie pojawiają się na oczach
• Nie pojawiają się w miejscach gdzie gracz dopiero co był ( za plecami itp)
• Występują– W pewnych odstępach czasowych
– O określonych godzinach
– W określonych miejscach
Game Event
• Definicja w skryptach. • Typ. • Występowanie:
– Czas– Częstotliwość– Miejsce
• Pozycja ustawiana w edytorze (GameEventPlace)
• Plus– Mało dodatkowych danych
• Minusy– Brak możliwości ustawiania szczegółowych informacji per instancja
eventu na mapie– Brak wizualizacji w edytorze
Encounter• Definicja w edytorze. • Typ. • Występowanie:
– Czas– Miejsce
• Plus– Ustawiany w edytorze– Wizualizacja– Walidacja
• Minusy– Rozmiar obiekt– Wdrożenie
Encounter- Spawnowanie- Logika- Poruszanie- Animacje- Chattery- Instrukcje warunkowe- Zmienne- Callbacki- ...
Encounter
LevelPojawia się gracz
Zombie- Zapewnienie braku crowdu
Blockowanie encountera- Trace od gracza- Gracz za blisko
Podsumowanie
• 248 files (*.cpp + *.h) • 2.65 MB• 16+ różnych scenariuszy
• 64+ różne typy• 2+ lata developmentu
Wnioski
• Jakość kodu• Ładne prototypy • Patrzmy na feature który robimy przez pryzmat
konsekwencji, oraz systemów innych osób• Inicjatywa• Róbmy grę, nie kod• Twórzmy narzędzia • Validatory
• Myślmy
[email protected]@gmail.com