![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 17.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Jeśli taki temat już był, to proszę, podajcie mi linka. A więc: Chce stworzyć grę internetową w php, typu OGame itd.. Gra była by rozbudowana, i dlatego chciałbym aby była łatwo rozszerzana, wykorzystam oczywiście szablony i pliki językowe..., oraz będzie napisana obiektowo. Chciałbym abyście przedstawili inne, lepsze rozwiązania : Cytat A) Jakbyście zapisali ustawienia użytkownika typu np: avatar, czy domyślne ustawienia wojska? Dobrym rozwiązaniem byłoby dodawanie kolumn do tabeli użytkowników i/lub inna tabela z domyślnymi ustawieniami? Cytat B ) Umieszczanie możliwych do budowy budynków, posiadania wojska? Lepszym rozwiązaniem byłoby stworzenie jednej tabeli z kolumnami właściwości, czy inna tabela dla każdego typu? Cytat B.a)Oraz do tego wymagania? Ja to widze tak: do każdej tabeli dodaje kolumny. Cytat C) Umieszczanie w tabeli posiadane a) budynki Lepiej stworzyć nową tabele, czy dodać kolumny do tabeli użytkownika? b ) wojsko Czy optymalne jest umieszczanie każdej jednostki w nowym wierszu? Cytat D) Kopalnie które dodają coś nam co sekunde? Może to być także złudzenie, a surowce dodawane były by przy interakcjii z użytkownikiem. Wyczytałem że odpalanie skryptu co sekunde jest mało optymalne (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Cytat D.a) Wykonywanie akcjii niezależnie od aktywności użytkownika? Powiedzmy że user buduje kopalnie która powstanie za 2.5h Czy zrobienie tego sposobem jak wyżej, przy czym są pewne priorytety, czyt. obliczane są surowce wyprodukowane przez kopalnie, do momentu ataku przeciwnika, po czym są dalej liczone, lub poprostu w momencie ataku przeliczane są sorowce na czas ataku, jest dobre? Mam nadzieje że podchodzi pod pro (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) . Z góry dzięki za odpowiedzi Ten post edytował matrach 7.07.2006, 14:32:33 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 30.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Wymagania co do budynków zrobić w php... Większej głupoty nie słyszałem. Jeżeli będizesz chciał coś zmienić, to będziesz musiał przegrzebać pół kodu w odnalezieniu jednej linijki. Przy tym powstaną bugi, przypadek - X-Wars. Najlepiej zapisać wszystkie wymagania w bazie. Baza to potęga. Mozna zmienić wymagania jednym kliknięciem, i nic się nie wysypie. Widzisz, różnica między nami polega na tym, że ja napisałem taką grę oraz mam w tym doświadczenie praktyczne również od strony administracji serwerem na którym stoi, Ty dopiero piszesz i uczysz się, a jednak wyśmiewasz to co powinno być właśnie w ten sposób zrobione. Więc tak: 1) jeśli dobrze napiszesz kod, to zmiana czegokolwiek będzie polegała na prostej zmianie jednej liczby w jednym miejscu. Jeśli dodatkowo dobrze to zaplanujesz i pomyślisz to znalezienie miejsca do zmiany będzie kwestią 1-5 sekund. Chyba mi nie powiesz że zmieniając jedną liczbę spowodujesz bugi w kodzie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) 2) jeśli już napiszesz tę grę w taki sposób jak piszesz i wpuścisz na nią kilka tysięcy graczy którzy będą klikali w miarę często, to szybko zauważysz że mysql zabierze ci 90% procka, będzie się wieszał w trakcie zapytań a wszelkie lagi, spowolnienia i błędy będą wynikały właśnie w tego. Baza to potęga, ale jeśli się jej źle używa to szybko słabnie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Rozwiązaniem jest tutaj zastosowanie cache-u zapytań (który i tak będziesz musiał zastosować, inaczej nie wyrobisz nawet na Dual Opteronie z 4gb ramu; polecam do tego celu memcache), jednak wtedy po każdej zmianie będziesz musiał wyczyścić cache. Natomiast umieszczenie takich rzeczy w plikach sprawi że mając np. eacceleratora, xcache albo apc, pliki te będą prekompilowane i cache-owane automatycznie przez serwer. Generalnie jak będziesz miał duży ruch, to będziesz kombinował jak ograniczyć ilość zapytań i jak najmniej korzystać z bazy, będziesz się zastanawiał nad każdym zapytaniem, strukturą bazy, jak to zrobić żeby było wydajniej, szybciej i mniej obciążało serwer. A Ty chcesz jeszcze dokładać bazie dodatkowe tabele i zapytania, na dodatek takie które są całkowicie zbędne. Do tego dochodzi np sytuacja w której mając kilka serwerów będziesz chciał zmienić coś na wszystkich. W Twoim przypadku musisz się łączyć z każdą bazą i wykonywać zapytania, w przypadku plików po prostu używasz subversiona, który możesz zautomatyzować do tego stopnia że jednym kliknięciem będziesz aktualizował pliki nawet na 500 serwerach jednocześnie. Pozdrawiam, powodzenia i życzę Wesołych Świąt (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) PS. Jak zrobisz tą grę to podeślij linka na PW, chętnie zobaczę, z góry dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował KG- 21.12.2006, 18:11:01 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 07:12 |