Estou prestes a embarcar em uma jornada para o desenvolvimento de jogos. Após as respostas à minha última pergunta, usarei C # e XNA.
No entanto, eu não conheço pessoalmente nenhum outro desenvolvedor de jogos e não trabalho na indústria, portanto, como tal, será autodidata. A exceção é obviamente a pergunta e a leitura de informações on-line / impressas, mas eu ainda classificaria isso como autodidata.
Com isso, quero estar preparado para problemas que possam surgir por não ter alguém para "me manter sob suas asas".
Como analogia, ao me ensinar a tocar violão, toquei o acorde maior A de tal maneira que dificultou a mudança para um acorde que aprendi mais tarde.
Se você pudesse compartilhar suas lições aprendidas e conselhos sobre o que pode dar errado no meu aprendizado sobre desenvolvimento de jogos, ficaria grato.
Estou ciente de que cometer erros é a maior parte do aprendizado, mas, se houver erros nos quais eu possa estar preparado, ficaria mais feliz com isso.
Respostas:
Desenvolvimento de jogos é como engenharia estrutural
Existem requisitos mínimos para funcionalidade. Os requisitos mínimos não são excepcionalmente desafiadores e muitas pessoas podem aprender como cumpri-los. Essa é a parte da função . É a pequena parte. É aqui que entram as decisões sobre qual idioma usar, qual plataforma desenvolver ou quais bibliotecas utilizar.
A próxima parte é a grande parte. A parte do formulário . Forma é o que realmente distingue os bons jogos dos grandes jogos. Essa é a parte que é a arte do desenvolvimento de jogos. Não estou falando apenas dos ativos sensoriais (gráficos, som, etc?). Estou falando de criar uma experiência. Esta é a parte difícil.
A parte da função vem de tutoriais, bibliotecas e um pouco de tempo. Qualquer um pode fazer isso.
A parte do formulário vem de você. É a paixão que levou você a querer fazer jogos em primeiro lugar. É como contar uma história, uma história inventada (ou uma história verdadeira que você embeleza muito). Quanto mais você conta a história, melhor ela fica. No desenvolvimento de software, chamamos iteração. Sua história é seu código. A primeira vez que você contar, não será muito bom. As coisas ficarão fora do lugar, você perceberá que esse pedaço deve ser colocado lá e aquele aqui. Você descobrirá que as coisas provavelmente fluirão melhor se você organizar as coisas dessa maneira ou expandir esse bit. Assim, como uma boa história, você conta, avalia como é boa e depois a modifica. Isso requer dedicação e isso leva tempo. Não se preocupe se a primeira coisa que você produz não é ouro. Tenho trabalhado muito e bem em muitas partes do meu jogo só para rasgá-los mais tarde, porque eu pensei de uma muitomelhor maneira de fazê-lo. Não se preocupe, tudo faz parte do processo de aprendizado. Você sempre aprende com seus erros e, com frequência, cometê-los é o que o leva à melhor maneira de fazer as coisas.
Então, o que você deve tirar disso é o seguinte:
A internet está cheia de informações em posts de blog, tutoriais e comunidades como esta. Coletivamente, eu diria que é uma ala muito boa para se estar. Basicamente, os perigos não são graves. Você pode fazer as coisas da maneira "errada" ou difícil por um tempo, mas aprenderá eventualmente. Você parece ter muita experiência em programação, então acho que você entenderá rapidamente a parte da função. Os erros cometidos no desenvolvimento de jogos e no desenvolvimento "regular" se sobrepõem bastante. Sua experiência o ajudará a evitar muitos dos problemas comuns que ocorrem com os novos desenvolvedores de jogos. Eu acho que você vai se sair bem. Boa sorte.
fonte
Sim, não ter alguém que já esteve lá antes para lhe dizer o que fazer, como consertar etc. etc pode ser a pior coisa que você pode passar. Mas sem medos! Você ainda pode ler MUITOS blogs de pessoas que estiveram lá, eles compartilham suas experiências na indústria, como obtiveram sucesso, como um jogo anterior falhou e por que, etc., etc.
Bons exemplos são:
E muito mais!
Minhas últimas palavras são: não tema. Eu também sou autodidata, há 4 anos que fui apresentado ao desenvolvedor de jogos, muitas barreiras surgem, mas nada que você não consiga resolver pesquisando no Google e lendo alguns textos. Boa sorte em sua jornada :)
fonte
release
jogo não está relacionado apenas ao desenvolvimento, afinal. É uma boa leitura de qualquer maneira. Postei os links mais como referência, para não seguir o blog. Se você voltar no arquivo, há alguns exemplo de protótipos e todos os que os ajudaram com World of Goo e outros "menos pequenos" protótipos: DEssa atitude. Essa atitude "não toque, até você saber como fazê-lo perfeitamente". Isso realmente vai te impedir.
Você vê essa atitude entre os desenvolvedores iniciantes de todos os tipos - não apenas nos jogos. Sites também. Ei, um site é um banco de dados com um front-end html com algum javascript. Você aprende as tecnologias da maneira que puder, monta seu primeiro site. Não vai ser fantástico, mas depois de fazer as coisas de uma maneira subótima não é um grande negócio ! Se você fizer "o caminho mais longo" na primeira vez, sempre poderá fazer melhor na segunda vez. O que quero dizer é que não há perigo. Exceto essa atitude, talvez. Essa atitude é o que o impedirá de fazer alguma coisa, porque você sempre se recusará a responder e dirá "Ainda não sei como fazer isso".
A atitude de que existe um "caminho certo" para fazer as coisas. Não existe. As coisas são exatamente como parecem. Você precisa colocar pixels na tela e emitir sons quando as coisas acontecem.
fonte
Dependendo de você querer ou não tornar isso sua profissão mais tarde (vou assumir que você está pensando sobre isso e isso não é apenas um hobby), eis o que eu achei extremamente eficaz:
Já foi dito antes, mas vou repetir: comece com pequenos pedaços, familiarize-se com um mecanismo, uma estrutura, uma ferramenta ou programa. Depois de entender o básico -> vá aumentando.
Isso pode parecer um pouco extremo, mas o que quero dizer é aprender o máximo que puder sobre CADA aspecto do desenvolvimento do jogo - não importa se você é um programador, artista ou designer. Conhecer o pipeline é a chave para construir as coisas da maneira mais eficiente. Se você está implementando uma arma -> projete, conceba, modele, implemente, codifique! Obviamente, você não precisa ser um artista conceitual de Grau A, designer e nerd do Pipeline - mas deve estar familiarizado com todas as ferramentas do processo e entender cada etapa da criação. Além disso, confira os sites de jogos para obter notícias e atualizações nos negócios - gamasutra.com, kotaku etc., todos com ótimos artigos sobre tópicos de negócios e técnicas. Não se limite a apenas um campo de desenvolvimento - absorva TODO o conhecimento que puder obter :)
Você vai chupar o que está fazendo. No início. É sempre assim (acredite, eu sei.: D), mas só vai melhorar se você continuar e NUNCA deixar de procurar maneiras de melhorar seu trabalho. A internet é uma ótima fonte de tutoriais, referências e ajuda. Você nunca ficará realmente preso, então embarque nas idéias mais loucas, falhe, aprenda com seus erros e torne-se mais durão com esse processo.
Embora a Internet seja uma ótima fonte, obter feedback pessoal é algo com o qual você precisará lidar MUITO. Portanto, melhorar suas habilidades sociais também é importante. Se você ainda não tem um mentor ou, em geral, não conhece muitas pessoas que trabalham na indústria, deve procurar em sua área encontros indie para desenvolvedores, ir a convenções e verificar outros eventos em que possa começar a criar uma rede pessoal de conhecimentos e contatos. Também ajuda a criar algo com outras pessoas - o autodidata é ótimo, mas o desenvolvimento de jogos é baseado em equipes, por isso verifique os fóruns para um projeto de hobby - por exemplo, o Fórum Épico para projetos UDK, fóruns Unity ou até mesmo os Fóruns CryEngine - todos esses três motores estão amplamente espalhados, há um caminhão cheio de pessoas talentosas trabalhando em projetos paralelos lá, e eles '
Eu acho que é praticamente todo o conselho que posso dar. Espero que isso tenha ajudado você de alguma forma :)
fonte
Não tenho nenhuma experiência em C # e XNA, mas acho que não me fará mal na seguinte declaração:
É perfeitamente bom aprender programação sem um professor. Se o seu código funcionar *, não importa realmente como foi codificado. Bem, serve para programação colaborativa, mas você não estará mais codificando sozinho, estará? Isso também pode tornar seu código menos legível para você no futuro, dificultando o uso de componentes antigos ou depurando novos erros, mas, a longo prazo, todos os seus erros serão seus pontos fortes. O mais difícil de aprender o design de OOP e MVC é entender por que eu deveria fazer "isso" dessa maneira ". Se você já tem experiência em criar programas ruins, conhecerá os pontos fortes dos padrões e os usará em seu proveito. Se você sempre fez bons programas seguindo os padrões que alguém lhe ensinou, continuará fazendo bons programas (no sentido de código válido), mas, em vez de tirar proveito dos padrões, você ficará limitado por eles, pois não os entenderá o suficiente para fazer modificações úteis. No final, é mais importante que você pratique, não como; portanto, em ambos os casos, mais cedo ou mais tarde, você terá uma experiência bastante semelhante.
* uma coisa é importante! Em caso de segurança, você realmente deve perguntar a alguém com experiência se o seu código foi bem executado, pois as falhas de segurança não exibem alertas de erro.
fonte
De alguma forma, essa é uma ótima pergunta! :-)
Eu iniciei minha atividade gamedev há pouco tempo e será a segunda vez, para que eu possa compartilhar meus pensamentos. Você está realmente certo sobre isso; é bom ter um mentor. Este mentor será a internet. Portanto, quanto mais informações forem compartilhadas na internet, mais fácil será aprender para você. É por isso que o XNA / C # é uma excelente opção para começar. Há muitos jogadores indie amadores e profissionais que estão compartilhando artigos e na web. Outras coisas a mencionar:
fonte
Isso se aplica a qualquer disciplina relacionada a uma indústria criativa:
O maior perigo é tentar construir algo "muito grande" ou "épico" fora do portão.
Por exemplo, se você está começando a fazer música, não começa tentando fazer uma sinfonia de 50 peças por 2 horas.
No design de níveis, isso se manifesta como tentando criar o 'maior mapa de todos os tempos' ou usando o sistema de jogo para criar a maior coisa mais complexa que o mecanismo de jogo é capaz de manipular. Na programação, isso pode cair em 'fazer um jogo inteiro sozinho', começando com zero código-fonte. Você realmente precisa de muita experiência e disciplina para começar com a fonte zero, e mesmo assim é incrivelmente difícil, e tomar decisões de design sobre tudo é difícil o tempo todo em que você está elaborando o design de tudo. Até um jogo simplista exige uma quantidade bastante grande de programação em um sistema operacional e linguagem modernos atualmente. Além disso, se você começar com o código de outra pessoa, poderá aprender o que funciona e o que não funciona tão bem; portanto, trabalhar com o maior número possível de mecanismos também é uma grande vantagem.
Então, começando eu recomendaria algo como os seguintes planos:
A melhor coisa a fazer seria pegar um mecanismo pronto existente (modificável ou algum de código aberto) e começar a hackear nele, e fazer isso algumas vezes com vários mecanismos diferentes até encontrar o que você gosta.
fonte