PDA

Pogledaj cijelu verziju : GD.Agora



RayDX
04-01-2008, 12:39
Evo, baš promatram malo forum, i svuda se spama, ruši, flejma, locka... Pa evo došao na ideju da u naš mirni kutak postavimo agoru. Možda ste čuli što je agora iz Stare Grčke. To je bio glavni trg gdje su Grci se okupljali da bi se raspravljali o različitim temama, opuštali se bla bla. E ovdje bi mogli baciti pokoju novu vijest iz gaming industrije, možda i popričati i neku foru baciti, sve u granicama zdravog foruma.

Evo, pošto sam ja otvorio, bacimo se na Carmacka, njegov id tech 5, po vama, hoće li on biti sposoban konkurirati na tržištu svojoj daleko komercijaliziranoj braći, CryENGINEu 2 i UE3ici. Ako već niste čuli za novi engine u id tech liniji, nije baš i neko čudo jer većinu informacija id software skriva od očiju javnosti. Evo što sam ja okupio:

Carmackova prezenatcija - video JuBiTo (HvuTtrkVtns)
Malo informacija na wikipediji (http://en.wikipedia.org/wiki/Id_Tech_5)

Inače, po meni, definitivno će imati veće poštovanje od mnogih game developera pošto idu na OpenGL koji Carmack gura od samog početka i pokazuje da nije ništa slabiji od njegove DirectX 10 braće, a usto i nije zaključan na windows.

SkunK
04-01-2008, 12:48
Ma Carmak je car :)

Uglavnom mislim da ima jos dinamita u njemu i da ga nebi trebali olako shvacat konkuretni.

Luka
04-01-2008, 12:56
da .. gledao sam taj video .. impresivno

RayDX
04-01-2008, 12:58
Ma Carmak je car :)

Uglavnom mislim da ima jos dinamita u njemu i da ga nebi trebali olako shvacat konkuretni.

Ja se definitivno slažem da ima dinamita, no malo mi je problematično što kasni za svojim zlim blizancima. No, valjda će ga fino optimizirati i sve oboriti s nogu. Baš me zanima što će burek reći na temu :D

SkunK
04-01-2008, 14:00
Netreba ga podcjenjivat, Carmack osim sta je vrlo inteligentna osoba s puno iskustva - je i vrlo vrlo mocan programer i dobar vodja.

Ovo sigurno nije zadnje sta cemo od njega cuti :nonono:

Plexihack
04-01-2008, 14:46
Odlično,poprilično impresivno.
Najbolje od svega šta je to OpenGL, a ne
"napiši-3-kilometra-koda-za-jedan-prozor-directX".

Možda ću napisat koji tutorial za OGL,ko zna...

RayDX
04-01-2008, 19:47
Odlično,poprilično impresivno.
Najbolje od svega šta je to OpenGL, a ne
"napiši-3-kilometra-koda-za-jedan-prozor-directX".

Možda ću napisat koji tutorial za OGL,ko zna...

Pa nije baš tri kilometra:


// osnovni header fileove koji su nam potrebni

#include <windows.h>
#include <windowsx.h>
#include <d3d9.h>
#define SCREEN_WIDTH 1680
#define SCREEN_HEIGHT 1050
#define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
#define KEY_UP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)


// uključi Direct3D biblioteku u projekt
#pragma comment (lib, "d3d9.lib")


// globalne deklaracije
LPDIRECT3D9 d3d; // pointer prema našem D3D sučelju
LPDIRECT3DDEVICE9 d3ddev; // pointer prema klasi uređaja
LPDIRECT3DVERTEXBUFFER9 t_buffer = NULL; // vertex buffer yay.

//prototip funkcija vezanih uz Direct3D
void initD3D(HWND hWnd); // sets up and initializes Direct3D
void render_frame(void); //renderira jedan frejm/sliku/render
void cleanD3D(void); // Čisti nered koji smo napravili
void init_graphics(void); // inicijalizira grafiku

struct CUSTOMVERTEX {FLOAT X, Y, Z, RHW; DWORD COLOR;};
#define CUSTOMFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)

//prototip WindowProc funkcije (sjećate se, ona koja rukuje sa porukama)

LRESULT CALLBACK WindowProc(HWND hWnd,
UINT message,
WPARAM wParam,
LPARAM lParam);


// ulazna točka u svaku windows aplikaciju

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// "ručica za prozor", ispuni se funkcijom
HWND hWnd;
// struktura prozora
WNDCLASSEX wc;

// očisti strukturu prozora
ZeroMemory(&wc, sizeof(WNDCLASSEX));

// ajmo popuniti članove ove strukture
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)WindowProc;
wc.hInstance = hInstance;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.lpszClassName = L"WindowClass1";

// registriraj klasu koristeći informacije date wc-u
RegisterClassEx(&wc);

// napravi prozor i koristi rezultat kao ručicu (hWnd)
hWnd = CreateWindowEx(NULL,
L"WindowClass1", // Ime windows klase
L"PCPlay Ucionica", // Naziv prozora
WS_EX_TOPMOST | WS_POPUP, // stil prozora
0, 0, // početne koordinate, fullscreen == stavit na (0,0)
SCREEN_WIDTH, SCREEN_HEIGHT, // širina i visina zaslona
NULL, // nema roditeljskog prozora
NULL, // ne koristimo izbornik
hInstance, // ručica aplikacije (remember)
NULL); // ne koristi se sa više prozora

// napokon ju prikaži:
ShowWindow(hWnd, nCmdShow);
// inicijalizacija D3Da
initD3D(hWnd);

// ulaz u glavni loop

// ova struktura sadrži predivne poruke koje nam Windows šalje
MSG msg;

// primijetite kako ovo zapravo stvara infinite loop
while(TRUE)
{
// Provjeri za porukice u event queueu... Kako glupa riječ ^^
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
// Ako je poruka jednaka WM_QUIT, break out!
if (msg.message == WM_QUIT)
break;

// Standarno procesiranje kroz WindowProc funkciju
TranslateMessage(&msg);
DispatchMessage(&msg);
}
//pozivamo funkciju da renderira unutar loopa
render_frame();
// provjeri za escape key
if(KEY_DOWN(VK_ESCAPE))
PostMessage(hWnd, WM_DESTROY, 0, 0);

}
//kada izađe iz loopa, zatvori Direct3D uređaj i direct3D
cleanD3D();
// vrati ovaj dio WM_QUITa Windowsu
return msg.wParam;
}

// ova funkcija rukuje sa svim porukama koje naša aplikacija prima
// dakle, poštar :)

LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
// traži određenu akciju koja treba biti provedena pri dobivanju poruke
switch(message)
{
// ovo se pročita kada korisnik pritisne crveni X
case WM_DESTROY:
{
// zatvori aplikaciju
PostQuitMessage(0);
return 0;
} break;
}

// rukuj sa svakom porukom koju WindowProc nije procesirao osobno
return DefWindowProc (hWnd, message, wParam, lParam);
}

// ova funkcija priprema Direct3D za korištenje
void initD3D(HWND hWnd)
{
d3d = Direct3DCreate9(D3D_SDK_VERSION); // create the Direct3D interface

D3DPRESENT_PARAMETERS d3dpp; // stvaramo strukturu koja će sadržavate neke parametre, kul, zar ne?

ZeroMemory(&d3dpp, sizeof(d3dpp)); // počisti istu za korištenje
d3dpp.Windowed = FALSE; // program je zasad prozor
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; // odbaci stare slike
d3dpp.hDeviceWindow = hWnd; // odredi koji će prozor D3D koristiti
d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8; // postavi back buffer na 32 bitni mode.
d3dpp.BackBufferWidth = SCREEN_WIDTH; // postavi back buffer na određenu širinu
d3dpp.BackBufferHeight = SCREEN_HEIGHT; // postavi back buffer na određenu visinu


// sada stvori uređaj na bazi svih podataka gore.
d3d->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp,
&d3ddev);

init_graphics();

return;
}

// inicijalizira grafiku općenito, 3d modeli n crap
void init_graphics(void)
{
//napravi tri vertex koristeći CUSTOMVERTEX strukturu
CUSTOMVERTEX t_vert[]S=
{
{ 320.0f, 50.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(0, 0, 255), },
{ 520.0f, 400.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(0, 255, 0), },
{ 120.0f, 400.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(255, 0, 0), },
};

// napravi vertex i spremi pokazivač u t_buffer, koji je kreiran globalno
d3ddev->CreateVertexBuffer(3*sizeof(CUSTOMVERTEX),
0,
CUSTOMFVF,
D3DPOOL_MANAGED,
&t_buffer,
NULL);

VOID* pVoid; // prazni pokazivač

t_buffer->Lock(0, 0, (void**)&pVoid, 0); // zaključaj vertex buffer
memcpy(pVoid, t_vert, sizeof(t_vert)); // kopiraj vertexe u zaključani buffer
t_buffer->Unlock(); // otključaj vertex buffer

return;
}


// ovu funkciju koristimo da renderiramo jedan frame
void render_frame(void)
{
// pozadinu oboji u crno.
d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);

d3ddev->BeginScene(); // započinje 3D scenu

// postavi Flexible Vertex Format
d3ddev->SetFVF(CUSTOMFVF);

// odaberi vertex buffer koji treba prikazati
d3ddev->SetStreamSource(0, t_buffer, 0, sizeof(CUSTOMVERTEX));

// kopiraj vertex buffer u back buffer
d3ddev->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);



d3ddev->EndScene(); // završava 3D scenu

d3ddev->Present(NULL, NULL, NULL, NULL); // prikazuje renderiranu "scenu"

return;
}

// ova funkcija čisti nered za nama
void cleanD3D(void)
{
t_buffer->Release(); // oslobodi vertex buffer
d3ddev->Release(); // oslobodi D3D grafički uređaj
d3d->Release(); // oslobodi Direct3D
return;
}

Plexihack
04-01-2008, 20:02
ne,2 i po je :D

ali ipak je puuuuuno duže u odnosu na OpenGL(ako se koristi GLUT):


#include <gl/glut.h>

bool fullscreen = false;

bool init()
{
return true;
}

void display()
{
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT);

glFlush();
glutSwapBuffers();
}

int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitWindowPosition(50, 50);
glutInitWindowSize(500, 500);

glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);

glutCreateWindow("OMG KAKO PUNO!!!111ONEONEONE");

glutDisplayFunc(display);

if (!init())
return 1;
glutMainLoop();

return 0;
}

SkunK
04-01-2008, 20:14
Kvragu i DX taj zasto mora tako velik kod bit za tako simple stvari...

Luka
04-01-2008, 20:17
bitno da XNA ima manje od svih :)

upravo završavam svoju igru u xna-u :killyou:

Plexihack
04-01-2008, 20:18
bitno da XNA ima manje od svih :)

upravo završavam svoju igru u xna-u :killyou:

Ne zaboravi pokazati :D

inache,ovdje ima najmanje lockanih tema na svim (stalnim) podforumima i većina ih je lokana na zahtjev.

RayDX
04-01-2008, 20:19
Kvragu i DX taj zasto mora tako velik kod bit za tako simple stvari...

Ono prikazuje trokut heheh :D Ali također ti nudi više kontrole nad nekim low level stvarima koje OpenGL nasreću isto može ali nisu esencijalne pri kreiranju jednostanvijih stvari. Je l' :)

Plexihack
04-01-2008, 20:34
Kvragu i DX taj zasto mora tako velik kod bit za tako simple stvari...

Ono prikazuje trokut heheh :D Ali također ti nudi više kontrole nad nekim low level stvarima koje OpenGL nasreću isto može ali nisu esencijalne pri kreiranju jednostanvijih stvari. Je l' :)

Kod za trokut ima 4 linije više :D

SkunK
04-01-2008, 21:05
Sve zavisi do programera i njegovog znanja, ako dobro barata znanjem i kodom neke stvari se mogu uvelike smanjiti.

RayDX
04-01-2008, 21:18
Sve zavisi do programera i njegovog znanja, ako dobro barata znanjem i kodom neke stvari se mogu uvelike smanjiti.

Uglavnom, kôd se može uvelike olakšati, ja sam ubacio dosta opreza da stalno radi te hrpetinu komentara. bez toga bi se prepolovio :D

Plexihack
20-01-2008, 18:42
Ajde da oživim ovu temu...

Se isplati čitati Game Programming Series knjige?
Malo su mi :S

btw,još 5 postova do 500 :D

RayDX
20-01-2008, 21:27
http://www.gamedev.netSima hrpetinu reviewa GD related knjiga i članaka

RayDX
25-01-2008, 21:20
Evo sad mi je burek dao ime jednog topica na gamedevu... Hhahaha...
HHAHAHAHAHAHAH (http://www.gamedev.net/community/forums/topic.asp?topic_id=407334&PageSize=25&WhichPage=1)

Neki lik od 13 godina radio kao custom OS, game konzolu baziranu na starim PC dijelovima te igre za istu... Hahahha, ukočio sam se od smijanja.

Luka
25-01-2008, 21:26
Evo sad mi je burek dao ime jednog topica na gamedevu... Hhahaha...
HHAHAHAHAHAHAH (http://www.gamedev.net/community/forums/topic.asp?topic_id=407334&PageSize=25&WhichPage=1)

Neki lik od 13 godina radio kao custom OS, game konzolu baziranu na starim PC dijelovima te igre za istu... Hahahha, ukočio sam se od smijanja.

heh lol ..

Plexihack
25-01-2008, 22:16
Bwahahahaha...ja sam sa 13 (prije godinu dana) mislio raditi OS...za 3 godine

Luka
25-01-2008, 23:05
Today, Suicidal Interactive Entertainment bought out FullThrottle MultiMedia. The CEO of FTMM, fullthrottle, is now CEO of SIE, of course is not CEO/Founder like tylor2bcool.

Order in power:

tylor2bcool
fullthrottle

:rotfl: :rotfl:


Some people have shown concern that the Crystal Tiger won't be able to keep up with it's next-gen cousins. As the hardware designer, I can tell you that this is not the case. The Crystal Tiger is one of the strongest consumer devices available (besides the PS3). With a quad-core, dual threaded CPU that runs at a minimum of 2.48 GHz, this is just below the Xbox360. However,Swhen we overclock our CPU to 4.5 GHzS( with little to no heat increase due to our efficient cores and cooling), we're running at the same speed as the PS3.

:rotfl: :rotfl:


Suicidal Interactive Entertainment indeed.

RayDX
27-03-2008, 20:34
---> DirectX tutorial is being produced as we speak... Standby

Luka
27-03-2008, 21:56
heh .. baš sam se danas sjetio ove teme

RayDX
27-03-2008, 23:44
Crkao sam... Ali se isplatilo :rotfl:

RayDX
19-04-2008, 23:24
Malo pitanjce, koliko bi vas interesirao HLSL tutorial? (High Level Shader Language)

Luka
20-04-2008, 09:21
Malo pitanjce, koliko bi vas interesirao HLSL tutorial? (High Level Shader Language)

mene bi :roll: