Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos I / Aula

arrow_back Aula 01 - Introdução à Interface do Motor de Jogos

A Utilização de Motores de Jogos

Explorando Recursos de APIs

Apesar da facilidade que ambas as APIs trouxeram aos desenvolvedores gráficos, ainda mostrava ser proveitosa a existência de novas camadas acima dessas APIs, contribuindo para que os desenvolvedores pudessem atingir seus objetivos de maneira mais simples e rápida. Nesse novo nível de abstração, estão as bibliotecas que encapsulam o OpenGL ou o DirectX e permitem ao programador realizar as tarefas de um modo ainda mais simples. A fim de dar um exemplo mais prático, vejamos um trecho de código para desenhar um cubo em OpenGL, como na Listagem 01:

AخA
1
// FRENTE
2
glBegin(GL_POLYGON);
3
    glVertex3f(  0.5, -0.5, -0.5 );      
4
    glVertex3f(  0.5,  0.5, -0.5 );      
5
    glVertex3f( -0.5,  0.5, -0.5 ); 
6
    glVertex3f( -0.5, -0.5, -0.5 );      
7
glEnd();
8
 
9
// TRASEIRA
10
glBegin(GL_POLYGON);
11
    glVertex3f(  0.5, -0.5, 0.5 );
12
    glVertex3f(  0.5,  0.5, 0.5 );
13
    glVertex3f( -0.5,  0.5, 0.5 );
14
    glVertex3f( -0.5, -0.5, 0.5 );
15
glEnd();
16
 
17
// DIREITA
18
glBegin(GL_POLYGON);
19
    glVertex3f( 0.5, -0.5, -0.5 );
20
    glVertex3f( 0.5,  0.5, -0.5 );
21
    glVertex3f( 0.5,  0.5,  0.5 );
22
    glVertex3f( 0.5, -0.5,  0.5 );
23
glEnd();
24
 
25
// ESQUERDA
26
glBegin(GL_POLYGON);
27
    glVertex3f( -0.5, -0.5, 0.5 );
28
    glVertex3f( -0.5,  0.5,  0.5 );
29
    glVertex3f( -0.5,  0.5, -0.5 );
30
    glVertex3f( -0.5, -0.5, -0.5 );
31
glEnd();
32
 
33
 // TOPO
34
 glBegin(GL_POLYGON);
35
    glVertex3f(  0.5,  0.5,  0.5 );
36
    glVertex3f(  0.5,  0.5, -0.5 );
37
    glVertex3f( -0.5,  0.5, -0.5 );
38
    glVertex3f( -0.5,  0.5,  0.5 );
39
glEnd();
40
 
41
// BASE
42
glBegin(GL_POLYGON);
43
    glVertex3f(  0.5, -0.5, -0.5 );
44
    glVertex3f(  0.5, -0.5,  0.5 );
45
    glVertex3f( -0.5, -0.5, 0.5 );
46
    glVertex3f( -0.5, -0.5, -0.5 );
47
glEnd();
48
 
49
glFlush();
50
glutSwapBuffers();
Listagem 1 - Código para criar um Cubo em OpenGL.
Fonte: WikiHow

Wow! E isso é só a parte de desenho em si. Esse cubo não tem uma textura, não tem cores, não tem nada. E ainda mais, não estamos mostrando a parte de criação da janela, de inicialização da câmera, de posicionamento da câmera, blá-blá-blá... Ah! Estamos falando apenas de todos os detalhes gráficos da coisa! Imagina que também temos a parte de áudio, de física, de inteligência artificial... Complicado, né?! Porém é bem mais fácil que aquele Assembly, você concorda?

Que tal discutir com seus colegas no fórum suas impressões sobre ambos?

Versão 5.3 - Todos os Direitos reservados