Sincronização entre um arquivo e um Enum

Todos os objetos no meu jogo vão ser descritos por algo semelhante a um xml(ou um xml, ainda n decidi), umas um dos problemas que eu tenho é:

É burrice usar strings como “calor especifico” como chave para o valor de calor especifico de um metal, é muito mais inteligente usar um numero pois não tem que fazer .equals() (na real tem… mas é bilhões de vezes mais rapido que o equals de string), uma ideia seria criar um editor de objetos que é onde eu gerencio os objetos e criação do arquivo de descrição, e depois eu “compilo” ele em um arquivo binario para ser processado pelo jogo.

Entretanto, é burrice para um humano identificar atributos usando numeros e bem mais inteligente usar Enums. Mas agora eu tenho que manter a classe do Enum e o arquivo binario SEMPRE sincronizados, e isso é, até onde eu imagino, quase impossivel de fazer no braço…

Alguma ideia de como fazer?? Valeu!

Use Strings mesmo.

O que você pode fazer é carregar o seu xmls em objetos. E usar Maps para mapear a String ao seu valor.

[quote=ViniGodoy]Use Strings mesmo.

O que você pode fazer é carregar o seu xmls em objetos. E usar Maps para mapear a String ao seu valor.[/quote]

Definitivamente a maneira mais facil, entretanto o jogo vai ser um mmo, e como é feito em java(até eu aprender c++(as locuras ninjas que fazem c++ mais rapido) os computadores já aguentam o java pra fazer qualquer coisa…) não posso disperdiçar nada. As tags vão ser acessadas o tempo todo, tipo 5.000 acessos pro ciclo só de npcs, talvez mais…

Acho que a melhor solução é o editor de xml tambem gerar o arquivo .java que é onde fica os enums…

Enum é trocado pelo seu valor respectivo quando o compilador gera o bytecode né? ou é melhor usa constantes nesse caso?

O tempo de acesso a um mapa é praticamente O(1).

Aqui vão algumas dicas sobre otimização, leia e siga-as:

Um delas é não pré-otimizar seu código. Provavelmente seus gargalos mais sérios não estarão nesse enum, e sim, em acesso a arquivos, bancos de dados, o mais provável, na própria rede.

Você tem alguma experiência com jogos? Ou esse aí é o seu primeiro?

Faço jogos em applet, mas estes quase nunca precisam de grande desempenho, exceto o server quando tem.