Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Gry, gierki i języki, Względności pomiędzy zastosowaniem a językiem
Adi32
post
Post #1





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Witajcie,

zacząłem ostatnio z nudów tworzyć rożne rzeczy, przyszło mi do głowy napisanie prostego tetrisa a jako, że jestem programistą PHP to napisałem prototyp w JS.
Wiem, że JS nie jest językiem do takich rzeczy jednak nie sądziłem, że spodoba mi się pisanie prostych gierek.
Teraz mam problem tego typu, że JS na prawdę się do tego nie nadaje, co bym nie próbował rozwinąć, dodać możliwości itp. to JS nie daje rady.

Link:
http://cms.freeline.pl/tetris.php

i takie coś na szybko (sterowanie: awd)
http://cms.freeline.pl/gra.php

A teraz o co mi chodzi...

Zastanawia mnie jaki czas musiałbym poświęcić aby zrobić jakąś "normalną" gierkę, i w jakim języku?

Nie musi to być aplikacja przeglądarkowa, zależy mi na szybkim nauczeniu się języka.

Z JAVA nigdy nie miałem nic wspólnego.
Z FLASHem i ActionScript też nie ale od dawna planuje to zmieić.
W C++ napisałem kilka aplikacji sieciowych.

Może coś poradzicie?

Pozdrawiam - Adrian

Ten post edytował Adi32 4.04.2012, 15:32:46
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


To Ty nie dajesz co najwyżej rady, bo JS jak najbardziej sobie z "grą" pokroju tetrisa poradzi.

W każdym z tych języków możesz to zrobić.
Go to the top of the page
+Quote Post
Adi32
post
Post #3





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cytat(Crozin @ 4.04.2012, 16:43:33 ) *
To Ty nie dajesz co najwyżej rady, bo JS jak najbardziej sobie z "grą" pokroju tetrisa poradzi.

W każdym z tych języków możesz to zrobić.


Przy każdym ruchu JS musi sprawdzić czy istnieje kolizja, to jest obciążające ale z tym jeszcze JS sobie radzi, niewiele ponadto.
Ja twierdzę, że JS nie jest najlepszym językiem do gier.
Nie napisałem, że chce robić tetrisy tylko coś bardziej zaawansowanego i jestem pewien, że są lepsze języki niż JS.
Wiem, że mogę takie rzeczy robić w każdym z tych języków, jednak sądziłem, że któryś będzie się nadawał bardziej i dlatego postanowiłem napisać.
Go to the top of the page
+Quote Post
cojack
post
Post #4





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


W Unity możesz pisać nawet w JS radzi sobie b.dobrze. Możesz zobaczyć WebGL (obsługa w JS), albo Flash z Stage 3D (as3) no jeszcze masz Jave, C++ (od groma silników) no i C# z XNA od Winshitu. Pozdro.
Go to the top of the page
+Quote Post
Piogola
post
Post #5





Grupa: Zarejestrowani
Postów: 151
Pomógł: 36
Dołączył: 1.02.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Adi32 @ 4.04.2012, 16:52:48 ) *
Przy każdym ruchu JS musi sprawdzić czy istnieje kolizja, to jest obciążające ale z tym jeszcze JS sobie radzi, niewiele ponadto.

W którym języku nie będziesz musiał tego robić ? W każdym trzeba...
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat
Przy każdym ruchu JS musi sprawdzić czy istnieje kolizja, to jest obciążające ale z tym jeszcze JS sobie radzi, niewiele ponadto.
A myślisz, że w C to przy generowaniu każdej klatki nie trzeba sprawdzać kolizji?
JS demonem szybkości w porównaniu do C czy Javy to może i nie jest, ale platforma ta bez problemu da sobie radę z dużo, dużo bardziej wymagającymi zadaniami. Widocznie to Ty nie potrafisz tego dobrze napisać (w innych językach będziesz miał dokładnie te same problemy).

Jeżeli to ma działać w przeglądarce to właściwie tylko JS albo Flash.
Jeżeli ma działać jako aplikacja desktopowa to rozważałbym C/C++/Java/C# - chociaż możliwości jest znacznie więcej.
Go to the top of the page
+Quote Post
!*!
post
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(Adi32 @ 4.04.2012, 16:30:51 ) *
Teraz mam problem tego typu, że JS na prawdę się do tego nie nadaje, co bym nie próbował rozwinąć, dodać możliwości itp. to JS nie daje rady.


To nie JS się do tego nie nadaje, tylko Twoja wiedza jest za mała. W kodzie masz takie kwiatki:

Cytat
klocki[3][3] = '<div class="in" style="position:absolute; top:0px; left:0px; width:25px;height:25px;background: #'+kolor+'">'+
'</div><div class="in" style="position:absolute; top:0px; left:25px; width:25px;height:25px;background: #'+kolor+'">'+
'</div><div class="in" style="position:absolute; top:0px; left:50px; width:25px;height:25px;background: #'+kolor+'">'+
'</div><div class="in" style="position:absolute; top:0px; left:75px; width:25px;height:25px;background: #'+kolor+'"></div>';


Myślisz że to jest poprawne? Poczytaj o optymalizacji kodu, sprawdzaj różne możliwości... optymalizuj, optymalizuj i jeszcze raz optymalizuj. Gry przez przeglądarkę która miałaby działać na każdej platformie systemowej, nie napiszesz w niczym innym niż JS i teoretycznie flash, choć ten bym sobie darował, powoli jest na wymarciu i nie wszyscy go wspierają, większość gier powstaje przy użyciu JS i canvas w html5.

Ten post edytował !*! 4.04.2012, 16:56:37
Go to the top of the page
+Quote Post
Adi32
post
Post #8





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cytat(Crozin @ 4.04.2012, 17:12:42 ) *
A myślisz, że w C to przy generowaniu każdej klatki nie trzeba sprawdzać kolizji?
JS demonem szybkości w porównaniu do C czy Javy to może i nie jest, ale platforma ta bez problemu da sobie radę z dużo, dużo bardziej wymagającymi zadaniami. Widocznie to Ty nie potrafisz tego dobrze napisać (w innych językach będziesz miał dokładnie te same problemy).

Jeżeli to ma działać w przeglądarce to właściwie tylko JS albo Flash.
Jeżeli ma działać jako aplikacja desktopowa to rozważałbym C/C++/Java/C# - chociaż możliwości jest znacznie więcej.


W takim razie myliłem sie. Jest jeszcze taki motyw, że po kilku minutach grania zdarzają się przycinki.

Cytat(!*! @ 4.04.2012, 17:54:11 ) *
To nie JS się do tego nie nadaje, tylko Twoja wiedza jest za mała. W kodzie masz takie kwiatki:



Myślisz że to jest poprawne? Poczytaj o optymalizacji kodu, sprawdzaj różne możliwości... optymalizuj, optymalizuj i jeszcze raz optymalizuj. Gry przez przeglądarkę która miałaby działać na każdej platformie systemowej, nie napiszesz w niczym innym niż JS i teoretycznie flash, choć ten bym sobie darował, powoli jest na wymarciu i nie wszyscy go wspierają, większość gier powstaje przy użyciu JS i canvas w html5.


Te kwiatki to długi klocek, może słabo to wygląda ale jak inaczej miałbym go zrobić?
Go to the top of the page
+Quote Post
#luq
post
Post #9





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


Cytat(Adi32 @ 4.04.2012, 18:04:52 ) *
jak inaczej miałbym go zrobić?

opisując każdy klocek jako tablice 2d? http://luq10.wordpress.com/2009/04/02/tetris/

W końcu w C++ sobie byś divów nie zrobił (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Adi32
post
Post #10





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cytat(#luq @ 4.04.2012, 19:18:40 ) *
opisując każdy klocek jako tablice 2d? http://luq10.wordpress.com/2009/04/02/tetris/

W końcu w C++ sobie byś divów nie zrobił (IMG:style_emoticons/default/smile.gif)


No jako tablcę, to jest HTML i spadają własnie DIVY, mogą to być i spany a nawet linki (hehe) ale cóżby innego miało spadać?
Gdybym pisał to w C++ to na pewno inaczej bym to zrobił, w ogóle to tego tetrisa pisałem kilka godzin, jest prosty, pisany z nudów. Myślę, że jakbym się przyłożył to inaczej by to wyglądało.

Pod tym linkiem który wkleiłeś programista ma problem z wsuwaniem klocka pod klocek, u mnie to nie problem - problematyczne jednak jest to, że klocek najpierw wykonuje ruch a potem sprawdza czy zachodzi kolizja i wykonuje kolejny ruch lub wysyła następny klocek także przesunięcie należy wykonać wcześniej...
Go to the top of the page
+Quote Post
Crozin
post
Post #11





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Zacznijmy może od tego, że do rysownia grafiki w JS służy Canvas, a nie DOM.
Go to the top of the page
+Quote Post
Adi32
post
Post #12





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cytat(Crozin @ 4.04.2012, 20:00:02 ) *
Zacznijmy może od tego, że do rysownia grafiki w JS służy Canvas, a nie DOM.


Canvas (IMG:style_emoticons/default/biggrin.gif) Pierwszy słysze (poza tym kilka postów wyżej). Własnie o to mi chodziło - dzięki Crozin.
Go to the top of the page
+Quote Post
Niktoś
post
Post #13





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
Zacznijmy może od tego, że do rysownia grafiki w JS służy Canvas, a nie DOM.

A nie jest to już HTML5?
Go to the top of the page
+Quote Post
!*!
post
Post #14





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Adi32 - robisz coś, nie znając podstaw. Chodziło mi o to że tworzysz elementy jako tekst '<div>klocek</div>' to nie jest poprawne, a na pewno nie jest wydajne. W JS czy jQ są do tego odpowiednie narzędzia, bez których ciężko zrobić coś lepszego, bo to podstawy podstaw.

Niktoś - a co to ma do rzeczy?

Ten post edytował !*! 4.04.2012, 19:38:06
Go to the top of the page
+Quote Post
Adi32
post
Post #15





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cytat(!*! @ 4.04.2012, 20:37:17 ) *
Adi32 - robisz coś, nie znając podstaw. Chodziło mi o to że tworzysz elementy jako tekst '<div>klocek</div>' to nie jest poprawne, a na pewno nie jest wydajne. W JS czy jQ są do tego odpowiednie narzędzia, bez których ciężko zrobić coś lepszego, bo to podstawy podstaw.


Taak, lepiej nic nie robić... Czasami nie wie sie, że nie zna sie podstaw i coś sie robi, potem pisze sie o tym na forum i poznaje sie podstawy jak wszystko dobrze idzie.
Coś czuje, że się panowie wymądrzacie.
W każdym razie dzięki.

Ten post edytował Adi32 4.04.2012, 19:40:30
Go to the top of the page
+Quote Post
Niktoś
post
Post #16





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
Niktoś - a co to ma do rzeczy?

Że nie na wszystkim to pójdzie ,ale w ramach zabawy to można tego użyć.
http://caniuse.com/#search=canvas

Ten post edytował Niktoś 4.04.2012, 19:48:58
Go to the top of the page
+Quote Post
!*!
post
Post #17





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Tu chodzi o to że jak już coś robić, to robić to dobrze (IMG:style_emoticons/default/wink.gif) ucząc się przy tym. Przejrzałem Twój kod, jak na 1 prace, nie jest źle, ALE wielu kwestii nie przemyślałeś i wtedy narzekasz że się JS nie nadaje. Jest wiele artykułów o optymalizacji kodu javascript w internecie, wiele też porusza kwestie projektowania gier, zarówno tych bardzo prostych jak tetris czy wąż, do tych bardziej zaawansowanych tworzące świat izometryczny czy 3d.

Co z tego że możesz narysować klocek na kilka sposób skoro tylko jeden będzie dobry/wydajny (czepiam się wydajności, bo to dość ważne w grach) i zadziała wszędzie. Można to zrobić odwołując się przez DOM, choć jest to powolne, można narysować w canvas (choć tu trzeba zrobić małe obejścia dla IE>8), możesz też "narysować" jako obrazek SVN. Nie ważne jak to zrobisz, tylko czy sposób w jaki go tworzysz jest najlepszy, bo to że użyłeś FW jakim jest jQ, wcale nie musi tego oznaczać.

Cytat(Niktoś @ 4.04.2012, 20:43:48 ) *
Że nie na wszystkim to pójdzie ,ale w ramach zabawy to można tego użyć.
http://caniuse.com/#search=canvas



Pudło. Canvas działa wszędzie prócz IE, ale można zastosować excanvas.sourceforge.net i już zadziała. Podobnie zresztą jest z samym html5.

Ten post edytował !*! 4.04.2012, 19:54:35
Go to the top of the page
+Quote Post
Adi32
post
Post #18





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Dzięki za informacje.
W takim razie zacznę przerabiać kod z myślą o optymalizacji.
Planuję teraz zrobić gierke "Tank" - czołgi jak z pegasusa.

Cytat
świat izometryczny czy 3d


W js, takie rzeczy? A coś więcej? Ciekawy temat...
Go to the top of the page
+Quote Post
!*!
post
Post #19





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


3d to głównie webGL, jednak tu ze wsparciem jest kiepsko http://caniuse.com/#search=webgl choć niewątpliwie to przyszłość tworzenia gier komputerowych.

2d czy izometria też ma wiele odmian. http://www.tonypa.pri.ee/tbw/tut16.html flash, ale to powinno Ci naświetlić jak coś takiego stworzyć. Podobnie jak przy tworzeniu klocków, technika jest ta sama, zmienia się tylko położenie elementów. Sam stworzyłem silnik izometryczny który ma tworzyć gry podobne do open ttd, czy fallout 2. Jednak napisanie czegoś co będzie renderować mapy to jedno, bo prócz izometrii trzeba przemyśleć wiele czynników pobocznych, jak wyświetlanie elementów (pokazuj tylko to co widzi gracz), poruszanie się, kolizje, efekty i masa innych rzeczy. Przykład użycia canvas http://scurker.com/projects/particles/

A tutaj izometria http://code.google.com/p/jgen/ projekt nie jest już rozwijany i działa chyba tylko w chrome/safari, ale możesz podpatrzeć kod od izometrii, kolizji(imo b.dobry - co nie znaczy że mógłby być lepszy (IMG:style_emoticons/default/wink.gif) ) itp.

Ten post edytował !*! 4.04.2012, 20:17:54
Go to the top of the page
+Quote Post
Adi32
post
Post #20





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Dzięki !*!, będę się rozwijał w tych tematach.
Stworzenie Open ttd to musiałoby być coś(IMG:style_emoticons/default/smile.gif) Świetna gierka.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.09.2025 - 20:19