Olá pessoal!
Estou desenvolvendo um jogo em java no eclipse, utilizando a biblioteca Slick2D. Eu importei a biblioteca para o projeto da seguinte maneira: fui em project -> properties -> Java Build Path -> Libraries -> Add External JARs -> e importei os arquivos que precisava.
Mas aí, quando tentei rodar o projeto, ele deu o seguinte erro:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at org.lwjgl.Sys$1.run(Sys.java:75)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.doLoadLibrary(Sys.java:68)
at org.lwjgl.Sys.loadLibrary(Sys.java:84)
at org.lwjgl.Sys.<clinit>(Sys.java:101)
at org.lwjgl.opengl.Display.<clinit>(Display.java:128)
at org.newdawn.slick.AppGameContainer$1.run(AppGameContainer.java:39)
at java.security.AccessController.doPrivileged(Native Method)
at org.newdawn.slick.AppGameContainer.<clinit>(AppGameContainer.java:36)
at Puzzle.main(Puzzle.java:42)
Encontrei algumas sugestões para esse erro. A maioria delas envolvia adicionar -Djava.library.path=<path/to/library> no código, mas nenhuma delas explicava onde ou como adicionar isso.
Se alguém puder ajudar, agradeço.
=)
O add external jars faz exatamente o que o -D faria.
O LWJGL exige também que você configure algumas dlls para funcionar. Dê uma olhada nesse tutorial:
http://www.lwjgl.org/wiki/index.php?title=Setting_Up_LWJGL_with_Eclipse
Eu não recomendo o Java para jogos. O suporte dele é bem primário e coisas como sons e entrada de dados são bastante difíceis de se obter. Você acaba na mão de bindings e o único disponível parece ser o LWJGL (o JOGL também, mas o projeto está num constante vai-e-vem). Ele também não suporta sobrecarga de operadores, o que deixa os códigos envolvendo vetores, matrizes e demais operações matemáticas bastante rebuscado.
Se você quiser uma plataforma mais adequada, com uma linguagem gerenciada, tente usar o C# com XNA.
De qualquer forma, se você for usar a LWJGL, vai gostar de ter em mãos um tutorial de opengl. Nesse caso, dê uma olhada nos artigos de OpenGL do ponto V, a partir desse:
http://pontov.com.br/site/opengl/154-a-maquina-de-estados-opengl
Os códigos estão em C++, mas não devem ser difíceis de adaptar (até pq a sintaxe da OpenGL é a mesma).
Olá, ViniGodoy!
Agradeço as dicas que me deu e irei dar uma olhada nos artigos de OpenGL do ponto V 
No começo, eu e meu grupo iríamos desenvolver o jogo em xna, mas precisamos desenvolvê-lo em uma linguagem livre e o xna é da Microsoft. Entre C, C++ e Java, optamos por Java. Mesmo assim, agradeço!
Seguindo o tutorial que vc me indicou, ocorreu outro erro:
Fri Jul 22 13:13:46 BRT 2011 INFO:Slick Build #274
Fri Jul 22 13:13:46 BRT 2011 INFO:LWJGL Version: 2.7.1
Fri Jul 22 13:13:46 BRT 2011 INFO:OriginalDisplayMode: 1024 x 768 x 32 @85Hz
Fri Jul 22 13:13:46 BRT 2011 INFO:TargetDisplayMode: 800 x 600 x 0 @0Hz
Fri Jul 22 13:13:46 BRT 2011 ERROR:Pixel format not accelerated
org.lwjgl.LWJGLException: Pixel format not accelerated
at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:185)
at org.lwjgl.opengl.Display.createWindow(Display.java:317)
at org.lwjgl.opengl.Display.create(Display.java:857)
at org.lwjgl.opengl.Display.create(Display.java:785)
at org.newdawn.slick.AppGameContainer.tryCreateDisplay(AppGameContainer.java:299)
at org.newdawn.slick.AppGameContainer.access$000(AppGameContainer.java:34)
at org.newdawn.slick.AppGameContainer$2.run(AppGameContainer.java:364)
at java.security.AccessController.doPrivileged(Native Method)
at org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:345)
at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:314)
at Puzzle.main(Puzzle.java:42)
Exception in thread "main" org.newdawn.slick.SlickException: Failed to initialise the LWJGL display
at org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:375)
at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:314)
at Puzzle.main(Puzzle.java:42)
Acho que o principal deve estar aqui: Exception in thread “main” org.newdawn.slick.SlickException: Failed to initialise the LWJGL display
Já segui vários tutoriais, mas todos eles resultam em algum erro :?
Tenho mais uma dúvida: quando o tutorial diz que devo importar o arquivo lwjgl.jar, eu devo importar o arquivo .jar que está na pasta da biblioteca lwjgl que baixei, certo? Pq no arquivo que baixei da biblioteca Slick2D também tem um lwjgl.jar e um dos tutoriais indicava que pegasse esse arquivo. Vc sabe se faz diferença, se são iguais?
Desde já agradeço.
Provavelmente o que você baixou é mais novo. O ideal é usar o que vem com a Slick mesmo, pois deve ser uma versão já testada.
Você associou as dlls ao arquivo lwjgl.jar?
Ah ta. Vou usar o da Slick2D então. Obrigada!
Acho que não. Como faz isso, exatamente? Li sobre isso em alguns tutoriais, mas nenhum deles explicava como fazer!
Eu definitivamente não estou com sorte D:
Não sei o que está acontecendo! Eu concerto um erro e aparece outro :S
Associei as .dll ao arquivo lwjgl e agora apareceu isso:
Exception in thread "main" java.lang.NoSuchMethodError: getPointer
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at org.lwjgl.Sys$1.run(Sys.java:75)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.doLoadLibrary(Sys.java:68)
at org.lwjgl.Sys.loadLibrary(Sys.java:84)
at org.lwjgl.Sys.<clinit>(Sys.java:101)
at org.lwjgl.opengl.Display.<clinit>(Display.java:128)
at org.newdawn.slick.AppGameContainer$1.run(AppGameContainer.java:39)
at java.security.AccessController.doPrivileged(Native Method)
at org.newdawn.slick.AppGameContainer.<clinit>(AppGameContainer.java:36)
at Puzzle.main(Puzzle.java:38)
Preciso muito conseguir fazer isso! Se alguém puder ajudar, agradeço!
Consegui concertar o erro! Finalmente \o/
Vou deixar a solução aqui para caso mais alguém precise:
Após seguir o tutorial indicado e as dicas, eu fui em Run -> Debug Configurations, Arguments, VM arguments e adicionei a seguinte linha: -Dorg.lwjgl.opengl.Display.allowSoftwareOpenGL=true
E funcionou!
Muito obrigada pela ajuda ViniGodoy!
