As Pekka has been detailing the gameplay for the last few blog posts, I decided to write a post about the technology behind Prisonscape.
The game engine is custom written in Java with a few dependency libraries. As of now, the engine supports(among other stuff): 2D tile maps, player movement, collision detection, camera controls, Lua script integration (LuaJ), MP3 playback (JLayer) and UI functionality. The engine is still a work in progress with lots of stuff in the development pipeline. The level editor is also written in Java with Swing driving the UI functionality.
Why Java? Here’s a few reasons:
- No manual memory management -> eliminates a certain class of bugs completely
- Excellent multi-platform support -> can easily target multiple platforms at launch
- Ecosystem which is both large and mature -> no need to reinvent the wheel
- Improved Java Virtual Machine performance -> reasonable execution speeds for 2D gaming
- Static typing -> programming errors are caught at compile time
- Familiary with the language and platform -> optimal programmer productivity right from the start
- Based on C -> easy to bring other programmers onboard
The popularity of Minecraft has also spread Java to a wider gaming audience which means that many of our potential customers will already have Java installed and updated. As for users with no Java installed, we will wrap the game with Launch4j so that the process of launching the game is smooth.
Overall, Java is a great platform with excellent tools all of which enables me, the programmer, to maximize my productivity. Java isn’t “perfect” but it gets the job done really well.
I also have to say that Lua is fantastic. It was easy to integrate the language into the engine and start getting stuff done. Pekka has really enjoyed scripting the dialogue and NPC behavior using Lua. With script integration, the players can also make their own NPCs, quests, dialogs etc. when they get their hands on the game.
As it was discussed in the introduction blog post, we will release Prisonscape on Windows, Mac and Linux. We’re already doing testing on all of these platforms, and so far the game’s performance has been excellent.
So, what’s coming next in the pipeline? A lot:
- Custom paths for NPCs (level editor) and pathfinding
- Improved audio support
- Support for scripting events
- Improved quest scripting
- Improved combat screen
- Lots more!
Well, that’s it for now. Stay tuned for more tech updates!