Rozmawiamy o dwóch różnych podejściach do tej samej sprawy.
1. Ogólne dążenie do otwartości wszystkiego, w skrajnym przypadku internet = wszystko dla wszystkich.
To podejście ma swoje plusy w kontekście tworzenia gier:
- Skracamy czas developmentu o zabezpieczenia i zaciemnianie.
- Mamy szansę wypromować się na czymś typu viralowego, co ktoś odkryje w naszym kodzie. Możemy też wypromować się po prostu na tym, że ludzie wspólnie studiują nasz kod. Jeśli piszemy bardzo ładnie, to jest szansa, że ktoś będzie pokazywał innym nasz kod.
- Uwalniamy się od myślenia o tym, więc możemy przenieść energię intelektualną na faktyczny development.
2. Jesteśmy programistami, szanujmy swoją pracę i swój czas. To podejście jest trochę takie, że trzeba się nawzajem upominać i robić poniekąd klimat odpowiedzialności grupowej, bo tylko wspólnie utrzymamy szacunek innych do tego, co robimy. Racjonalnym jest, że wykonujemy pracę i powinniśmy być za nią należycie wynagradzani.
To podejście ma swoje plusy w kontekście tworzenia gier:
- Trudniej hackować, więc w grach multiplayer to daje nam jakąś możliwość ciągłej walki z oszustami, tak jak opisał to ktoś w podlinkowanym przez rakietę poście.
- Trudniej hackować, więc opóźniamy powstanie spiraconej wersji naszej gry (czy to plus to osobna dyskusja).
- Jest jeszcze coś, co niektórzy wymieniają jako plus, ale ja tego nie rozumiem, czyli "słabsi programiści nie będą mogli skopiować naszego kodu". Nie wiem jaki to niby plus, bo słabszy programista (czy tam noob) i tak nie będzie go potrafił użyć w odpowiedni sposób.
Oczywiście nie wymieniłem wszystkich plusów.
Ja jestem zdecydowanie za pierwszym podejściem, chyba że robimy grę multiplayer, bo wtedy niejako częścią tworzenia gry jest zapewnienie równych szans graczom i ochrona uczciwych przed oszustami.
edit: no dobra, są też inne podejścia, ja tak naprawdę mam takie luźne-realistyczne, a nie jedno z tych dwóch skrajnych, ale dzieląc tylko na te dwa skrajne, to mówiłem prawdę ;p
c) Pomysł nie ma wartości
Nie wiem, jak w innych gałęziach, ale w gamedevie to jest raczej prawda. Mam dwa powody by tak twierdzić. Pierwszy powód jest taki, że na wszystkich konferencjach doświadczeni developerzy w większości (albo wszyscy?) to potwierdzają. Czyli ci ludzie, żyjący z tego biznesu, w praktyce sprawdzili, że pomysły nie są cenne, bo umówmy się - brak wartości to wyolbrzymienie. Drugi powód jest taki, że mam na dysku folder "pomysły na gry", w którym jest w tej chwili 75 pozycji. Są to wyselekcjonowane pomysły z kilku lat, a było ich znacznie więcej. Oprócz tego 4 gry są w jako-takiej realizacji, więc były w jakiś sposób lepsze od tych 75. Jeśli każdy ma tyle pomysłów, co ja, to znaczy, że jest ich bardzo dużo, a czego jest dużo to jest mało warte. Poza tym część z tych pomysłów nie sprawdzi się w grach; a dodatkowo przy złej realizacji również nie wyjdzie z nich dobra gra. Za to da się się zrobić fajną grę robiąc porządną realizację słabego pomysłu lub wręcz skopiowanego z innej gry.
Ostatnio na jedną z grup facebookowych ktoś wrzucił aplikację javascript. Połączenie z bazą i te sprawy. Ładny design, fajne wykonanie, więc wszystkim się spodobała. W pewnym momencie ktoś pisze w komentarzu "hej jak się pisze taki kod?" - i wrzuca w zdjęcie typowy kod po obfuscacji, w dodatku przejechany "unminifierem" (automatycznie ze skompresowanego kodu tworzy spacje akapity itd).
A więc zabezpieczenie zadziałało.
Zadziałało, ale czy pozytywnie? Ktoś chciał się rozwinąć czytając dobry kod i nie mógł. Jaką krzywdę by wyrządził ten, kto nawet nie wie czym jest obfuskacja? Mnie na przykład trochę boli fakt, że chcący się uczyć człowiek nie miał dostępu do fajnego kodu aplikacji, która go interesuje.
Dla mnie, choćby świadomość, że efekt wielu godzin mojej pracy jest dostępny praktycznie dla każdego w przeciągu kilku chwil jest wystarczającym powodem żeby zaciemniać (piszę ciągle głównie o mobile).
To jest powód? Jaki jest cel tego działania? No bo powiedzmy, że długo pracowałeś i ktoś to zobaczy - no i co? A jak krótko pracowałeś i ktoś to zobaczy to co?