Portal budujących grę: Programiści
Z Oropedia
Spis treści |
Parę linków
Zespół liczy obecnie 14 osób.
Dev blog - link widać w menu po lewej.
To chyba tyle z rzeczy jakie mogą zobaczyć zwykli śmiertelnicy ;) Z ciekawszych miejsc jest jeszcze "dev wiki" (ale nie planujemy jej upublicznienia w najbliższym czasie, może się to zmieni przy okazji upublicznienia silnika) i kategoria na forum, na której wiszą projekty i pomysły na rozwój gry.
Technikalia
Orodlin bazuje na silniku Vallheru - na Wikipedii jest to całkiem zgrabnie opisane, więc niespecjalnie jest sens dublować treści. Do stosowanych rozwiązań doszła biblioteka jQuery. Używamy serwera testowego przed wrzuceniem zmian do gry, a kontrolę zmianami w kodzie przy dużej grupie programistów mamy dzięki Git
Dla początkujących programistów
Orodlin jest napisany w PHP i korzysta z bazy danych w MySQL. Z programistycznego punktu widzenia każdy kto umie wykonać cokolwiek w PHP, MySQL, JavaScript albo wymiata w webdesignie z użyciem CSS jest mile widzianym potencjalnym programistą :) Detale wyjdą w trakcie rozmowy albo przy analizie kodu z zadanka testowego ;) Ogólnie support dla rozwijających się jest, mamy wspomnianą "dev wiki" i poradnik jak pisać łatwo efektywny kod.
Dla programistów gier bazujących na Vallheru
Dalej siedzimy na ADODB, jakkolwiek to może być kontrowersyjne. I wciąż używamy Smarty. Wbrew pozorom sporo można z tych aplikacji wyciągnąć, np. cache'owanie wyników zapytań czy htmla całych stron. Z ciekawostek - do ADODB istnieje prosty moduł napisany w C, można go dołożyć do gry i przyspiesza nieco pobieranie danych. A do Smarty dopisaliśmy sobie kilka pluginów - wygląda to jak dodatkowy {tag} z parametrami jakie nam potrzebne - fajna rzecz do używania tego samego kawałka kodu w wielu miejscach.
Nie oznacza to że uznajemy te aplikacje za cuda ostateczne - rozglądamy się po frameworkach i szukamy najlepiej pasujących rozwiązań.
Dalej używamy bugtracka :D I nawet się sprawdza, nie jest specjalnie zawalony błędami, a gra jakoś działa. Niedoceniane czy wręcz pogardzane narzędzie, a jednak często można z nim wyłapać literówki czy błędy logiczne...
Stan obecny
Sukcesywnie przepisujemy kod Vallheru na bardziej efektywny, jak również dodajemy zupełnie nowe rozwiązania. Poszliśmy w stronę ewolucji, nie rewolucji. Gdybyśmy zdecydowali się pisać wszystko zupełnie od nowa, pewnie nie skończylibyśmy po dziś dzień.
Plany na przyszłość
Z drugiej strony - są takie miejsca w kodzie gdzie istniejąca struktura nas sporo ogranicza i w pewnym momencie się "nie da, po prostu ku**a się nie da". Przepisanie jest na etapie planowania struktury i zbierania wiedzy o "best practices" itp. Podejrzewam że wyjdzie nam coś zgodnego z Model/View/Controller. Raczej na pewno się nie zostaniemy przy łysym PHP - Zend Engine pozwala pisać moduły (jak wyżej wspomniane ADODBc) więc pewnie najbardziej skomplikowane obliczeniowo punkty się napisze w C/C++.
Obecnie projekt ten jest na etapie projektowania architektury. Istnieje na ten temat nieco materiałów na devwiki, ponadto testujemy różne rozwiązania które mogą być wykorzystane. Wszystkie projekty które są obecnie wprowadzane piszemy tak, aby w przyszłości możliwe było ich szybkie przeniesienie. Mimo to nie ma w planach całkowitego przepisania gry. Gdy powstanie już szkielet frameworka, lokacje będą sukcesywnie przenoszona pomiędzy wersjami (różne elementy gry będą działały równolegle na dwóch silnikach). Takie rozwiązanie jest wymuszone przez zbyt dużą ilość kodu do przeniesienia oraz konieczność zachowania ciągłości w rozwoju mechaniki.
Do projektu pisania silnika w wersji core (bez elementów mechaniki, jednak z takim podstawami jak klany, rejestracja, logowanie, obsługa znajomych, chat/karczma, bbcode, etc) zapraszamy wszystkich chętnych. Najprawdopodobniej licencja powyższego kodu będzie GNU/GPL. Pozostałe elementy gry przestaną być pisane gdy core dojrzeje na tyle, aby stać się dobrą podwaliną do pisania gier przeglądarkowych. Jednak to są nadal plany i należy pamiętać, że wiele może się jeszcze zmienić. Jeżeli chcesz pomóc lub włączyć się do tworzenia core (jakieś zrzeszenie gier?), napisz do Eyescreama lub Klausa (kontakt na [podstronie teamu]).
Publikacja silnika
Tak, kiedyś będzie. Ściślej - w pobliżu daty nowej ery udostępnimy silnik z początku ery poprzedniej. Na chwilę obecną Team zdecydował, że zostaną usunięte z niego wszystkie teksty - to opisy lokacji są esencją ducha gry i nie można ich rozdawać lekką ręką.
Podejrzewam że to samo się tyczy obrazków - albo wywalone albo jakieś "placeholdery". Dlaczego? Bo wszystkie nasze obrazki zostały wykonane przez graczy, członków teamu, darowane nam przez osoby niezwiązane ściśle z grą albo używamy ich legalnie z innych powodów (umieszczenie autora w stopce gry, udostępnione na licencji GPL itd). Część ilustracji została darowana grze, a nie projektowi/silnikowi i tylko w grze możemy ich użyć.
Razem z silnikiem pojawi się support (bugtrack, może jakieś forum albo kategoria na blogu). Ogólnie rzecz biorąc taki okaleczony silnik jest adresowany do zaawansowanych adminów (podpatrzeć jakieś rozwiązania, może wychwycić błędy jak SQL injection) a nie 10-latków którzy w parę minut mogą postawić w pełni funkcjonalną kopię królestwa Orodlin.
Chyba na razie starczy ;) Jeśli jesteś zainteresowany współpracą (albo w artykule brakuje Ci jakichś informacji), odezwij się na Jabberze (eyescream@jabber.wroc.pl) lub napisz do mnie na pocztę w grze (ID 363).
Wishlista
Kiedyś się uda wprowadzić system automatycznych testów dla kodu PHP ;)