Um amigo do trabalho e eu estamos querendo entrar na cena indie para o desenvolvimento de jogos. Fiz algumas demonstrações de tecnologia que demonstram diferentes idéias e abordagens para vários problemas. Agora, acho que é hora de nos comprometermos com um projeto para desenvolver um portfólio para mais tarde no caminho.
Eu tenho lutado bastante com o começo de um projeto real, mais especificamente para criar um mecanismo ou usar um pacote OTS, ou usar um para criar um ou criar um para usar um etc.
Qual parece melhor para os potenciais empregadores? Um portfólio menor de jogos que inclui seu mecanismo ou um (possivelmente) maior que foi construído usando algo OTS?
Sou programador. Eu não sou um artista. Vou executar a maior parte da programação para este projeto. Meu amigo também é desenvolvedor, mas também é especialista em ferramentas gráficas (assim, ele se torna o cara da arte).
No trabalho, somos desenvolvedores .NET (C #). Eu sei, eu sei "Bem, então use XNA", alguns vão gritar comigo. As demos que concluí até agora estão no XNA. Mas tenho algumas preocupações com a construção de um portfólio XNA. Embora seja legal abstrair o DirectX, eu me preocupo com o fato de não criar a base de conhecimento necessária para estender além do XNA facilmente. O contrário a esse argumento é provavelmente "você pode passar para o DirectX mais facilmente após o XNA", mas como vou mudar de carreira de Desenvolvimento de Negócios para Desenvolvimento de Jogos, vale a pena focar no XNA atualmente? Ou os potenciais empregadores rirão quando digo XNA?
Devo abraçar a experiência do XNA sabendo que os conceitos e lições aprendidas serão transferidos principalmente? Ou gastar meu recurso mais valioso (tempo) em outro lugar?
Procurando alguns conselhos de qualquer veterinário da indústria por aí.
Respostas:
Sou programador na indústria de jogos de console há quase quatorze anos e frequentemente me envolvo em decisões de contratação.
Então, falando como um desses empregadores em potencial, ao avaliar um possível funcionário, há três coisas que procuro em um novo contratado e procuro por eles nesta ordem.
Agora, resolva sua pergunta. Todo esse problema "que tipo de projeto devo fazer" está abordando de longe o menos importante dos critérios de que me preocupo. Eu me preocupo muito mais com o fato de você se encaixar socialmente na minha equipe e com o quão bem você será capaz de aprender coisas novas rapidamente, do que com o fato de você ter usado o XNA ou seu próprio mecanismo de jogo em algum projeto anterior. Em geral, estou assumindo que vou ter que treiná-lo em nosso próprio mecanismo de jogo interno, e assim seus projetos anteriores não me importam nada. Isso é claro, a menos que você, magicamente, tenha experiência com uma ferramenta ou tecnologia específica que eu preciso que alguém conheça. Mas isso é incomum; normalmente, suponho que vou precisar treiná-lo para usar nossa API.
Tudo isso não quer dizer que eu não quero que você tenha feito projetos em casa. Eu absolutamente faço. Mas eu realmente não me importo com o que esses projetos são, ou com as tecnologias que eles usaram, porque provavelmente não serão relevantes para o que eu preciso que você faça por mim, pois usaremos diferentes bibliotecas ou APIs.
Mas eu quero que você me conte sobre seus projetos. Quero ver como você fica entusiasmado quando fala sobre eles, porque isso me diz sobre que tipo de pessoa você é (veja o ponto 1 acima). Quero ouvir sobre os problemas com que você se deparou e como os superou no desenvolvimento do seu projeto (veja o ponto 2 acima). Eu absolutamente quero que você tenha concluído pelo menos um projeto - ser capaz de superar a dor e realmente concluir algo diz muito sobre o tipo de pessoa que você é e me diz que você é alguém com quem eu poderei confiar sobre se ("quando") as coisas ficam difíceis.
Então, honestamente, nenhuma das opções é "melhor"; o importante é completar algo, qualquer coisa. Qualquer tecnologia que você aprende ao longo do caminho é a cereja do bolo, mas quase certamente não é o que me faria contratá-lo.
(Mas, com tudo isso dito , espero que você seja proficiente em C ++. De uma forma ou de outra, você realmente precisa aprender C ++ para ser contratado na indústria de jogos convencional. Seus projetos domésticos não precisam necessariamente ser em C ++, mas espero que você consiga demonstrar fluência nele.)
fonte
Uma coisa que outros não mencionaram ainda é que é importante finalizar seus projetos.
Ter um portfólio com várias coisas inacabadas não é tão impressionante quanto um portfólio com uma coisa acabada e bem polida.
Além disso, se você basear seu trabalho no trabalho existente de outra pessoa (como algum mecanismo de código aberto ou recursos de arte disponíveis gratuitamente), não deixe de mencionar em seu portfólio qual parte é sua.
fonte
Parece-me que a resposta depende do tipo de programação de jogo que você deseja fazer.
Se seu objetivo é ser um codificador de mecanismo ou de gráficos , você se beneficiaria de aprender a trabalhar como os motores. Isso não significa que você não pode usar o XNA ou outro mecanismo, estrutura, etc. Privilegiar a familiaridade com as entranhas de um mecanismo de alta qualidade é uma ótima maneira de aprender a construir um mecanismo de alta qualidade! Se você seguir esse caminho, não precisará necessariamente escrever nenhum jogo real. Um portfólio de demonstrações gráficas independentes e / ou extensões não triviais a um mecanismo existente (por exemplo, implementar um novo sombreador em um mecanismo ou algo parecido) será útil. Você pode dar uma olhada no meu portfólio de demos gráficos aqui; estão alguns anos desatualizados agora, mas isso é basicamente o que me deu um trabalho de programação gráfica em um estúdio de jogos.
Por outro lado, se você preferir ser um codificador de jogabilidade , uma das pessoas que trabalha na mecânica do jogo, nos controles, na IA inimiga etc. etc., seu tempo não será muito bem aproveitado no Direct3D. É claro que é útil ter uma compreensão geral e de alto nível de como os gráficos funcionam, mas em um contexto profissional você provavelmente não entrará em contato direto com material gráfico de baixo nível com muita frequência. Nesse caso, eu recomendaria absolutamente o uso de um mecanismo de prateleira para que você possa gastar seu tempo construindo jogos reais.
Então, para resumir, se você quiser jogar, basta usar um mecanismo existente; se você deseja criar um mecanismo / gráficos, crie seu próprio material e / ou estenda um mecanismo existente.
fonte
Quando eu estava terminando a uni, meu portfólio foi apresentado neste artigo. parece uma boa idéia sobre o que fazer e o que não fazer ao reunir seu portfólio
http://leewinder.co.uk/blog/?p=23
fonte
Não faça seu portfólio com base em como você considera o "padrão". Você deve trabalhar em projetos que lhe interessam . Se você gosta de mecânica de jogos, vá em frente e faça vários jogos. Se você gosta de criar IA interessante, talvez faça uma demonstração para uma configuração semelhante ao RTS. Como exemplo, tenho um interesse crescente em programação gráfica e dedico mais tempo a aprender conceitos de renderização e a aplicá-los no meu mecanismo. (Consequentemente, meu projeto de jogo foi temporariamente colocado na prateleira.)
Quando você trabalha principalmente nas coisas que gosta, ele realmente mostra o "você" no portfólio. Por outro lado, ter pelo menos um jogo concluído mostra que você pode extrair as partes "desinteressantes" de fazer um jogo. É bom ter um certo grau de flexibilidade para invadir um território menos familiar, mas não se force muito a isso. Você pode diferenciar bons portfólios a partir do nível de entusiasmo e interesse colocados no trabalho, e os projetos baseados em suas áreas de interesse naturalmente serão mais polidos. Portanto, seja qual for sua área de interesse, você acabará se concentrando nessa área de programação para um emprego.
fonte