No Comments

Updates to HaxePunk

Updates to HaxePunk

A few weeks ago I decided to continue development on HaxePunk. It was spurred by some updates made to GitHub as well as interest in the forums. For those unaware of what HaxePunk is, it's a game engine written in Haxe that can run on multiple platforms. The largest benefit is that it will compile natively for mobile devices as well as the three major PC platforms (Windows, Mac OSX, Linux).

The first thing I changed was how the project was structured. It used to be where you had to clone the repository from GitHub, install SamHaxe and Haxe, and use the FlashDevelop project. This worked for Windows developers but since I like working on my Mac I wanted a different process. Now you get the engine through haxelib and can use any editor you want.

Secondly there was an issue with the way assets were handled. Last year the best asset embedding tool was SamHaxe but since then NME has gained traction and become a decent platform. I switched everything over to NME (still supporting SamHaxe and SwfMill) and haven't looked back.

Screen resizing is now supported which is useful for fullscreen flash games and games that run on different device resolutions. It's not perfect but in the coming weeks there should be some improvements made to it.

Instead of boring you with more details, go check out Haxepunk now.

Posted in General

Tags: Flash, iPhone, Android, HaxePunk


No Comments

Need an idea for a Christmas present?

Need an idea for a Christmas present?

Last year I made a video game for my family to play on Christmas. I didn't have much money at the time so it was part of my gift to everyone. It ended up being a simple board game where tokens moved forward on a timeline, the past year, and the goal was to reach the end. Once everyone made it to the end of the game it would tally up memory points and determine the winner.

The memory points were gained by landing on event spaces. There were 10 major event spaces and 15 minor event spaces. The major events had something to do with our family in the past year like when someone got a new job. The events were placed in the timeline in the month it occurred in (each month having 10 spaces). Minor events were just generic things like buying a cup of coffee or having to shovel snow. They could add or subtract to your score while the major events only added.

Other spaces included move ahead/backward squares and lose a turn. It's generic to most board games but added enough variety to make the game fun. It was all done on the computer so I stored the board layout in a file and loaded it at the beginning of the game. That made it easier to test different layouts.

To move our tokens I decided to use physical dice instead of randomly generating numbers on a computer. This allowed me something to give my family before showing the game to pique their interest. I also did it this way so that my parents felt they had control. After each turn, I simply input the die roll into the computer to advance the game.

Overall it might have taken me a week or so to get the game done in my free time. The result was something that my entire family enjoyed and let us reminisce the past year. If enough people are interested in the project I might consider putting it up on GitHub.

Posted in Game Design

Tags: Board Game, Java, Christmas


No Comments

Postmortem: Current

Postmortem: Current

A few months ago I took part in a speed-game contest for the Christian Developers Network. The game ended up having exploration style gameplay with power ups much like Metroid. You can actually play Currentif you want to check it out. There isn't a preloader so give it a minute or two to load up. Or read on for my post-mortem...

I was working together with an artist, Brenton, and we found that it was best to prototype how the gameplay would work at the beginning of the contest. We went through a couple of iterations and finally ended up with a game where you play as a bubble and can collect other bubbles. Believe it or not the first prototype involved men taking baths in clouds... don't ask.

Since we were doing complex levels involving rocks and underwater flora/fauna we needed something to define collision areas easily. I used an ogmo project to draw small squares over the main collision image. While we could have used pixel perfect collision it would have slowed down the game due to the size of each area.

Current Title ScreenThe first 10 rooms are hand drawn levels which look very beautiful but we knew that it was going to take too long to finish the game if we kept going down that route. So we switched to using tiles and creating levels that still look decent but were a lot faster to create. Meanwhile I was adding things like enemy fish and power ups.

The first thing I had to figure out was how the small bubbles would float around the main bubble. I tried it with the bubbles free floating around the main one but it felt loose and fish could easily pop the followers. So after several attempts I finally got it right. The small bubbles would spin around the main one and quickly catch up if they got behind. If bubbles were popped the others would file into place to fill the gaps.

Once accumulation was working we decided it made sense to have some way to consume bubbles. Since your followers protected you from other fish you had to decide whether to use your bubbles for armor or skills. The first skill we added was a grab mechanic because we planned to throw rocks around.

After that we decided to put in gems that unlock doors. It added a puzzle element to the game instead of just exploring. Gems couldn't be dragged to different rooms though so later we decided to add in keys. It's cliche but we were running out of time at the point.

Current Save PointSave points were another thing that went in early in the game. I had been playing VVVVVV and loved that save points were in almost every room so we decided to go with that concept. All you have to do is hover over them and they activate. It allowed us to be less forgiving because you didn't lose much progress when you died.

Finally I decided to put shooting in the game. In the beginning of development we didn't want to put shooting in. There wasn't a purpose to do so and we felt it made the game like any other shooter. Halfway through the contest we figured out a reason to fire bubbles, sea urchins. There are several areas in the game that you have to shoot stationary fish to continue. It also gives the player something to do as they are floating through the game.

What went right

Adding save points in the game early was extremely important. Since our game was based on exploration we wanted the player to be able to come back and play some more. It also forced us to come up with features that could be saved. This proved to be a bit of a challenge later because certain powerups could be picked up several times in different rooms, ie. bubble layers.

Current Dark Area

I made the enemies relatively simple so the levels were designed to their movements. Brenton can take all the credit on this because he made some really clever levels. There is one room that I still have trouble with today and it's simply because the enemies were designed to work a single way and do it well.

Another thing we did right was the way bubbles moved around the screen. It took many attempts to get the proper feel but it paid off in the end. The game was a lot of fun just moving around the levels and watching bubbles follow. The other part of this is the bubble spawners. Many areas have vents spawning bubbles and we ended up increasing the flow so the player didn't have to sit there all day waiting to refill.

Scene transitions are a big deal. I added a fade between levels and it created a whole new depth to the game. Not only does the screen fade but the music as well (which is a pain with xm music...). It's one of those things a lot of games forget about because it's such a tiny detail.

Lessons learned

With every project there are things that could have been done better. The biggest one is probably the boss. Literally one hour before the end of the contest I hacked together the boss. Not to say we hadn't focused on it before then but the plans we had for the final battle didn't come to fruition. However, the game needed an ending and so I quickly threw together a blob that spawns fish at random locations.

The second issue was that we had to keep the game under 10MB. This wasn't an issue for graphics and code but we wanted music to play in the background. I'd been doing some chiptunes with MilkyTracker and so I decided to write the music in that style. We were able to get over 7 minutes of music in the game in under 1MB. However this caused some glitches where sound would stutter and it didn't exactly match the art style.

Current Castle

There were also scene transition issues where the player would get stuck in walls if they bounced around a lot. In fact there is one room where the exits don't completely match up and we didn't catch it before the competition end date. Thankfully the game could still be finished even with the exit bug.

The flow of the game could have been improved. We had actually planned on having underwater currents that moved the bubble around which is why it's named Current. Unfortunately that was one of the many features we ended up cutting out. We wanted to do something different than doors/keys but ended up putting them in because they were a simple way to lock off areas of the game.

Overall the game was a lot of fun to make and is a surprisingly long and fun game to play. It still takes me about 20-25 minutes to play the game to completion and that is after knowing where all of the items are. I'm really happy with the way it came out and hope you give Current a try.

Posted in Game Development

Tags: music, Metroidvania, HaxePunk, Finished Games


No Comments

My current obsession: Skyrim

My current obsession: Skyrim

I've been a fan of Bethesda games since Morrowind came out. The combat in Morrowind always felt weird to me. You could attack something and miss even though it was staring you in the face. It was like mmo games where your character flails around for a while and eventually hits the monster, unless you die. Then Oblivion came out and had much better combat but still had the weird dialogue options.

I loved the Elder Scrolls up to that point but Fallout 3 made me fall head over heels in love with Bethesda's games. I could finally have a conversation with an NPC without needing to hunt through a list of dictionary words. The VATS system was cool but it slowed down the game a bit, making my shooting skills feel inadequate. Recently Skyrim came out...

I don't usually get excited about the release of new games but Skyrim was a different story. The past week I've been playing it every chance I get and the game keeps getting better. It's packed full of interesting characters, useful items, and how can I not mention... dragons.

They got it right this time. The combat is much more believable and includes things like shouts, blocking, and shield bashing. The dialogue is excellent, showing what you have already said and what new options have opened up. And not only did they learn from their past games but they made further improvements to the user interface (at least on consoles).

The ability to favorite a spell, weapon, potion, or clothing item is awesome. You can also quickly get to all of your items with a limited number of button pushes and flicks of the control stick. The waypoints now show if you are expected to walk through a door or if it is located in the area you are searching. It's a much less intimidating ui than the previous iterations.

My only complaint so far is that the dragon battles tend to get repetitive after the first few. Typically they land for a moment, breath fire/ice/etc and then take to the skies just to repeat the pattern again. When health gets low they stay on the ground and try to kill you quickly with their breath or by attacking you directly. As a magic user I found if I stayed at a decent distance the battles were relatively easy and I'm playing on master.

To anyone that enjoys action RPG games I highly suggest Skyrim. You should plan to spend a lot of time with it though because you'll get sucked into the atmosphere.

Bethesda, I look forward to your next game but feel free to take your time because clearly your games keep getting better when you do.

Posted in General

Tags: games, Bethesda, Skyrim, Xbox 360


No Comments

HaxePunk

HaxePunk

I've been working off and on with HaxePunk and finally put two of my prototypes up. The framework should be working almost exactly like FlashPunk and with some loving will work with NME.

Want the source code? Get it on GitHub and post about how you are using it in the community forums.

Posted in Game Development

Tags: Haxe, HaxePunk, prototypes