Skocz do zawartości
Zaku

Tworzenie "klikanki".

Rekomendowane odpowiedzi

Nie wiedziałem jak nazwać ten temat.

Od pewnego czasu dręczy mnie kwestia pisania gier przeglądarkowych w postaci prostych "klikanek". W sumie moje pytanie nie będzie odnosić się tylko do gier, ale też ogólnie do stron internetowych. Do rzeczy, w czym są tworzone tego typu gry? Wydaje mi się, że wystarczy PHP (do obsługi bazy danych) i JavaScript (do prostych "animacji" np. odejmowanie życia czy energii). Wolę jednak zapytać i żyć w spokoju. Jeśli PHP to czysty czy może warto wsadzić w taki projekt jakiś framework (symfony lub coś mniejszego)?

Ogólne pytanie w kwestii tworzenia stron dotyczy właśnie PHP. Czy powinno się jeszcze używać czystego PHP czy lepiej inwestować już wiedzę w jakiś framework? Czy może zależy to tylko od kwestii wygody lub od poziomu rozbudowania projektu i podstawowy PHP nadal nadaje się do użytku?

Zastanawiałem się czy nie zapytać też o tworzenie bardziej dynamicznych gier (standardowym przykładem będzie tu margonem...), ale na forum znalazłem informacje, że wystarczy użyć node.js + biblioteka do JS i można tworzyć. Nie wiem jeszcze jak można połączyć te dwie rzeczy, ale, póki co, ograniczę się do ogólnej wiedzy na temat "klikanek".

:)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

To nawet nie PHP... wystarczy ci sam JS, save robisz po stronie klienta w cookies, żadna baza danych.

Moje osobiste zdanie jest takie: jak chcesz się uczyć programować to zacznij od C++, pisz jakieś appki, czytaj książki, ucz się programistycznego myślenia.

"Dynamiczne gry"... najpierw naucz się implementować listę jednokierunkową i sortować bąbelkowo rozumiejąc jego zasadę działania i odróżniając od quicksorta. MMO to nie ukrywajmy... trochę trudne zagadnienie, które tylko pozornie wydaje się łatwe. Nie umiejąc programować, nie mając doświadczenia nawet nie masz świadomości co można skopać i nie wiesz czego się bać.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jak miałoby to działać? Ciasteczka można wyczyścić i cały save pójdzie do kosza, a w bazie będzie to leżało cały czas, prawda? Dodatkowo, cookies są zapisywane po stronie klienta, czyli użytkownik wchodząc na innym urządzeniu musi zacząć grę od nowa? Kiedyś przeglądałem gotowe silniki i level, umiejętności, ilość złota itp. były przechowywane w bazie danych.

C++ już przewałkowałem. Mówię tu o konsolowych aplikacjach i licznych algorytmach. Sortowanie bąbelkowe, szyfrowanie. Do tego programowanie obiektowe. Wszystko to nauczyło mnie troche innego patrzenia na kod.

Wiadomo, że takie gry MMO do prostych nie należą, dlatego zainteresowałem się grami w postaci zwykłej strony internetowej.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chodzi o klikanki to PHP jest dobrym wyborem. Tworzenie takiej gry nie różni się prawie niczym od tworzenia zwykłej strony internetowej.

17 godzin temu, Zaku napisał:

Jeśli PHP to czysty czy może warto wsadzić w taki projekt jakiś framework (symfony lub coś mniejszego)?

Tak naprawdę to wszystko zależy tylko do ciebie i tego jak ci będzie wygodniej. Jeżeli celem jest po prostu stworzenie gry to najlepiej użyć do tego czegoś co ułatwi pewne rzeczy i zautomatyzuje cały proces tworzenia. Nowoczesne frameworki są właśnie przeznaczone do tego celu. Wybór konkretnego frameworka jest tylko osobistą preferencją.

Oprócz PHP są też inne technologie (NodeJS, Python, GoLang, RoR, itp.)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
6 godzin temu, Zaku napisał:

Ciasteczka można wyczyścić i cały save pójdzie do kosza

A alternatywą jest rejestracja, przechowywanie hasła, maila, loginu - o ustawie o ochronie danych osobowych i rejestracji zbioru danych w GIODO słyszałeś? Ja wiem, że przeciętny user ma to w dupie, ale zawsze wystarczy ten jeden złośliwy.

Widziałem bardzo dobrą klikankę która właśnie sejvowała się do cookies. I bądźmy poważni - kto przy zdrowych zmysłach będzie chciał swoje klikanie robione na pc przenieść na smartfona? Jedyny cel jaki widzę, to żeby się poduczyć takiego podejścia typu klient-serwer, taka namiastka MMO... No można i tak, jak ktoś bardzo musi. Dla mnie jednak podejście typu 'umiem ceplusplusa więc teraz robię grę ememo' jest z założenia błędne - bo ty tak na prawdę nadal za mało umiesz. Dużo więcej radości sprawi ci zabawa zwykłym Unity dla dzieci niż papranie się w PHP. Rób gry standalone, coś dla jednego gracza. Inwestuj czas w grafikę 3D a nie w rozgrywkę w przeglądarce - bo przeglądarka jako platforma do grania wyszła z mody, dostała kopa w tyłek od smartfonów.

Zrób coś takiego:

Podziel sobie prace na etapy:

- offline klikacz w JS na przeglądarce, zapis do cookies

- przenoszenie sejva w postaci pliku tekstowego (dane binarne kodujesz do base64 i masz literki) poprzez pole edycyjne.Wysłanie takiego sejva mailem, mail zawierał by np spreparowany link http://superklikanka.pl/s=jfdhewa74tyvwerthnw893y469567365unb45y6vbdgnbdgndhb gdzie ten ciąg znaków to właśnie sejvgejm

- możliwość zapisu stanu gry do 'chmury' (ludzie lubią to słowo), własne konto po wysłaniu SMSa na numer XXXXX, koszt 1,5PLN + Vat.

Pierwszym milionem dzielisz się ze mną po połowie, resztę sobie zatrzymaj :)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
58 minut temu, Writen napisał:

Mam wrażenie, że rozmawiacie o zupełnie innych rzeczach.

Sam się zgubiłem.

 

Założyłem ten temat, ale nie dlatego, że zamierzam stworzyć coś takiego. Po prostu chciałem dostać odpowiedzi na pewnie pytania.

1 godzinę temu, FrozenShade napisał:

bo ty tak na prawdę nadal za mało umiesz

Umiem tyle co nauczyli mnie w szkole (czyli zero konkretów), więc tak, masz rację - umiem stanowczo za mało.

1 godzinę temu, FrozenShade napisał:

dostała kopa w tyłek od smartfonów

Próbowałem sił w grach mobilnych. Coś tam szło, ale w końcu stwierdziłem, że javascript do gier mobilnych jednak nie bardzo pasuje. Może do takich prostych, statycznych, ale przy moim projekcie już mnie to ograniczało.

Marzenia i cele są wielkie, ale nawet nie mam czasu spokojnie usiąść i poczytać. No może czasem znajdę chwilkę, ale głównie szkoła i maturka mnie ogranicza.

Temat się dosyć rozrósł, ale doceniam.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
1 minutę temu, Zaku napisał:

Umiem tyle co nauczyli mnie w szkole (czyli zero konkretów), więc tak, masz rację - umiem stanowczo za mało.

Spodziewałem się tego.
 

2 minuty temu, Zaku napisał:

Sam się zgubiłem.

Wg mnie nie po prostu ma sensu robić tej gry tak, jak sobie wymyśliłeś. Zadajesz pytania odnośnie PHP a PHP to tu jest najmniej potrzebne. Tetrisa też będziesz pisał jako MMO z serwerem losującym klocki? To już lepiej kółko i krzyżyk online, przynajmniej faktycznie serwer ma tam jakiś sens - pokoje i w każdym pokoju toczy się gra.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Tetris czy kółko i krzyżyk to inna sprawa. Po prostu szukam ogólnych informacji, żeby wybrać coś, z czym pójdę dalej. Jakiś kierunek przy którym zostanę na stałe, bo nie mogę sobie znaleźć swojego miejsca.

W każdej twojej wypowiedzi widać nienawiść do webowej roboty.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jak napiszę, że "brzydzę się webówką" to spełnię oczekiwania kilku osób na tym forum i zadość uczynię pewnej tradycji ;)

To jest na zasadzie: jak jesteś jubilerem i robisz biżuterię to lepienie garnków z gliny będzie jak papranie się w kupie. Nie ujmując niczego garncarstwu oczywiście. Ktoś musiał popełnić Wordpressa w takim gów... eee glinie ;) żebym ja mógł sobie na tym postawić stronę.

Jeśli chcesz iść dalej to ja ci już pisałem - grafika 3D, Unity czy inne silniki, imo to jest przyszłość.

"Czy powinno się jeszcze używać czystego PHP?" - ja uważam, że w ogóle nie trzeba używać PHP. Serwer gry zrobisz w każdej innej technologii. Polecam się ich uczyć.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Nawet nie musiałem zadawać pytań, żeby dostać na nie odpowiedzi. Na duże silniki przyjdzie w końcu odpowiednia pora.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Nie słuchaj Frozena jest zgorzkniały :D

Dnia 17.01.2017 o 22:29, FrozenShade napisał:

Jak napiszę, że "brzydzę się webówką" to spełnię oczekiwania kilku osób na tym forum i zadość uczynię pewnej tradycji ;)

O to to to :D

Dnia 17.01.2017 o 22:29, FrozenShade napisał:

Jeśli chcesz iść dalej to ja ci już pisałem - grafika 3D, Unity czy inne silniki, imo to jest przyszłość.

I dlatego właśnie każdego roku powstaje masa gier 2D (często ale nie zawsze) robionych w stylu retro, które odnoszą ogromny sukces (również finansowy) xD

 

Jako, że klikanki zeżarły sporo mojego czasu, to myślę że poniekąd mogę się uważać za eksperta (przynajmniej częściowo) w ich sprawie xD Wszelkiego rodzaju klikanki są bardzo popularne i ich robienie jak najbardziej ma sens i może się opłacać finansowo (chodź nie tak jak zrobienie innego rodzaju gry) z drugiej strony wydaje się, że jeśli ma się odpowiedni pomysł to o wiele łatwiej wystartować z tego typu grą.

Niemniej tak jak pisali poprzednicy PHP tutaj się nie nada. Nie dla tego że jest złe (jak by chcieli co poniektórzy :D), tylko że to nie jest odpowiednia technologia w tym przypadku. Klikanki z założenia zakładają dużą ilość kliknięć, a więc i miałbyś sporo zapytań do bazy danych w każdej chwili. Mógłbyś wprawdzie rejestrować nie wiem same poziomy i tylko je zapisywać do bazy danych ale to nie przejdzie - pierwszy lepszy gracz zaraz zacznie sobie dodawać miliony do konta i cały pomysł idzie się paść. Lepiej robić to już w cookies, a zapis do bazy danych zrobić tylko właśnie na wypadki utraty danych.

W każdym razie albo należy zrobić to w javascripcie, albo pójść w takie Unity chociażby (widziałem kilka naprawdę fajnych klikanek zrobionych na tym silniku).

 

Dodam jeszcze że od 4 lat, gry webowe są moim jedynym źródłem utrzymania, a żyję sobie na całkiem niezłym poziomie, więc jak najbardziej idzie z tego wyżyć ^^

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
30 minut temu, Meridion napisał:

Niemniej tak jak pisali poprzednicy PHP tutaj się nie nada. Nie dla tego że jest złe (jak by chcieli co poniektórzy :D), tylko że to nie jest odpowiednia technologia w tym przypadku. Klikanki z założenia zakładają dużą ilość kliknięć, a więc i miałbyś sporo zapytań do bazy danych w każdej chwili.

Szczerze powiem, że bzdury opowiadasz. Dużo różnych portali informacyjnych czy rozrywkowych napisanych w PHP odnotowuje wielokrotnie więcej kliknięć niż niejedna gra. Stoją, mają się dobrze. Wszystko opiera się na odpowiednim zaprojektowaniu aplikacji i doborze odpowiednich narzędzi.

Mówisz, że przy każdym request'cie potrzebujesz pobierać/utrwalać dane korzystając z bazy danych? Przecież są takie rzeczy jak Cache, Redis, itd. oraz istnieje wiele technik optymalizacji.

Wszystko tak naprawdę jest kwestią dobrego projektu oraz wyobraźni i doświadczenia programisty.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Tylko zauważ że to jeszcze powinno być odporne na oszukiwanie, a wielu graczy używa też autoklickerów, gdzie masz kilkanaście kliknięć na sekundę. A jeśli chcesz zrobić "klikacza" to też nie bardzo możesz zabronić takich praktyk.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli mówisz o grach typu Clicker, to sam nie widzę nawet sensu tworzenia do tego jakiegoś back-endu oprócz zwykłego serwera HTTP. Natomiast termin "klikanki" od zawsze oznaczał gry, które polegają po prostu na klikaniu w celu wykonywania różnych akcji (zebranie surowców, atakowanie, budowa. itd.). To wcale nie musi być klikanie na czas, wręcz przeciwnie, np. wykonanie danej akcji może być dostępne tylko raz na jakiś czas.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Tak tak tak. Chodzi o Cookie Clicker i tym podobne gry, bez serwera, bazy danych, wszystko dzieje się lokalnie.

 

11 godzin temu, Meridion napisał:

Nie słuchaj Frozena jest zgorzkniały

Wypraszam sobie ;p

 

11 godzin temu, Meridion napisał:

I dlatego właśnie każdego roku powstaje masa gier 2D (często ale nie zawsze) robionych w stylu retro, które odnoszą ogromny sukces

Powstaje też jeszcze więcej gier 3D które odnoszą sukces. Różnica jest taka, że w przypadku 2D i retro-pixelowej grafiki gra musi się bronic tylko i wyłącznie pomysłem i jakością rozgrywki. Musi mieć 'to coś' żeby przełamać początkową niechęć do 'brzydkiej grafiki'. Znacznie łatwiej mają gry z dobrą, lub co najmniej przyzwoitą grafiką.

O ile retro-pixelowa gra nie wywoła sobą jakiegoś hype to gracz szukający sobie na Steamie gierki do popykania ma duże szanse na odrzucenie jej, nie poświęcenie jej uwagi. No chyba, że zwyczajnie lubi takie gry. Tak to działa, ładne przyciąga a brzydkie nie za bardzo. Którą grę wybierzesz po patrzeniu na screeny, szukając np RPGa z taktyczną walką: tą, gdzie pole walki jest szachownicą a postacie przedstawione są jako ikonki na polach? Czy może grę, gdzie widzisz pole walki w 3D, ciekawie oświetlone, postacie są ładnie wymodelowane, jest fajne tło a screen uchwycił dodatkowo jakiś ładny efekt na particlach. I żeby ten toporny 2D miał 10 razy lepszy system walki i 20 razy lepszy scenariusz to będzie miał najprawdopodobniej gorszą sprzedaż. Bo robi gorsze pierwsze wrażenie. Bo w takie gierki to dziś się gra na telefonie w kiblu i są to gierki darmowe.

Tak, ja też gram w proste, brzydkie gry przez przeglądarkę. Jakiś tiwar.pl czy elem.cards. Są fajne, kupiłem sobie nawet trochę waluty premium za 5zł. Ale w ładniejszej grze kupowałem za 50zł albo i 200zł.

 

10 godzin temu, Writen napisał:

Mówisz, że przy każdym request'cie potrzebujesz pobierać/utrwalać dane korzystając z bazy danych? Przecież są takie rzeczy jak Cache, Redis, itd. oraz istnieje wiele technik optymalizacji.

Prawda, ale nie bez powodu serwery gier są pisane w innych językach niż PHP. Można optymalizować, do pewnego stopnia. Można nadrabiać sprzętem, też do pewnego stopnia. Ale w którymś momencie pojawia się bariera - nie da się bardziej, albo okazuje się że projekt jest już zbyt skomplikowany. A takie rzeczy - wydajniej i prościej da się robić w odpowiednich do tego językach. Można wtedy zapanować nad zasobami, mieć pod kontrolą wątki i robić całą masę innych rzeczy, o których PHPowcom się nie śniło.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Zakładając ten temat nie miałem na myśli gier typu Cookie Clicker itp. Writen wyjaśnił znaczenie słowa "klikanka", którego tutaj używam.

8 godzin temu, Writen napisał:

Natomiast termin "klikanki" od zawsze oznaczał gry, które polegają po prostu na klikaniu w celu wykonywania różnych akcji (zebranie surowców, atakowanie, budowa. itd.).

Nie chodzi mi tu także o gry podobne do np. plemion. Tam też się klika, ale pojawiają się już jakieś elementy graficzne. Termin, którym się posługuję można nazwać po prostu zwykłą grą tekstową.

Jeśli chodzi o gry 2D to od nich się po prostu najłatwiej zaczyna, a retro-pixelowe gry są piękne. Kwestia gustu.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
6 minut temu, FrozenShade napisał:

Do tego momentu jeszcze rozumiałem:

 

A później jakie trudności napotkałeś?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Zacząłem sobie wyobrażać zbieranie tekstowych marchewek z tekstowego pola i uznałem, że to bez sensu, wróciłem do oglądania filmu. A przed chwilą mnie olśniło, bo przełączyłem się na kartę z tiwar.pl żeby 'przeklikać' wszystkie punkty akcji w pojedynkach ;p

W sumie powinieneś na samym początku sprecyzować o jakie klikanki chodzi, bo jak sam widzisz, każdy to rozumie inaczej (cookieclicker, plemiona, tiwar). Nie pisał bym ci wtedy o zrobieniu wszystkiego w JS po stronie klienta, bo to bez sensu.

Takie gry mają sens tylko jeśli są MMO (takim ubogim strasznie, ale jednak). Tak, PHP się nada, to JS nie będzie ci potrzebny, no chyba, ze będziesz chciał zrobić licznik czasu. Czy PHP z frameworkiem, czy bez to ci nie odpowiem, bo brzydzę się webówką. Ze trzy lata temu popełniłem 'szablon' (bo silnikiem tego jeszcze nazwać nie można) do tego typu gry w Javie - to była robota na dwa wieczory, więc zgaduję, że w PHP też nie jest to jakaś filozofia i być może żaden framework nie będzie potrzebny.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

No to się zrozumieliśmy.. hah. Lepiej późno, niż wcale. Dlatego od razu zabawa w ciasteczka wydała mi się bardzo dziwna, a gdybym pytał o to, o co chodziło Tobie, to nie wspominałbym o php. Zapytałbym raczej o bibliotekę do JS, której mógłbym użyć. Już mniejsza o to.

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się


  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×