Skocz do zawartości

Delphi czy C++ oraz silniki graficzne


Roger

Polecane posty

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

Link do komentarza
Udostępnij na innych stronach

Poruszyłeś większość tematów zapalnych, które często zmieniają się w beznadziejne kłótnie.

 

Musisz być zorientowany na cel, a nie środki. Jeśli chcesz zrobić grę to nie ma znaczenie w jakim języku programowania i z jakimi bibliotekami.

 

Jedna osoba ci powie, że najlepszy będzie C++, a inna, że Pascal, albo jeszcze coś innego. Co z tego wyniknie? - nic. Sam sobie sprawdź co jest dla ciebie dobre.

Link do komentarza
Udostępnij na innych stronach

Delphi to chyba najdziwniejsze zjawisko w świecie programistów.

 

Delphi to fetysz - albo Cię kręci albo nie ;). I jak to powiedział Budda :

 

Nie wierzcie w jakiekolwiek przekazy tylko dlatego, że przez długi czas obowiązywały w wielu krajach. Nie wierzcie w coś tylko dlatego, że wielu ludzi od dawna to powtarza. Nie akceptujcie niczego tylko z tego powodu, że ktoś inny to powiedział, że popiera to swym autorytetem jakiś mędrzec albo kapłan, lub że jest to napisane w jakimś świętym piśmie. Nie wierzcie w coś tylko dlatego, że brzmi prawdopodobnie. Nie wierzcie w wizje lub wyobrażenia, które uważacie za zesłane przez Boga. Miejcie zaufanie do tego, co uznaliście za prawdziwe po długim sprawdzaniu, do tego, co przynosi powodzenie wam i innym

 

I tego bym się trzymał :).

 

Dobry silnik 2D napisany w C++ w całości przepisany na Delphi (silnik HGE - z dobrą dokumentacją) : http://www.bilsen.com/HGEDelphi.zip

 

Uważaj bo Delphi uzależnia!

 

PS. zadałeś wiele pytań, jak później znajdę więcej czasu to może co nieco, odpiszę na poszczególne podpunkty.

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

Jeśli chcesz naprawdę skorzystać z tych silników to chyba C++ to zło konieczne ;)

 

W sumie sporo się naszperałeś w sieci, żeby zdobyć tyle informacji o tym...

 

Nauka obsługi jakiegokolwiek IDE, nauka pisania w jakimkolwiek języku rozwija. Ważne jest, żeby wyrobić sobie odpowiednie myślenie, w tym wypadku co do programowania grafiki, drąż ten temat, każda umiejętność Ci się przyda. Jak nie znajdziesz jakiegoś udogodnienia w jakimś wypasionym engine, to będziesz mógł sam je napisać. Bo pisanie w popularnych językach, korzystanie z popularnych engine'ów graficznych tak naprawdę wiele się nie różni. Im więcej poznasz tym będziesz bardziej elastyczny :)

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...