Skocz do zawartości

swiatcienia

Użytkownicy
  • Postów

    168
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez swiatcienia

  1. Bezpieczeństwo jest przez system kodowania użyty, grafika nie jest zapisana standardowo. Ścieżki są po to żeby był prosty dostęp do plików i żeby były posortowane. Paczki mogą być podzielona na parę plików. Patche mogą po prostu wymienić 2/3 pliki w paczce.
  2. Pierwsze powiem o co chodzi z tymi paczkami: Paczki zawierały by grafikę oraz pliki tekstowe. Paczki były by dołączone do gry i ładowane podczas startu. (To by pozwoliło na tworzenie modów albo dodatkowych języków) Takie paczki tworzy blizzard do diablo 2 i warcrafta. Jak to działa: Twórca/Użytkownik tworzy plik paczki. Gra ładuje grafiki itd. z pliku i ustawia je do obiektów. Dlaczego paczki a nie pliki: Grafika w paczce jest bezpieczniejsza. Nie ma potrzeby wysyłania do użytkownika dziesiątek/setek plików. Proste patche które mogą być ściągane ze serwera. Paczki mniej zajmują o ile są dobrze używane. Dlaczego nie dodawać grafiki do execa z grą: Wolniej się ładuje. Plik gry jest o dużo większy. Co może być w paczce: Grafika(kolorowa 256x256x256 kolorów) Grafika(szara 256 kolorów odcieni szarości) Pliki tekstowe Animacje Jak są obsługiwane pliki w paczce: Używany jest sposób znany z diablo 2 czy warcrafa czyli pliki są zapisywane wraz z ścieżką np. "player/archer.agg","weapons/sword1.cg","lang/pl.ini" a=animacja, g=gray scale, c=kolor Jak paczki są tworzone: grafika animacji w odzieniach szarości archera "player/archer.ag.1.bmp" "player/archer.ag.2.bmp" "player/archer.ag.3.bmp" -> "player/archer.agg" grafika kolorowa sword1 "weapons/sword1.c.bmp" -> "weapons/sword1.cg" plik pl.ini "lang/pl.ini" -> "lang/pl.ini" W grafice jest też zapisany rozmiar. Co myślicie o tego typu zapisie plików? Jakieś sugestie? Czy pliki powinny być szyfrowane?
  3. Ja tylko dodam od siebie jedną uwagę. Do highscore radzę dodać system zabezpieczeń, nie da się zrobić idealnego ale parę zakodowanych liczb które później generują wynik jest średnio-bezpieczne. PS: nie używajcie gotowych skryptów bo są one banalne do złamania. Podam przykład: x0=wynik x1=pierwiastek z wyniku(zaokrąglony) x2=wynik-((pierwiastek z wyniku(zaokrąglony))do potęgi) x3=potęga z wyniku i sprawdzanie: jeśli (x0 == x3 do potęgi) i jeśli (x0 == ((x1 do potęgi)+x2)do potęgi) to dodaj wynik do bazy Taki system jest bezpieczny dopóki zabezpieczysz też highscore w grze podobnym skryptem. Te liczby można też zakodować jakimś systemem i później odkodować na stronie.
  4. Oczywiście nie miałem na myśli dodawania do gry multi-playera. Ale chodziło mi o zachowanie gracza, mobów itd... Tu masz stronę http://portforward.com/ i tam jest dużo routerów. A tutaj trochę dokładniej http://www.usr.com/support/9105/9105-ug/wui.htm
  5. Chyba cie muszę wyprowadzić z błędu BAZY DANYCH SĄ SZYBSZE NIŻ PLIKI TEKSTOWE. Jak nie wierzysz to sprawdź. Jak niby chcesz zrobić sql injection przecież użytkownik nie podaje żadnych danych do skryptu tylko wyciągane są dane z bazy. A żeby zabezpieczyć się przed sql injection jest 1 prosta funkcja, którą można ściągnąć z internetu. PS: nie jedną setną a od 10-30% pobieranie danych. Jeśli chodzi o bannery to był tylko taki dodatek. Edit: jeśli chodzi o pliki a użytkownik był by w stanie zmienić coś w nazwie pliku to może nieźle namieszać w wszystkich plikach na serwerze, więc baza jest bezpieczniejsza bo nie nic wspólnego z plikami na serwerze.
  6. zainsertowanie - jest takie słowo? serwezre - serwerze Polecam firefoxa do sprawdzanie pisowni :) Po pierwsze używaj bazy mysql jest prostsza od plików txt i bezpieczniejsza. Funkcja random() Export linków z bazy/pliku do tablicy I wyciąganie linków z tablicy zależnie od wyniku funkcji random() PS: ja taki skrypt bym wycenił na około 40-100 euro (mieszkam w irlandii) Skrypt mógł by mieć bannery itd... I był by bazowałby na MYSQL.
  7. Pierwsze spróbuj zrobić prostą grę, najlepiej na 39dll. Np. Zwykłe poruszanie po mapie + czat (serwer + klient) Jeżeli nie będziesz w stanie robić tego radzę się nie zabierać za MMO Piszę to nie dlatego że chcę cie zniechęcić tylko dlatego żeby zaoszczędzić ci czasu na próbowanie stworzenia gry MMO bez podstaw łączenie gracza z serwerem. Jeżeli już masz zrobioną grę single-player to możesz ją przenieść na multi-player bez większych problemów ale jeżeli nie masz gry podobnej do tej którą próbujesz zrobić radzę napisać pierwsze grę single-player. Na samym darmowym serwerze(mysql + php) da się zrobić grę MMO, Tylko będzie ona działać powoli i wymaga to napisanie wszystkich skryptów w PHP + Klienta w GM który by się łączył z tymi skryptami. Odradzam takie rozwiązanie bo ono jest nie efektywne i nie optymalne a także wolno działa. Ale jeżeli ma to być prosta gra (Nie RPG ani strategia) tylko np. coś ala ogame(ale w programie a nie w przeglądarce) może to być dobre rozwiązanie jeżeli nie masz dobrego łącza/serwera.
  8. Jeszcze jeden szczegół podaj masz firewalla? tz. na kompie i na routerze?? Jak tak to spróbuj wyłączyć, miałem podobny problem i pomogło. I jeszcze anty-wirusa jakiego używasz?
  9. spróbuj przeinstalować jeszcze raz a jak nie to taki e-mail jak ci napisze że za dużo razy aktywowałeś: Ja już aktywuje z 10 raz bo mam restart kompa co 3 miesiące I już któryś raz do nich takiego e-maila piszę i zawsze na następny dzień jest
  10. Wiem że zapis jest prosty na upartego idzie użyć takiego skryptu $inputx = str_replace($_SERVER['SCRIPT_NAME'], "", $_SERVER['REQUEST_URI']); $input = explode('/*',$inputx); print_r($input); który zwróci tablice script.php/*a/*b/*cd=wqe/*afsd?asfa=fasd&sfagga/*sdgdsdfg Array ( [0] => [1] => a [2] => b [3] => cd=wqe [4] => afsd?asfa=fasd&sfagga [5] => sdgdsdfg ) i w pętli wykonać zapytania czyli tylko 1 połączenie z php
  11. Tak do odczytu dobre ale do zapisu już nie aż tak a szczególnie przy mmorpg ale jak jest zapis co 30 min i restart serwera co 3 godziny to nie będzie lagów ani strat bo w 3 godziny nie wywali błędu
  12. ale przy zapisie serwera było by tych zapytań z 30 przy 15 graczach A później jak będzie 100 graczy to 200 zapytań to by zajęło zbyt długo. Ale jak nie znajdę jakiegoś innego wyjścia to będę zmuszony napisać to w ten sposób. Chociaż na localhost zapytania wykonują sie szybko ale to nie ma porównania z połączeniem bezpośrednim z bazą danych
  13. A widziałeś źródła? bo ja tak.
  14. Przy każdym graczu który się loguje po około 10 zapytań i z 10 przy wylogowywaniu. Zapisie serwera 10*liczba graczy + niektóre obiekty na mapie Przy logowaniu: Pobiera konto gracza + postacie na koncie Bany Przedmioty Umiejętności Zmienne z questami itd... Przy wylogowywaniu i zapisie serwera zapisuje te dane w bazie +przedmioty na mapie oraz zmienne serwerowe
  15. Jedyny problem to że przez php dane będą się wysyłać wolno i może to powodować lagi w grze. A zato GmSql jest przestarzały. Zna ktoś jeszcze jakieś inne rozwiązanie?
  16. To nie jest dobry sposób na pisanie dodatków ponieważ użytkownik może napisać skrypt który powie mu id gracza i np. może dodać sobie hp albo kasy
  17. Wie może ktoś jak się połączyć z bazą mysql z poziomu GMa. Jakiś dll? Może jakieś skrypty do 39dll? Chodzi mi tu o komunikacje serwera z bazą danych. Nie chce xml, bo chodzi mi o stronę internetową która będzie używać tej samej bazy danych.
  18. Moim zdanie 39dll jest lepszy. Bo: Ma bardziej przejrzyste funkcje Jest szybszy Widziałem jego źródła i są przejrzyście napisane i dobrze zoptymalizowane
  19. Jeśli braknie ci aktywacji to wystarczy do nich napisać a dodają ci. Ja już aktywuje z 8 raz, bo często mam reset kompa.
  20. radze używać tablicy do przechowywania piętra obiektów(np. array_z[id]=1/2/3...), bo jak będziesz chciał coś zrzucić na duł to będziesz miał duże problemy, i jak coś będzie używalne na dalekość to będzie szło tego użyć z dołu i góry. A jeżeli to gra multi-player to wręcz jest to niemożliwe bez używania tablic.
  21. swiatcienia

    GRY MMO

    Almory użyłem jak przykładu, i nie miałem zamiaru cię urazić, nie zdeasemblowałem pliku tylko przejrzałem kod przez hex edytor. Przerobiłem go bo GM źle zapisuje pliki. No nie wiem jakoś na 1 lvl byłem na najlepszych potworach Tak można było a nawet dało się przerobić tak żeby miał inne itemy Ta ostatnia część nie była do ciebie zobacz na posta
  22. swiatcienia

    GRY MMO

    Aha robienie gier jest nieporównywalnie trudniejsze od malowanie i w grach nic nie może iść nie tak jak ma. I mylisz się przeglądałem cały kod almory i różne skrypty OK to wytłumacz mi 2 sprawy: -czemu jak przerobiłem trochę silnik klienta to dałem rade przechodzić przez ściany i się teleportować i jak wyłączyłem odbierania potworów to żaden mnie nie zaatakował? -Czemu dałem rady otworzyć skrzynkę oraz gadać z NPC z każdego miejsca? Tak mapa też musi być na serwerze nie koniecznie cała tylko wersja 2D, gdzie się wzorowałem na Tibii Taki lub owaki sposób (haha) tylko chciałem jeszcze dodać że np. szyfrowanie gówno ci da! blackmaul: tak nie było mnie pół roku temu na forum tylko czasami zaglądałem co się dzieje
  23. swiatcienia

    GRY MMO

    Cześć nie było mnie już długo (z pół roku), uczyłem się o c++, mmo i o zabezpieczeniach. Pisze do wszystkich którzy robią gry mmo ponieważ chce się podzielić moimi doświadczeniami. Pierwsze gry jakie robiłem miały dużo błędów i były proste do zcrakowania. Dlatego teraz wam chce dać parę rad: 1.Wszystkie informacje muszą znajdować się na serwerze 2.Klient tylko się pyta "czy mogę ruszyć do góry"(nie możesz serwera powiadamiać o fakcie dokonanym) 3.Serwer odpowiada Tak albo Nie zależy czy nie jest zablokowany, potem wysyła co się stało i inne efekty. 4.Mapa MUSI(!!!) być na serwerze i nie koniecznie u gracza 5.Widzisz tylko graczy blisko siebie 6.Tak zwany Exhause albo opóźnienie Może się zastanawiasz poco nam to mówisz to zobacz na przykład poniżej. Przykład gry z małymi zabezpieczeniami to Almora, dlaczego? -cała mapa jest u klienta(dało się przechodzić przez ściany) -szybkość zależała tylko od klienta(p. 2 i 6) -tak zwany teleport bug dało się skakać na drugi koniec mapy(p 2 i 3)
  24. ok, jak ktoś zna jakąś bibliotekę do 3D jakąś dobrą to proszę o podanie, przyda mi się na potem
  25. ok a co do 3D? i mam jeszcze pytanie jakie biblioteki dodać żeby wszystko mi działało: 1.I/O 2.Dźwięk 3.Klawiatura/Mysz I jeszcze 1 pytanie działa to pod Code::Blocks??
×
×
  • Dodaj nową pozycję...