Witam! Mam takie pytanie:
-Czy istnieje jakaś technologia pozwalająca na napisanie prostej gry 2d, którą byśmy odpalali bezpośrednio za pomocą przeglądarki, jednak aby jej źródło(lub choć jego część) było ukryte?
Niezupełnie. Możesz jedynie zminifikować kod JavaScript, co mocno utrudni jego odczytanie, bo zmienne będą się nazywały a
, b
i tak dalej. Możesz wręcz użyć obfuscatora, który jeszcze bardziej postara się zagmatwać kod. Jednak wciąż da się go odczytać, tyle że będzie to wymagało więcej czasu.
Minifikatora i tak powinieneś użyć, żeby zmniejszyć rozmiar skryptów. Polecam YUI Compressor.
A mam w takim razie inne trochę pytanie:
Czy jest możliwe jedynie przesyłanie obrazu z gry albo jedynie komend do silnika graficzne(napisanego np. html5) w czasie rzeczywistym?
Czego użyć w tym celu?
Co? O co Ci chodzi? Przesłanie skąd dokąd? Jakich komend? Wywołań dla canvas()?
Jeśli chodzi Ci o to, czy jakiś istotny fragment gry może chodzić po stronie serwera, to teoretycznie tak. Nie wiem jednak, czy lag byłby akceptowalny dla gry czasu rzeczywistego. Dla turówki -- na pewno. Logika rozgrywki może być umieszczona po stronie serwera, a w przeglądarce chodziłby taki "cienki klient". W przypadku aplikacji internetowych robi się to bardzo fajnie, w przypadku gier... nie jestem pewien na ile by to zadziałało. (Jestem specjalistą od JS, ale nie od gier)
Chodzi mi o takie proste samochodziki 2d - gra zręcznościówka. Mogłoby chodzić? po stronie serwera chociaż po części(np. fizyka)?
Nie wiem na ile złożona będzie komunikacja, jaki chcesz mieć framerate, na jakim łączu (+serwerze+obciążeniu) jak szybko ma to chodzić... Ja bym pewnie wykonał jakieś testy, pomiary. Z doświadczenia ci nie powiem, bo na tym polu mam niewielkie. Mówi mi tylko, że da się napisać prostą gierkę multiplayer, z prostą fizyką, coś jak Asteroids. Tylko że dwóch graczy strzela tam do siebie wzajemnie. Przeglądarki graczy wymieniają się informacjami o swojej pozycji i o tym co robią poprzez serwer. Jakoś tam to chodziło parę lat temu, ale raczej jako eksperyment (nie mam linka do tego projektu).
A mógłbyś mi jeszcze podpowiedzieć za pomocą czego mogę się tak komunikować z serwerem(php+ html5???). Dzięki za odpowiedzi
Po stronie serwera praktycznie nie ma znaczenia, jakiego języka użyjesz. Ja bym może poeksperymentował z NodeJS-em? Czemu nie napisać tego w JavaScripcie? Node mógłby nieźle się do tego nadawać.
Możesz oczywiście użyć też PHP, Javy, C#, Ruby'ego, Pythona czy Perla. Nie ma to znaczenia: serwer i tak wypluje jakiś tekst lub np. JSON-a, a to da się (łatwo) osiągnąć w każdym z tych języków.
Po stronie przeglądarki możesz skorzystać z "HTML-a 5". Ale to tak szerokie pojęcie, że praktycznie niewiele mówi. Użyjesz pewnie <canvasa>
by wyświetlać planszę gry, a do komunikacji może np. Server-Side Events czy WebSockety? To są dość nowe metody, nie działające w każdej przeglądarce.
Starsze, mniej wydajne i mniej potężne, ale działające metody to np. polling lub long-polling.
Skoro jedyny powód dla którego chcesz użyć tutaj serwera to ukrycie źródeł to po prostu zrób tę grę we flashu - dużo łatwiej niż w HTML5 bo jest do niego w cholerę więcej gotowych engine'ów, frameworków, tutoriali itp - ma też obecnie większe możliwości i masz pewność że w każdej przeglądarce z pluginem flasha będzie działać jednakowo