Tworzenie gier w Javie (Java)


(Djtox) #1

Witam!

Mam pytanie: Czy w języku Java można napisać grę mmorpg w przeglądarce ( typu RuneScape ) ? Jeżeli nie można takiej gry napisać w języku Java to w jakim można? Wiem ile pracy kosztuję napisanie gry bo miałem już styczność z c++ więc proszę o zaoszczędzenie wykładów na ten temat. Z góry dziękuje za pomoc :slight_smile:


(Xwars) #2

Jeżeli miałeś styczność z jakimś językiem programowania to wiesz że w każdym języku można napisać dowolny program. Wybór pomiędzy Javą, Ruby, PHP, Pythonem czy C# zależy od osobisty preferencji, dostępności hostingu.

Swoją drogą przydałby się tu przypięty topic, odpowiednik "Jaki Linux - wybór dystrybucji " z działu Linuksa :slight_smile:


(somekind) #3

To jest chyba dobry pomysł. Mógłby się przydać wielu osobom, bo temat wciąż powraca...


(Xwars) #4

To może zacznę od prostego szkieletu i ktoś to uzupełni, choćby dlatego że nie jestem zbyt obiektywny :slight_smile:

Krótka charakterystyka zastosowań różnych języków programowania:

assembler - stosowany w częściach jądra systemu operacyjnego, fragmentach sterowników - generalnie należy go unikać, chyba że się nie da bez niego obejść albo chcemy poznać dokładnie sposób działania komputera - zalecany kompilator: NASM

C - solidny proceduralny język ( choć złośliwi mówią, że to przenośny assembler ), wciąż bardzo szeroko stosowany (niestety). Nie ogranicza programisty w żaden sposób więc łatwo sobie zrobić krzywdę np. zarządzaniem pamięcią :P, kompilatory - patrz niżej

C++ - zorientowany obiektowo następca C. Używany najczęściej do wszelakich większych projektów oraz aplikacji z graficznym interfejsem użytkownika. Do czasu rozkwitu Javy i .NET praktycznie bezkonkurencyjny. Zalecane środowiska: Visual Studio (Express Edition) - VS to jedna z tych rzeczy które Microsoftowi dobrze wyszły, ewentualnie Borland C++ Builder. Jeżeli robisz aplikacje działającą w konsoli wystarczy DevC++ oparty na mingw( port gcc). Jeżeli potrzebujemy coś działającego w DOSie( sic) polecam DJGPP. W żadnym wypadku nie używamy starego zabugowanego Turbo C.

C# - odpowiedz Microsoftu, wraz z całym środowiskiem .Net , na Javę Suna. Środowisko - tylko Visual Studio, ewentualnie MonoDeveloper. Zastosowania i możliwości - patrz Java :slight_smile:

Java - uniwersalny język obiektowy, z automatycznym zarządzaniem pamięcią. Można w nim tworzyć zarówno aplikacje okienkowe, jak i sieciowe czy po prostu strony internetowe. Krytykowana za ociężałość ( raczej niesłusznie) i apetyt na pamięć ( słusznie :slight_smile: . Popularne IDE: Eclipse i NetBeans

PHP - język skryptowy w którym wygodnie i prosto tworzy się strony internetowe. Jeśli planujemy jednak stworzyć coś dużego i skomplikowanego warto jednak spojrzeć na Jave/C# , a przynajmniej oprzeć się na jakimś rozbudowanym i sprawdzonym frameworku np. Symphony

Ruby - w Polsce mało popularny język, dorobił się słynnego pakietu Ruby on Rails umożliwiającego bardzo szybkie tworzenie stron internetowych

Perl - język wyspecjalizowany w przetwarzaniu tekstu, często powstają w nim skrypty do administracji systemami komputerowymi

Python - kolejny język skryptowy, podobnie jak Perl ma dużą liczbę bibliotek do absolutnie wszystkiego. Tak jak Ruby dorobił się Railsów tak Python ma Django i Pylons

Pascal - teoretycznie język ten miał służyć do edukacji, w praktyce służy do męczenia uczniów :slight_smile: Jeżeli ktoś szuka języka który narzuci trochę ograniczeń które uchronią przed głupimi błędami proponuje raczej bardzo zblizony język Ada

Od jakiego języka zaczynać?

Są dwie szkoły - jedna mówi: najpierw C, później coś obiektowego, druga mówi: najpierw coś obiektowego, a języki proceduralne później albo wcale. Osobiście uważam że dla początkujących lepiej jest by się nie bawili z zarządzaniem pamięcią, dlatego najlepiej zacząć od C#, Javy lub np. Pythona ( podobno najłatwiejszy język do nauki programownaia) . No i oczywiście PHP jeśli zamierzamy robić strony internetowe, bo z pozostałymi językami jest niestety ciężko o hosting.


(Marek Ciarkowski) #5

a ja się uprę przy flashu :slight_smile: chyba najprostszy program do robienia prostych gierek również online.


(Airborn) #6

Po pierwsze rozmowa trochę nie na temat zeszła, ale może jakiś moderator mógłby wydzielić te posty...

Bo? Co takiego złego jest niby w assemblerze?


(somekind) #7

Złego to nic, zależy do czego się go stosuje.

Jeśli chodzi o środowiska to jest jeszcze SharpDevelop. Tylko po co. Visual Studio jest bezkonkurencyjne.

Pisanie, że C# to odpowiedź na Javę jest bardzo naciągane. Platforma .NET opiera się na zupełnie innej filozofii, niż Java. Można na nią tworzyć w wielu językach (Basic, C++, J#, C#, a obecnie wiele innych) i umożliwia ona współpracę komponentów pisanych w różnych językach. C# jest akurat natywnym i najwygodniejszym do tworzenia, ponadto posiada zalety C++ i Javy, ale jest pozbawiony ich wad.

C# i .NET jest to najlepsze rozwiązanie, jeśli ktoś chce tworzyć aplikacje pod systemy Microsoftu.

Natomiast Java, to jeden język - więc jeśli chce się zrobić w niej nową wersję programu napisanego w jakimś innym języku, to trzeba niestety przepisać kod. A zarzuty o jej pamięciożerność i ospałość są jak najbardziej słuszne :slight_smile:

Początkujący niech się najpierw dowiedzą co to jest zmienna, jakie są ich typy, jak używać instrukcji sterujących, pętli, tablic, funkcji wbudowanych i jak tworzyć własne. Na takim poziomie zarządzanie pamięcią nie jest potrzebne. A za języki obiektowe brać się, gdy się już będzie znało podstawy.

Nie jest ciężko o hosting. Ciężko jest o pieniądze, żeby za niego zapłacić :slight_smile:


(Xwars) #8
  • nieprzenośny pomiędzy architekturami

  • ogromne ilości kodu potrzebne do zrobienia czegokolwiek - dużo kodu do utrzymania, dużo miejsca na zrobienie błedów

  • jeżeli się nie jestem jakimś magikiem kompilatory np C generują szybszy kod... jakoś automatowi łatwiej przeanalizować jak będą zajęte pipeliny, itp.

Reszta to protezy dla tych którzy VS nie mogą uzywać /uruchomić (linux).

Ale prawdziwe mniej lub bardziej( a J# to już nie ma co dyskutować - swoją droga MS go porzuca :P). To że MS wprowadził CLR liczy mu się bardzo na plus. Szczególnie jak Python przeportowany na .NET chodzi szybciej niż standardowy :). A i sama rozwój Javy ruszył się żywiej z miejsca gdy za plecami pojawiła się realna konkurencja, atakująca spokojną do dej pory segment. No po prostu modelowy przykład konkurencji - programiści są dopieszczeni i mają do wyboru dwa dobre środowiska.

Takie bardzo sloganowe to zdanie :slight_smile:

Taki skrót myślowy, właśnie o to mi chodziło że względnie drogi jest.


(Airborn) #9

Zdaje się, że mamy odmienne doświadczenia :wink:

Ponadto jeśli chodzi o przenośność pomiędzy architekturami, należało by uwzględnić, że assembler nie jrzt wykorzystywany tylko na PC, w przypadku np. mikrokontrolerów odmienności pomiędzy poszczególnymi architekturami są pozytywnym zjawiskiem pozwalającym osiągnąć wymagane założenia przy minimalnym wkładzie środków sprzętowych. I w takich sytuacjach assembler radzi sobie znacznie lepiej niż C.


(somekind) #10

Ciekawe, czy gdyby sterowniki do Twojej karty graficznej napisane byłyby w Javie zacząłbyś doceniać asemblera :smiley:

W C# istnieją tablice wielowymiarowe, klasy generyczne, można operować na wskaźnikach, przeciążać operatory, właściwości są wbudowane w język. Pewno jeszcze parę rzeczy. Zdaje się, że w tej książce było więcej: http://helion.pl/ksiazki/vsnetb.htm