Por onde começar?

Olá,

Sou iniciante em java (iniciante msmo)

Minha duvida é por onde começar com o java…

talvez uma pergunta comum por aqui,mais meu interesse no java,creio que seja um pouco diferente de algums aqui,meu interesse em java é para

um emulador do Jogo “Lineage 2”

Vou mostrar de que se trata

Site do emulador
http://www.l2jserver.com

Timeline
http://trac.l2jserver.com/timeline

Bom sei que pra chegar a um nivel como os programadores de la tenho de estudar bastante,bastante msmo
mais ninguem nasceu sabendo nada,eles tbm estudaram,e estou disposto a estudar tbm…

So que naum sei bem por onde começar
axei varios posts aqui ensinando por onde começar porem tenho a duvida se pra esse tipo de emulador tenho que começar do msmo jeito…

Se alguem poder me encaminhar com livros,tutoriais,etc…

para esse tipo de emulador tenho que aprender oq afinal??

oi,

porque não começa lendo a seção de artigos do forum? já tem muita coisa lá

vc é iniciaante em java ou iniciante em programação?

abs

se vc é iniciante em java eu indico esta apostila da caelum…

ou melhor ainda se puder comprar o livro : Use a cabeça JAVA

no submarino ta em promoção :slight_smile:

Depende, vc é iniciante em JAVA ou em programação?

Se é em programação, aprenda algoritimos e depois va para java.

Se é em java, sugiro comprar o livro “java como programar” - deitel ou “use a cabeça java”

Se você é iniciante, então, não comece tentando fazer o emulador do line age. Pelo menos, não por enquanto.Nenhum professor te ensina a nadar te jogando numa piscina olímpica e mandando você sair nadando como um profissional. Você começa com exercícios de braços, pernas, respiração, postura, para só então nadar para valer.

Comece estudando algoritmos, nem que seja inicialmente fazendo games simples, como o jogo da velha. Depois parta para um game com gráficos (pode ser uma evolução do seu próprio jogo da velha). Depois, parta para um jogo que não use turnos, como um jogo de carrinho simples, ainda para um só jogador. Faça em seguida um jogo para 2 jogadores, em rede local. Depois para 2 jogadores, em internet. Finalmente, faça um jogo 3D para um jogador e busque aprender um pouco sobre IA.

Só então, comece seu servidor de Line Age.

Com isso você terá que aprender muitas e muitas coisas, não só a linguagem java:

  1. Como funciona a rede: Diferença do TCP para o UDP, como montar seu próprio protocolo, como disfarçar lag;
  2. Como funciona criptografia: Para garantir segurança na autenticação do usuário;
  3. O que é o game loop, como estão organizados os agentes do jogo;
  4. Como fazer profiling;
  5. Como organizar a IA: Máquinas de estados, scripts, testes de campo de visão, etc;
  6. Como fazer calculo vetorial, física, etc (seu servidor precisa implementar parte da física para detectar hacks);

Provavelmente, mesmo muitos usuários experientes com Java aqui do GUJ não saberiam fazer um servidor de Line Age sem muito esforço. Isso porque a linguagem Java é apenas uma pequena parte do processo.

Comesse tentando fazer coisas simples como cara falou. Se um lineage é extremamente mais complexo que uma calculadora cientifica e eu tive muitos problemas para faze-la(até agora tem uns bugs). E isto que estudo programação a 3 anos(comessei com 16 anos), acredite, comesse com coisas simples e passe anos estudanto.

Você não conseguira fazer nada no seu estado inicial. Acha que gráficos 3D é fácil…

3D é muito mais complexo que 2D e veja um simples circulo em 2D.

Olhe abaixo só para movimentar um circulo como foi difícil.

http://www.guj.com.br/posts/list/96477.java

Conseguiria fazer isto??

Então como pretente fazer em 3D com muitissimo mais vetores e calculos???

O mais curioso que a definição de circulo e esfera é a mesma:

O conjunto de todos os pontos que estão afastados a uma distância qualquer (chamada de raio) de um ponto central.

O mais curioso que a definição de circulo e esfera é a mesma:

O conjunto de todos os pontos que estão afastados a uma distância qualquer (chamada de raio) de um ponto central.[/quote]

Sim, mais como você pensa que seria para movimentar a esfera em 3D?

Muito maior o programa, não é?

Depende. Em 3D, você já tem várias movimentações para fazer:

  1. Pode gira-la entre um dos 3 eixos (ou em torno de um eixo arbitrário);
  2. Pode desloca-la no espaço;

A movimentação em si (caso seja a opção 2) é simples. Mas no geral, você está certo. Uma aplicação 3D exige um bocado a mais de matemática que uma 2D. Fica mais difícil os testes de colisão, a representação da orientação do objeto no espaço, entre outras coisas.

Eu já dei uma olhada no código fonte do server de lineage2.

Realmente, não é por lá que voce deve começar.

Estude matematica, fisica, Java SE, mais um pouco de matematica e fisica, dai sim voce pode escrever uns joguinhos.