Autor Wątek: Gotowy silnik czy pisanie od podstaw gry do wydania.  (Przeczytany 10899 razy)

Offline lukaszsa

  • Użytkownik

# Czerwiec 26, 2015, 22:05:38
Cześć

Nie jestem tutaj świerzakiem ale potrzebuję pomocy w podjęciu ważnej decyzji (nie oczekuję że ktoś podejmie ją za mnie oczywiście).

Mam zakończony dokument który można by podciągnąć pod Game Vision Document i jestem w trakcie tworzenia szczegółowego opisu gry (Game Design Document) aha i żeby było jasne z pomysłem przespałem się wiele nocek i w ciągu 0.5 roku z bardzo złożonego projektu wyszła prosta i ciekawa ale nie prostacka gra.
Żeby mi pomóc musicie nieco wiedzieć o mnie i o grze. Coś o mnie:
Jestem programistą z małym doświadczeniem zawodowym piszę od 8 miesięcy w Java, od miesiąca w JavaScript, pisałem kiedyś proste skrypty w Python oraz od zawsze męczę podręczniki do C++ oraz napisałem pracę inżynierską w C++ (Sokobana). Za dużo czasu traciłem w życiu na podręczniki z ćwiczeniami a oczywiście za mało na projekty.

Postanowiłem jak pewnie wszyscy że stworzę grę i ją wydam.

To ma być platformowa gra przygodowa 2D z budowaniem jak w Terrari tylko że surowców jest tyle ile palców u jednej ręki a świat jest dużo prostszy i mniej zróżnicowany i mechanika też będzie dużo prostsza będzie w tym również opowiadana historia przez obrazki.

I tu jest pytanie jakie rozwiązanie polecacie. Zacząłem się uczyć SFML i Box 2D (piszę w C++) i pierwotnie myślałem żeby się tego nauczyć i napisać grę... ale mam 30 lat:) mam w tym roku zrobić certyfikat z Java(Associate) i zaaklimatyzować się w nowej pracy bo wreszcie pracuję jako programista i to wszystko ma wpływ na mój wolny czas i energię do pracy a grę chciałbym zaimplementować(z jakimś grafikiem i muzykiem jak już będę miał co im pokazać) i wydać w skończonym czasie to jest max 3 lata.
Doszedłem do wniosku, że nauka SFML BOX 2D i pisanie gry od podstaw to karkołomna rzecz(chociaż robiłbym to z wielką frajdą) i lepiej było by może użyć Silnika Unity ale to chyba wymaga licencji(czy dopiero jak będę chciał wydać to będę musiał wykupić licencję bo nie mam raczej kasy)

Pomóżcie proszę i doradźcie jakie rozwiązanie ma jakie wady i zalety.

Pozdrawiam i z góry dziękuję
Łukasz
« Ostatnia zmiana: Czerwiec 26, 2015, 22:10:43 wysłana przez lukaszsa »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Xirdus

  • Redaktor

# Czerwiec 26, 2015, 23:09:10
lepiej było by może użyć Silnika Unity ale to chyba wymaga licencji(czy dopiero jak będę chciał wydać to będę musiał wykupić licencję bo nie mam raczej kasy)
Nie trzeba żadnej licencji, ani teraz ani przy wydaniu.

Offline lukaszsa

  • Użytkownik

# Czerwiec 27, 2015, 00:28:39
Ja kto to on jest darmowy nawet do użytku komercyjnego? Tak wiem przeczytać sobie licencję zrobię tak. (ale w którymś momencie będzie trzeba zapłacić pewnie?)

Wiem, że jest piątek wieczór więc mam nadzieję, że jutro pojawi się kilka pomysłów.

Gra ma być na PC bo o tym nie pisałem i zastanawiam się też czy jest jeszcze jakiś silnik w Javie?

Offline laggyluk

  • Użytkownik
    • http://laggyluk.com

# Czerwiec 27, 2015, 00:35:52
jeżeli chcesz ją faktycznie zrobić a nie tylko robić to polecam ścieżkę Unity

Offline Kyroaku

  • Użytkownik

# Czerwiec 27, 2015, 00:48:13
W Unreal Engine możesz pisać w C++ (jakby co).

Offline lukaszsa

  • Użytkownik

# Czerwiec 27, 2015, 09:54:37
Rozważam też inne opcje.

Między innymi  SDK w Java takie jak: JMonkeyEngine bo w końcu to było by z korzyścią dla mnie i mojej pracy bo wymusza intensywną naukę Java.

Szukam również silnika mającego możliwości jak te w Unity 2D tylko z Java.

Jednak cały czas muszę mieć na uwadze że chcę skończyć tą grę.

Offline Radomiej

  • Użytkownik
    • Blog

  • +1
# Czerwiec 27, 2015, 11:50:17
W takim razie polecam ci LibGDX, piszesz w Javie. Możliwość portów na Androida, iOS, PC, HTML(GWT). Więc jeśli idziesz w kierunku Javy to idealny framework dla ciebie. Mocne community, sporo dodatkowych bibliotek i na pewno ma dobre wsparcie dla gier 2d(w 3d nie siedzę ale jakbym miał pisać coś większego to jednak na 70% wybrałbym MonkeyEngine). A jeśli chcesz wydać grę to naprawdę polecam polegać na bibliotekach innych osób i skupić się na pisaniu gry a nie na implementacji własnego silnika, bo nie zrobisz tego dobrze(presja czasu będzie kazała ci zrobić tylko tyle żeby działało).
Ja osobiście pracuję z takim zestawem:
- LibGDX
- LibGDX AI
- Ashley
- Box2D

Jeśli nie chcesz polegać na proceduralnym świecie to masz także wsparcie dla titlesetów, więc możesz sobie zagarnąć do pracy jakiś edytor i postawić swój level.
https://github.com/libgdx/libgdx/wiki

Offline sramtuitam

  • Użytkownik

  • +4
# Czerwiec 27, 2015, 12:12:34
Cytuj
napisałem pracę inżynierską w C++ (Sokobana)

Mistrz świata!

Offline wozix

  • Użytkownik

  • +1
# Czerwiec 27, 2015, 19:52:54
A ja Ci zaproponuję Cocos2d-x. Piszesz w C++, masz ogromne community i deploy niemal wszędzie. Do wyboru bodajże 2 silniki fizyki (Chipmunk2D i Box2D). Sporo tooli. Na licencji MIT-podobnej.
Dla dynamicznej gry według mnie nie ma co się pakować w Javę, bo większość czasu będziesz się drapał po głowie jak tu oszukać GC, żeby się nie wywoływało.

Offline Xion

  • Redaktor
    • xion.log

  • +2
# Czerwiec 27, 2015, 19:56:09
Cytuj
Dla dynamicznej gry według mnie nie ma co się pakować w Javę, bo większość czasu będziesz się drapał po głowie jak tu oszukać GC, żeby się nie wywoływało.
Znaczy unikać alokacji pamięci w głównej pętli gry, dokładnie tak samo jakby należało to robić w C++?...

Offline bies

  • Użytkownik

  • +4
# Czerwiec 27, 2015, 20:04:01
Znaczy unikać alokacji pamięci w głównej pętli gry, dokładnie tak samo jakby należało to robić w C++?...
Unikanie alokacji w Javie jest o wiele trudniejsze niż się na pierwszy rzut oka wydaje. Pamiętaj, że nie masz stosu i wszystkie obiektowe zmienne lokalne alokują.

Offline ArekBal

  • Użytkownik

# Czerwiec 27, 2015, 22:49:54
Tak to napisałeś jakby było trudniejsze niż w C/C++.
Jak korzystasz z libki gamedevowej to ta raczej nie alokuje...

A unikanie "new" samemu to chyba żadna magia. "Object Pooling for the win"

Offline sramtuitam

  • Użytkownik

  • +1
# Czerwiec 27, 2015, 23:26:04
Unikanie alokacji w Javie jest o wiele trudniejsze niż się na pierwszy rzut oka wydaje. Pamiętaj, że nie masz stosu i wszystkie obiektowe zmienne lokalne alokują.

Bzdura, poczytaj sobie o "escape analysis" w Javie.

Offline ArekBal

  • Użytkownik

# Czerwiec 27, 2015, 23:35:05
Aaaale to się sprawdzi tylko dla znanych typów "stosunkowo" prostych, typu vector3d/float3/Matrix4x4. Dla typu który gdzieś tam trzyma referencje nie można sobie "założyć" że kompilator to przewali na stos.

Offline wozix

  • Użytkownik

# Czerwiec 27, 2015, 23:43:38
Rozważam też inne opcje.

Między innymi  SDK w Java takie jak: JMonkeyEngine bo w końcu to było by z korzyścią dla mnie i mojej pracy bo wymusza intensywną naukę Java.

Moment, moment. Masz 30 lat, ukończyłeś studia (przez co zakładam, że konceptualnie programowanie jest Ci bliskie), programujesz od 8 miesięcy w Javie i nadal się jej uczysz? Idąc twoim tokiem myślenia nie nauczysz się programować w Javie robiąc grę, bo choćby nie nauczysz się J2EE.