Archiwum

Posty oznaczone ‘MySQL’

Pulsar Online: testy Alfa

Grudzień 2nd, 2009

Ostatni raz o Pulsar Online pisałem ponad miesiąc temu. W tym czasie udało mi się ‘pchnąć’ prace do przodu i uruchomić działającą wersję dostępną dla graczy. Od miesiąca trwają testy dla wybranej grupy graczy, dziś startują testy otwarte.

Trzy słowa o grze. W Pulsar Online to gra  przeglądarkowa typu MMORPG w której wcielasz się pilota statku kosmicznego i zostajesz przeniesiony do wszechświata Pulsar. Wszechświat jest podzielony na systemy, a systemy na sektory. W systemach znajduję się sektory różnych typów (asteroidy, mgławica, itp.) różniące się parametrami oraz zasobami jakie w nich występują. Oprócz tego, w systemach są ulokowane stacje i porty kosmiczne. Gracz ma możliwość poruszania się wewnątrz systemów jak i pomiędzy nimi (używając Wrót Skoku), dokowania do portów i stacji, kupna i sprzedaży towarów, zbierania zasobów z przestrzeni kosmicznej. Dzięki handlowi i zbieractwu można kupować lepsze statki, wyposażenie i uzbrojenie. Posiadając odpowiedni statek można walczyć z innymi graczami.

Na chwilę obecną zaimplementowane są następujące mechanizmy:

  • poruszanie się po świecie gry
  • handel
  • zbieractwo
  • podstawowa komunikacja pomiędzy graczami
  • zarządzanie statkiem (uzbrojenie i wyposażenie)
  • podstawowy model walki (jeden na jeden) , bez kary za przegraną walkę

W najbliższym czasie udostępniona zostanie kolejna wersja gry rozszerzająca model walki o:

  • walka wielu statków na raz
  • nowe uzbrojenie i wyposażenie
  • walka ze statkami sterowanymi przez komputer (NPC)

Jeśli macie ochotę wypróbować moje dzieło, zapraszam tutaj: http://pl.pulsar.spychalski.info/ do testów wersji polskojęzycznej, lub tutaj: http://en.pulsar.spychalski.info/ do wersji angielskojęzycznej.

Gra nie posiada jeszcze instrukcji obsługi. Na pytania mogę odpowiadać w komentarzach do tego posta lub na tymczasowym forum gry: http://omripulsar.freeforums.org/index.php (wersja angielskojęzyczna).

Wszelkie znalezione błędy można zgłaszać na bugtracku: http://dev.spychalski.info/flyspray

Zapraszam.

Paweł Pulsar Online , , , , , ,

Optymalizacja MySQL, część 1 – Indeksy

Listopad 4th, 2009

Wstęp

MySQL jest chyba najpowszechniej używaną bazą danych w różnego typu aplikacjach internetowych: od portali, przez fora, blogi, gry i inne rodzaje stron. Dlaczego? Bo jest szybka, prosta, darmowa i się przyjęła. Oprócz ewidentnych zalet ma też serię wad: standardowy engine MyISAM nie jest transakcyjny, nie jest bezpieczny, przy zapisie blokuje całą tabelę, a nie pojedynczy rekord. Jakby tego jeszcze było mało, to w 95% procentach przypadków, właśnie baza MySQL jest wąskim gardłem całej aplikacji i to jej wydajność (szybkość przetwarzania zapytań) decyduje o wydajności całego rozwiązania. Pracując nad pewną aplikacją (Pulsar-Online), przez ostatni tydzień starałem się skupić właśnie nad sprawą wydajności MySQL na której oparty jest Pulsar i podzielić się swoimi spostrzeżeniami na ten temat.

Po pierwsze, specyfika aplikacji internetowych, a przynajmniej ich większość, więcej odczytuje z bazy danych, niż do niej zapisuje. UPDATE i INSERT stanowią mniejszość w porównaniu z liczbą wykonywanych SELECTów. Wydajność pobierania rekordów z bazy ma więc dość duże znaczenie.

Ogólnie

Zastanówmy się, jak MySQL pobiera dane z tabeli, jeśli wybrana tabela nie posiada indeksów na polach które uwzględnimy w zapytaniu (zarówno w JOIN jak i WHERE lub ORDER BY). Dla każdego zapytania skanuje od początku wszystkie rekordy w tabeli, aż warunek nie zostanie znaleziony. Jeśli nie uwzględnimy LIMIT, MySQL będzie skanował dalej, aż do końca tabeli. Co to dla nas oznacza? Wyjaśnię na przykładzie.

Czytaj więcej…

Paweł Wujek Dobra Rada, Zawodowo , , , , , , ,

Pulsar Online: worklog

Październik 29th, 2009

Po raz kolejny wróciłem do pracy nad Pulsar Online. W tym tempie szybko nie skończę tej gry, lecz znów widać pewne postępy, kolejne rzeczy zaczęły wreszcie działać:

  • możliwość zakupu wyposażenia
  • podstawowe zarządzanie wyposażeniem
  • możliwość zakupu uzbrojenia
  • podstawowe zarządzanie uzbrojeniem

W chwili obecnej na agendzie są:

  • rejestracja graczy
  • optymalizacja bazy danych
  • prace koncepcyjne nad:
    • schematem walki, najprawdopodobniej zostanie on uproszczony względem moich oryginalnych pomysłów
    • interakcja z NPC
    • zarządzanie grą

Lista rzeczy do zrobienia jest ciągle bardzo długa aby można było myśleć o jakiś testach. Zobaczymy…

Paweł Pulsar Online , , , ,

Switch to our mobile site