none
Desenvolvimento de Engine de Games - C++ [Apresentação também]

    Question

  • Olá usuários da msdn c++, eu sou novo nesta linguagem, eu programava em C# e curtia muito, mas fui percebendo que c++ tem muitas coisas magnifícas para serem exploradas. Queria saber como funciona o desenvolvimento de engines de criação de jogos, ou seja, como é criada uma engine para criar jogos em 2d/3d e tais coisas que são inclusas em um jogo, sei que é muito complexo ainda mais para mim que sou novato, mais só quero ter uma "caixa de ferramentas" antes de "atravessar a ponte do c++"... xD

    Me dêem uma luz! Agradeço.

    Thursday, February 09, 2012 12:02 AM

All replies

  • Amigo isso que vc chama de "Ponte do C/C++" dependendo do aplicativo ela pode ser curta, mas para desenvolvimento de jogos sinto muito ela é muito comprida para um usuario caseiro! mas caso vc discorde do que estou falando segue um link que poderá te ajudar   LINK AQUI.

    oque eu realmente aconselho vc é programar com as bibliotecas do XNA para C#, é muito bom para densenvolver jogos e muito facil para usuarios comuns!

    XNA SDK DOWNLOAD   Precisa do Visual Studio para poder usa-lo

    Jogo Exemplo -> Source completa

    Lista de jogos criados pelo XNA C#

    Entao.. repito, te sugiro que aprensa usar o XNA porque a microsoft ta investindo pesado nele, e ele tem capacidade!


    Thiii =)

    Thursday, February 09, 2012 1:31 AM
  • Amigo isso que vc chama de "Ponte do C/C++" dependendo do aplicativo ela pode ser curta, mas para desenvolvimento de jogos sinto muito ela é muito comprida para um usuario caseiro! mas caso vc discorde do que estou falando segue um link que poderá te ajudar   LINK AQUI.

    oque eu realmente aconselho vc é programar com as bibliotecas do XNA para C#, é muito bom para densenvolver jogos e muito facil para usuarios comuns!

    XNA SDK DOWNLOAD   Precisa do Visual Studio para poder usa-lo

    Jogo Exemplo -> Source completa

    Lista de jogos criados pelo XNA C#

    Entao.. repito, te sugiro que aprensa usar o XNA porque a microsoft ta investindo pesado nele, e ele tem capacidade!


    Thiii =)

    Editando... eu mesmo estou pensando em desenvolver um MMORPG basico parecido com TIBIA para aprendizado.

    Thiii =)

    Thursday, February 09, 2012 1:34 AM
  • Amigo isso que vc chama de "Ponte do C/C++" dependendo do aplicativo ela pode ser curta, mas para desenvolvimento de jogos sinto muito ela é muito comprida para um usuario caseiro! mas caso vc discorde do que estou falando segue um link que poderá te ajudar   LINK AQUI.

    oque eu realmente aconselho vc é programar com as bibliotecas do XNA para C#, é muito bom para densenvolver jogos e muito facil para usuarios comuns!

    XNA SDK DOWNLOAD   Precisa do Visual Studio para poder usa-lo

    Jogo Exemplo -> Source completa

    Lista de jogos criados pelo XNA C#

    Entao.. repito, te sugiro que aprensa usar o XNA porque a microsoft ta investindo pesado nele, e ele tem capacidade!


    Thiii =)

    Cara, eu não estou pensando em desenvolver jogos, apenas quero saber como utilizo o C++ para desenvolver a engine para criação de jogos simples que poderei melhorar mais tarde..

    Um exemplo de engine, é o Unity3D e o 3D Game Builder, especialmente o 3D GB ele é feito em C++ usando o Visual C++ 2010 de acordo descrito por seu criador e queria saber como funciona a criação destes tipos de aplicação.

    Thursday, February 09, 2012 1:46 AM
  • Cara, eu não estou pensando em desenvolver jogos, apenas quero saber como utilizo o C++ para desenvolver a engine para criação de jogos simples que poderei melhorar mais tarde..

    ??????????

    E por que não usa as prontas?

    Thursday, February 09, 2012 3:23 AM
  • Se eu usar as pronta eu terei que dar creditos é isso, entao o jogo nao será 100% feito por mim entao... para que usar engines prontas, se a microsoft disponibiliza o XNA que é tao facil de programar... vc deu uma olhada nos links que mandei acima?

    Thiii =)

    Thursday, February 09, 2012 3:32 PM
  • Cara, eu não estou pensando em desenvolver jogos, apenas quero saber como utilizo o C++ para desenvolver a engine para criação de jogos simples que poderei melhorar mais tarde..

    Sem lógica oque vc disse, ao iniciar uma engine de um jogo vc vai iniciar junto o desnevolvimento do jogo....  Oque seria a ENGINE Da Crytek? ela seria 80% do jogo, sendo 20% models, missoes e outras coisa, resumindo uma engine é um jogo, é ela que da vida, movimentos noção de gravidade etc...


    Thiii =)

    Thursday, February 09, 2012 3:34 PM
  • Amigo isso que vc chama de "Ponte do C/C++" dependendo do aplicativo ela pode ser curta, mas para desenvolvimento de jogos sinto muito ela é muito comprida para um usuario caseiro! mas caso vc discorde do que estou falando segue um link que poderá te ajudar   LINK AQUI.

    oque eu realmente aconselho vc é programar com as bibliotecas do XNA para C#, é muito bom para densenvolver jogos e muito facil para usuarios comuns!

    XNA SDK DOWNLOAD   Precisa do Visual Studio para poder usa-lo

    Jogo Exemplo -> Source completa

    Lista de jogos criados pelo XNA C#

    Entao.. repito, te sugiro que aprensa usar o XNA porque a microsoft ta investindo pesado nele, e ele tem capacidade!


    Thiii =)

    Opa Thiago, blz ??? Eu sou desenvolvedor Java comercial com J2SE. Trabalho em uma empresa como desenvolvedor mas tenho muita vontade de aprender a desenvolver games, andei pesquisando sobre isso, na verdade estou pesquisando muito sobre isso e queria saber quais os passos para desenvolver com XNA e se com XNA eu consigo desenvolver para XBox, PS2 e PS3. E se tem algum material q eu possa ler como referencia, tanto em portugues como em ingles.

    obrigado.

    Monday, February 27, 2012 6:28 PM
  • Eu também programo em C# e afins e resolvi estudar C++ para entender como funciona um jogo de PC/Videogame, e só posso dizer... putz.

    Também tive a mesma idéia e queria saber pelo menos por cima o que seria necessário, conhecimentos, ferramentas para se produzir um jogo do zero. Ainda não consegui fazer meu joguinho, mas acho que já avancei bastante.

    Primeiro, a diferença entre C# e C++ é abismal.
    Algo simples em C# como:

    MinhaClasse myClass = new MinhaClasse();
    MinhaClasse myClassRef = myClass;

    Funciona BEM diferente em C++.

    Depois de saber das diferenças, você precisará de bibliotecas de gráfico e áudio. Claro, você pode construí-las do zero, mas a complexidade matemática (é um trabalho pesado com matrizes) e tamanho dos códigos me fez desistir de tentar criar a minha. Então, resolvi usar OpenGL. Que eu conheça, as duas mais famosas são OpenGL e Direct3D, mas há outras bibliotecas mais simples e fáceis de usar por aí.
    Optei por OpenGL pela portabilidade e porque li que é muito parecido com o desenvolvimento de games para consoles.

    Aí você precisa aprender como funciona a biblioteca. Há várias opções, configurações, e o básico: Desenhar na tela.
    Você especifica pontos no espaço e pede que a biblioteca desenhe 1 pixel lá. E depois outro ponto no espaço, outro pixel, etc. Tudo isso vai gerar uma forma geométrica que vai depender do que você configurou a biblioteca para fazer antes de começar a desenhar, como por exemplo, quadrados ou triângulos.

    A soma de várias dessas formas vai dar um modelo 3D (ou um simples quadrado será um objeto 2D), e então você tem que aprender como aplicar textura e efeitos, sombra, iluminação e outros.

    Mas ainda falta uma coisa importante: Os modelos.
    Usando programas de 3D (ou desenhos 2D), você precisa salvar as informações destes desenhos em um arquivo. Este arquivo será lido várias vezes durante seu jogo, e por isso entender como funciona leitura/escrita de arquivos em C++ é importante.
    Você precisará definir um esquema de dados que você deverá buscar no seu código pelo nome do modelo que você quer, e então lendo linha a linha, caractere a caractere (isso se chama parsing), você guardará estes valores em variáveis no seu código, que serão usados no jogo.

    Para ter essas informações, você precisa ter um programa 3D (2D é mais simples) e conseguir salvar em um formato que você possa salvar essas informações. O Autodesk 3DS Max, meu preferido, exporta de 2 formas legíveis (não-binário): .ASE e .OBJ. Depois de estudar estes formatos e entender o que todas as letras e números significam, você conseguirá passar essas informações para suas variáveis depois de parsear esse arquivo.
    (Nota: Estes formatos *não* guardam todo tipo de informação, como animações, e se isso é algo que você precisa, você deverá procurar o Software Development Kit do programa em questão - 3DS Max - para desenvolver seu plugin com as informações que você quer)

    Isso é similar quanto à áudio, porém um pouco mais simples já que o formato básico de .WAV e .MP3 é padrão e você não precisará estudar nenhum SDK adicional ou de um programa diferente. Apenas a leitura e output.

    Depois de ter essa base pronta (que é a Engine em si), você precisará dos códigos base do seu jogo. De preferência, começando com os mais básicos para reaproveitar códigos depois, coisas como input (teclado, mouse e o que mais você for usar), câmera (visualização e movimento no espaço), arquivos de configuração (para salvar teclas, modos, etc), física simples (colisões de objetos 2D, 3D, movimentação, posicionamento), efeitos (deformações de objetos, mudança de texturas para animações 2D, lógica de bones para animação 3D) e o que mais for necessário.

    Com isso pronto você tem uma boa Engine base para começar a produzir um jogo. Aí é só você criar a lógica do seu jogo (se será RPG, Ação, Puzzle, etc), ter uma boa idéia, conseguir bons recursos (gráficos e áudios), juntar tudo e voilá!

    Há coisas mais complexas como linguagens scripts que você pode implementar no seu código para fornecer uma adaptação simples e prática em um nível mais alto, criação de um programa que edita seus arquivos de recursos (como os cenários, modelos 3D) e salva essas informações para você poder utilizar/construir mais facilmente os dados do seu jogo, mas isso já é um trabalho adicional muito grande...

    É pela complexidade que muitos recomendam o uso de engines prontas ou em linguagens como o C#/Java. Eu gosto de estudar e tenho curiosidade sobre o assunto, por isso continuo a fazer pouco a pouco meu jogo...

    Espero que tenha ajudado.

    Wednesday, February 29, 2012 6:38 PM
  • Paiva, a biblioteca XNA C#, ela tem suporte á XBOX e PC, Segue um link exemplo

    http://msdn.microsoft.com/en-us/library/bb203893.aspx

    Eu realmente achei muito simples de programar com XNA e fora que C# para Java nao tem tanta diferença vc irá aprender rápido!


    Thiii =)

    Monday, March 05, 2012 1:48 PM
  • amigo se voce quiser mesmo criar jogos com C++ use a API do DirectX...Instale o DirectX SDK e Leia a documentação, veja os exemplos......

    --Álvaro HSP--

    Wednesday, March 07, 2012 11:18 PM