![]() |
![]() |
|
Programiranje Programski jezici, tehnike, alatke... |
![]() |
|
Alatke vezane za temu | Vrste prikaza |
![]() |
#1 |
V.I.P. Programiranje
|
![]()
Pozdrav svima!
![]() Naslov teme nam kaže, započeo sam projekat 3D Engine-a pisanog u C++-u koji koristi Direct3D 9. Mislio sam da bi možda mogao ovo brže i kvalitetnije da uradim uz pomoć nekih forumaša koji već imaju iskustva u ovome, pošto ja još imam da učim. Naravno, takođe mislim da bi tako, ako radimo zajedno, lakše i brže napravili kvalitetniji engine sa dodatnim mogućnostima. Ko želi da se uključi u ovaj projekat, neka me kontaktira na PM. Očekujem i javne komentare na ovu ideju. ![]() Dakle, da zađemo malo dublje u samu konstrukciju engine-a, on bi (razume se) bio DLL koji se može pozivati iz drugih aplikacija. A sada malo tehničkih detalja: Cilj engine-a bi bio da korisnicima približi način poziva starog D3D-a sedmice Retained Mode. Mislim na to da se sve radi na način malo pristupačniji nego plain Direct3D 9 jer bi sve tako bilo lakše za početak developing-a neke čak možda i komplikovanije 3D igre. Engine bi trebalo da podržava sve one advanced features D3D-a 9, kao što je recimo blur, i oni različiti efekti koje on ima kao neke advanced metode. Pored samog Direct3D-a, engine bi možda mogao da se bavi i input-om, zvukom ili 2D grafikom (za HUD) mada nama je najbitnije 3D. Odabrao sam C++ zbog toga što ne zahteva .NET framework, a uz to je (koliko sam ja razumeo neke elektronske izvore) i brži od C#-a. Interesuje me šta forum misli o ovakvoj ideji. Ko god želi da se uključi u projekat neka se javi u ovoj temi ili na PM. Pozdrav! ![]() EDIT: Imam i problem u vezi header fajlova u nekim sample-ovima u DirectX 9 SDK, kompajler prijavljuje da ne može da nađe d3dx9.h i d3dxof.lib dok d3d9.h i mnoge druge .lib fajlove nalazi i include-uje bez problema. Fajlovi koje sam naveo postoje u istom direktorijumu sa fajlovima koje je normalno pronašao. Zna li neko šta da radim? Poslednja ispravka: Geomaster (16.6.2008 u 12:31) |
![]() |
![]() |
![]() |
#2 |
Veteran
Član od: 17.1.2008.
Lokacija: Београд
Poruke: 636
Zahvalnice: 481
Zahvaljeno 128 puta na 85 poruka
|
![]()
Mozda ti headeri includuju neke druge koje ti nemas?
|
![]() |
![]() |
![]() |
#3 |
V.I.P. Programiranje
|
![]()
Ne bih rekao, on cele header-e ne može da nađe. Npr. evo ga parče koda koje includuje sve te header-e:
Kod:
#include <d3d9.h> #include <d3dx9.h> Btw, nema nikog? Barem da kaže šta misli??? Weird... EDIT: Evo preko Windows search-a sam tražio fajl d3dx9.h i d3d9.h i našao ih je na tom jednom mestu. Upravo sam locirao i već kompajlovane .exe verzije tih primera i one rade perfektno. Ma dobro, problem kao problem, rešiću ga ja, ali mi je zaista čudno da baš niko ne postuje ni jedan komentar na ideju. Vidim da tema ima 53 pregleda... LOL Poslednja ispravka: Geomaster (17.6.2008 u 13:16) |
![]() |
![]() |
![]() |
#4 |
Starosedelac
Član od: 25.1.2007.
Lokacija: Beograd
Poruke: 2.087
Zahvalnice: 213
Zahvaljeno 300 puta na 236 poruka
|
![]()
Ideja je je veoma zanimljiva ali dzabe, ja recimo tek ucim C++ pa ne bi znao nista da uradim prakticno, a onaj ko zna C++ radi negde i nema vremena da se bakce sa ovim...
verujem da ce kad tad neko da ti se pridruzi ![]() |
![]() |
![]() |
![]() |
#5 |
V.I.P. Programiranje
|
![]()
Pa ja sam na primer, veteran D3D-a osmice u Visual Basicu, a C++ znam za sad samo sintaksu i još nešto tu i tamo, ali sa obrzirom na sličnost Direct3D-a za VB i C++ mogao bih da počnem da pravim 3D igre...
![]() Btw, mogao bi i ti da se pridružiš... Nema veze što tek učiš C++, ako imaš vremena i volje... Uradićemo već nešto ![]() Edit: Yaay. Uspeo sam. Samo je trebalo prekopirati sve *.h i *.lib fajlove d3d-a 9 u VC++ Install Directory... ![]() ![]() ![]() ![]() ![]() ![]() Poslednja ispravka: Geomaster (17.6.2008 u 13:10) |
![]() |
![]() |
![]() |
#6 |
Novi član
Član od: 4.10.2008.
Poruke: 10
Zahvalnice: 13
Zahvaljeno 0 puta na 0 poruka
|
![]()
Geomaster, ovo sto si napisao deluje vrlo primamljivo mada nisam bas sasvim siguran sta projekat treba da radi, vidim da spominjes neki stari retail 7. Inace nemoj se previse nadati da ti mogu pomoci, tek pocinjem sa Dx9 i ucim Javu vec odavno. Ako se jos uvek zanimas sa ovim ajde mi potvrdi nekako mozda mozemo nesto da se dogovorimo
![]() Pozdrav. Martin |
![]() |
![]() |
![]() |
#7 |
V.I.P. Programiranje
|
![]()
Pa sad... Bilo kakvu knjigu za DirectX možeš odmah da pređeš, ali nisi naveo ni u kom programskom jeziku radiš (Java ili...
![]() ![]() I da, Direct3D je do sedmice imao RM (retained mode) koji je dozvoljavao build scene (kao neki scenemanager) ali je radio mnogo sporije nego direktni immediate mode. Mislio sam da se ovde nešto tako implementira, ali da bude mnogo brže. |
![]() |
![]() |
![]() |
#8 |
Starosedelac
|
![]()
Dakle shta si odluchio?
![]() |
![]() |
![]() |
![]() |
#9 |
V.I.P. Programiranje
|
![]()
Ovaj engine će pričekati dok ne završim Lost World Zetu
![]() |
![]() |
![]() |
![]() |
#10 |
Starosedelac
|
![]()
ok, ja cu zapocheti projekat
![]() razmishljao sam i o deljenju engine-a u vishe pod grupa, npr. jedan deo samo za renderovanje, drugi deo brine o muzici, treci deo sadrzi fiziku ali nisam pronashao nachin da sve to bezbolno ujedinim u jednu stvar... i da, ima li neko ideju gde mogu da pronadjem neke stvari vezane za arhitekturu 3d engine-a? |
![]() |
![]() |
![]() |
#11 |
V.I.P. Programiranje
|
![]()
Pa sad, ima puno tutorijala, svaki će govoriti drugu stvar -_-. Najbolje je da nađeš neki OpenSource engine koji je najsličniji tipu engina koji praviš, proučiš source kod i po ugledu na tu arhitekturu pravš svoj engine. Lično moja preporuka, možda je rad prema nekom uputstvu/tutorialu sigurniji ali ja ću tako da radim za ImaginatoR-a (kad krenem da ga radim
![]() Pozz ![]() |
![]() |
![]() |
![]() |
#12 |
Starosedelac
|
![]()
Uzmi ti engine od 30+ fajlova i ne znam koliko linija pa prouchi
![]() |
![]() |
![]() |
![]() |
#13 |
V.I.P. Programiranje
|
![]()
Ne znam kako stoje stvari sa tutorialima -> nisam ih ni tražio, ali sa engine-om... Pa hm... Probaj da ideš redom
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#14 |
Starosedelac
|
![]()
Pravio sam ja ranije engine u XNA (planiram i sada isto, samo bolji), ali nije to tako jednostavno imash EngineCore->Device->SceneManager itd...
|
![]() |
![]() |
![]() |
#15 |
V.I.P. Programiranje
|
![]()
Pa i nije
![]() ![]() ![]() |
![]() |
![]() |
![]() |
#16 |
Starosedelac
|
![]()
Ubedljivo najveci problem su animacije modela, AI, fizika i logika igre...
|
![]() |
![]() |
![]() |
#17 | |
Novi član
Član od: 4.10.2008.
Poruke: 10
Zahvalnice: 13
Zahvaljeno 0 puta na 0 poruka
|
![]() Citat:
Aha. Jezik je JAVA, a zanima me Direct3D. Mada bih pored toga morao da gulim i C++. Dobro, imam ja jos dosta da ucim ![]() ![]() |
|
![]() |
![]() |
![]() |
#18 |
V.I.P. Programiranje
|
![]()
Java nije dobar izbor za D3D zato što je spora, čak štaviše ja mislim da za Javu nema nikakvih biblioteka koje importuješ za DirectX (mada možda i postoje). Moja iskrena preporuka je da pustiš Javu (ili je možeš iskoristiti da naučiš osnove), onda na C++ (jer je migracija sa Jave na C++ skoro bezbolna, osim što ćeš imati problema dok se snađeš sa memorijom itd. Ako vidiš da ti je C++ težak, onda nauči C pa se baci na C++. Uvek je tu i opcija Visual Basic-a (.NET) ali je pre verzije .NET totalno išao u kontru ostalim jezicima, samim tim što je bio pravljen za početnike i nema veliku brzinu (što se tiče VB.NET-a - za njega ne znam). Ako ti se Java sviđa, možeš ostati na njoj (na kraju krajeva dobra je jer je portabilna) ali moja preporuka je da se ne zadržavaš puno na njoj ako želiš da koristiš Direct3D.
|
![]() |
![]() |
![]() |
#19 |
Starosedelac
|
![]()
Krenuo sam sa izradom.. inache engine ce biti namenjen FPS igrama (i jednom projektu sa placeholderima - kockama koji cu da uradim)... Shto se tiche fizike, koristice JigLibX (http://www.codeplex.com/JigLibX), i vecinu stvari odavde - http://creators.xna.com/education/catalog/ .
Senke ce biti problem... Animacije isto poshto necu imati model da eksperimentishem ali postoji isto neki XNA lib za animaciju modela na codeplex-u. O strukturi zasad mogu da kazem samo neke osnovne stvari koje cu uraditi. Poshto sam shvatio da je nemoguce uraditi univerzalan engine, i da je mnogo zamorno u igri podeshavati efekte (npr. shadere itd.) sve ce to engine da radi pomocu statichkih loader klasa i manageovanje fajlova ce biti odradjeno bolje nego shto sam ranije radio. Poshto sam razmishljao o tome da igra mora da ima razlichita stanja (meni -> drugi meni -> igra -> meni za pauzu), odluchio sam da odradim neshto na fazon ovog http://creators.xna.com/en-us/sample...tatemanagement .. Ne uzimam taj kod zbog toga shto mi se ne svidja bash princip rada. Inache, engine ce imati svoje Screenove i svaki screen ce imati razne komponente koje mogu da se dodaju. U jednom trenutku moze biti aktivan samo jedan screen, i on preuzima ceo input/update/draw. Ukoliko se doda nov screen, prethodni ostaje ali se vishe ne updateuje/renderuje sve dok se ne sklone svi screenovi koji su ubacheni posle njega. Po tom principu, ako imamo game screen i dodje pause screen, on ce preuzeti sve dok ga ne sklonimo. Kamera - planiram da odradim mogucnosti za cut-scene, jedino shto treba provaliti kako da interpoliram kameru :P Shto se tiche FPS kamere, smislicu neshto. Grafika - tu dolazi deo koji moram dosta da razmislim... per-pixel osvetljenje ili per-vertex, vishe svetla, performanse.. teshko izbalansirati! Fizika - kao shto sam rekao, engine je sjajan i mislim da cu moci da ga iskoristim za detekciju kolizije opushteno. Ne mogu trenutno da se setim josh stvari, tako da pishite neshto xD Inache engine ce se zvati Phenomenon... |
![]() |
![]() |
![]() |
#20 |
Banned
Član od: 20.12.2005.
Lokacija: banjaluka
Poruke: 3.220
Zahvalnice: 278
Zahvaljeno 363 puta na 216 poruka
|
![]() |
![]() |
![]() |
![]() |
Bookmarks sajtovi |
|
|
![]() |
||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Direct3D problem | Marshall George | Grafika | 2 | 5.10.2007 14:34 |
Koji mi engine preporucujete??? | PeTkO | Pravljenje igara | 8 | 26.7.2007 13:45 |
2d game engine | Damjan | Pravljenje igara | 48 | 22.6.2007 11:35 |
N2D Engine | EclipsE | Pravljenje igara | 4 | 22.8.2006 23:34 |