Porady
Z Programowanie
Spis treści |
[edytuj] CMSy i MUDy
[edytuj] Ogólne
- Zawsze rozplanuj cały silnik - wszystkie pliki, odnośniki, wygląd, a także wszystkie szkice tabel MySQL (lub innej bazy danych)
- Zapisz se od razu wszystkie pliki(puste) i od razu je "includuj" - w ten sposób nie zapomnisz o żadnym pliku, a nie wystąpią błędy związane z ich brakiem
- Najlepiej rób stronę opartą na CSS i bez ustalania w tabelkach szerokości - CSS da ci większą elastyczność podczas modyfikowania i zmieniania wyglądu
- Zbierz se wszystkie potrzebne przykładowe kody zanim zaczniesz pisać - jeżeli zapomnisz jakiejś składni, szybko znajdziesz prawidłową i możliwe że ci się nie odechce:)
- Dbaj o czystość bazy danych - czasem po "apdejcie", a tym bardziej w którym modyfikowana była baza danych, mogą wystąpić błędy z odczytem
- Gromadź kilka wersji silnika - czasem wprowadzone modyfikacje wprowadzają nowe błędy, a wtedy trzeba wrócić do starego i sprawdzić co nie gra
- Testuj na różnych wersjach serwerów - na różnych są różne wersje php i baz danych. Niektóre opcje działają tylko pod nowszym/starszym oprogramowaniem, więc musisz znaleźć "złoty środek"(chyba że nie masz zamiaru dzielić się swym dziełem z innymi)
- Bądź brutalny i bardzo lamerski podczas testowania - kto wie do jaki n00b skorzysta z twojego cmsa/muda. Szukaj jak najwięcej tzw. "błędów użytkownika" typu złe wartości, puste pola itd.
- Zapobiegaj wszelkim błędom jakie mogą wystąpić - braki plików, źle wprowadzone dane itd. nie każdy rozumie komunikaty z interpretatora php. Nie bój się "ifów"
- Jest kilka sposobów na zrobienie systemu logowania:
- Zapis w cookies loginu i hasła, a następnie sprawdzanie za każdym razem czy są poprawne
- Zapis w cookies samego ID użytkownika po udanym logowaniu
- Zapis w cookies po udanym logowaniu wylosowanego kodu (np. suma md5 wylosowanej liczby), który jest numerem [sesji, a następnie co odświeżenie strony sprawdzanie czy sesja jest jeszcze ważna (i przedłużenie jej). Wpisy sesji zapisywane w bazie w tabeli z użytkownikami (numer i data ważności)
- Zapis w bazie adresu IP oraz daty - nie wymaga cookies. Niebezpieczny gdy użytkownik ma internet poprzez LAN
- Bądź otwarty na propozycje użytkowników (zwłaszcza, gdy chcą ci nawet kod napisać, ale zawsze sprawdź, czy nie ma w nik jakiego haka)
- Nie reklamuj zbyt wcześnie - jeżeli nie będzie się prezentować dobrze, projekt będzie miał słabe poparcie. Jeżeli chcesz już zareklamować i opublikować, zarejestruj projekt na np. sourceforge.net, oraz najlepiej wykup jakiś na razie tani serwer na hosting
- Grafika powinna być jak najlżejsza i najwyraźniejsza. BROŃ BOŻE do DESIGNU NIE UŻYWAJ JPEGÓW!! do małych grafik(max w sumie 250 pixeli) wystarczą gify, do większych PNG (również kompresuj usuwając niepotrzebne mapy alfa
- System banów i blokad jest przydatny. Zadbaj o to, by zablokować wszystkich spamerów. Na zmienne IP jest pewien sposób - cookies:)(n00by sie nie zczają). Można też zablokować nicka.
[edytuj] MUD - silniki gier online
- Wczytywanie danych takich jak statystyki, ekwipunek, ustawienia, czy inne powtarzające się zapytania do bazy danych zapisuj jako funkcje. Nie będziesz musiał kilka razy pisać tego samego.
- Testuj mając kilka kont użytkowników - dodatkowo możesz poprosić znajomych o testowanie. Czasem błędy wyskakują gdy jest więcej kont
- Każdą lokację zrób w osobnym pliku - będzie łatwiej lokalizować błędy i pisać dodatki
- Grając (testując) również bądź idiotą (tymczasowo:)) próbując jak największej ilości błędów, a następnie wróć do normalnego trybu pracy i popraw znalezione błędy
- Gdy dajesz możliwość ataku innych graczy, daj blokadę, aby nie można było atakować samego siebie - czasem prowadzi to do katastrofy
- System wiadomości i "sojuszy" zwiększa zainteresowanie
- Czasem na pewną akcję potrzebny jest czas (np. jak w ogame na budynki). Napisz skrypt który liczy która będzie godzina za x sekund i zapisuje do bazy danych nową akcję. Gdy Jest jakaś akcja związana z graczem(np szpiegowanie, wysłanie wiadomości, zalogowanie się, podgląd profilu) sprawdzane jest, czy jest jakaś akcja w bazie związana z tym graczem. Jeżeli czas już minął, akcja jest wykonywana, a wpis usuwany.
- Każdy przedmiot (osobno!) możesz określić jako osobny rekord w tabeli, numer ID, oraz kilka kolumn właściwości
- Pisz skrypty czyszczące bazę ze starych wpisów, jak np. przedmioty (np. jedzenie się psuje:p), wiadomości (np. trzymane są max 2 tyg) itd. Baza nie ma nieograniczonego miejsca!
- j.w tylko usuwające również wpisy które nie są używane( bo np. nie mają odnośnika-przedmiot nie należący do nikogo, są przestarzałe, a z niewiadomych powodów jeszcze istnieją)
[edytuj] Przydatne linki
[1] - darmowy serwer na testowanie skryptów [2] - darmowy i prosty server Apache obsługujący PHP i MySQL w najnowszych wersjach pod Windowsa [3] - darmowy cronjobs do robienia np. czyszczenia bazy [4] - "encyklopedia" HTML, CSS i JavaScript [5] - dobry edytor HTML/CSS/PHP. Fajny kreator stylów CSS :D pod win. Dla linuxa polecam standardowe GEDIT (na gnomie) oraz KATE (na kde)
