Skip to content

SpeedRunGames.com

Fast Paced Indie Games

Archive

Category: Technology

I’m a student, not rich, without a second job, and without a publisher, but I love to create games.
So my project-budget for Grappling Hook was almost zero, but fortunately, there are some great freeware and open source projects.
I will present you every tool that I have used during the development of Grappling Hook.

Java
I already wrote an article about, how great Java is for game development and my opinion has not changed since then.
You can find the article here.

Eclipse
Eclipse is a great free IDE. It offers syntax-highlighting, code-completion, refactoring-tools, a debugger, Java-doc-generation, good search-tools, code-formatting, neat-project-overviews and a lot more.
I had to work with Visual Studio and I wished every day, that it would be at least half as good as Eclipse. With Visual Assist X things get a lot better, but you have to pay for it.
Good alternatives: NetBeans

jMonkeyEngine
The jMonkeyEngine is a general purpose engine written in Java. It is build on top of LWJGL and offers a scene-graph and many cool features, for example shaders, terrain, particles, shadows, many model formats .
Some features are missing like a good physics integration, but the community is working hard on it. The community is one of the best I have ever seen. They are active and very helpful.
Beside Grappling Hook, there are other commercial projects using the engine, like Mad Skills Motocross or Bang Howdy.
When you are looking for a free engine to develop a game, you should definitely evaluate the jMonkeyEngine.
Good alternatives: Unity, Panda3D, Ogre3D
continue reading…

Hey, 🙂 I’m really proud of Grappling Hook in its current state, because it is very polished and the best thing I have ever created.

Last major changes:

  • Play-Tests with Heiko, Hans,  Charly and Bernhard on their machines. Thank you! 🙂
  • Created 4 new levels. Yes, there are 22 now! Two more than promised, because I could not stop building. ^^
  • Polished and tweaked every level again.
  • You can hear and see now, if your hook-shot was successful or not.
  • Implemented an ingame typewriter-block.
  • The game tells a small story now!
  • Improved the usability.
  • Added a surprise for everyone who will finish the game. 🙂
  • Added a new statistics-screen with a bunch of values like, how many teleporters you have used or how many times you have jumped.
  • Recreated the level-end-screen with your time, records …
  • Added popups to notify when you beat a challenge or your own record.
  • Created many builds to test on different machines and get familiar with deployment.
  • Made some important structural changes.
  • Changed a few things in the engine to get the game running on Vista 64bit.
  • The game will save everything to the userfolder now.
  • Added the credits-screen.
  • Fixed many bugs.

Most open tasks are now related to PR and distribution.
Stay tuned! It is almost finished! 🙂

Hey, 🙂

I have worked hard on Grappling Hook in the last week, because I will have no time to work on it in the next 7 days. I have to learn for my exam. But I can hardly wait to build new levels and work on the final tasks. 🙂

Last Changes:

  • I use Geometry Instancing for the rendering of most parts of the level now. This improved the game performance alot, because the number of draw-calls is heavly reduced. This had many small side effects I had to fix. But it `s done now. 🙂
  • Height shading is now implemented with a shader. Height shading means, that everything that is below your position will be darker and everything that is above will be brigher. This supports orientation. You can see the effect on the screenshot.
  • Heiko, a game developer and good friend, played the game and gave me a lot feedback. Based on his feedback I made many small changes to improve the game and interface. Thank you Heiko. 🙂
  • I worked again on the sound and textures of the electric trap.

Grappling Hook - Height Shading

Hey, 🙂

today I tried out a Metrics-Tool for Eclipse to get some statistics of the Grappling Hook source code.

In the last 4 months I wrote 12433 lines of code and 112 classes for Grappling Hook.

I’m proud, because I never created such a big project on my own before. 🙂

Cya, 🙂

Christian

Hey guys, 🙂 Grappling Hook is written entirely in Java and based on the jMonkeyEngine, which is also a written in Java. I want to explain a bit, why I think that Java is currently one of the best programming languages for game development.

1. Java Is Fast

Yes, that is the truth. Many people think that Java is slow, because it was, in the beginning. But things have changed and when you look at current benchmarks Java is in average only twice as slow as C/C++.
When you want to make Crysis 3, then it would be no option to write the entire game and engine in Java. But competing with huge companies like Crytek, Epic or ID Software makes no sense for a small indie team at all, from my point of view.

2. Eclipse Rocks

I had to work a long time with Visual Studio and also tried some other IDEs and text-editors, but none of them was such a good, stable and helpful tool as Eclipse is for me.
Right now Grappling Hook has more than 100 source code files so I need a good tool, which supports me. Code completion, syntax-highlighting, refactoring and a powerful search function are essential for a high development speed.
And this features work perfect in Eclipse, not like e.g. IntelliSense in Visual Studio for C++. While working on one big project I had to delete the IntelliSense database every day by hand to make it working again.

3. Extensive And Stable Library

In game development you need different kinds of data structures and containers, like linked lists, vectors, trees… You also play much around with strings and need many mathematic functions. In the Java library all this and much more waits for you. You don´t have to search new libraries for all this basic stuff.
Most of it is has also a good interface and is easy to use. In the current Java version you didn’t even have to care about iterators and can use them like in Python:
for( Element e : list) {
// Do something with the element e
}
Thats really nice, because I iterate a lot through different kinds of data structures. ( But be careful doing this every frame multiple times, because every iteration needs a new iterator-object. )

4. Managed Memory

I am not the best C++ programmer and destroyed the stack of my applications multiple times. It took me hours to track the problem and in some cases I didn’t find it at all. In Java and every other language with managed memory you simply don´t have such problems.
Memory leaks are also not that bad, because of the garbage collection. Garbage collection doesn’t mean that you have no memory leaks at all, but they are not such a bit issue and with the built in memory profiler they are easy to track.

There are many other small points, why a like Java for game development, but that were the most important.
Java is not my favorite programming language for every task, but in game development I am 4 to 6 times faster than with C++. And being able to develop fast is very important to me.

What is your favorite programming language for game development and why?

There are some more information about the Grappling Hook game and it´s status on this page.

Graphics and story making good progress. After my last play-test with a 3d artist I had a long talk with him, what can be done to improve the graphics of the game in an economical way.  I had a look at concept art of Star Wars, Blade Runner and some other Sci-Fi-Worlds to gather new ideas for the visual design and created some (poor coder-style 😉 ) sketches. With that in my hands I looked at some free 3D modeling tools, which I already used a bit some years ago.

Wings 3D: This is easy to use and has a clean interface, but it crashed on my machine a few times. It also has no support for animations.

GMax: This is a slim version of 3D Studio Max. When you are firm with 3D Studio Max it is easy to use. It is a bit buggy, the development was stopped in 2005 and the only way to export stuff is with a MD3-export plugin. It is also not clear if it is allowed to use the models created with this in your own game.

Blender: In the first two hours I swear about the interface, but with some time you can habituate. Blender has a strong community, runs stable and has all features that are needed for creating game models and animations. It also has an own game engine and uses Python as a scripting language, which is very cool.

Because Blender is the only free 3d modeling tool which is actually stable and suitable for game development I spend more time with it and created a new bolt for the grappling hook device. Currently it is not ingame, because a texture is missing and I am not proud enough of it to show you a screenshot. ^^

I also had a look at graphics shader programming. Within the next days I will probably add a Screen Space Ambient Occlusion shader to improve the visual quality and give some more depth clues. I hope this will be a good way to fake shadows. Screen Space Ambient Occlusion is analyzing the differnces of the depth-buffer for every pixel and some random neighbours, to calculate a new brightness for the pixel.