An Inside Look at Our Game-breaking Bug

Note: This post is by your favorite programmer, Joraaver!

     Hey guys. Sorry for the long wait. My first project in my Operating Systems class took an insane amount of time. But enough about me. Time to dissect the game (WARNING: LONG and MEATY)!

     I'll break this post up into 4 parts (NOT 4 posts, 4 parts): setup, analysis, solution, and remarks. Please keep in mind that I strive to explain everything to my best understanding, but I'm a beginner game developer, a student, and above all, nowhere near perfect. If I did something wrong or could have done something better, PLEASE tell me!

The Setup

     It was around 11:50 pm Saturday night, January 4th, when a play-tester called me to report an error. After the 16th level and the 20th level, he would get a java.lang.OutOfMemoryError: Direct buffer memory error. So, as any developer would, I collected the details of his machine--graphics card, RAM, operating system, the works. However, the machine wasn't anything special, so I will leave those details out. The main part occurs now: I have a bug, it's 12:

Continue Reading


Converting Stages From Tiled to jME (Part 2)

     This post is, once again, coming to you from Joraaver.

     Last time, I talked about how the stages of our game are designed in Tiled, and what layers we had to look for. I also addressed leveraging the SAX parser in Java to parse the tmx file for the objects.

     Today, I'm going to analyze how I stored my objects from Tiled and how I mapped them as tiles to jME's coordinate plane.

     Most of the information regarding the "gid" number of the tile and collecting tilesheets is in the Parsing and Rendering TMX Files tutorial by GameDev Tuts+. I'll only be covering the things that are jME specific, and will touch base on the "gid" information if necessary.

Collecting the Objects

     First, I'll quickly dive into collecting the tilesheets. Follwing the tutorial above, I created a nice and simple TileSet class, with the same attributes. Then, inside the DeafaultHandler I created, the code below handles grabbing each tileset and creating an instance for it:

public void startElement(String uri, String localName,String qName, Attributes
Continue Reading


Wading In

Head's up guys. This post is written by Joraaver.

We've given you the basics of who we are, but now, I'm going to dive into what the game is about, as well as what part each of us plays in the development of the game we're working on. The game has no name yet, so "the game" here means The Game.

The Game

This is a puzzle-platformer game. It's got a bit of a backstory, but the real focus is on the puzzle in each level. We hope players will learn to love the titles as they move on through the levels, because they'll get no other hints. Now, I can't tell you everything, can I? But perhaps a screenshot will satiate your hunger for now:

Teaser screenshot

Our Roles

     I'm Joraaver, the lead programmer on the team. I'm using the JMonkeyEngine, or jME version 3 RC2, as the game engine for this project. I could have gone with a more classic 2D engine, like Construct 2, or even have used Unity, which has just released a 2D framework in it's latest version (v4.3). However, I am most familiar with Java, I like the open-source nature

Continue Reading


How We Set this Blog Up

     Merry Christmas everyone! Today is a day of festivity, so enjoy it! Luckily for all of you, the team has a present to give. As game developers, we realize the importance of marketing yourself, and one great way of doing this is creating a blog, similar to this one. For all those curious about how they can go about starting their own blogs with Ghost, here is a high level explanation of how we did it.

Some Background

     Ghost's goal is to make blogging simpler by bringing blogging back to its roots. It is not a full website development kit of any sort; with it you can create a theme, host a blog, and make and edit posts (so far). Later releases will include the ability to create static pages (such as an "About the Author" page), a dashboard to keep track of metrics, and much more. You can find out what features will be included when by looking at Ghost's Roadmap.

     Ghost also has fairly well maintained documentation, available here.

     With this information in mind, we can split the

Continue Reading