Artykuły jmail's software

XNova a jFancy – z czym to się je

by on lip.19, 2009, under jFancy / XNova / UGamela / jDrag

Wszystko zaczęło się w 2008 roku gdzieś w pierwszym kwartale, kiedy to dołączyłem do zespołu Ogame Wars. Gra była postawiona na darmowym rozwiazaniu jakim jest XNova. Dziurawa jak ser szwajcarski, niezdolna do uruchomienia bez dodatkowych modyfikacji.

Zaczęliśmy ją modyfikować i w czerwcu 2008 byliśmy przygotowani na masę zmian jakie miały usprawnić grę i poprawić jej działanie. Niestety ówczesny właściciel (albo współwłaściciel – kwestia interpretacji, a sprawa w toku) zdecydował o sprzedaży projektu bez poinformowania kogokolwiek z zespołu.

Nowi właściciele nie byli przygotowani na ogrom problemów jakie napotkali na swojej drodze i projekt obecnie jest martwy. Nawet nic się pod nim nie wyświetla.

Z reszty zespołu utworzyłem BattleDust Team, który uruchomił projekt z przeniesieniem danych pod nowym adresem Battle Dust . Od tamtego czasu sporo się zmieniło. Żenowa nie jest już podstawą naszego silnika. Skład zespołu też się zmienił. Odeszli hemi i bojer, którzy praktycznie bez pożegnania zabrali zabawki i poszli sobie.

W okolicach października 2008 zostałem więc z projektem sam. Hemi i bojer odchodząc nie wiedzieli, że dużą część kodu źródłowego miałem już przepisaną do nowego rozwiazania jakim jest jFancy.

O XNovie napisano już tyle i znawcy tematu wiedzą praktycznie o niej wszystko, więc podarujemy sobie opis tego rozwiązania. Obecnie jest to jedno z popularniejszych rozwiązań do stawiania klonów gry OGame.

Skoncentrujmy się na jFancy. jFancy nie jest rozwiązaniem darmowym. Jest to w pełni autorskie rozwiązanie napisane od zera. Co prawda kodzerzy XNovy znajdą wiele znajomych nazw funkcji, ale zostały one przepisane od zera, optymalizując je i dodając obsługę błędów.

Jako przeciwnik obiektowości w PHP (mam swoje powody) całkowicie pominąłem taki sposób tworzenia kodu. Wszystko zostało wypracowane w sposób proceduralny z zachowaniem modułowości. Jakby się uprzeć i wykonać parę, dosłownie parę klas, to możnaby przerzucić rozwiązanie na obiektówkę w przeciągu dwóch trzech dni.

Znany wszystkim z XNovy silnik parsowania template’ów (parse- i gettemplate), również został zmieniony i obecnie posiada znaną ze Smarty możliwość implementacji kodu php wewnątrz template’u – bardzo mi tego brakowało w XNovie.

Obecnie żaden kawałek kodu html nie pochodzi z wnętrza aplikacji.

De facto jFancy jest gotowym silnikiem, w którym wystarczy zmienić skin i można na nim uruchomić dowolną grę.

Wszystkie pliki typu vars, langs itp zostały wyniesione na bazę danych i są ładowane raz przy starcie aplikacji, dzięki czemu można było panel administraora zmodyfikować i wzbogacić o dodawanie nowych jednostek, budynków czy badań z poziomu panelu bez konieczności żmudnego grzebania w plikach.

 jFancy ma jedną niezaprzeczalną zaletę, jakiej próżno szukać w dowolnej XNovie (zagranicznych rozwiązań nie oglądałem, ale w polskich wersjach nie widziałem). Silnik walk.

Silnik walk w jFancy został opracowany z myślą o zbliżeniu go do silnika walk jaki znany jest z OGame.

jFancy w tym zakresie oferuje:

- sprawne ACS’y – system walk sojuszniczych gdzie kilku graczy może równocześnie atakować jednego gracza w myśl zasady “w kupie siła”

- sprawną obronę łączoną – rozwnięcie ACS’ów gdzie obrońców może być kilku

- sprawne Szybkie Działa – statek, może zostać tak skonfigurowany, żeby w trakcie jednej rundy walki strzelił więcej niż raz w określony typ statku

W porównaniu z XNovą silnik walk w jFancy cechuje się przede wszystkim przewidywalnością. XNova po brzegi zapchana funkcją rand() powoduje sporo problemów przy symulowaniu walk.

I jeszcze jedna ważna rzecz. Wykonanie silnika walk w PHP wydawało się przez bardzo długo niemożliwe. Jednak teraz wiem, że moje podejście do tematu było błędne, a rezultaty można ocenić w działającym symulatorze

Kolejną ważną cechą jFancy jest oparcie silnika w zakresie html o divy a nie jak XNova oparta jest na frame’ach. Pozycjonowanie absolutne w połączeniu z odrobiną css’a przyniosło spodziewany efekt wizualny

Jeżeli wszystko pójdzie tak jak się tego spodziewamy, wtedy na pewno powstanie druga skórka do jFancy. Skórka powstanie we współpracy z projektem Universe Conquest

Silnik jest obecnie sprawny w 100%. Trwają przygotowania do pełnego wdrożenia (pozostała skórka + dwie modyfikacje) na BattleDust.

Trwają rownież prace nad przygotowaniem jFancy.NET którym to projektem były zainteresowane dwie firmy.

jFancy jako rozwiązanie niezależne i sprawne zostało oparte o serwer baz danych PostgreSQL (podstawowa instalacja), jednak jest możliwość podłączenia do dowolnego silnika baz danych poprzez ODBC, a w sam silnik zostały wbudowane moduły dla:

- SQL Server

- PostgreSQL

-MySQL

-Oracle

-InterBase / FireBird

 

Obecnie trwają prace nad wdrożeniem jFancy do nowego projektu Czarna Bandera

:, , ,

Leave a Reply

Kalendarz

Lipiec 2009
P W Ś C P S N
    sie »
 12345
6789101112
13141516171819
20212223242526
2728293031  
Linki sponsorowane:
ethica * katalog * rss * perfumy