[C::B] OGRE SDK, DirectX itp... Jak zacząć?

0

Witam.

Chciałem ostatnio wziąć się za pisanie prostej gry 3D (no, może z małą ingerencją komponentów sieciowych). Jako silnika graficznego chciałbym użyć OGRE, a jako sposobu renderowania DirectX (ewentualnie OGL, ale już sobie DX ściągnąłem i podobno większe możliwości ma)

Do tego, jako środowisko programistyczne mam do dyspozycji:
Dev-C++;
Borland Turbo C++ Explorer
Ew. Borland C++ Builder 6
Visual Studio C++ 2005 Express
No i CodeBlocks.

Ew. W innych językach, jeśli chodzi o biblioteki:

Pascal/Delphi:
Borland Delphi 7
Free Pascal Compilator

.Net:
SharpDevelop
Visual Studio 2005 Express (Całe)

Jeśli chodzi o biblioteki, to DX SDK (Summer 2004) i OGRE SDK (w tej chwili nie pamiętam które, ale sprawdzę).

I teraz nie wiem nawet za bardzo od czegoś zacząć. Szukam jakiś tutoriali czy porad o programowaniu 3D, najlepiej po polsku.

Czy może ktoś zna tego typu źródła?

I druga sprawa. Co jeszcze będę potrzebował zgromadzić do tego projektu? (Biblioteki, SDKi itp...)

Z góry dziękuję za pomoc.

PS. Nie wiedziałem, czy umieścić to tutaj, czy w Newbie i dałem to tutaj, bo tam by pewnie od razu zaginęło.

0

Wydaje mi się że przynajmniej DX jest napisany w C++, więc przy jego użyciu powinieneś stosować C++. I to również w C++, wg opinini kilku programistów, najlepiej pisze się gry.

Od tego zacznijmy, że musisz umieć programować w b. zadawalającym stopniu. Biblioteki musisz poznać, nauczyć się je wykorzystywać, a to zajmuje troche.

Tutoriala "Jak zrobić gre" nie znajdziesz bo by musiał mieć kilka K stron.

I jeśli nie spełniaż choćby jednego warunku (wg. mnie) rzucasz się na głęboką wode....

0

Jak DX to tylko Managed czyli .NET - w połączeniu z dowolnym językiem .NET, choćby i C#. Dlaczego? Bo jest o wiele szybszy od wersji COM.

Sam Microsoft promuje dla DX konkretne 3 języki: C++ dla wersji COM oraz C# i VB.NET dla wersji Managed.

Poza tym DX w wersji COM zamiera i nie ma być już rozwijany.

0

Czyli miałbym się przerzucić na .NET? W sumie, to C# to mój ulubiony język, więc tak trudne to to nie będzie.
Nie szukam tutoriala, jak napisać grę 3D. Szukam raczej jakiś prostych tutoriali do programowania scen 3D itp, zawierających dobre przykłady. Kiedyś coś tam próbowałem w OGL pod Delphi, ale nie były to sceny zbyt wydajne.
Jeśli tak lepiej, to poszukamjednak pod C#, chociaż ja słyszałem po pierwsze, że c++ jest najlepszym językiem, jeśli o gry chodzi, a po drugie, że c# jest za wolne do takiej roboty.

0

C# niekoneicznie jest za wolne, napoczatku sie bedzie pisalo fajni ei wygodnie, ale dlubiac glebiej w co ciekawszych rzeczach szybko natrafisz na.. upierdliwosci ktore zjedza Ci mase czasu.. osobiscie polecam C++, ale on z kolei ma w druga strone - mase czasu zajma Ci podstawy - ale potem jak juz bedziesz mial "baze" to bedziesz szedl szybko.

uwagi o powolnosci C++ biora sie z dwoch zrodel: z niedouczenia osob wypowiadajacych sie (w zakresie pisania w C++), oraz z niedouczenia osob wypowiadajacych sie - w zakresie porownywanej do C++ platformy jezykowej - generalnie tylko C i assembler sa szybsze od prawidlowo napisanego programu w C++, ale C nie tak znowu wiele.. a to z bardzo prostej przyczyny - reszta jezykow jest oparta na C++ albo na C. np maszyna wirtualna javy. skoro wiec maszyna Javy jest napisana w C/C++ i wykonuje program Javy, no to logiczne jest ze mozna napisac program w C/C++ podobny do maszyny Javy ale wykonuajcy tylko to jedno zadanie -- i bedzie duzo szybszy od tamtego Javowego.. i sprobuj mi tu ktos udowodniac ze jakikolwiek program w Javie bedzie szybszy od C/C++.. JIT tez jest pisany w C/C++.

informacje o powolnosci pod COMowskim DX pochodza z bledow uzycia COM i samego C++. tak na prawde DX jest napisane tylko jako komponenty COM. a ze caly .NET jest bardzo scisle zwiazany z COM - to stosuje wiele optymalizacji, ktore tez mozna robic w C++, ale trzeba sie o to zatroszczyc a w .NET masz to 'gratis' -- np. C# jest naturalnie zabezpieczony przed niepotrzebnym kopiowanem obiektow i zbiorow danych, bo tak jak java prawie wszystko przekazuje prez referencje, a w C++ latwo sie zapomniec.

nie pozwolcie sobie zapomniec ze .NET bardzo czesto uzywa COM. wiele z podstawowych bibliotek .NET'a to tylko przykrywki na COM. rzeczywiscie - jak cos napisac kompletnie od zera w .NET to to bedzie czysty kod posredni, ale uzycie czegokolwiek z systemu najprawdopodobniej wyladuje w wolaniu comowskim to jakiegos starego komponentu siedzacego w systemie od pradawnych czasow..

0
Szczawik napisał(a)

Jak DX to tylko Managed czyli .NET - w połączeniu z dowolnym językiem .NET, choćby i C#. Dlaczego? Bo jest o wiele szybszy od wersji COM.

Nie wiem skąd ten wniosek??

Poza tym DX w wersji COM zamiera i nie ma być już rozwijany.

Oj nie sądze. Jak już to może być problem z dokumentacją, w co też wątpie... chociaż ;)

0

hm.. to mi przypomina ze jakies pare lat temu slyszlame ze wersja DirectX 9.3 jest ostatnia i wiecej nie bedzie.. potem wyszlo DirectX 9.3a, b i c.. a teraz nawet nie wiem, chyba zmienila sie nazwa calego pakietu i dalej jest ciagniety:}

edit:
DX10 aka WGF2:
http://www.benchmark.pl/artykuly/technika/DirectX10/strona-1.html

0

Nawet jeśli wybieram więc C++, to zastanawiam się, od czego zacząć programowanie DirectX. Od poznania samej biblioteki, czy gotowych silników jak OGRE, Irrlicht, czy Q3Engine.
Podstawy C++ mam i to duże. Prawie cały Megatutorial "Od zera do gier kodera" już mam za sobą ( ściślej mówiąc "Kurs C++"), ale czasami przeglądając znajduje np. w środku rzeczy o których nie miałem dotąd pojęcia (np. do niedawna nie miałem pojęcia czym są szablony, chociaż robiłem już aplikacje z zaawansowaną obiektowością).
Czy są więc jakieś dobre, darmowe (w/g niektórych te dwa słowa wykluczają się podobnie jak Microsoft/dobry produkt) podręczniki o DX na tym poziomie? Najlepiej po Polsku

0

Ja bym jednak polecał OpenGL. Czemu? A no bo DirectX jest imho zbyt związany z windą. Chcesz użyć dx10? Musisz kupić Vistę. Śmiem twierdzić, że z następnymi dx'ami i windowsami będzie podobnie. :/ A z ogl nie ma takich problemów :D (a jeśli chodzi o możliwości to z tego co wiem są praktycznie wyrównane - jakby co, zawsze warto zajrzeć na http://en.wikipedia.org/wiki/Comparison_of_Direct3D_and_OpenGL ;))

Nawet jeśli wybieram więc C++, to zastanawiam się, od czego zacząć programowanie DirectX. Od poznania samej biblioteki, czy gotowych silników jak OGRE, Irrlicht, czy Q3Engine.

Jak dla mnie lepiej od DX (skoro już musisz ;)), nie będziesz mógł przez całe życie korzystać z gotowych silników (no chyba że będziesz miał kasy jak lodu i kupisz np. Source od Valve ;)) więc lepiej nauczyć się jak samemu taki silnik zmajstrować.

A jeśli chodzi o IDE - sam programuje używając ogl pod Devem i nie narzekam, jest tam nawet gotowy 'szkielet' dla tej biblioteki ;)

0

Co do OGL to napotkałem ostatnio tyci problem związany z kartą graficzną na komputerze na którym kodzę (nie jest to najnowszy model). Problem ten wyszedł podczas testów silnika Irrlicht, a chodzi o to, że ponoć OpenGL nie może na tej karcie kokoRZystaćystać z multitexturingu (albo coś w tym rodzaju)
Jest to więc mały problem przy samych testach, bo nie chce mi się cochwila kopiować wszystkich plików gry na komp testowy, uruchamianie i potem szukanie bugów (na tym testowym kompie raczej kodzić nie mogę)

Co do IDE, to na Dev'a nie narzekam

0

@Marandil -> zawsze myślałem, że jak ogl nie może czegoś odpalić na sprzęcie to stara się zasymulować software'owo, ale mogę się mylić. A jeśli kodzisz pod windą to do multitexturingu (i innych takich) musisz użyć dodatkowych rozszerzeń (najlepiej ściągnąć 'bibliotekę' glee i mieć problem z głowy ;)), pod linuxem z tego co słyszałem nie ma takich problemów (chociaż nie testowałem).

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