Utilizator:
Parola:
Am uitat parola... | Cont nou!


Articole Resurse Echipe Competiții Proiecte Forum DevBlogs Locuri de muncă GDROMag Issue#1 GDROCon 2007

 
Forum » Programare » Altele » How to make an 3D game engine?




Pagina 1 din 1 [ 1 ]

Mesaj Info autor
    Postat la 30 May 2008 14:13:51    Subiect: How to make an 3D game engine?
KosmynC64 info:

KosmynC64:

Pt. inceput scuze daca locul de post este incorect.
In al doilea rand as dori sa va pot spune ca stiu cum este construit in mare un game engine 2D.
As dori daca se poate mai bine un link despre asa ceva pt. a nu va pierde timpul pt. scris.
Am cautat pe www.google.com si nu am gasit.

Daca folosesc ++i si nu i++ nu inseamna ca stiu prea mult C++


Status:
Înregistrat pe:
19 Apr 2008 22:03:16
Vârsta: 19 ani
Mesaje: 111
Locatie: Shikadi homeworld
Programator

 
    Postat la 30 May 2008 20:20:09    Subiect: < fara subiect >
raicuandi info:

raicuandi:

Cum se scrie un engine 3D?

Te apuci sa scrii un joc de la 0, si ideile care incep sa se repete prin cod (ex: manipulare de texturi, culling, incarcare de mesh-uri, metode de instancing etc.) le aranjezi mai frumos/mai flexibil putin in functii si cateva clase, cu un pic de bun simt. Restul ideilor daca nu tind sa se repete, le lasi in pace, chiar daca ai sentimentul ca o sa ajungi in iad pentru ca nu le-ai pus intr-un framework, ca restul codului.

Motorul meu fizic pt un joc la care lucrez sa scris -in stilul asta- in 2 zile, de la sine. Si merge brici. (sigur, are coliziuni foarte simple doar bounding-sphere, si nu stie de rotatie in jurul centrului de greutate, dar este pt un joc cu actiune 2D, in plus am control perfect asupra tot ce misca in joc)

Nu incerca invers, sa scrii mai intai enginu si dupaia jocul, ca nu o sa ajungi nicaieri. Iti spun din experienta.. (din pacate) In plus, fiindca o sa fie creat doar din teorii si nu din probleme reale, o sa te alegi cu o jucarie, si nimic 'serios'.

Exemplu la motorul meu fizic: erori de aproximare la calculele cu float-uri! Cateva ore de restructurari mai tarziu, si totul merge din nou. Cum e cand restructurezi ceva la care ai lucrat o zi jumate, si cum e cand te trezesti cu probleme reale dupa 2 luni de munca?..

Am si cateva exemple "grave" din Ogre3D, care din "afara" nu par a fi probleme, dar m-am luat destul de el deja.

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 
    Postat la 30 May 2008 21:41:17    Subiect: < fara subiect >
KosmynC64 info:

KosmynC64:

Mersi mult pt. sfat.
Am cateva intrebari:
-Proiectiile din 3d in 2d se fac automat de DX?
-Cand ai zis de culling te refereai la back face culling?(sper ca nu)

Daca folosesc ++i si nu i++ nu inseamna ca stiu prea mult C++


Status:
Înregistrat pe:
19 Apr 2008 22:03:16
Vârsta: 19 ani
Mesaje: 111
Locatie: Shikadi homeworld
Programator

 
    Postat la 31 May 2008 00:13:48    Subiect: Re:
boboS info:

boboS:

KosmynC64 a scris:

Mersi mult pt. sfat.
Am cateva intrebari:
-Proiectiile din 3d in 2d se fac automat de DX?
-Cand ai zis de culling te refereai la back face culling?(sper ca nu)


- Chiar daca DirectX te ajuta la capitolul asta tot e bine sa inveti putina geometrie sa iti faci tu un mini software renderer sa stii ce se intampla cu datele tale, cum sunt procesate de placa video. A facut Rimio un totorial misto pentru asta. In mod normal dupa ce iti incarci modelul cu vertecsii notati in sistemul 3D ei trec printr-o serie de transformari cu ajutorul API-ului DirectX procesati de placa video (majoritatea placilor mai de doamne ajuta) si rezulta imaginea din pixeli care umble backbufferul si cand termina de umplut devine front buffer sau se copie in front buffer adica ce o sa apra pe monitor. Nu ma avant in detalii, gasesti in tutorialul lui Rimio sau pe net.

- Banuiesc ca se referea la Frustum Culling unde iti calculezi pentru fiecare obiect un boundingbox si testezi daca acesta se afla in frustum (o piramida care reprezinta spatiul vizibil). Acuma daca ai prea multe obiecte de randat si trebuie sa verifici sa zicem sute de boundingboxuri o sa iti mearga jocul mai greu decat le-ai randa asa ca le poti grupa in cutii mai mari si verifici intai cutiile alea daca le vezi, si daca le vezi incepi sa verifici ce e inauntru (alea mai mici). Gasesti pe net documentatie.

Ultima editare efectuată de boboS pe 31 May 2008 00:18:21; 1 editări în total

"Noi ne facem ca muncim , ei se fac ca ne platesc"


Status:
Înregistrat pe:
03 Oct 2006 15:53:21
Vârsta: 26 ani
Mesaje: 961
Locatie: Galați
Programator

 
    Postat la 31 May 2008 03:27:04    Subiect: < fara subiect >
Raul info:

Raul:

este 3 si 18 dimineata, am venit suparat din oras dar am un sfat sincer:

sa iti faci un engine cat de cat bun o sa dureze cam inca 10 ani de acum in colo pentru tine. nu o zic cu rautate. ma uit la cati ani le ia la altii care chiar stiu foarte multe lucruri (vezi nekitu de la noi) sa faca un engine, la care adaug cativa ani deoarece pregatirea ta nu iti permite inca sa te apuci sa scrii asa ceva. (in orimul rand NU stii programare)

daca vrei sa faci ceva putin mai sus decat tentative, i-a ceva de pe net. open source, cu licenta, commercial, orice gasesti si care sa ti se para usor.
O sa dureze cam inca 2 ani pe putin sa inveti engine-ul + sa mai avansezi in progrmare Smile dar o sa fie mai usor. defapt ce zic eu, o sa fie ceva.. Razz

e frumos sa vrei sa faci tu totul de la 0 dar e aproape imposibil... Smile

alte chestii:
a face un Engine NU este tot una cu a face un joc
degeaba ai un ENGINE la dispozitie ca JOCUL tot nu se face singur
chiar daca ai avea un ENGINE + RESURSEle necesare pentru a face un joc timpul in care vei avea ceva de aratat va fi mare.


bafta multa oricare ar fi decizia ta

.NET Programmer
TV3D Licensed Programmer


Status:
Înregistrat pe:
31 May 2007 14:55:15
Vârsta: 25 ani
Mesaje: 533
Locatie: Bucuresti
Programator
Buasi Games
 
    Postat la 31 May 2008 06:50:18    Subiect: Re:
raicuandi info:

raicuandi:

E destul de usor sa randezi '2D' in Direct3D. Poti sa folosesti clasa ajutatoare D3DXSPRITE (cel mai usor!) sau poti sa ii trimiti vertecsii deja transformati: folosesti D3DDECLUSAGE_POSITIONT si acum poti sa pui pozitia vertecsilor de la 0 la width/height, de ex la rezolutia 640x480, pui un vertex in mijlocul ecranului daca ii setezi pozitia la (320, 240).

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 
    Postat la 31 May 2008 12:17:54    Subiect: Re:
KosmynC64 info:

KosmynC64:

Raul a scris:

in primul rand NU stii programare

Stiu programare si cand ai zis programare ma gandesc la orice fel de limbaj,in cazul meu eu stiu QuickBasic,si stiu cum arata un program,stiu cum sa citesc un program care dupa parerea mea este foarte important.
Desi trebuie sa invat un limbaj serios si "in pas cu moda" acesta fiind C++.Stiu destule comenzi pt. a rezolva o problema sau a face ceva matematic(sper ca m-am exprimat bine Wink),dar nu ma pricep la restul si recunosc ca nu stiu C++,desi am facut acel joc in C++ de la ZERO nu am implementat clasa de sprite-uri cum era in cartea care o detin,nu am facut acest lucru deoarece nu inteleg clasele(nu trebuie sa va chinuiti sa imi explicati)
Si chestia cu Engine-ul este importanta ca daca ai un engine 100% fuunnctional(sau cel putin 99% Razz) iti va usura munca cu mult.
Eu cand faceam joculete in QB era dezordonate(pt. altii) adica era uun text lung fara spatii fara nimic,cand implementam ceva nou trebuia sa citesc codul din nou sa vad pozitia corecta.Daca aveam un engine,totul se simplifica.

Ultima editare efectuată de KosmynC64 pe 31 May 2008 12:21:26; 1 editări în total

Daca folosesc ++i si nu i++ nu inseamna ca stiu prea mult C++


Status:
Înregistrat pe:
19 Apr 2008 22:03:16
Vârsta: 19 ani
Mesaje: 111
Locatie: Shikadi homeworld
Programator

 
    Postat la 07 Jun 2008 16:14:05    Subiect: < fara subiect >
GameGodN info:

GameGodN:

Iti dau un mic sfat: daca vrei sa scri un joc cauta niste motoare 2d sau 3d open sorce cauta pe net, pt ca eu am gasit o multime pe sourceforge.net . Si sunt scrise in mai toate limbajele de programare. Asa ca mult suces.
Daca vrei sa scrii un engine 2D sau 3D singur cauta niste carti mai intai, ca sa inveti ce trebuie sa stii. Unele carti se gasesc si pe site-urile de torrente.
Iti urez suces!!!
P.S. Informati si tutoriale am gasit si pe alte site-uri specializate pe game development. Wink

Design game for all to have funn and play them with addiction. Do not bore them and give all what they want if you cann.


Status:
Înregistrat pe:
16 Oct 2007 12:47:38
Vârsta: 27 ani
Mesaje: 180
Locatie: Sibiu
Game designer

 
    Postat la 07 Jun 2008 18:41:30    Subiect: Re:
Rimio info:

Rimio:

GameGodN a scris:

Iti dau un mic sfat: daca vrei sa scri un joc cauta niste motoare 2d sau 3d open sorce cauta pe net, pt ca eu am gasit o multime pe sourceforge.net . Si sunt scrise in mai toate limbajele de programare. Asa ca mult suces.
Daca vrei sa scrii un engine 2D sau 3D singur cauta niste carti mai intai, ca sa inveti ce trebuie sa stii. Unele carti se gasesc si pe site-urile de torrente.
Iti urez suces!!!
P.S. Informati si tutoriale am gasit si pe alte site-uri specializate pe game development. Wink


Ce-ai zis tu a zis si Raul si multi altii inainte.

If at first you don't succeed, you fail.



Status:
Înregistrat pe:
24 Mar 2007 21:50:44
Vârsta: 23 ani
Mesaje: 800
Locatie: Pitesti, Arges
Programator

 

Pagina 1 din 1 [ 1 ]


Server time: 02:31:19 24.05.2012



[ Termeni si conditii | Contact | F.A.Q. | Funny Pictures ]

© 2006 - 2012 Copyright 7thFACTOR Entertainment - All rights reserved