Ocalić od zapomnienia

42
czyli jak dokumentować swoją pracę, aby po 20 latach móc napisać o tym książkę Ocalić od zapomnienia Maciej Miąsik, WGK 2013

description

Slajdy z wykładu na konferencji WGK 2013

Transcript of Ocalić od zapomnienia

Page 1: Ocalić od zapomnienia

czyli jak dokumentować swoją pracę, aby po 20 latach móc napisać o tym książkę

Ocalić od zapomnienia

Maciej Miąsik, WGK 2013

Page 2: Ocalić od zapomnienia

Projekty pomniejsze: 2013: Big 2 Bonanza 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

Projekty główne: 2012: Neuroshima Apocalypse 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)

O mnie

Page 3: Ocalić od zapomnienia

O prawdę, bo prawda jest najciekawsza, czyli kwestie historyczne, czyli jak to tam było.

O sentymenty, czyli powroty do gier młodości.

O nowe możliwości, czyli nowe edycje, remake’i oraz nowe platformy.

O dobre pomysły, które zawsze można wykorzystać ponownie.

O co chodzi?

Page 4: Ocalić od zapomnienia

Kwestie historyczne

Page 5: Ocalić od zapomnienia

Czasem ktoś naprawdę chce napisać książkę/artykuł o naszych grach.

Zostaniemy zaproszeni na wspominkową konferencję.

Chcemy powspominać stare czasy.Uczymy innych na naszych błędach.Chcemy przypomnieć sobie dawnych kolegów i zapomniane projekty.

Dlaczego kogoś to obchodzi?

Page 6: Ocalić od zapomnienia

Poczta elektroniczna jest łatwa w archiwizacji.

Archwizujemy i backupujemy.Dbajmy o ponadczasowe formaty

(np. mbox).Nie kasujemy poczty, poza spamem.

Poczta skarbnicą wiedzy

Page 7: Ocalić od zapomnienia

From: "Tim Sweeney" <[email protected]>To: [email protected]: Wed, 29 Mar 1995 02:56:49 ESTSubject: Excessively Excellent!

Hi, Mark just sent me Excessive Speed a few minutes ago. This game is *EXCELLENT*. Very impressive work, guys! This is going to be the best-looking driving game on the PC -- it looks *much* better than anything else I've seen.

This game is going to be a big hit!

We'll start playing through it and writing down suggestions. This game needs a lot of fine-tuning, but it's not really very far away from completion.

Thanks! Keep up the great work!

-Tim

---------------------------------------------------------------------Tim Sweeney ([email protected]), Epic MegaGames, Inc. FTP:ftp.uml.edu

Poczta

Page 8: Ocalić od zapomnienia

Archiwizujemy co się da:Dokumenty designerskie.Dokumenty marketingowe.Dokumenty biznesowe, koniecznie

umowy!Dokumenty menedżerskie – plany,

harmonogramy.Dokumentacja fotograficzna. Inne: notatki, notatniki, koncepty, serwetki.

Dokumentacja projektowa

Page 9: Ocalić od zapomnienia

Dokumentacja projektowa

Page 10: Ocalić od zapomnienia

Działające wersje gry przy ważnych milestone’ach.

Regularne snapshoty – gry jako całości, oraz działań poszczególnych ludzi.

Filmiki z prototypów oraz postępów rozgrywki.

RSS czy inny zapis historii prac z programów wspierających zarządzanie (jeśli to możliwe).

Dokumentacja postępów

Page 11: Ocalić od zapomnienia

Zdjęcia i filmiki:Z pracy w biurze i poza nim.Z integracji i zabawy.Z premier i innych powiązanych wydarzeń.

Wspomnienie socjalne

Page 12: Ocalić od zapomnienia
Page 13: Ocalić od zapomnienia

Sentymentalne granie

Page 14: Ocalić od zapomnienia

Gramy, by powróciły wspomnienia.Ktoś inny poprosi o możliwość

zagrania w naszą „vintage” grę.Będziemy chcieli pochwalić się przed znajomymi lub rodziną (szczególnie dziećmi).

Będziemy chcieli użyć własnej gry jako przykładu w edukacji/prezentacji.

Dlaczego

Page 15: Ocalić od zapomnienia

Działające wersje (buildy) gry, wolne od zależności i dziwnych systemów, np. DRM.

Emulatory czy wirtualne maszyny.Czasem oryginalny hardware.Będą problemy:

Kłopoty z emulacją i wirtualizacją – konfiguracja, brak akceleracji.

Nie zawsze łatwo stworzyć build bez zależności, szczególnie w przypadku gier online.

Klucze i certyfikaty.

Co będzie potrzebne

Page 16: Ocalić od zapomnienia

Nowe możliwości

Page 17: Ocalić od zapomnienia

Nowe platformy ożywiają stare schematy rozgrywki.

Czasem drobny facelifting to wszystko, czego trzeba – bo reszta daje radę.

Częściej jednak musimy dokonać większych zmian – remake, ale zachowując sedno starej gry.

Mamy też okazję „uwolnić” grę spod reżimu praw autorskich – prawdziwe abandoware.

Dlaczego

Page 18: Ocalić od zapomnienia

Kody źródłowe oraz biblioteki zależne.Środowisko programistyczne –

edytory, kompilatory, skrypty buildujące.

Dane gry (assets), najlepiej także w wersjach źródłowych

Często także emulacja lub wirtualna maszyna ze starym systemem operacyjnym.

Co będzie potrzebne

Page 19: Ocalić od zapomnienia

Pomysły

Page 20: Ocalić od zapomnienia

Odrzucone prototypy z jednej gry mogą przydać się w innej.

Oszczędzajmy sobie ponownego prototypowania.

Mechanizmy rozgrywki można recyklingować.

Historie raz opowiedziane można opowiedzieć ponownie.

Stare gry i prototypy źródłem cennej wiedzy oraz pomysłów

Page 21: Ocalić od zapomnienia

Trzymajmy odrzucone prototypy, najlepiej w działającej formie, bez zależności.

Jeśli powyższe nie jest możliwe, przynajmniej zgrywajmy z prototypów filmiki.

Trzymajmy prototypy

Page 22: Ocalić od zapomnienia

Archiwizować trzeba umieć!

Sprawy techniczne

Page 23: Ocalić od zapomnienia

Dobre systemy nazewnictwa.Eleganckie źródła, trochę komentarzy.Dobra struktura plików i bibliotek.Zależności archiwizowane ze źródłami.Skrypty buildujące (automatyzacja).Źródła assetów, najlepiej w osobnym

eleganckim repozytorium.Regularnie archiwizowane działające buildy.

Porządek!

Page 24: Ocalić od zapomnienia

Trzymamy pełne historie – kto wie, co może się przydać.

Systemy się zmieniają – migrujmy repozytoria na nowe wersje.

Archiwizujmy całe serwery z oprogramowaniem i danymi – fizycznie lub wirtualnie.

Systemy kontroli wersji

Page 25: Ocalić od zapomnienia

Archiwizacja kompilatorów.Archiwizacja innych narzędzi.Archiwizacja kompletnych środowisk w

obrazach maszyn wirtualnych.

Środowiska developerskie

Page 26: Ocalić od zapomnienia

Backup, backup i jeszcze raz backup!On site.Off site.Cloud.

Backupy trzeba weryfikować – testy odzyskiwania, testy buildowania.

Rozmnażajmy backupy i archiwa, szczególnie przy rozstaniach.

Nośniki nie są wieczne! Odświeżanie.

Redundancja przyjacielem

Page 27: Ocalić od zapomnienia

IANAL!

Kwestie prawne

Page 28: Ocalić od zapomnienia

Najlepiej zachować je dla siebie.Trzeba wiedzieć, kto po dekadzie je

posiada (jeśli nie my).Jeśli prawa przysługują grupie, po

rozpadzie warto kogoś umocować do łatwiejszego dysponowania.

Unikajmy blokady przez jednostki.Przenosimy prawa majątkowe, ale

dzieła mogą zostać u nas (sprawdzić umowę).

Prawa autorskie

Page 29: Ocalić od zapomnienia

To umowa zachowania poufności, a nie umowa wymazania pamięci.

Zadbajmy, aby umowa NDA kiedyś wygasała (5, 10 lat).

NDA

Page 30: Ocalić od zapomnienia

Firmy upadają i w raz z nimi giną nasze dzieła (Sprawdzić, czy to nie Beretta istniejąca od 1526).

Zadbajmy o własne kopie, nawet jeśli to nie będzie w100% zgodne papierami.

Korporacje też umierają

Page 31: Ocalić od zapomnienia

Podsumowanie

Page 32: Ocalić od zapomnienia

Trzeba proces dokumentowania prac i archiwizacji efektów uwzględniać w harmonogramach, bo zajmuje to czas.

Koniec projektu/produkcji powinien obowiązkowo kończyć się porządną archiwizacją z myślą o odległej przyszłości.

Dbajmy, aby archiwa mogły przetrwać.

Nie oszczędzajmy na przestrzeni dyskowej, nieustannie przecież tanieje.

Nie archiwizujesz – żałujesz

Page 33: Ocalić od zapomnienia

DesigneromProducentomArtystomKoderomWłaścicielom praw autorskich

To opłaca się każdemu

Page 34: Ocalić od zapomnienia

Dobre archiwa to kopalnia wiedzy designerskiej, produkcyjnej, edukacyjnej i historycznej.

Niech ta wiedza nie ginie bezpowrotnie.

Nie możemy polegać na innych w kwestii archiwizacji naszych dzieł – to

nasz obowiązek.

Page 35: Ocalić od zapomnienia

Przykłady

Page 36: Ocalić od zapomnienia

Praktycznie abandonware. Wciąż grane i wspominane.W 2006 roku zaproponowałem

„uwolnienie” gier na licencji CC-BY-SA.Miałem źródła, dane i biblioteki zależne.Znalazłem kompilator Borland C++ 3.1.Przekompilowałem w emulatorze

DOSBox zmieniając stosownie notę copyright.

Puściłem w świat.

Epic Puzzle Pack

Page 37: Ocalić od zapomnienia

Aktywiści projektu ScummVM wyrazili chęć sportowania gry na ten system i wiele platform go wspierających.

Nie było problemu ze zgodą właściciela praw autorskich.

Nie mam źródeł. Być może ma je jedyny programista, ale nie zgodził się ich udostępnić.

Nie udało się ocalić projektu od zapomnienia.

Reah

Page 38: Ocalić od zapomnienia

Niedoceniona, bo dobra, pierwsza polska gra dla Electronic Arts.

Jest kompletny backup, danych i źródeł.Nie udało mi się uruchomić samej gry –

konieczna wirtualizacja Windows 95.Nie wiadomo, kto właściwie ma do gry

prawa autorskie – Epic nie ma umowy w archiwach elektronicznych, EA ma to w nosie, ja nie zatrzymałem kopii umowy.

„Modernizacja” tkwi w zawieszeniu.

Fire Fight

Page 39: Ocalić od zapomnienia

Taka zabawa – wierny port gry Electro Man w Pythonie, open source.

Wprawka programistyczna po godzinach.

Koszmarny kod źródłowy – brak praktycznie komentarzy, sprytne makra, choć jest bardzo bazowa dokumentacja.

Próba analizy kodu to prawdziwa męka – nie starczyło mi cierpliwości.

PyElectroMan

Page 40: Ocalić od zapomnienia

Ukończona – pełna beta – ale nie wydana gra platformowa.

Doskonały przykład edukacyjny.Nietypowe narzędzie (3D Game Studio).Nie uruchamia się poprawnie we

współczesnych systemach.Wirtualizacje bez akceleracji nie dają

rady.Nie wszystko stracone.

Mag

Page 41: Ocalić od zapomnienia

Społecznościowa gra online.Aplikacja rozproszona – serwer i klient.Serwer – Java, Frontend – Flash, Core –

Unity 3D.Zależna od Facebook API.Różne repozytoria, różne środowiska.Nie mamy koncepcji na archiwizację,

szczególnie z uwzględnieniem przyszłego upadku FB.

Neuroshima Apocalypse

Page 42: Ocalić od zapomnienia

[email protected]: @tosiabunio

Dziękuję za uwagę