Skocz do zawartości

[Delphi] Grafika 3D-Pyt


Alm

Polecane posty

Witam

Chcialbym stworzyc jakas gre (nic wielkiego tak z nudow) 3D w Delphi. Problem pojawia sie gdy chodzi o wybor bowiem nie wiem czym sie zajac. Probowalem sam OpenGL ale no niestety wymaga wyzszej matematyki z ktora zapoznam sie pozniej :). Dosc spodobal mi sie GLscene, ale aktualnie nie moge znalezc zadnych kursow, opisow komend itd., dlatego prosze was o jakies opinie z wl. doswiadczenia. Moze ktos poleci jakis inny engine? Bylbym wdzieczny ;).

Pozdrawiam

Link do komentarza
Udostępnij na innych stronach

Jak powszechnie wiadomo, Delphi nie nadaje się do tworzenia gier - choć jest to możliwe. http://nehe.gamedev.net/ - tutaj pod tutorialami dla OpenGL znajdziesz kod przepisany do Delphi.

 

Delphi się nie nadaje ze względu na wsparcie (a raczej jego brak) różnych silników graficznych, ich twórców itp. - do silnika wiadomo, można często napisać pliki nagłówkowe zawierające funkcje z biblioteki SO,DLL itp. - ale wtedy biblioteka nie jest oficjalnie wspierana przez dany język. Jak można zauważyć na wyżej podanej stronie wszystkie tutoriale oryginalnie były napisane w C/C++. Teraz to nawet już nie liczy się szybkość wykonanych programów - jest silnik graficzny Panda3D oficjalnie do użycia z poziomu Python'a oraz C++. A przecież Python to język skryptowy, co wpływa na jego szybkość wykonywania (chociaż silnik Panda3D jest napisany w C++, to jednak pewne obliczenia wciąż są wykonywane przez Python'a w takiej aplikacji).

 

Sam się przerzuciłem z Delphi na rzecz C++ dawno temu, bo zauważyłem, że aplikacje w OpenGL niemal identycznie wyglądają (od strony kodu), bardzo podobnie używa się WinAPI itp. Tylko "początek pisania" inny, a reszta taka sama.

Link do komentarza
Udostępnij na innych stronach

Oczywiście, że Delphi nadaje się do programowania gier. Wiele bibliotek (ofc nie wszystkie) dostarcza nagłówki do Delphi np. http://www.truevision3d.com a jeśli ich brak wystarczy pogooglować "[nazwa biblioteki] delphi headers" albo sprawdzić JEDI.

 

Na dzień dzisiejszy najłatwiej (mimo wszystko) będzie użyć GLScene http://glscene.org .

 

Możesz też sprawdzić stronę http://delphigl.com i http://pascalgamedevelopment.com

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

Dzieki :D

Bardzo chce uniknac nauki c++ bo jakos nie przypadl mi do gustu.

Co do GLscene czy jest jakas aktualna strona z tutorialami czy cos? Znalazlem duzo ale juz nieaktywnych ;/.

Jakbys mogl jeszcze krotko opisac truevision3d bo go nie znam. Najwiecej problemow mam ze skladnia i poszczegolne komendy dlatego potrzebuje tutoriale.

Dobrze wiedziec ze jest nadzieja w Delphi :)

Link do komentarza
Udostępnij na innych stronach

Bardzo chce uniknac nauki c++ bo jakos nie przypadl mi do gustu.

Jak zamierzasz studiować informatykę to i tak nie unikniesz nauki C/C++ :D - chyba, że jakimś cudem trafisz na uczelnię, na której nie ma przedmiotów wykorzystujących te języki.

Link do komentarza
Udostępnij na innych stronach

My VB nie mieliśmy, do C# nas nie zmuszali (na szczęście :D) - można było zrobić w nim coś na projekt z przedmiotu grupującego nowoczesne technologie - ja robiłem w Pythonie. Delphi mieliśmy na wstępie do programowania, ale tylko proste konsolowe aplikacje - zadania robiłem w domu na Free Pascal'u ze zgodnością z Delphi.

Link do komentarza
Udostępnij na innych stronach

Bardzo chce uniknac nauki c++ bo jakos nie przypadl mi do gustu.

 

Źle robisz. Żeby poczuć jak Delphi jest zajebiste, trzeba znać C++ na poziomie średnio-zaawansowanym/zaawansowanym. Nie znając C++ będziesz lamić xP

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

"firmy"

To normalna firma i nie rozumiem dlaczego w cudzysłowie piszesz. Delphi nie musi na siebie zarabiać Unia sponsoruje, ważne by na firmę zarobiło :D

Druga sprawa zazdrosny bo nie możesz sobie pozwolić na przyjemność pisania :)?

 

[Edyta]

 

By było na temat dodam że nie ma problemów co do kodzenia grafiki ... a za jakiś czas pojawi się nowy silnik ułatwiający to zadanie najbardziej jak się da :P

www.spider.dathox.com :)

Link do komentarza
Udostępnij na innych stronach

Firma w cudzysłowie, bo z tego co pamiętam to siedziba firmy znajduje się u HNB w domu ;)

 

Właśnie mogę sobie pozwolić na przyjemność pisania :) Python+Panda3D - ostatnio stosuję takie połączenie. I od razu programy są bardzo przenośne, nie muszę nic przekompilowywać, aby dać komuś paczkę działającą pod Windowsem (trzeba pliki ze źródłem, zasoby, rozpakowaną paczkę Pandy, no i jakiś plik bat uruchamiający program pod Pythonem - czyli ostatecznie jak już sobie przygotuję całą paczkę, to tylko podmieniam folder ze źródłami i zasobami projektu). Panda3D także wspiera osadzanie aplikacji na stronach internetowych, podobnie jak osadza się gry flash - http://www.panda3d.org/wiki/index.php/Dist...ing_via_the_web .

 

A co oferuje Ci Delphi, aby pisać aplikacje na wiele platform?

 

http://www.embarcadero.com.pl/produkty/delphi/

Tworzenie jednego wspólnego kodu dla różnych platform: Windows 2000, XP, Vista i Windows 7

 

Chyba już sobie odpowiedziałem na to pytanie :P - oczywiście z tego co pamiętam, programy z Delphi 7 nawet działały na Wine, ale to nie to samo :]

Link do komentarza
Udostępnij na innych stronach

Całe te gadki, czy coś się nadaje (jest lepsze) czy nie do programowania gier (grafiki) nie mają sensu...

Odkąd pamiętam to toczy się batalia między programistami C++ i podobnych, a Delphi i podobnych...

Najlepiej to używać tego co się najlepiej podoba... ;P

Bo suma sumarą jedna i ta sama aplikacja powstaje... :)

 

Pozdro.

Prawdziwy programista wiesza sie wraz ze swoim programem.

Link do komentarza
Udostępnij na innych stronach

Całe te gadki, czy coś się nadaje (jest lepsze) czy nie do programowania gier (grafiki) nie mają sensu...

[...]

Bo suma sumarą jedna i ta sama aplikacja powstaje... :)

 

Pozdro.

Wiem, że nie ma sensu o tym przekonywać HNB i podobnych. Ale ktoś nowy w tym temacie powinien otrzymać te informacje. Żeby życia nie utrudniał sobie i użytkownikom jego aplikacji. Teraz pisanie aplikacji pod samego Windowsa to mało. Coraz więcej ludzi korzysta z Linuksa i Mac OS'a. Nie nakłaniam go, aby od razu pisał też aplikacje pod telefony komórkowe - ale patrząc na obecne parametry techniczne komórek to za kilka lat pewnie pisanie aplikacji na komóry nie będzie się w ogóle różniło od pisania aplikacji dla PC :D

 

Jest pełno ludzi prawiących o "zajebistości" C#. Ale to też pomimo tego, że istnieje MonoDevelop wciąż nie jest kompatybilne. Np. gra Digger, którą testowałem dla Wo7. W Mono udało się skompilować i uruchomić, jednak nie działało to jak należy.

 

Ostatnio była informacja, że Google wydało zakaz używania Windowsa przez swoich pracowników ze względów bezpieczeństwa. Google stara się być neutralne. Jak tworzy jakąś technologię to wspiera trójcę popularnych systemów (Lin, Mac, Win). Np. ostatnio korzystałem z Google App Engine (darmowy hosting od Google :)). Wydali SDK na "trójcę". Można programować w Pythonie i w Javie. I mogę sobie to spokojnie używać z poziomu Linuksa. A taki C# i Delphi ma tylko oficjalne wsparcie na Windowsa :P To zasadnicza różnica.

Link do komentarza
Udostępnij na innych stronach

Proponuje skonczyc offtopa, bo pytanie byla zgola inne, i inne byly wymagania (pogrubione).

 

@jason

skoro juz tak namietnie namawiasz do super przenosnych kodow przemysl sobie pocichu kilka kwestji (odpowiedzi mnie nie interesuja, bo jak juz mi wytknales ja wiem swoje):

1) Jezyk C++, java mialy byc z zalozenia przenosne i pozwalac na pisanie jednolitego kodu ktory bez wiekszych modyfikacji mial dac sie kompilowac na rozne platformy. Jak wyszlo wiemy (albo powinnismy wiedziec)

2) moze kogos nie innteresuje wiele platform - odpowiedz sobie na pytanie: po co mam wspierac inne platformy ? Poza odpowiedziami: bo powienienem, bo tak jest fajnie, bo inni to robia. Wyobraz sobie ze wymaga to dodatkowej pracy ktorej niektorzy nie chca ponosic bo ich to po prostu nie interesuje.

3) ile napisales profesjonalnych aplikacji ktore pokazales swiatu, ktore uruchamiaja sie conajmniej na 2 systemech, maja wiecej niz 10 uzytkownikow i przeszly porzadne testy stabilnosci ? No i jak juz piszesz na 2 platformy np win + linuch, to na ktorego linucha ? Chyba nie kierujesz sie kryterium popularnosci distro, bo jesli tak to biorac pod uwage popularnosc lin + macOS

4) "Google stara się być neutralne. Jak tworzy jakąś technologię to wspiera trójcę popularnych systemów (Lin, Mac, Win)" - rozbawiles mnie do lez, popracuj w korporacji z rok to pogadamy na temat "neutralnosci" i "przyjaznosci" oraz kilku innych sloganow w ktore wierzy 90% osob ktore nie sa w czesci "roboczej" firm w branzy. Google to robi bo mu sie oplaca, lub przewiduje ze niedalekiej przyszlosci mu sie to oplaci, a nie dlatego ze jest neutralne...

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

CYTAT(Alm @ śro, 09 cze 2010 - 21:24)

Znowu to samo :P. Co pytanie do Delphi to klotnia o C++...

 

 

No właśnie, o co im chodzi B) ? btw. Tylko bóg i fiskus ma wgląd w moje zarobki. Wara.

 

Spider100 moglbys jakos rozwinac ta tajemnicza mysl? :>

 

Spider teraz kuje, ale mogę odpowiedzieć na Twoje pytanie: Zbyt wcześnie by o tym pisać. "Stay tuned" :)

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

=D

Dzieki!

Jedno pytanie jeszcze, a gdybym (o zgrozo) chcial nauczyc sie C++ to co popularnego poradzicie? :D

Czy moze wystarczy sam Directx?

Zależy, czy chcesz pisać silnik, czy też grę :)

Jak chcesz wynajdywać koło od nowa i ewentualnie je trochę ulepszyć, to pisz w OpenGL lub DX, jak chcesz pisać grę, to pisz używając gotowych silników.

Link do komentarza
Udostępnij na innych stronach

Nie to wole gotowe silniki

Chcialem pisac sam w OpenGL ale wymiekam jak narazie z matematyka ;)

No to jaki engine polecisz Jason?

 

Źle robisz. Żeby poczuć jak Delphi jest zajebiste, trzeba znać C++ na poziomie średnio-zaawansowanym/zaawansowanym. Nie znając C++ będziesz lamić xP

 

To musze troche sie go poduczyc. Dzieki

Link do komentarza
Udostępnij na innych stronach

Najpopularniejszy darmowy pod C++ to Ogre. Jednak trochę trzeba się pomęczyć aby przygotować sobie środowisko pracy :D

 

W sumie ten silnik co używam teraz pod Python'em wspiera również C++.

 

Najlepiej najpierw przejrzyj manuala, chociaż początek - http://www.panda3d.org/wiki/index.php/Main_Page

 

http://www.panda3d.org/wiki/index.php/Inst...da3D_in_Windows

 

Inne popularne silniki to Lightfeather i Irrlicht.

Link do komentarza
Udostępnij na innych stronach

  • 4 weeks later...

A ja się podłącze pod temat, akurat mnie to interesuje bo chcę grę zrobić - na forum wszedłem z zamiarem stworzenia topicu z takim pytaniem :D

 

Po 1: zakończmy dyskusję między językami.

 

Po 2: Mam mały projekcik - samochodówka. W Delphi. Czym to wykonać? Zainteresowała mnie strona: http://nehe.gamedev.net/

No ale tam są kody pod C++, a to niezbyt ogarniam. Czy w GLScene da radę to wykonać?

Założenia:

* Mapka w jakimś formacie ciekawym, aby szybko działała i była lekka - aby po prostu ścin nie było. Skądś wytrzasnąłem loader .BSP (map Half-Life), ale to chyba się nie nadaje do samochodówki :D (chociaż umiem tworzyć mapy BSP)

* Kamera tylko z widoku nad samochodem, więc dużo roboty chyba z kamerą nie będzie.

* Oczywiście mechanizm kolizji, no i system fizyki.

Pytanko: jest sens używać NVIDIA PsychX (czy jakoś tak, nigdy nie umiem napisać xD)? Trudne to do użycia?

 

Prosiłbym o pomoc ;)

Link do komentarza
Udostępnij na innych stronach

PhysX - od słowa physics - fizyka, sens korzystania z silników fizycznych jest taki, że nie musisz sam być mega fizykiem, aby wprowadzić realistyczną fizykę do swojej gry.

 

Chciałeś zakończyć dyskusję między językami, a zaczynasz nową :D - na nehe masz kody z tutoriali przepisane do Delphi (nie wiem czy wszystkie). Ale pisanie w OpenGL dla Delphi i C++ za dużo się nie różni - przynajmniej jeśli chodzi o "czysty" OpenGL, bez dodatkowych bibliotek. Używasz tych samych funkcji, np. glVertex3f, pod Delphi różnica jest taka, że nie piszesz literki 'f' na końcu wartości zmiennoprzecinkowej, a w C++ możesz pisać lub nie pisać - chyba że chcesz podkreślić, że to ma być wartość typu float (w Delphi Single bodajże), a nie double.

Link do komentarza
Udostępnij na innych stronach

O ile ma być to bardzo prosta jazda samochodem. To "fizykę" możesz sam sobię łatwo zaimplementować z podstawowymi wzorami tylko... Kolizje oprzeć np. o BBox-y i nie musisz już bawić się w silniki fizyczne żadne. Jeśli ma być cos poważniejszego to już musisz kombinować.

 

Co do map: A czy ten loader od razu dokonuje jakiegoś podziału przestrzeni np. często używanego BSP (Binary space partitioning) bo jak nie to sam będziesz się musiał w to pobawić albo jakieś inne podziały zależnie od twojej potrzeby lub umiejętności.

 

 

Mapka w jakimś formacie ciekawym, aby szybko działała i była lekka
To nie od formatu w którym masz zapisaną mapę zależy czy są ściny czy nie tylko od tego jak masz podzieloną geometrię sceny i jak efektywnie ją wyświetlasz.

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

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

×
×
  • Utwórz nowe...