Posts Tagged ‘lwjgl’
I was planning to create a 2D game with LWJGL for LD. I know my way around OpenGL and everything but I haven’t been able to create a tile system with VBO’s, has anyone done it and / or could you give me any tips for doing it. ? Thanks for any answers.
With modern OpenGL I mean not using glBegin(), glEnd(), glTranslatef();
In other news here’s a link to a forum post about faster rendering in OpenGL with VBO’s, something you should really look in to. Here’s the link : http://www.java-gaming.org/index.php?topic=28209.0
Made the Game Jam submission deadline with about 10 seconds to spare, then we all passed out. Post Mortem coming soon!
MysticStv, for puzzle transcription and snarky commentary
Mrs. Hik3r, for puzzle transcription and nap-enforcement
LWJGL, and Java in general. Thanks for being a thing!
So i decided to enter this LD – finishing is another matter though since i was never good with deadlines :-P. But there is always the Jam i suppose…
I decided to use the code i wrote these days for viewing/walking around maps made with my 3d world editor in Java and LWJGL. So, as advised by the sages in #ludumdare, i declare here that i will use this codebase. I’m not sure what i’m supposed to do about the 3d world editor, so although i got told that its ok i decided to make an emergency release since the latest one doesn’t include the lightmapper or entity support. Unfortunately i don’t have a Windows or Linux box available at the moment so i can only provide Mac OS X binaries. In any case, in the file below you’ll find my “ld22-devkit”:
The devkit contains:
- Runtime World 1.0 alpha 2.99, special ld22 build (this is a full build, including the docs, example textures, world files, etc)
- Runtime World Walker for Java/LWJGL (which is now mutated beyond a simple walker and is a -awful- codebase for making 3D games with RTW files)
- Example code in RWW (Walker.java) for picking up coins and stuff.
- Prelightmapped rtw file, model, etc for the code above
- LWJGL binaries for Windows, Linux and Mac OS X (so that the example can be tried right out of the box) and scripts to launch the “game” from Windows, Linux or Mac OS X with proper parameters, etc
Even if you don’t use my codebase you might find the last one useful if you plan to distribute your LWJGL game and have no idea how to do that :-P. If you just want to try the example/test “game”, you can find it here (this is what i’m going to use as a base anyway):
And you can watch a video of it here. If you use Runtime World you’ll probably want to use your own entities – for these, modify the entities.lil file from the scripts subfolder. The format is register-user-entity <name> <group> <size> (size can be actually two or three arguments for width/depth and height or width, height, depth).
My personal set of tools, etc is:
- OS: Mac OS X Lion (iMac)
- Language: Java
- Libraries: LWJGL, own codebase (mentioned above)
- IDE: Eclipse (with some MacVim for non-Java editing)
- Graphics: Pixelmator, Blender, Runtime World (mentioned above)
- Sound: ….eh, what ?
- Video Capture: custom BASH script to make screen captures
- Video Tools: ffmpeg, iMovie
- Other Stuff: Colloquy for IRC, Cyberduck for FTP, Slayradio for background noise
Alright so here go my final thoughts.
I’m pretty happy with how everything went. The first day I spent a lot of hours just brainstorming, trying to come up with a really cool and simple concept. I’m a big fan of generated content and simulations that give the player something interesting and new to play with. Something that encourages the player to experiment instead of just running through everything completely deterministic. And I came up with a concept that was just way too abstract, and I wasn’t able to fill the blanks with working/realistic ideas. So about 10 hours in I somewhat hit a wall and was feeling quite stressed out. So I remembered to keep it dead simple and came up with what turned into my final entry. Elastic Prison, a game where the player controls a ball that is attached to an elastic band that keeps pulling it back to the starting point. And for the player to free himself, he has to cling & swing himself from one floating hook/ball to the next to maybe reach something that will remove this rubber band.
First I focused on how the player controls this ball and how the elastic band attaches itself to these hooks. I had something running pretty quickly and felt satisfied with the controls. Then I started to focus on the actual level creation. I knew there needed to be some variation so I created different kinds of hooks. I also put a few minutes into improving the performance so I could just throw everything into one big level. The next step was creating the level. I did so by making one challenge at a time for me. Every time I tried to make it different from the previous one, or even so that it builds on the skills that were acquired earlier. I tried to make later parts of the game really hard as I hear people are complaining a lot about games being to easy these days. So I could just barely play through these final stages that I created. Still it’s not impossible and after uploading my submission I recorded a 12 minute play through.
Using LWJGL was a pretty straight forward decision but looking back it might have been smarter to choose libgdx because it’s LWJGL + more nice stuff (mp3 support). It’s been smooth sailing with LWJGL though. Currently I’m working on porting my game to libgdx to maybe have it run on android or as an applet.
Sound and Artwork:
Those were the things I was most confident about and surely enough I was really quick. Ableton and Photoshop did their job well. The sounds turned out a bit quiet though.
I have to say I was quite surprised with the feedback. Yes people liked the concept, art and sound but had a gripe with the controls, expecting them to behave differently and not really being able to figure out how to master them. And they were quite frustrated about how checkpoints work, as they won’t keep you forever from going back to the beginning. Well I can see now how people expect the controls to work and it’s too bad that I didn’t hear that kind of feedback before I uploaded my final submission. While working on it I was told it is hard but fun, which is what I was going for. Now to the checkpoints. I guess the problem here lies completely in not communicating well enough how they work. The funny thing is that it is a really simple concept. Every hook behaves the same way. But some might hold you longer, depending on their size. You won’t end up at the beginning if you understand this concept and make sure to reattach yourself to these large hooks again when they stop glowing.
Once you get it it’s a challenging and interesting concept. And I thought it goes quite well with the theme. The player is trapped and tries to escape. Once he stops struggling he is in danger of being back where he has started.
I look forward to the next Ludum Dare. I’ll make sure to get more feedback while working on my game, and to keep it simple straight from the beginning. As for Elastic Prison, I’ll make it available as an Applet and maybe do some more with that concept sometime in the future.
Here it is. I kinda screwed it up though when I stopped and restarted chronolapse…sometimes it didn’t record. So some hours are missing. Better luck next time, and I’ll try to have one of these neat on screen clocks.
Here are a few minutes of gameplay of my compo game “elastic prison”. I think the compo went quite well for me. Considering this is my first time here and that I haven’t really finished a game in a loong time.
Go to the entry page to download it.
I’ll post my time-lapse later today. And maybe a complete playthrough sometime this week, because I like the ending.
My game is in a playable state. I haven’t finished the level yet. But there is quite a bit which you can play so far.
Download Beta2 arrow keys to control
Does it work? Are you good enough to reach the “E” at the current premature end? Do you like it? Do you get why it’s an escape? Any name suggestions?
Ton of artwork, titlescreen, ending still to make. I got music, but it’s not really running yet. Thinking about switching to libgdx to get some stuff to work easier.