Eu perguntei isso anteriormente neste tópico no stackoverflow.com. Um dos primeiros comentários me redirecionou aqui para gamedev.stackexchange.com, então estou repostando aqui.
Pesquisando perguntas relacionadas, encontrei uma série de perguntas muito específicas, mas receio que elas tenham se revelado infrutíferas para mim e, após 4 horas no Google, não estou mais perto do que comecei, então senti que estender a mão para uma comunidade poderia ser em ordem.
Primeiro, meu objetivo: nunca fiz um jogo antes, embora tenha confundido a possibilidade várias vezes. Decidi finalmente me sentar e começar a aprender a codificar jogos, usar mecanismos de jogos etc. Tudo para que um dia (espero que em breve) eu seja capaz de criar jogos funcionais (embora simples). Posso começar a adicionar complexidade mais tarde, pois agora ficaria feliz em ter uma câmera controlada por teclado se movendo em um mundo 3D sem interação além disso.
Minha experiência: trabalhei em várias linguagens de programação que variam de PHP a C ++, a Java e ASM. Não tenho medo de nenhum desafio que venha com o aprendizado da nova sintaxe ou limitações inerentes a um novo idioma. Toda a minha experiência em programação passada, no entanto, tem sido estritamente não gráfica e geralmente com pouca ou extremamente simples interação durante a execução. Criei algoritmos extensos e brilhantes para resolver problemas lógicos e matemáticos, bem como problemas gráficos. No entanto, em todos os casos, a entrada foi definida em um arquivo, transmitida de um formulário HTML ou digitada no console. A interação em tempo real com o usuário é algo com o qual não tenho experiência.
Minha pergunta: por onde devo começar tentando criar jogos? Melhor ainda - por onde devo começar tentando criar um ambiente 3D navegável pelo teclado? Ao pesquisar on-line, encontrei vários recursos vinculados a mecanismos de jogos, gráficos e físicos. Aqui está um breve resumo de minhas experiências com alguns mecanismos que eu tentei:
SDK da Unreal: os vídeos tutoriais pressupõem que você já tenha conhecimento profundo de modelagem 3D, mecanismos gráficos, animações etc. A página "Introdução" não oferece uma explicação formal do desenvolvimento do jogo, mas mostra como a Unreal pode otimizar os processos, considerando que você já está familiarizado. Depois de baixar o SDK e iniciá-lo para ver se as ferramentas eram tão intuitivas quanto alegavam, fui recebido com cerca de 60 botões e um vazio em branco para minha modelagem 3D. Clicando em "adicionar volume" (para tentar adicionar um cubo básico), recebi um menu de 30 opções. Em pânico, fechei o editor.
Crystal Space: o site parecia bastante informativo, explicando que o Crystal Space era apenas para gráficos e o software complementar, CEL, fornecia lógica de entidade para a criação de jogos. Foi fornecido um jogo de demonstração, construído com o "CELStart", sua ferramenta simples para pessoas sem conhecimento de programação de jogos. Lancei o jogo para ver o que poderia criar. Ele congelou várias vezes, os menus estavam com erros, houve milhares de falhas gráficas, os inimigos não reagiram aos danos e, quando eu fechei o jogo, ele trancou. Desisti desse motor.
IrrLicht: O tutorial assume que eu tenho o Visual Studio 6.0 (eu tenho o Visual Studio 2010). Seguindo as instruções, não consegui importar adequadamente a biblioteca para o Visual Studio e não consegui chamar nenhuma das funções que eles continuavam usando. Cópia manual de arquivos de cabeçalho, arquivos de classe e DLLs na pasta do meu projeto - o projeto falhou ao compilar corretamente.
Claramente, não estou começando bem e estou andando em círculos. Alguém pode me apontar na direção certa? Devo começar baixando um programa como o Blender e aprendendo modelagem 3D, ou devo aprender a usar um mecanismo gráfico? Devo procurar um mecanismo de jogo com tudo incluído ou é melhor tentar codificar minha própria lógica de jogo? Se alguém realmente fez seus próprios jogos, eu preferiria saber como eles começaram.
Além disso, ter aulas na minha escola não é uma opção. Nada é oferecido.