Autor Wątek: Dział z kodami źródłowymi gier  (Przeczytany 5012 razy)

Offline nembutal

  • Użytkownik

# Grudzień 14, 2011, 21:04:31
Battle for Wesenoth, Freeciv, Lugaru

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline micran

  • Użytkownik
    • Micran - Warsztat

# Grudzień 14, 2011, 23:05:15
Według mnie ryzykowna i zbędna opcja. Ryzykowna ponieważ każdy rozwija się w jakimś swoim tempie w programowaniu gier, programów czy też współpracy z bibliotekami. Każdy zaczyna od zera po czym nabiera doświadczenia i swój kod potrafi w dowolnej chwili rozwikłać nawet jak nie używał komentarzy. Ba każdy programista ma coś w rodzaju "odcisku palca" w kodzie, każdy praktycznie inaczej kodzi, chodzi o wcięcia, ilość informacji w linii (komentarz), czy ilość instrukcji na linię. Na studiach wymiana kodami jest czymś oczywistym i po pewnym czasie rozpoznaje się autora kodu, jedynie po tym jak pisze. Wprowadzenie komuś dostępu do skomplikowanych gier od samego początku przygody tylko może zniechęcić, albo wprowadzić sztuczną wiedzę, ktoś będzie wprowadzał modyfikacje zupełnie nie znając się na kodzie, w efekcie za kilka lat gamedev będzie uznawany za ścierwo i samych pozerów nie mających pojęcia o kodzie który piszą lub modyfikują.
Zbędna ponieważ na tym zyskają tylko osoby mające olewcze podejście do programowania, głównie studenci którzy potrzebują projektów aby zaliczyć studia, czyli te proste tetrisy itp. Z reszta każdy po pół roku lekkiej pracy w gamedev ma projekt czy dwa które zrobił od początku czyli wymyślił postać, jej historie i przygody. To według mnie decydujący moment w życiu każdego programisty gier, decyzja czy tworzenie gier sprawia mu frajdę czy nie. Wprowadzajac wolny kod gier zabijemy raczej pierwszą ekscytację, gdyż młodzi zobaczą mnóstwo kodu, często niezrozumiałego w 90% dla nich.

Dzięki za uwagę :) Pomyślmy nad tym, a nie rzucajmy się że jakoś to będzie i będzie dobrze.

Offline MrKaktus

  • Użytkownik

# Grudzień 14, 2011, 23:20:34
Zupełnie nie trafiłeś ze swoimi przemyśleniami.

Cytuj
...ktoś będzie wprowadzał modyfikacje zupełnie nie znając się na kodzie,
Modyfikacje do czego? Może doprecyzuj co masz na myśli ?
(Jak wogóle można je wprowadzać do czegokolwiek nie znając się na kodzie i oczekiwać że zadziała?)

Cytuj
w efekcie za kilka lat gamedev będzie uznawany za ścierwo i samych pozerów nie mających pojęcia o kodzie który piszą lub modyfikują.
Tu już popłynąłeś z fantazją.

Mówimy cały czas o kodach źródłowych gier które w swoim czasie były uznawane za AAA. Takie kody to dziesiątki lub nawet setki tysięcy linii kodu który był pisany szybko, przez wielu programistów nastawionych bardziej na cel i deadline niż na piękny i czytelny kod. W związku z tym jest to bardzo trudna lektura której nie chwyci się na pewno żaden "leniwy" programista a już na pewno nie student który chce zaliczyć przedmiot tetrisem.
Może jacyś początkujący programiści zajrzą w taki kod ale jeżeli to zniechęci ich do gamedevu na starcie to tym bardziej zniechęciłby ich ich własny tetris przy pierwszym problemie. Im również ten kod nic nie da tak jak zeszyt pełen całek nic nie mówi komuś z podstawówki. Jeżeli w niego spojrzą po prostu będą wiedzieli jak wyglądają te topowe gry od środka i może ich to zajara i zmotywuje a może nie.
Te kody źródłowe mają służyć osobom zaawansowanym, lub średnio zaawansowanym które miały do czynienia z dużymi projektami i mają za sobą X lat doświadczenia w programowaniu. I bardziej chodzi tu o ciekawą lekturę niż o zapożyczanie stylu kodzenia czy rozwiązań bo aby te zrozumieć trzeba też zrozumieć większą część kodu w której były początkowo wykorzystywane.

Offline kasado

  • Użytkownik

# Grudzień 15, 2011, 00:22:45
Jak dla mnie pomysł zarówno z działem kodów źródłowych gier komercyjnych (udostępnionych przez Twórców), jak i sampli są pomysłami bardzo dobrymi. Pewnie, że kod źródłowy gry można wyszperać w sieci, tylko po co szukać, jak można mieć wszystko w jednym miejscu. :)

Offline pawelek

  • Użytkownik

# Grudzień 15, 2011, 10:53:22
Każdy zaczyna od zera po czym nabiera doświadczenia i swój kod potrafi w dowolnej chwili rozwikłać nawet jak nie używał komentarzy. Ba każdy programista ma coś w rodzaju "odcisku palca" w kodzie, każdy praktycznie inaczej kodzi, chodzi o wcięcia, ilość informacji w linii (komentarz), czy ilość instrukcji na linię.

Się raczę nie zgodzić. W dużym projekcie w którym pracuje co najmniej 10 programistów, o ustalonych zasadach formatowania kodu (zazwyczaj ctrl + K + D :) ) ja nie potrafię się połapać po tygodniu która linijka jest moja, zwłaszcza, że okoliczne linijki są kolegów. Niekiedy mi wmawiają, że to mój kod, dobrze, że jest Tortoise Blame :)

Chciałbym również zauważyć, że jak ktoś zechce spojrzeć na taki kod to go znajdzie. Poza tym wydawało mi się, że Warsztat to nie mamusia :)
Ja tu widzę szansę na to, że Ci którzy chcieliby szukać takiego kodu spojrzą najpierw tu - czyli nowi bywalcy, a drugie, tego, że dowiem się, że uwolniono kod jakiejś zaje**stej gierki o czym bym nie wiedział gdyby się tu nie pojawił.

Pozdrawiam   

Offline micran

  • Użytkownik
    • Micran - Warsztat

# Grudzień 15, 2011, 15:50:54
Mi bardziej chodziło o typowe frameworki, biblioteki itp. Każdy wie, że są takie programiki w których można wyklikać w kilka godzin gierkę, tym razem damy także komuś framework ( co jak co ale musiał on kiedyś działać poprawnie ). Mając framework + spędzając parę godzin na rozpoznaniu procedur ( chyba że jest dokumentacja) będziemy umieć je łączyć i wykorzystywac. W ten sposób nie trzeba znać nawet OpenGL/Direct aby w tym pisać i chwalić się, że się to umie. Choć nawet nie wie się co to GLdouble :). Nie mówcie, że problemy was demotywują, a tym bardziej we własnych gierkach/programach.
Prawda jest taka, że wstawi się kod, z parę osób pokopiuje sobie rozwiązania ( bo nie widzę sensu innego czytania kogoś kodu źródłowego ) a reszta tylko : "Oooo jest GTA 2" po czym po tygodniu całkowicie o tym zapomni. Wierzyć mi się nie chce aby ktoś czytał kod źródłowy czegokolwiek dla samego czytania, to tak jakbyś wyporzyczył książkę dla oglądania zapisanych kartek, bezsens.
Może moja wizja jest nieco czarna niż biała, ale ludzie tacy są. Być może po jakimś czasie będziemy rozwiązywać kłopoty kogoś komu połączenie kodów z różnych gier daje błędy których nie potrafi rozpoznać.

Moje pytanie do MrKaktus : Czy trzeba znać się na budowie monitora aby go używać? Czy trzeba znać jego budowę aby zmodyfikować wyświetlany przez niego obraz ?

Offline Syriusz

  • Użytkownik

# Grudzień 15, 2011, 16:46:51
Eh, niektórzy nigdy się nie nauczą...

Pomysł jest moim zdaniem bardzo dobry, choćby z powodu samej idei zgromadzenia udostępnionych źródeł w jednym miejscu, nie ma co nad tym filozofować. Poza tym z serwera warsztatu paczki raczej nie znikną a w sieci lubią się często gdzieś zapodziać.

Offline kasado

  • Użytkownik

# Grudzień 15, 2011, 17:00:30
No
Eh, niektórzy nigdy się nie nauczą...

Pomysł jest moim zdaniem bardzo dobry, choćby z powodu samej idei zgromadzenia udostępnionych źródeł w jednym miejscu, nie ma co nad tym filozofować. Poza tym z serwera warsztatu paczki raczej nie znikną a w sieci lubią się często gdzieś zapodziać.


Wydaje się, że to jest rozsądny argument. Zgromadzić dla chwały, że tak górnolotnie powiem ;P A filozofię zostawmy fizjologom xD

Offline MrKaktus

  • Użytkownik

# Grudzień 15, 2011, 17:41:47
Cytuj
Mi bardziej chodziło o typowe frameworki, biblioteki itp. Każdy wie, że są takie programiki w których można wyklikać w kilka godzin gierkę, tym razem damy także komuś framework ( co jak co ale musiał on kiedyś działać poprawnie ). Mając framework + spędzając parę godzin na rozpoznaniu procedur ( chyba że jest dokumentacja) będziemy umieć je łączyć i wykorzystywac. W ten sposób nie trzeba znać nawet OpenGL/Direct aby w tym pisać i chwalić się, że się to umie. Choć nawet nie wie się co to GLdouble :). Nie mówcie, że problemy was demotywują, a tym bardziej we własnych gierkach/programach.
Prawda jest taka, że wstawi się kod, z parę osób pokopiuje sobie rozwiązania ( bo nie widzę sensu innego czytania kogoś kodu źródłowego ) a reszta tylko : "Oooo jest GTA 2" po czym po tygodniu całkowicie o tym zapomni. .....

Cytuj
...... Może moja wizja jest nieco czarna niż biała, ale ludzie tacy są. Być może po jakimś czasie będziemy rozwiązywać kłopoty kogoś komu połączenie kodów z różnych gier daje błędy których nie potrafi rozpoznać.

@micran:
Wszystko powyżej to po prostu Sci-Fi Gamedevu :]. Ludzie mają do dyspozycji UDK, CryEngine3 i inne cuda które są pisane Z MYŚLĄ o developerach, mają czysty kod i dokumentację mierzoną w kilogramach. I co? Nico. Twoje wizje się nie spełniają. Amatorzy biorą te silniki cośtam poczytają pomęczą, a potem masz na warsztacie 10 rozpoczętych projektów w Esenthelu w których używając modeli dostarczonych z silnikiem ktoś sklecił jedną scene i dodał efekt soczewki. Nikt się nie zachwyca, wszyscy wiedzą że to nadal skill bliski zera bezwzględnego.
A Ty uważasz że biorąc do ręki kod napisany na szybko, pełen najdziwniejszych WA i z prawie zerową dokumentacją nagle "skleisz" grę?

Cytuj
Wierzyć mi się nie chce aby ktoś czytał kod źródłowy czegokolwiek dla samego czytania, to tak jakbyś wyporzyczył książkę dla oglądania zapisanych kartek, bezsens.
Po prostu nie dociera do Ciebie że będąc doświadczonym programistą można przeglądać cudzy kod aby przyjrzeć się tylko jego "stylowi" lub temu "w jaki sposób" był pisany i w jaki sposób radzono sobie z  pewnymi problemami. Czytanie dla wyciągnięcia z niego konkretnych rozwiązań to ostatnie po co się do takiego kodu sięga (bo szybciej sam coś zakodzisz z tysiącem tutoriali niż rozgryziesz zagmatwany kod pisany na pałe).

Cytuj
Czy trzeba znać się na budowie monitora aby go używać? Czy trzeba znać jego budowę aby zmodyfikować wyświetlany przez niego obraz ?
Hahahaha, no tak bo stworzenie gry w oparciu o kod gry AAA jest tak banalne jak podłączenie monitora do PC. To jak banalne jest napisanie gry w UDK ? :}


Offline rm-f

  • Użytkownik
    • Tu trolluje

# Grudzień 15, 2011, 18:12:35
Moje pytanie do MrKaktus : Czy trzeba znać się na budowie monitora aby go używać? Czy trzeba znać jego budowę aby zmodyfikować wyświetlany przez niego obraz ?
Wlasciwie tak, no chyba ze zaczniesz zmieniac sygnal wizyjny. :)

Offline Dab

  • Redaktor
    • blog

# Grudzień 15, 2011, 18:28:56
Pomysł jest moim zdaniem bardzo dobry, choćby z powodu samej idei zgromadzenia udostępnionych źródeł w jednym miejscu, nie ma co nad tym filozofować. Poza tym z serwera warsztatu paczki raczej nie znikną a w sieci lubią się często gdzieś zapodziać.

A to akurat słaby pomysł. Te gry open-source są aktywnie rozwijane. Wypadałoby zalinkować do ich repozytorium, idealnie na serwisie typu github gdzie można współpracować nad kodem. Do tego trochę opisu każdej gry (z szczególnym uwzględnieniem społecznościowych forków).
Można niby zrobić warsztatowe konto na github i zrobić tam mirror tych wszystkich gier, ale czy jest sens? (czytaj: kto będzie to aktualizował ;))

Offline kasado

  • Użytkownik

# Grudzień 16, 2011, 00:26:47
A to akurat słaby pomysł. Te gry open-source są aktywnie rozwijane. Wypadałoby zalinkować do ich repozytorium, idealnie na serwisie typu github gdzie można współpracować nad kodem. Do tego trochę opisu każdej gry (z szczególnym uwzględnieniem społecznościowych forków).
Można niby zrobić warsztatowe konto na github i zrobić tam mirror tych wszystkich gier, ale czy jest sens? (czytaj: kto będzie to aktualizował ;))

Co do gier typowo Open Source to masz rację. Nie ma sensu umieszczać kodów tutaj na serwie. Wydaje mi się, że autorowi wątku chodziło raczej o gry, które kiedyś były wydane na licencji komercyjnej, a obecnie są udostępniane wraz z kodem źródłowym. Czyli raczej klasyki ze stajni ID Software itp.

Nie wiem nie orientuje się, czy ktokolwiek teraz modyfikuje kod leciwego Quake'a. Wydaje mi się że fani raczej przeportowali już na inne systemy, gry które kiedyś były dostępne wyłącznie na Windows, co faktycznie, wymagało modyfikacji kodu ( w mniejszym czy większym zakresie). Ale jeśli nawet to uważam, że i tak warto tego typu cudeńka umieścić na serwie warsztatu.

A gry typu open source rzeczywiście zostawmy w spokoju.

Offline rm-f

  • Użytkownik
    • Tu trolluje

# Grudzień 16, 2011, 01:41:04
Co do gier typowo Open Source to masz rację. Nie ma sensu umieszczać kodów tutaj na serwie. Wydaje mi się, że autorowi wątku chodziło raczej o gry, które kiedyś były wydane na licencji komercyjnej, a obecnie są udostępniane wraz z kodem źródłowym. Czyli raczej klasyki ze stajni ID Software itp.
I Penumbra i Lugaru i wiecej :) Anyway Quake ewoluje lepiej niz ktory kolwiek PoKeMoN

Offline Dab

  • Redaktor
    • blog

# Grudzień 16, 2011, 02:04:23
kasado: niezupełnie, mam na myśli też np. różne forki gier id Software (ioquake, warsow itp)