Nauka javy od zrobienia gry

0

Dzień dobry
Uczę się Javy jakiś miesiąc i podczas nauki pomyślałem o tym, że mógłbym się dalej uczyć korzystając bezpośrednio z kursu tworzenia gier zamiast czystej teorii (mówię o kursie wieloodcinkowym, a nie "Gra w Javie w 30 minut"). Oczywiście przy nieznanych mi czynnościach i sformułowaniach na bieżąco bym googlował co trzeba i się uczył. Co sądzicie o takim sposobie nauki? Ma on sens? Moim celem jest zostanie Android developerem i tworzenie gier na Androida, a potem, za kilka lat, nauczenie się C++ i praca w gamedevie.

4

Najlepsze gry na Androida są stworzone w technologiach, które ironicznie nie wymagają od programisty znajomości Javy...

Java, jeśli chodzi o tworzenie gier, nie dostała od żadnej dużej firmy fajnych narzędzi.

Tak więc lepiej Ci będzie zacząć np. od C# i Unity. Być może nie będziesz musiał zmieniać tego stacku i znajdziesz pracodawcę, który robi w tym gry PC. Niektóre znane gry PC też są robione w tych technologiach, np. SUPERHOT, Hearthstone. A poza tym, przejście z C#, czy nawet Javy na C++ może okazać się bolesne i zniechęcające :]

0

Jeśli chcesz ogarnąć podstawy języka/technologii, to polecam podejście nauki poprzez tworzenie gier - zawsze ciekawsze i bardziej wymagające niż kolejny kalkulator czy program do obsługi kwiaciarni czy mechanika. Trafisz na dodatkowe problemy, które będzie trzeba rozwiązać, i imo jest szybciej, ciekawiej, lepiej.
Jeśli chcesz tworzyć gry to faktycznie, lepiej inaczej. Silnik - z unreala bliżej do c++. Tylko kwestia w co celujesz. Idąc w c++ i api graficzne to głównie duże firmy mogące pozwolić sobie na autorskie silniki. Wtedy nie klepiesz gier a rozwijasz silnik. Dobrze wiedzieć jak to tam działa na dole, ale czy zagłębiać się w 100% - nie wiem.

2

To już nie te czasy, żeby pisać gry w C++. Tytuły AAA, wiadomo, tam wydajność ma kluczowe znaczenie, ale teraz więcej wychodzi gier indie. No i projekty wydają znacznie ciekawsze niż 50-ta część Call of Duty (przynajmniej patrząc z zewnątrz). A gry indie są pisane w rozmaitych językach, JS (Unity i szerokopojęty HTML5), Python (Godot, Pygame i kilka innych), C# (Unity), Lua (LÖVE), nawet Ruby (RPG Maker). Gier w Javie oprócz Minecrafta, którego już chyba przepisali na coś innego, nie kojarzę.

0

OK skoro wszyscy są zgodni to pozostaje mi nauka C#. Na szczęście na moim etapie znajomości Javy to jest właściwie to samo, więc nie muszę zaczynać od nowa :). Dzięki za pomoc

1

jak jeszcze nie zrezygnowałeś całkowicie z javy to dość przyjemny jest libgdx. Z netu ściągnij gdx-setup.jar, uruchom i odznacz to czego nie potrzebujesz. Stworzy ci to prosty projekt gradle, który możesz otworzyć w InteliJ, AndroidStudio, Eclipse, etc. i zbudować program oraz uruchomić go na desktopie albo androidzie.

1

@jvoytech: może jakieś argumenty, dlaczego libgdx jest "dość przyjemny"?

Np. dlaczego programista miałby porzucić Unity 3D na rzecz libgdx :] ?

Dla mnie to wygląda jak jakaś surowa nakładka na OpenGL: https://github.com/libgdx/libgdx/wiki/Spritebatch,-Textureregions,-and-Sprites

Nie ma w tym nic przyjemnego. Przyjemny silnik takie rzeczy ukrywa...

1

Aktualnie uczę się unity i c#. Zapomniałem zaznaczyć akceptacje odpowiedzi

1
Spine napisał(a):

może jakieś argumenty, dlaczego libgdx jest "dość przyjemny"?

Jeśli ktoś chce docelowo uczyć się Javy, a nie C#, jednak szuka odskocznie w postaci tworzenia gier (z jednoczesnym zachowaniem ćwiczenia języka JAVA) to libgdx czy JMonkey można uznać za przyjemne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1