Autor Wątek: Silniki graficzne, a Delphi i C++  (Przeczytany 1610 razy)

Offline Roger2

  • Użytkownik

# Listopad 23, 2008, 19:29:59
Witam

Zwracam się do Was o radę związaną z doborem języka programowania i silnika graficznego do renderingu 2D i 3D na potrzeby tworzenia gier komputerowych.

W czym jest problem

W obecnej chwili znam dość dobrze Delphi, jednak wciąż jestem na etapie poszukiwań właściwych bibliotek graficznych pod ten język. Trudności wynikają z faktu, że czasem silniki okazuje się dobry dla moich potrzeb ( przypominam, ze zależy mi obecnie na renderingu 2D oraz 3D; wcześniej interesowało mnie tylko lub głównie 2D ), jednak jego dokumentacja okazuje się być w obcym dla mnie języku (tj. nieangielskim i niepolskim) lub jest niekompletna, nieaktualna lub ogranicza się tylko i wyłącznie do dość oszczędnych komentarzy w kodzie źródłowym (żal). W dodatku brakuje do niego samouczków. 

Trzeźwo myślący człowiek, szanujący swój czas nie będzie poświęcał kilku miesięcy, żeby mozolnie zagłębiać się w kolejne linijki kodu w celu dowiedzenia się, co koder-twórca miał na myśli - szkoda zdrowia i nerwów.

OpenGL i DirectX

Ostatnio zastanawiałem się nad nauką OpenGL lub DirectX i oczywiście obsługą ich pod Delphi. Pomysł dość ciekawy, miałbym pełną swobodę projektowania grafiki, budowania Framework?a. Podstawową jego wadą jest długi czas nauki tychże bibliotek oraz programowania  ? uzyskanie zadowalających efektów nie przyszłoby szybko. Zaletą jest zapewne bogata baza samouczków, przykładów i olbrzymie dokumentacje, a co najistotniejsze popularność użycia tych bibliotek.

Programiści C++

Bardzo zazdroszczę ( oczywiście w wymiarze pozytywnym ) osobom znającym dobrze C++. Ten język, w obecnej chwili, daje szeroki dostęp do nieopisanie bogatej bazy bibliotek i to nie tylko graficznych. Jest to oczywiście spowodowane jego popularnością na całym świecie. Żałuję, że nie mogę skorzystać w natywnym Delphi z silnika Ogre 3D, czy Irrlicht (w tym ostatnim chyba mogę, ale o  tym później). Są to bowiem zbiory bibliotek dobrze udokumentowanych, ze świetnymi, bo dużymi, społecznościami użytkowników. Istnieje masa przykładów do nich, opisów krok po kroczku jak to lub tamto działa. Są diagramy klas, które w graficzny sposób ukazują jak dana biblioteka graficzna jest zbudowana, jak pracuje. Wszystkie te elementy diametralnie skracają czas poznawania nowego dla mnie silnika i dają pewność, że jak będę miał z czymś problem, to na pewno ktoś mi pomoże lub znajdę odpowiedź w materiałach.

Platforma .NET

Z powyższych względów myślałem przez jakiś czas nad porzuceniem dobrego, natywnego Delphi i przejścia na platformę .NET. Dzięki temu zyskałbym dostęp do Ogre, poprzez nakładkę MOgre, która stanowi pomost pomiędzy libkami w C++, a technologią .NET lub też do Irrlicht?a. Nie posiadam jednak w tej dziedzinie doświadczenia i nie wiem ile czasu zajęłoby mi nauczenie się korzystania z dobrodziejstw .NET i zmian wprowadzonych w Delphi. Kolejną kwestią tego rozwiązania jest wydajność. Wiem, że kod pośredni wykonuje się wolniej od kodu w pełni skompilowanego i zoptymalizowanego. Nie mam jednak pojęcia, jaka jest skala tego problemu i czy to przeszkadza w programowaniu gier 3D z wysokiej jakości grafiką i efektami wizualnymi ( hm, tak coś sobie przypominam, że gdzieś widziałem jakieś przykładowe gry pod NET i działały bez zarzutu, przy dość dobrej jakości grafiki).

Wrapper Delphi do Irrlichta

Na forum przeczytałem, że istnieje wrapper do Irrlichta pod Delphi. Chciałbym się zapytać, czy jest on kompletny (?), bo jak zajrzałem do środka kodu IRRLICHT.pas, to zauważyłem tam dość mało funkcji . Nigdy nie programowałem pod ten silnik, jednak śmiałem przypuszczać, że lista funkcji, zmiennych, stałych będzie obszerniejsza. Po drugie, czy istnieje jakiś oficjalny support do tego wrappera? Kto jest jego autorem?

Czas na C++?

Ostatnim wyjściem wydaje mi się porzucenie na dobre Delphi i nauka C++. Zajmie mi to sporo czasu, ale sądzę, że na dłuższą metę się opłaci i będę mógł spokojnie korzystać z dobrodziejstw wszelkiej maści bibliotek. Nie będzie już problemu ? czy jest jakiś wrapper do biblioteki pod danym język. Po drugie wykorzystam te biblioteki, które posiadają dobre zaplecze: dokumentacja, społeczność itp.

Nowe, lepsze Delphi

Chociaż z drugiej strony na horyzoncie jest Delphi Prism, które wprowadzi wiele nowości w języku Object Pascal, dzięki nowemu kompilatorowi. Być może, ten zabieg spowoduje, że ilość zwolenników tego czytelnego języka programowania się zwiększy i będzie więcej bibliotek pod niego.

Podsumowując, chcę mieć jak najszybciej możliwość programowania gier 2D / 3D przy użyciu wygodnego silnika graficznego.

Co więc dalej Kolego?

Co radzicie? Mam zostać przy natywnym Delphi i wziąć się za jakiegoś tam GLSCene?a  (on jest w ogóle rozwijany?, bo strona jest nieaktualna), czy może przejść na .NET i tam kodzić gierki w Delphi, a  może po prostu porzucić ten język i uczyć się przyszłościowego C++, który daję dostęp do szerokiej gamy dobrodziejstw ( bo znając tylko Delphi, no i parę tam innych języków - skryptowych, czuje się strasznie ograniczony; trudno znaleźć pod ten język coś darmowego i do celów komercyjnych, a zarazem dobrze udokumentowanego ).

Czekam na Wasze zdania w tej sprawie.

Pozdrawiam
« Ostatnia zmiana: Listopad 23, 2008, 19:32:50 wysłana przez Roger2 »

Offline Mr. Spam

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

Offline skoti

  • Użytkownik

# Listopad 23, 2008, 20:24:01
Cytuj
W czym jest problem...
Nie dramatyzuj co lepsze biblioteki można używać pod pascalem (np. sdl, allegro, opengl).

Cytuj
Ostatnio zastanawiałem się nad nauką OpenGL lub DirectX i oczywiście obsługą ich pod Delphi.
Jak będziesz chciał 3d przetwarzane sprzętowo to nie masz wyboru wielkiego i w c++ (ogl lub dx) - więc warto je poznać.

Cytuj
Wiem, że kod pośredni wykonuje się wolniej od kodu w pełni skompilowanego i zoptymalizowanego.
Nie koniecznie ;]. C# czy java faktycznie działają wolniej niż C/C++ (chodź niektóre, algorytmy w nich zastosowane w niektórych momentach potrafią przewyższać szybkością programy napisane w c/c++), ale myślę, że szybkość języków zarządzanych i tak jest większa od kodu natywnego generowanego przez kompilatory pascala.

Cytuj
Czas na C++?
Dla programisty gier odpowiedź brzmi tak.

Cytuj
Być może, ten zabieg spowoduje, że ilość zwolenników tego czytelnego języka programowania...
Nie liczyłbym na to ;p. Nie przesadzaj też z czytelnością pascala ;p.

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Listopad 23, 2008, 21:50:52
Cytuj
Ostatnim wyjściem wydaje mi się porzucenie na dobre Delphi i nauka C++. Zajmie mi to sporo czasu, ale sądzę, że na dłuższą metę się opłaci i będę mógł spokojnie korzystać z dobrodziejstw wszelkiej maści bibliotek.
Nie przesadzaj. W praktyce zajmie Ci to tyle, co nic, bo Pascal i C++ są do siebie dosyć zbliżone. Jedynie kwestia zapoznania, oswojenia i przyzwyczajenia się. :)

Offline Daro (RDG)

  • Użytkownik
    • RedDotGames

# Listopad 23, 2008, 23:22:39
Też mysle o przerzucie na C++ ze wzgedu wlasnie na community, wszystkie silniki i biblioteki pisane glownie pod c++, xna (to juz pod c#) itd itd (kiedys w tym cos pisalem) ale w Delphi robi mi sie naprawde bardzo przyjemnie chociaz trzeba sie troche wiecej oklepac :P
Zostalem wiec na razie przy Delphi i silniku graficznym TrueVision 6.3/6.5, ktory jako jeden z niewielu chodzi pod Delphi (Turbo Delphi bo tego uzywam) i jest nawet na czasie (dx9.1, shadery itd). Gdy zdecydujesz sie wydac gre komercyjnie - kupujesz tania licencje na 1 produkt - 150$ i sprzedajesz.
« Ostatnia zmiana: Listopad 23, 2008, 23:37:11 wysłana przez Red Dot Games »