Навигация по сайту

Популярные статьи

Tworzenie gry dla sieci społecznościowych

Tworzenie gier na portalach społecznościowych jest dość dużym zainteresowaniem dla programistów. Przede wszystkim wynika to z faktu, że sieci społecznościowe mają już ogromną liczbę użytkowników.

Najczęściej gry społecznościowe są reprezentowane jako kontener Flash lub przez iframe. Jeśli wcześniej większość gier była w Flashu, to dzięki technologiom, które dziś daje Ci sieć, możesz już pisać gry wieloosobowe i animowane.

Pewnego wieczoru postanowiłem napisać grę i sprawdzić, jakie technologie można to zrobić. Moja gra Vkontakte http://vk.com/app4533532 . A potem mały opis.

Od dawna chciałem spróbować okazji node.js i Gniazda internetowe więc postanowiono napisać tylko grę wieloosobową. Chociaż początkowo myślałem, że spróbuję użyć php, ale ponieważ nie programowałem na nim od dłuższego czasu, odrzuciłem ten pomysł. Plus o asynchronii node.js i gniazd słyszałem dużo dobrego.

Pomysł na grę, podobnie jak nazwa, szybko doszedł do głowy. „ Odważny! Graj z przyjaciółmi . �� Gra jest analogią do gry „Kto chce być milionerem?” Lub „Och, ten szczęśliwy”, tylko jeden gracz rywalizuje z innym. Celem gry jest odpowiedź na więcej pytań niż przeciwnik. Nie trzeba dodawać, że wskazówki, które musiałem wymyślić innym, a nie jak w programie telewizyjnym.

Do gry wybrano następujące technologie. Jak już napisałem bibliotekę node.js + socket.io który umożliwia korzystanie z różnych typów połączeń dla połączeń gniazd. To była strona serwera, czyli logika odpowiedzialna za rozgrywkę. Użyłem też Silex framework php do tworzenia API. Dlaczego nie zrobiłem wszystkiego na node.js? Odpowiedź jest prosta. Istnieją pytania, jak uzyskać ocenę, wejść do gry, proces płatności w grze, który jest łatwiejszy w php, a nawet zaktualizować php jest łatwiejszy. Jeśli zaktualizujesz kod na node.js, będziesz musiał ponownie uruchomić grę i wszyscy klienci odłączy się od gry. Dlatego przeprowadziłem procesy nie związane z grami na barkach php.

Jako baza danych po raz pierwszy chciałem użyć Mongo, ale potem zdecydowałem, że wystarczy MySQL. Wszystkie moje dane są uporządkowane i pracuję z tą bazą danych przez długi czas. Do powiązania node.js z MySQL wykorzystano bibliotekę. node-mysql .

Po stronie klienta używam marionetka , require.js , kręgosłup jquery Aby zbudować projekt grunt.js i mniej preprocesor.

Początkowo planowano umieszczenie gry tylko w „Vkontakte”, ale po uruchomieniu konieczne było dodanie kodu „Odnoklassniki”. Dla obu soc. sieci używają tego samego kodu. Separacja występuje na poziomie domeny. W zależności od procedur obsługi hostów ładowane są Vkontakke lub Odnoklassniki. Dzięki ramie logika i prezentacja są bardzo dobrze rozdzielone. Dodanie nowej sieci społecznościowej nie zajmuje dużo czasu.

Stworzenie gry zajęło około 1 miesiąca wolnego czasu. Pierwsze pytania pochodziły ze starych gier znalezionych w Internecie. Gdzieś musiałem znaleźć algorytm, który niektórzy programiści mają zaszyfrowane pytania. Jednak, jak się okazało, wielu z nich miało błędne odpowiedzi, z błędami gramatycznymi. Użytkownicy narzekali na to wszystko.

Po dodaniu gry w Vkontakte - wysłałem ją do moderacji. Pierwsza próba moderacji trwała 30 minut po wysłaniu. Odmowa zakwaterowania. Do gry potrzebne były co najmniej 2 osoby. Niestety, testujący był sam i odrzucił grę z powodu „Zawsze szukam przeciwnika”. To była moja pierwsza szkoła, po której zdałem sobie sprawę, że muszę natychmiast napisać boty do gry. Nawet wielu, którzy weszli do gry za pośrednictwem linków w głośniku wysokotonowym, natychmiast wyszło, ponieważ nie było nikogo.

Po napisaniu botów wysłałem grę do moderacji po raz drugi. Tym razem musiałem czekać aż 4 dni. Poprosiłem nawet o list. Następnie gra została umieszczona w katalogu. Ale wciąż było niewielu graczy. Prawie zawsze wszyscy bawili się botami. Ale! Vkontakte ma ciekawą funkcję. Mogą umieścić grę za darmo w bloku „Nowy”. Jest wiele gier, więc moje wydanie w tym bloku miało miejsce 20 października. Do 20 roku w grze było tylko około 100 osób ... Ale kiedy obudziłem się rano 20 ... Byłem zszokowany. W Internecie było 300 osób. Mój serwer z 1,5 GB pamięci RAM po prostu nie poradził sobie z takim obciążeniem. Gra jest ciągle restartowana. Szczerze mówiąc - nie byłem gotowy na taki ładunek.

Użytkownicy skarżyli się. Błędy spadły. Tego samego dnia naprawiono wiele błędów. Jakoś w jednej grze zamiast dwóch osób były trzy. Nie mogłem zrozumieć dlaczego. Okazało się, że zapomniałem zawiesić indeks na jednym z pól w bazie danych. Z tego powodu jednocześnie 2 użytkowników znalazło otwartą grę i było z nią połączone do momentu, gdy jej status w bazie danych został zmieniony z „otwartego” na „grający”. Później musieliśmy dalej optymalizować to „wąskie” miejsce.

Po naprawieniu błędów musiałem kupić nowy serwer już z 4 GB pamięci RAM. Dobrze, że była w tej samej cenie, co mój obecny serwer zakupiony w zeszłym roku. W dniu 3 po uruchomieniu przeniosłem wszystkie pliki na noc. Niestety transfer DNS nie był tak szybki i straciłem dużą liczbę graczy. Widać to na poniższym wykresie:

Szkoda, ale od razu musiałeś być na to przygotowany. Ale teraz sytuacja jest dość stabilna. Naprawiono wszystkie widoczne na pierwszy rzut oka błędy. Zaczynamy powoli dodawać nowe funkcje.

Pierwszą rzeczą, którą należało zrobić, była możliwość dodawania nowych pytań przez użytkowników. Drugim jest zaznaczenie, które problemy są błędne lub nie. Jest to realizowane za pomocą pytań „lubi” i „nie lubi”. Ogólnie rzecz biorąc, łatwiej jest znaleźć pytania z błędami.

Oprócz gry musieliśmy opracować grupę - w tym miejscu gracze zgłaszali błędy i nieprawidłowe pytania. Istnieje również promocja gry: konkursy, pytania itp.

Oprócz gry uruchomiono sklep z pamiątkami http://umnikclub.printdirect.ru/ . Ile to będzie opłacalne, nie jest jeszcze jasne. Będzie możliwe zrozumienie tylko za miesiąc lub dwa.

Jakie są inne plany gry? 1. Uruchom w klasie (czekając na rejestrację IP. Bez osoby prawnej nie uruchamiają gry) 2. Wypróbuj możliwości Facebooka. 3. Przenoszenie na platformy mobilne.

Wszystko to wymaga oczywiście czasu, a czasem jest bardzo brakuje. Jeśli to możliwe, wdrożę.

Jakie wnioski dla siebie wyciągnąłem?

1. Do gry potrzebujesz dobrego i właściwego zarabiania. Nie wyszedłem zbyt wiele. Porady, zwłaszcza nikt nie kupuje.

2. Konieczne jest posiadanie potężnego żelaza, w przeciwnym razie napływ graczy będzie układał grę. Rezultatem jest utrata graczy.

3. Otwarcie osoby prawnej i rejestracja umów. Bez tego „głosu” z kontaktu i „OK” z Odnoklassniki nie można usunąć.

4. Niezbędne jest natychmiastowe rozwinięcie grupy za pomocą aplikacji. Trochę tęskniłem za tym krokiem. Link do grupy musi znajdować się w aplikacji. I lepiej - w widocznym miejscu.

5. Testowanie wąskich gardeł. Bez nich możesz uzyskać wiele „tajemniczych” błędów.

6. W grach wieloosobowych musisz natychmiast pomyśleć o botach. Pierwszy raz bez nich nigdzie nie ma. Potrzebujemy przynajmniej najbardziej prymitywnych.

Teraz gra zainstalowała około 60 000 osób. Średnio w Internecie jest 100-150 osób. Serwer czuje się świetnie. Gra zajmuje 684 miejsce w rankingu najpopularniejszych aplikacji. W grze czasami pojawiają się małe błędy, staram się je znaleźć.

Powodzenia dla wszystkich! Jeśli masz jakieś pytania, zapytaj w komentarzach.

? Gra jest analogią do gry „Kto chce być milionerem?
Js?
Jakie są inne plany gry?
Jakie wnioski dla siebie wyciągnąłem?