• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pisanie gier jako "pół" strony internetowe

Mały hosting, OGROMNE możliwości
0 głosów
731 wizyt
pytanie zadane 23 stycznia 2016 w C i C++ przez Avernis Nałogowiec (27,400 p.)
Tak się zastanawiam czy można by robić gry jako strony internetowe, i nie chodzi mi tu a jakiegoś traviana, czy ogame. Mi chodzi o np. wiedźmina no, bo, od razu mamy taką "bibliotekę okienkową", a jeśli chodzi o 3d to słyszałem o opengl na webówki.

3 odpowiedzi

0 głosów
odpowiedź 23 stycznia 2016 przez Comandeer Guru (607,960 p.)

Było już na forum omawiane, więc rzucę tylko trzy pojęcia:

  • asm.js/Web Assembly
  • Emscripten
  • WebGL

Poza tym Unity już pozwala pisać dla webu.

0 głosów
odpowiedź 24 stycznia 2016 przez rafal.budzis Szeryf (86,360 p.)
HTML5 ma znacznik <canvas> który swoje działanie opiera na OpenGL lecz duże gry jak wiedźmin się nie sprawdzą ze względu na bardzo długi czas wczytywania. Za każdym razem przy starcie pobrać kilka GB to byłby koszmar :D Dodatkowo JavaScript nie jest tak szybki. Moim zdaniem OpenGL i canvas fajnie wykorzystać do gierek 2D sam kilka napisałem lecz 3D traktował bym na razie tylko jako dodatek do stron internetowych a nie podstawę pod tworzenie gier.
komentarz 24 stycznia 2016 przez Comandeer Guru (607,960 p.)
canvas nie opiera się na OpenGL, a przynajmniej nie zawsze. Udostępnia on możliwość tworzenia kontekstów, wśród których znajduje się także WebGL, oparte na OpenGL.
Pobieranie przy każdym wczytywaniu? Przecież można pobierać on demand i to co potrzebne wrzucać do cache. Ba, przecież można streamować zasoby z serwera, więc to de facto nieistniejący problem.
Co do szybkości JS: polecam zapoznać się z tym, o czym napisałem w mojej odpowiedzi.
komentarz 24 stycznia 2016 przez rafal.budzis Szeryf (86,360 p.)
Cache ma ograniczony rozmiar. Natomiast rozwiązanie on demand wyklucza pisanie 3D w JS + HTML ponieważ z tego co rozumiem z serwera otrzymujemy sam obraz już wyrenderowany przez silnik gry napisany np w c++. Co do openGL nie będę sie sprzeczał pewnie masz racje :)
komentarz 24 stycznia 2016 przez Comandeer Guru (607,960 p.)
edycja 24 stycznia 2016 przez Comandeer

Cache ma ograniczony rozmiar.

A zasoby przesyłane przez net – kompresję ;) Owszem, nie wszystko się zmieści, ale część na pewno.

Natomiast rozwiązanie on demand wyklucza pisanie 3D w JS + HTML ponieważ z tego co rozumiem z serwera otrzymujemy sam obraz już wyrenderowany przez silnik gry napisany np w c++. 

"On demand" to raczej wprowadzenie wczytywania mniejszych lokacji + doczytywanie zasobów na podstawie ruchów gracza (gracz jedzie do lasu na NE? Doczytajmy go). Natomiast streaming zakłada raczej, że u gracza jest generowany sam obraz (zatem canvas by został), ale całe obliczenia są wykonywane na serwerze. 

komentarz 24 stycznia 2016 przez rafal.budzis Szeryf (86,360 p.)

Jeśli las jest pare metrów od gracza i pokona drogę do niego w ciągu 1 minuty to nie zdążysz pobrać lasu. Obecne modele 3D mają od cholery trójkątów. Do tego masz tekstury w rozdzielczościach 4096x4096 pomnóż razy 4 na mapy wypukłości, spekulary i coś tam jeszcze i dolicz jeszcze tak zwane minimapy czyli juz wyrenderowane mniejsze rozdzielczości tekstur i się okaże ze na jedno drzewko tracisz 10-20 MB i masz tylko jedno drzewko pobrane i nie wyrenderowane. na obraz Full HD potrzebujesz tylko 1-2 MB na sekundę. 

https://pl.wikipedia.org/wiki/Granie_w_chmurze

:)

komentarz 24 stycznia 2016 przez Comandeer Guru (607,960 p.)

Jeśli las jest pare metrów od gracza i pokona drogę do niego w ciągu 1 minuty to nie zdążysz pobrać lasu. 

Ale pobiorę ten fragment lasu, do którego dojedzie, a tylko to się liczy. Nie potrzebuję całego lasu ;) Poza tym: heurystykę można dopracować pod konkretne potrzeby. 

Co do Twojego artka z wiki:

usługa polegająca na udostępnianiu gry online w formie bezpośredniego strumienia danych.

Czy to nie jest dokładnie to, o czym napisałem wyżej? :P 

komentarz 24 stycznia 2016 przez rafal.budzis Szeryf (86,360 p.)
W angielskiej wersji piszą o strumnieniu wideo miałem ja dać :x To o czym ty piszesz jest do osiągnięcia w grach z słabą grafiką może taki Gothic 1 byłbyś w stanie zrobić doczytując dane (1 teksturka 512x512) ale nie zrobisz gry dobrze wyglądającej z obecnymi technologiami. tak jak mówiłem 20 MB to jedno drzewo a co z podłożem, trawą, krzakiem inaczej wyglądającym drzewem, modelem wilka, animacjami wilka który jest w lesie, efektami cząsteczkowymi. Moim zdaniem obecnie renderowanie 3D mozna wykorzystać na stronie gdzie chcemy zaprezentować swojej prace 3D lub na stronie gry gdy chcemy wyrenderować postać gracza w jego profilu. Gry w czasie rzeczywistym na razie nie widze.
komentarz 24 stycznia 2016 przez Comandeer Guru (607,960 p.)
https://blog.mozilla.org/blog/2014/03/12/mozilla-and-epic-preview-unreal-engine-4-running-in-firefox/

http://blogs.unity3d.com/2014/04/29/on-the-future-of-web-publishing-in-unity/

Problemem jest sposób zapisu i dystrybucji zasobów, nie technologia. Myślisz w kategoriach desktopowych i próbujesz to przenieść do Sieci bez zmian. A to nigdy nie działa. Trzeba myśleć o specyfice platformy docelowej.
0 głosów
odpowiedź 24 stycznia 2016 przez ZakosiliMiNeta Nałogowiec (30,870 p.)
Java-> LibGDX może zaimportować na stronę projekt

Podobne pytania

0 głosów
3 odpowiedzi 343 wizyt
pytanie zadane 24 stycznia 2016 w Inne języki przez Avernis Nałogowiec (27,400 p.)
0 głosów
1 odpowiedź 346 wizyt
pytanie zadane 10 stycznia 2016 w C i C++ przez Avernis Nałogowiec (27,400 p.)
+2 głosów
8 odpowiedzi 1,125 wizyt
pytanie zadane 28 sierpnia 2015 w C i C++ przez Avernis Nałogowiec (27,400 p.)

93,718 zapytań

142,631 odpowiedzi

323,262 komentarzy

63,266 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...