Fala, galera, tudo bem? Sou novo aqui e preciso de alguma ajuda pra começar um novo projeto que tenho em mente. Infelizmente não tenho conhecimento pra começar a contribuir pro fórum, mas espero que isso mude logo. Vou explicar brevemente meu problema e quem sabe vocês não podem me dizer por onde começar.
Não é de hoje eu tenho interesse em começar a programar, porque sempre tive ideias, seja pra jogos ou aplicativos, mas nunca cheguei a um consenso de que linguagem aprender e nunca achei algo que me mostrasse que o que eu estou aprendendo tem alguma utilidade prática. Cheguei a começar a aprender C, mas parei porque não estava vendo muita utilidade naquilo pro que eu buscava, que era desenvolver aplicações mais modernas. Fiquei uns 6 meses parado, sem mexer em nada e agora eu decidi voltar, mas quero aprender pra valer, ir a fundo, de forma que eu possa não só desenvolver, mas ser capaz de entender a estrutura de uma linguagem e o que é, como se constrói uma linguagem e por aí vai.
Bom, o que me motivou foi a vontade de jogar um joguinho que eu jogava antigamente pelo pc, e pelo visto não existe pra android nada parecido. Bom, meus problemas começaram aí. Quero aprender para ser capaz de desenvolver o jogo. Eu aprendo relativamente rápido, então fui buscar informações que me pusessem no caminho, para saber por onde começar, mas encontrei uma vastidão de informações e opiniões diferentes. No fim das contas me disseram para programar em Java, C# ou LUA, que eram boas para isso, mas eu busco a linguagem que seja mais claramente voltada pro android, e pesquisando vi que seria Java, correto? Ainda nesse ponto, como funciona a relação da linguagem em que o programa é escrito com o sistema em que ele irá rodar? Vi que java é a linguagem para o android, mas também me disseram para programar em outras duas linguagens, então existe essa portabilidade? Como ela funciona?
Vou falar um pouco do jogo que quero programar. Eu julgo que seja um jogo simples, ele é basicamente em janelas, tem um menu com tópicos como "Quick Game, Private, Missions, etc", cada um desses tópicos leva pra uma nova tela, onde ele verá outros menus ou jogo irá começar. O jogo se desenrola com uma batalha entre dois jogadores, mas é quase como um rpg de papel. Cada jogador tem 3 personagens e cada um deles tem determinadas habilidades, que dão determinado dano e tem determinados efeitos, impedindo o inimigo de usar habilidades ou roubando energia. Assim que o jogador encerra o seu turno algumas habilidades entram em cooldown e a janela de habilidades fica travada enquanto o contador de tempo passa pro inimigo dele até que ele encerre a rodada ou o tempo termine. Ou seja, as animações são hyper simples, apenas trocas de telas e movimentos de pequenas janelas, além de alguns efeitos de som pra cada um desses movimentos. Preciso criar e organizar os personagens, as missões e fazer a conexão entre os jogadores.
Explicado como é o jogo, preciso saber linguagem, IDE, engine e por aí vai. Na verdade, essa é uma boa dúvida. Sei que uma IDE não exclui uma engine e uma engine não exclui uma IDE, mas o que exatamente é uma engine? Em um exemplo prático, como ela interage com a IDE? Gostaria também de uma indicação a bibliografia da linguagem, eu estou bem inclinado a trabalhar com java, então estou querendo qualquer tipo de livros e informações, além de cursos e o que tiver mais do java. Eu não tenho problemas com a leitura em inglês, mas por conta dos termos técnicos, prefiro começar com livros e textos em português. Se eu não tiver escolha, tudo bem, vamos botar o inglês em prática :).
Algumas perguntas a mais... Para não perder o progresso os usuários vão precisar de uma conta, e eu gostaria que fosse associada ao email do google, como funciona isso? Vou precisa entender e saber lidar com banco de dados? Se sim, preciso me preocupar com isso agora?
Ah, sobre Java, o que é XML e SQL?
O que seria a API?
Bom, se você leu até aqui, muito obrigado por tanta dedicação só pra me ajudar. Sei que ainda não posso contribuir com nada pro fórum, mas logo isso irá mudar :).