Executando verificação de segurança...
9

Quāo complicado é criar uma game engine : Meu projeto Open Source

Olá Devs,
Eu recentemente embarquei no mundo Open Source e fica incrédulo com quanto conteúdo e projeto encontramos pelo Github, e gostaria de contribuir.

Eu comecei um projeto open source de um jogo feito puramente em JavaScript. A ideia é criar mais tarde um backend usando Websockets. Minha grande inspiraçāo é o Agario (eu já tive um projeto de agario brasileiro e foi assim que aprendi a programar alguns anos atrás).

Eu até consegui avançar no projeto após 2 semanas de trabalho duro. Eu estou bem satisfeito de chegar em algo fazendo tudo do zero e tendo o controlhe completo do código, sem usar libs. https://github.com/Igor-Lira/bee-empire

E agora eu me deparo numa situaçāo complicada e gostaria de ver a opniāo da comunidade. Eu percebi que é extremamente complicado criar a engine de colisōes. Muito mais do que eu imaginava. Quando n corpos estao em movimento, como proceder para "esquivar" um corpo do outro? E quando quem me garante que durante o "esquivar", esse corpo nao irá precisar esquivar de um outro, e causar uma interaçāo estranha ? E pior, quando a colisao de multiplos corpos acontecerem perto de uma parede que é uma restriçāo de movimento ? Eu comecei a refletir se realmente faz sentido continuar com esse projeto, ou se eu simplifico de alguma forma as colisoes.

Meu objetivo com esse projeto era ter um jogo bem performático e livre de bibliotecas, e criá-lo com uma comunidade. E eu tinha um plano de cultivar esse projeto por alguns anos e aperfeiçoá-lo. Implementar conceitos que normalmente as bibliotecas abstratem...

Contudo, eu estou vendo que dificilmente pessoas iriam vir contribuir se o código for muito "puro" e tudo precisar ser feito do zero. O que vocês acham sobre isso ?

Carregando publicação patrocinada...
8

Talvez você se interesse por esses conteúdos

Deividson Müller Goulart
Um brasileiro graduado em jogos digitais.
http://amazda.blogspot.com/

Álgebra para jogos (inglês)
http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-1/

Introduction to Computer Graphics
https://math.hws.edu/eck/cs424/index_f17.html
https://math.hws.edu/eck/

OpenGL Programming Guide
https://www.glprogramming.com/red/

The Dark Mod
Um jogo FPS de código-aberto.
https://svn.thedarkmod.com/publicsvn/darkmod_src/trunk/.github/README.md

Lista de Ivan Bobev
https://github.com/bobeff/open-source-games#first-person-games

LibreGameWiki
https://libregamewiki.org/Main_Page

3

A parte de física é complicada no começo mesmo.

Se vc quer realmente ir sem lib (como raylib por exemplo), experimenta olhar como colisões são implementadas em engines open source (como gdevelop e godot) e vc vai ver que não é tanta mágica.

Vc vai perceber que é comum criar um bounding box ao redor dos elementos, então não só é armazenado o X e Y, mas também o tamanho e altura pra ter o X2 e Y2, pra que sempre que outro objeto passe pra dentro desse bounding box, significa que houve colisão.
Claro, considerando que o bounding box é de um objeto quadrado, se for redondo aí eu já não vou saber dizer muito, embora seja utilizado bounding box também.