Już sporo czasu upłynęło od ostatniego wpisu na moim blogu, tak więc stwierdziłem, że nadszedł czas na podzielenie się częścią informacji o tym nad czym właśnie pracuję.
Być może pamiętacie poprzedni wpis „recenzujący” skrypt xNova służący do tworzenia własnych klonów gry przeglądarkowej Ogame. Postanowiłem przepisać go po swojemu i uzyskać z niego w miarę uniwersalny silnik gier MMORPG via WWW. Zależy mi na tym, aby nie był ściśle ukierunkowany na grę dziejącą się w kosmosie, żeby po dokonaniu zmian w szablonach, plikach językowych i ewentualnie lekkich zmianach mechaniki móc na nim postawić dowolną inną grę strategiczno-ekonomiczną. Skrypt zdecydowałem się ochrzcić Blackout (nazwę, tak jak zazwyczaj wymyślił Rhino, chwała mu za to). Może nie jest to nazwa super oryginalna, ale bardzo chciałem uniknąć kolejnego potworka o nazwie "Super Game Uber-pro Elo Melo Maka-Faka Engine".
Jak wskazują daty modyfikacji niektórych plików – przepisywanie skryptów zacząłem dziesiątego lutego tego roku. Tak więc całkiem przypadkiem dziś mija miesiąc – sądzę, że to niezły pretekst do opisana tego co udało mi się zrobić i tego co mnie jeszcze czeka.
Tak więc: zacząłem od przygotowania najbardziej potrzebnych elementów do rozpoczęcia pisania. Poprawiona klasa baz danych, wzorowana lekko na tej użytej jeszcze w Iron CMS-ie, bardzo prosty logger błędów i króciutki system obsługi szablonów (nie ma chyba nawet 60 linijek).
Zacząłem rzecz jasna od napisania plików dołączanych do każdej strony – mamy więc
znany z oryginalnej xNovy plik common.php
– w przebudowanej formie, ale spełnia
identyczne w założeniu zadanie – wykonuje czynności potrzebne przy wczytaniu każdej
strony (np. sprawdzenie czy gracz nie jest zbanowany). W moim silniku pozostały
jeszcze resztki ze sławetnego pliku todofleetcontrol.php
(możecie o nim przeczytać
w tym wpisie, punkt 10). Na razie okroiłem go tylko i przemianowałem
na pure_evil.php
– sądzę, że to bardziej adekwatna nazwa :D. Potem zostanie
usunięty, a każda podstrona będzie ładować tylko to, czego faktycznie potrzebuje.
Jeśli chodzi o zakładki, które dla użytkownika są najważniejsze to:’
- Podgląd – gotowy w 80%, nie gotowe opuszczanie kolonii i zmienianie nazwy planety
- Budynki, laboratorium, stocznia, obrona – odtworzone działanie i wygląd z oryginalnej xNovy, mocna przebudowa planowana na następną wersję
- Oficerowie – gotowe w 100%, jeśli nie liczyć części niedokończonych tłumaczeń
- Handlarz – gotowy w 20%
- Sojusz – na początku próbowałem wzorować się na oryginalnym alliance.php jednak po 4 godzinach stwierdziłem, że nie ma to żadnego sensu. Aktualna koncepcja jest rozrysowana na kartce i czeka na realizację
- Flota – działa sama czynność wysyłania flot, w większości działa misja walki
- Wiadomości – napisane całkowicie od nowa – jest tam kilka rzeczy do dorobienia i poprawki, ale ogólnie mówiąc plik jest prawie gotowy
- Galaktyka – ciekawa historia: przerażony ilością zapytań jakie generuje ta
zakładka (średnio 50 na odsłonę, przy 1 planecie w pokazywanym systemie)
i ilością funkcji jakich używa tylko ta zakładka (17 plików – 1200 linijek)
postanowiłem napisać go od zera. Zapytania w pętli zastąpione jednym podwójnym
JOIN
-em, wszystko ładnie umieszczone w jednym pliku – sądzę, że w wersji ostatecznej plik nie przekroczy 300 linijek - Imperium, Surowce, Technologia – gotowe
- Rekordy – nawet nie zaczęte
- Statystyki – prawdopodobnie działają, lecz to się okaże dopiero po zrobieniu skryptu do przeliczania punktów
- Szukaj – gotowe
- Zbanowani – gotowe, przebudowana tabela trzymająca bany, użyto relacji
- Chat – gotowy, tylko trzeba go ujednolicić w jeden plik i ogarnąć system BBCode – jeden dla całej gry
- Kontakt – działa
- Opcje – mocno odchudzone, nie działa jeszcze urlop i usuwanie konta
- Panel administracyjny – grubsza sprawa, temat na osobny wpis
Tak, wiem, w większości zrobiłem sobie z tego wpisu kolejne wcielenie notatek odnośnie skryptu, mam jednak nadzieję, że umieszczenie tego publicznie pomoże mi się zmotywować do dalszej pracy.
Jak widać, wiele jeszcze przede mną, myśląc o kilku plikach robi mi się słabo :D, ale jakoś to będzie… Więcej konkretów, mniej suchych notatek obiecuję już w przyszłym wpisie.