Czy warto robić własny silnik graficzny/silnik gry?

0

Witam,
Od jakiegoś czasu zastanawiam się, co by było lepsze: gotowy silnik graficzny, czy własny silnik, nad którym bym miał pełną kontrolę.
Silnik nie musi mieć ogromnych możliwości. Ważne, żeby ładnie wczytywał modele i wyświetlał animacje.
Czy wg. was opłaca się uczyć OpenGL i zrobić własny silnik (a'la z World of Warcraft) czy użyć gotowego?
Słyszałem, że ładnie się go robi w połączeniu SDL z OpenGL. (Nie chcę używać Direct'a)
Czy w ogóle dam radę w 1.5 roku zrobić silnik na takim poziomie?
Będzie on użyty do stworzenia gry MMORPG w klimacie Anime.

Nieco zagmatwane, ale mimo to proszę o odpowiedź.

0

Nie warto, jest już multum softu tego typu. Naucz się któregoś dobrze i ewentualnie utwórz sobie jakieś funkcje pomocnicze.

0

@Adamsss
Możesz coś polecić? Ważne, żeby nie był to jakiś ciężki silnik, najlepiej pod C++.
Ważne, żeby licencja komercyjna nie była kolosalnie droga.

0

Prawie zawsze lepiej gotowca. np.: http://www.ogre3d.org/
Nie ma sensu robić samemu, poza tym dojdziesz prawdopodobnie do podobnego designu jak w gotowcach

0

Jeśli ta gra ma być mała tylko dla np. znajomych to nie ma sensu pisać własnego silnika, lecz jeśli chcesz zrobić z tego wielką światową grę to najpierw proponował bym zebrać więcej osób a później napisać ten silnik, po napisaniu napisać grę w tym silniku. Później tylko rozwój silnika i tworzyć coraz lepsze wersje gry.

3

Ja bym radził najpierw opanować podstawy programowania (twój profil pozwala przypuszczać, że masz jedynie dużo zapału do pisania gier i niewiele praktycznych umiejętności).
Porozwiązuj trochę średnich zadań ze SPOJ-a, potem napisz jakąś prostą gierkę logiczną, następnie użyj jakiegoś gotowego silnika do napisania prostej gierki (np żaba przechodząca przez ulicę).
Nad własnym silnikiem to się zastanawiaj dopiero jak napiszesz sam co najmniej jaką poważniejszą grę.

3

Jeśli nie wiesz jak działają obecne silniki, a chcesz od razu pisać własny, to raczej wiele dobrego z tego nie wyjdzie. Napotkasz multum problemów, które są przyzwoicie rozwiązane w popularnych silnikach, a sam będziesz tworzył kulawe protezy.

3

Jeśli chcesz pisać silnik, to OK, pisz sobie silnik..
ale jeśli chcesz napisać grę,

Będzie on użyty do stworzenia gry MMORPG w klimacie Anime.

to najpierw włożysz mnóstwo czasu i wysiłku na pisanie silnika, tak że pisać grę już ci się odechce.

2

Fajnych rzeczy mozna sie dowiedziec piszac swoj wlasny silnik.
Szczegolnie na temat optymalizacji :)

1
fasadin napisał(a):

Fajnych rzeczy mozna sie dowiedziec piszac swoj wlasny silnik.
Szczegolnie na temat optymalizacji :)

Pod warunkiem że ma się pojęcie jak taki silnik działa od środka i jak powinien zostać zaplanowany. Inaczej zrobi się jeden wielki bigos który nie będzie ani działał, ani wyglądał. Mówię to ze swojego skromnego doświadczenia ;)

krwq napisał(a):

Prawie zawsze lepiej gotowca. np.: http://www.ogre3d.org/

Ja za to polecam jeszcze Irrlichta (http://irrlicht.sourceforge.net/). Dość lekki i zwinny silnik z którym można szybko się zaznajomić. Ogre to taki wielki kombajn który ma dużo większe możliwości, ale chyba łatwiej się w nim pogubić. A bez stosowania jakichś sztuczek, czas kompilacji ogra jest niebotycznie długi.

2

Eee tam, narzekacie... Nie trzeba znać podobnego oprogramowania, żeby napisać swoje własne :]

No dobra, zejdźmy na ziemię - napisanie silnika czy API graficznego można zrealizować, ale co innego je napisać aby działało, a co innego aby działało bardzo dobrze i wydajnie; Za takie rzeczy powinien się zabrać ten, kto ma solidną wiedzę, spore umiejętności teoretyczne i praktyczne, a także dużo wolnego czasu;

Więc szkoda się porywać z motyką na słońce, bo zamiast zrobić coś dobrego, tylko się człowiek zniechęci; Pisanie gier (tym bardziej wymagających) nie jest rzeczą łatwą - najpierw trzeba nabrać doświadczenia, które jest w tym temacie kluczowe, a dopiero później ewentualnie brać się za większe lub duże projekty.

0

Trochę odkopaliście temat, ale dziękuję za przydatne informacje.

@MarekR22
Podstawy mam opanowane bardzo dobrze: C/C++/Python
Napisałem też kilka małych lib'ów i aplikacji na własny użytek np.: ConfigParser, Wieloosobowy chat (ncurses, winsock, serwer: php/sql(nie pytaj jak :p)), kółko-krzyżyk na WindowsPhone 7.1 (napisane na Junior.NET po 30 min nauki C# i XNA), manager obrazów do mojej (niestety utraconej) galerii w Bootstrapie/JS (Python/PySide), Edytor XML (Python/PySide).
Nie możesz powiedzieć, że nie mam wiedzy. Cd. zapału może i masz rację, ale udało mi się go wykorzystać bez marnowania go i cały czas robię małe kroczki w stronę projektu.

@furious programming
Masz rację cd. potrzebnych umiejętności i wiedzy, lecz spójrz na to z innej strony: Jeżeli zacznę robić własny silnik, to napotkam problemy, które będę chciał rozwiązać, więc zdobędę do tego potrzebną wiedzę. Dzięki całemu projektowi zdobędę także doświadczenie.

I tak miałem zamiar przestudiować budowę kilku mniejszych i jakiegoś większego silnika graficznego/gier, wiec wiedzę o ich budowie także zdobędę.
Największym wyzwaniem dla mnie jest OpenGL, ponieważ mój sprzęt ma już swoje lata, a karta graficzna wspiera tylko do OpenGL 3.3, więc nici z "bajerów" 4.0+. DirectX odpada, ponieważ chciałbym ,aby moje produkty ukazywały się również na linux'ie i mac'u. Nie wiem też, z jakich źródeł powinienem się go (OGL) uczyć. Znalazłem poradniki Janusza Ganczarskiego i opengl-tutorial.org, ale nie są one dla mnie wystarczające (zbyt słabe opisy lub ich braki, przez co nie rozumiem do końca niektórych mechanizmów). Jeżeli może ktoś doradzić, to proszę o informacje na PW.

0
MordiJC napisał(a):

Trochę odkopaliście temat, ale dziękuję za przydatne informacje.

@MarekR22
Podstawy mam opanowane bardzo dobrze: C/C++/Python

Większość osób, które maja w planach jakiś "genialny" projekt tak twierdzi.
No i podstawy to wystarczą do pisania aplikacji konsolowych, a nie silnika graficznego.

Napisałem też kilka małych lib'ów i aplikacji na własny użytek np.: ConfigParser, Wieloosobowy chat (ncurses, winsock, serwer: php/sql(nie pytaj jak :p)), kółko-krzyżyk na WindowsPhone 7.1 (C#/XNA), manager obrazów do mojej (niestety utraconej) galerii w Bootstrapie/JS (Python/PySide), Edytor XML (Python/PySide).

Czyli nic nadzwyczajnego.

Tak jak napisał MarekR22 najpierw spróbuj zrobić jakąś grę na gotowym silniku i sam zobaczysz czy temu podołasz.

1

Największym wyzwaniem dla mnie jest OpenGL, ponieważ mój sprzęt ma już swoje lata, a karta graficzna wspiera tylko do OpenGL 3.3, więc nici z "bajerów" 4.0+

Nie rozumiem dlaczego jest to „największym wyzwaniem”. Poza tym grę piszesz raczej nie dla siebie, tylko dla ludzi, a ci mogą mieć jeszcze słabsze karty graficzne, np. zintegrowane Intela na których masz OpenGL 2.0 albo nawet 1.2.

Wiadomo - im więcej chcesz bajerów, tym wyższe będą wymagania.

0

@Azarien
Bez przesady, kto będzie grał na karcie zintegrowanej z OGL 2.0, w tych czasach prawie każdy gracz ma kartę graficzną wspierającą OGL 3+. Moja nVidia GeForce 8600 wspiera 3.3, a ma już ponad 5lat. Cd. bajerów, to jest to raczej oczywiste: im lepsze tym więcej wymaga. Poza tym jeśli robię grę, to na początku tylko dla siebie lub wąskiego grona ludzi. Dopiero, gdy projekt nadaje się do publikacji (Alpha :p), jest on udostępniany "na światło dzienne".
Wyzwaniem jest on(OGL) dla mnie, ponieważ nie wiem, z jakich źródeł powinienem się go uczyć (Wiem, dokumentacja jest, ale mnie zależy da dobrym wytłumaczeniu mechanizmów.)

P.S. Mały offtop się zrobił.

0

Takie potężne silniki wymagają dużego nakładu pracy. Zanim powstanie kraina, domek i drzewko minie cały dzień, a gdzie fizyka, teksty do fabuły, panele, testowanie, i publikacja na kilka różnych platform nie zawsze działająca, a to wersja inna, to biblioteka pobrana jest już wycofana... zawsze coś.
W pojedynkę nie ma szans na zbudowanie czegoś szybko.
Dla początkujących w świecie 3D, chcących opublikować swe dzieło w necie pod U5gGTlEgRW94Gww8R4S6a8frkALCRt
https://artstrona.pl/gameeditor/ - instalator edyora
https://artstrona.pl/miostore/ - tu powstają modele do pobrania.

W godzinę można stworzyć kilka leveli/krain i na koniec jednym klikiem opublikować na WWW.

Można szybko zrozumieć czym jest model, a czym kolider, jak zasobożerne jest światło i cień, aby móc szybko z doświadczeniem przeskoczyć do zespołów profesjonalistów w Unreal, czy Unity.

Miłego.

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