Asteroid Wars by leondryaso
This game is a kind of revival of good ol' Asteroids. It may not be the most original one, but we really like our shader job here.
The rounds are getting a bit longer each level, on the end you will be shown an upgrade screen where you can upgrade your weapons and shields.
Use arrow keys or WSAD for ship movement, Space to shoot, Left Ctrl to shoot special.
Download, unzip and double click or "java -jar ld36.jar"
Requires Java 8 and a graphics card supporting OpenGL 3.1+. The build has been tested on Windows and Linux, it won't probably work on Mac, but we will be very grateful if you try it anyway and post a log.
Uses LWJGL, JOAL + Paul's Soundsystem (terrible combo, but still easier than other options). Based on GabeNgine (https://bitbucket.org/datt/gabengine)
The rounds are getting a bit longer each level, on the end you will be shown an upgrade screen where you can upgrade your weapons and shields.
Use arrow keys or WSAD for ship movement, Space to shoot, Left Ctrl to shoot special.
Download, unzip and double click or "java -jar ld36.jar"
Requires Java 8 and a graphics card supporting OpenGL 3.1+. The build has been tested on Windows and Linux, it won't probably work on Mac, but we will be very grateful if you try it anyway and post a log.
Uses LWJGL, JOAL + Paul's Soundsystem (terrible combo, but still easier than other options). Based on GabeNgine (https://bitbucket.org/datt/gabengine)
The music you selected fits very well, too (the upgrade screen is where I spent most of the time for that reason, I think :P)
Well done, great entry!
Both the mainmenu and upgrade menu bg music is super cool..
I wish it would be better if continue game option available. since every time starts from beginning.
First of all it's definately my favorite so far out of all the games I've played, including mine. And it's the first game I've played after I've gotten the full experience out of it. I made it to level 13 before I had to stop myself from continuing, or I'd be playing it all day.
The CRT effect is fantastic, it really fits the game and just looks flat out amazing. The screen shaking is really good too. The music and sounds were great and substantially added to the game and made it a better experience. The shop was good too, although I think it could have had some more options or had more stages on the current ones. It didn't take long for me to max out my ship.
One of the only things I disliked about this game was how easy it was. I was able to survive extremely easily after the second level when I got the triple laser. I feel that if you had either added some more options in the shop and/or made things more expensive it would have lengthened the game a bit.
Also, this is a bit of a nitpick, but it bothered me a little that the screen didn't wrap. In the original Asteroids, when you went past an edge of the screen, you showed up on the other side. I do understand, however, that this would've been somewhat hard to achieve successfully because of the asteroids randomly spawning past the borders to keep the game going.
In the end I thought this game was fantastic in all aspects and I really enjoyed playing it. It's also nice to see a fellow Java developer doing Ludum Dare. :)
at cz.dat.gaben.api.ContentManager.<init>(ContentManager.java:35)
at cz.trigon.ld36.Main.main(Main.java:13)
plz try to fix, i rly want to play it
@paruthidotexe Well, it's supposed to be the hit - die - repeat type of game, maybe it would make sense if there was a much wider scale of upgrades and stuff.
@RubiksJr Yea, there's definitely space for more upgrades and it's levels. But actually it really depends on luck (Random.nextFloat() :D) if you manage to get through the levels easily. When making these strange formulas for upgrades count, I was thinking that it's only a LD game, less people would see how the gameplay with fully upgraded ship goes if it was too long to get there. About the element wrapping - we were thinking about it, but ultimately we decided to not implement it, because it would be too hard and we rather added another ideas we had. Thank you very much for your comment ^^
Graphics - amazing. It's an awesome twist with the old TV style, which is very well implemented. I had to stay to just go between the main menu and the about second a couple of times because of how great the transition looked. Everything is super simple, yet very clear! The camera shakes add a lot to the experiences and it's just very well executed.
Sound - Good music, and great sound effects! I'm playing this on my laptop in a big cruise ship, and sometimes a shot managed to get synced with the engines rumbling and I felt like I was in a movie theatre :)
Controls - The "in-game" controls are all they need to be, but it's a little confusing how they translate to the menu screen. Something like selecting what you want to upgrade and moving it to the right as many times as you like, and then buying it with the shoot button would have been clearer for me, since the enter and escape buttons weren't used before.
Other stuff (I don't have the energy to be specific anymore... :) )
Asteroids is a very difficult game, and I like how you made it into a rogue-like. I only made it to level 4 with many tries, so to see if there was more, I went into the ram and upped my money from 136 to 200000 and bought all the upgrades. Got to level 7 and felt bad (in a good way). Then I realized that if I went out to the menu and back in again, I advanced one level. I double-cheated (money and level skipping) my way up to level 42. Beat it. Died on the next one. Anyway, regarding the theme, I was expecting to see some old school computer game references, and this one totally did Asteroids justice. So yeah, playing this game took about an hour of my life, and I'm happy it did! Very well done!
I probably forgot to say a bunch of things, and I hope this whole feedback makes sense. Feel free to ask questions :) Now I'm heading to bed! Good night! :)
And I pressed R, and it was awesome. Even though it took me like 45 minutes to figure out what it did :)
Agreed with the above that the shader is a crowning achievement. Well done!
Excellent game, even if it's a remake!
About your comment in my game (Lost Earth), I fixed the bug you noticed about the game freezing when character dies.
java.lang.NullPointerException
at org.lwjgl.system.APIUtil.apiGetManifestValue(APIUtil.java:97)
at org.lwjgl.system.Library.checkHash(Library.java:260)
at org.lwjgl.system.Library.<clinit>(Library.java:44)
at org.lwjgl.system.MemoryAccess.<clinit>(MemoryAccess.java:17)
at org.lwjgl.system.Pointer.<clinit>(Pointer.java:22)
at org.lwjgl.glfw.GLFW.<clinit>(GLFW.java:562)
at cz.dat.gaben.api.impl.lwjgl.LwjglBuilder.canBeBuilt(LwjglBuilder.java:64)
at cz.dat.gaben.api.game.GameWindowFactory.createGame(GameWindowFactory.java:46)
at cz.dat.gaben.api.game.GameWindowFactory.createPreferredGame(GameWindowFactory.java:59)
at cz.trigon.ld36.Main.main(Main.java:17)
Exception in thread "main" java.lang.NullPointerException
at cz.trigon.ld36.Main.main(Main.java:18)
Running with debug option on MacOS X shows following output:
Testing window creation
java.lang.NullPointerException
at org.lwjgl.system.APIUtil.apiGetManifestValue(APIUtil.java:97)
at org.lwjgl.system.Library.checkHash(Library.java:260)
at org.lwjgl.system.Library.<clinit>(Library.java:44)
at org.lwjgl.system.MemoryAccess.<clinit>(MemoryAccess.java:17)
at org.lwjgl.system.Pointer.<clinit>(Pointer.java:22)
at org.lwjgl.glfw.GLFW.<clinit>(GLFW.java:562)
at cz.dat.gaben.api.impl.lwjgl.LwjglBuilder.canBeBuilt(LwjglBuilder.java:64)
at cz.dat.gaben.api.game.GameWindowFactory.createGame(GameWindowFactory.java:46)
at cz.dat.gaben.api.game.GameWindowFactory.createPreferredGame(GameWindowFactory.java:59)
at cz.trigon.ld36.Main.main(Main.java:17)
Exception in thread "main" java.lang.NullPointerException
at cz.trigon.ld36.Main.main(Main.java:18)
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
It probably tries to create a window, but instantly closes it and exists.
UPDATE to previous log - seems like i've put the option in the wrong place. Here is the actual output on MacOS with debug applied:
Testing window creation
java.lang.NullPointerException
at org.lwjgl.system.APIUtil.apiGetManifestValue(APIUtil.java:97)
at org.lwjgl.Version.getVersion(Version.java:33)
at org.lwjgl.system.Library.<clinit>(Library.java:35)
at org.lwjgl.system.MemoryAccess.<clinit>(MemoryAccess.java:17)
at org.lwjgl.system.Pointer.<clinit>(Pointer.java:22)
at org.lwjgl.glfw.GLFW.<clinit>(GLFW.java:562)
at cz.dat.gaben.api.impl.lwjgl.LwjglBuilder.canBeBuilt(LwjglBuilder.java:64)
at cz.dat.gaben.api.game.GameWindowFactory.createGame(GameWindowFactory.java:46)
at cz.dat.gaben.api.game.GameWindowFactory.createPreferredGame(GameWindowFactory.java:59)
at cz.trigon.ld36.Main.main(Main.java:17)
[LWJGL] Version: 3.0.0 SNAPSHOT
[LWJGL] OS: Mac OS X v10.11.6
[LWJGL] JRE: 1.8.0_45 x86_64
[LWJGL] JVM: Java HotSpot(TM) 64-Bit Server VM v25.45-b02 by Oracle Corporation
[LWJGL] Loading library (system): lwjgl
[LWJGL] liblwjgl.dylib not found in java.library.path=/Users/igor/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
[LWJGL] Using SharedLibraryLoader...
[LWJGL] Extracting: file:/Users/igor/Downloads/ld36_asteroids/ld36.jar!/liblwjgl.dylib
[LWJGL] Loaded from org.lwjgl.librarypath: /var/folders/tl/4v15z3y51r3c4nlwt2njp7z00000gn/T/lwjgligor/2af4be70/liblwjgl.dylib
java.lang.NullPointerException
at org.lwjgl.system.APIUtil.apiGetManifestValue(APIUtil.java:97)
at org.lwjgl.system.Library.checkHash(Library.java:260)
at org.lwjgl.system.Library.<clinit>(Library.java:44)
at org.lwjgl.system.MemoryAccess.<clinit>(MemoryAccess.java:17)
at org.lwjgl.system.Pointer.<clinit>(Pointer.java:22)
at org.lwjgl.glfw.GLFW.<clinit>(GLFW.java:562)
at cz.dat.gaben.api.impl.lwjgl.LwjglBuilder.canBeBuilt(LwjglBuilder.java:64)
at cz.dat.gaben.api.game.GameWindowFactory.createGame(GameWindowFactory.java:46)
at cz.dat.gaben.api.game.GameWindowFactory.createPreferredGame(GameWindowFactory.java:59)
at cz.trigon.ld36.Main.main(Main.java:17)
[LWJGL] Loading library: glfw
[LWJGL] ThreadLocalUtil state: UnsafeState
[LWJGL] MemoryUtil accessor: MemoryAccessorUnsafe
[LWJGL] Loaded from org.lwjgl.librarypath: /var/folders/tl/4v15z3y51r3c4nlwt2njp7z00000gn/T/lwjgligor/2af4be70/libglfw.dylib
[LWJGL] Loading library: objc
[LWJGL] libobjc.dylib not found in org.lwjgl.librarypath=/var/folders/tl/4v15z3y51r3c4nlwt2njp7z00000gn/T/lwjgligor/2af4be70
[LWJGL] libobjc.dylib not found in java.library.path=/Users/igor/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
[LWJGL] Loaded from system paths
[LWJGL] Loading library: /System/Library/Frameworks/AppKit.framework
[LWJGL] Success
[LWJGL] GLFW can only be used for offscreen rendering.
Exception in thread "main" java.lang.NullPointerException
at cz.trigon.ld36.Main.main(Main.java:18)
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.