Normalmente, sempre que eu quero iniciar um jogo, acho que tenho uma boa arquitetura básica para renderizar e um melhor loop do jogo do zero. Eu normalmente não quero usar mecanismos existentes. A razão por trás disso é que eu quero implementá-lo sozinho para aprender coisas.
Mas muitos blogs e desenvolvedores dizem que não é uma boa opção ir para reinventar a roda.
Estou esquecendo de algo?
architecture
Ayyappa
fonte
fonte
Respostas:
Não, não é uma coisa ruim. O aprendizado e a capacidade de aprender são absolutamente fundamentais para ser um bom programador.
MAS
O importante ao criar algo do zero é finalizá-lo até a conclusão. Não importa o quão hacky e não otimizado seja, se você concluir, haverá uma sensação de satisfação como nenhuma outra. Tudo isso lhe dará uma experiência valiosa e você sempre poderá tornar o código mais elegante ou ter um desempenho melhor posteriormente quando tiver algo funcional. No final do dia, as únicas coisas que separam programadores incríveis e medíocres são experiência e prática.
É claro que quando você faz algo e deseja criar outros jogos, não há razão para reutilizar sua antiga base de código.
Se você deseja iniciar uma carreira em desenvolvimento de jogos, ou qualquer tipo de desenvolvimento, a experiência o levará muito, muito longe. Mas se você deseja produzir jogos de maneira rápida e fácil (relativamente fácil, em comparação com escrever suas próprias coisas), use um mecanismo existente.
Para ser sincero com você, uma combinação de experiência usando seu próprio código E usando uma variedade de bibliotecas e mecanismos diferentes fará de você um codificador muito melhor.
fonte
Essa é provavelmente a coisa mais importante. Se seu objetivo é aprender, escrever seus próprios mecanismos de renderização e loop de jogo a partir do zero é uma ótima experiência de aprendizado. Se seu objetivo é criar um jogo concluído de maneira rápida e fácil, use uma estrutura existente.
fonte
Reinventar a roda ensina como as rodas funcionam.
fonte
Depende do que você procura. Se você quiser aprender, reinvente quantas rodas quiser. Conheço pessoas que criaram suas próprias JVMs ou PNG loaders para o inferno.
A maioria dos blogs provavelmente dá conselhos sobre como chegar rapidamente às coisas que você recebe, mas não sei se é uma boa estratégia a longo prazo. Se você não sabe com o que está brincando, como saber se é uma boa escolha? O que você fará quando encontrar problemas, reclamar nos fóruns ou conseguir descobrir sozinho?
fonte
Há muito desânimo sobre essa frase na comunidade de programação geral, mas acho que todos sabemos que muitos de nós amamos nada além de reinventar a roda e encontrar uma maneira de fazê-la girar um pouco melhor, mais rápida e mais fria.
Novas tecnologias estão surgindo o tempo todo e precisam de pessoas para reinventar a roda. O OpenCL e outras linguagens de computação da GPU são um bom exemplo.
Você poderia usar uma estrutura que incluísse os novos recursos deste ano, mas construí-la por conta própria, se você realmente fizer a pesquisa e fizer melhorias no que já existe por aí ... você pode realmente explorar novos campos de desempenho e utilidade.
Depois de ter inventado algumas rodas para fazer você rolar, você conhece suas coisas muito bem como um bônus forte!
Além disso, é muito divertido.
fonte
E há quem afirme que é mais produtivo justamente porque reinventa a roda.
Caso em questão: Eskil Steenberg, criador do World of Love (excelente vídeo em que ele fala sobre seu jogo, seu mecanismo e ferramentas impressionantes , e sua filosofia: http://vimeo.com/18423305 )
fonte
Se for a sua primeira vez, mesmo que seja apenas para aprender, ainda é melhor usar algum tipo de mecanismo, porque você aprenderá o que o mecanismo pode fornecer para você.
"A roda" usada na metáfora é o conceito, não a implementação. Mesmo que você não reinvente a roda, você ainda precisa escolher se compra ou não uma. Portanto, criar seu próprio mecanismo nem mesmo reinventa a roda, é só você querer criar sua própria roda para algum propósito, que pode ser para aprendizado, baixo custo, tamanho pequeno ou qualquer uso ou requisitos específicos.
fonte
O fato é que o que leva muito tempo ao se fazer um jogo é o conteúdo e a criação e o teste reais de ativos - e não geralmente a criação de código. É provavelmente por isso que é fácil pular essa parte e usar um mecanismo existente para poder gastar mais tempo com conteúdo, design de jogos e bugs de nível superior.
Penso que, fazendo coisas do zero para aprender, irá gerar uma boa sensação do trabalho por trás dos motores existentes e melhorar a capacidade de selecionar um mais tarde, se necessário.
Por diversão e aprendizado, faça o que quiser. Se eu tivesse que escrever aulas de pipeline de conteúdo do zero, lidando com todos os detalhes irritantes e casos extremos do sistema de arquivos e dos carregadores de ativos, ficaria louco - desde que aprendesse o suficiente para ter uma compreensão realmente boa de como fazê-lo, Costumo evitar fazê-lo se alguém já o fez bem (embora seja verdade, muitas estruturas e mecanismos não se encaixam na minha própria idéia de "bom", o que seria motivo para reescrever algo). Se eu não sei como fazê-lo, realmente gosto de fazê-lo pelo menos uma vez, apenas para entender os detalhes do que quer que seja - como Ray Dey já declarou.
fonte
É apenas um erro se você não tiver tempo para aprender. Se você tiver tempo, vá em frente. Se não, então não faça.
fonte