All the jams!

I was meaning to post this sooner, but along with work piling up and losing track, I did quite a few game jams. Three in particular: RemakeJam, Jamchester and Ludum Dare.

  

I’ll mention Running The Marathon first, because I only finished the game two days ago from posting. This was made for Ludum Dare 39, which makes it the 10th Ludum Dare I participated (and 9th I submitted a game independently). This was a bit of a last minute entry because until Saturday evening, I had no intention of making something for LD. What changed my mind was a game idea I was coming up with as a joke, running a marathon and making sure you don’t run out of energy. What I ended up with was a bit of a joke on the Track & Field concept, by having rapid button presses make your chances at success worse. Because of how little time I worked on this, the background animations and sounds are lacking, although I do think the running animation on the player turned out okay.

4i8mLl.gif

As is the tradition of Ludum Dare, voting will be going on by all participants for a total of three weeks. Any Ludum Dare entrants can go to the game’s Ludum Dare event page to vote and comment.

Next I’ll talk about Dash Dodge, which was developed for Jamchester 2017, a professional games jam that I took part in last year. This year, I was in a team which consisted of another programmer & sound designer (Jessica Winters) and two artists ( and ). All in all, this was a great team to work with, and we had a heavily planned out game about combatting bosses using only dashing, with a time travel element, although we may have over-anticipated our goals a bit. Needless to say, we made a game with a nice visual style and some neat mechanics thrown around. Hopefully at some point in the future I would like to work with these three again at some point.

Finally, there is 8-Bit Theater: Black Mage is in a Shooting Game. This game, developed for RemakeJam, is a remake of a previous game of mine. In particular, this is a remake of the first game I ever made from back in 2010. What was great about working on this is that I still have the original source project and most of the original assets and notes, although I did have to dig through Google for a copy of GameMaker 8.1 in order to view the original project. Sadly because of lack of time (I rarely allow full days of focus for these game jams, I’ve noticed), I just about managed to remake the original two levels and boss. This wasn’t for naught though, as way back when it took me over a year to reach this far, and this time I managed to achieve the same amount in less than a week. I also took advantage of my own game framework to try out some technical challenges, such as parallax scrolling.

Game Jams are fun, I like taking part in them for those short bursts of game ideas and development challenges. Sadly participating is made more difficult when my day-job takes priority, but when I get a chance to take part I’d like to take full reigns!

Now time for some voting and other challenges!

Ludum Dare 38 – littleBLASTplanet

Last weekend was Ludum Dare 38, not only is it the 38th main game, as well as the 8th or 10th one I’ve taken part in (whether or not you take into account failed attempts), but it also marks the 15 Year Anniversary of the competition/jam as a whole! Not only is it celebrated with another jam, but with a brand new website. For now you can still access the old website, but game submissions are currently being handled entirely on the new site.

ldjamalpha

The theme this time around was Small World, so I (like a lot of devs) made a game either around a small game world or a tiny planet. I went with the latter and drew up a run ‘n gun shooter on a little planet.

 

Sadly I had plans with my friends on Saturday so I didn’t start work on the game until around 8PM GMT, so development felt more rushed than a full games jam but I managed to make what I set out to design: littlePLANETblast

Similar to my past Ludum Dare projects, I used HaxeFlixel. It’s straightforward to use, multiplatform (Flash, HTML, Windows and Android maybe…) and it’s still being maintained so there have been several improvements. I’ve provided the game’s source code on Github so feel free to have a look to see how the game works.

The first problem I had to solve to make this game work is how to make a sprite orbit a planet. HaxeFlixel has a FlxVector object for vector math, so using that with a sprite’s acceleration meant having the sprite fall towards the centre of a circular planet was pretty easy, but how do you get the sprite to stop on the planet’s surface?

HaxeFlixel has no circular collision, only rectangtle collision. When I wrote my own C++ framework for Gemstone Keeper, which took inspirations from HaxeFlixel, I included Circular collision by giving each object a Radius property and writing my own circle overlap and separation functions. This would have been too much work for the time I had, so I wrote a hack method for a derived sprite class that always checked and updated the distance between a sprite’s centre and the planet’s centre, and if the distance was less than both the planet’s radius and sprite’s radius combined, then the game pushes the sprite up to the edge of the planet. This circle collision method is only applied between a sprite and the planet, and since rectangles don’t rotate then all sprites had to be perfect squares.

Bullets were one of the only sprites that weren’t built to orbit the planet, instead simply moving in an angle that combines the firing direction with the player’s current angle. I’ve had some feedback that said that the bullets should also be affected by gravity. I decided against it because it would make enemies on the planet easier to hit, while enemies in the sky would be harder to aim, not to mention the game loses a strategy element because of where bullets travel.

 

I went with three base enemy types: Rockets, Spikes and Robots.

Robots functions no differently from the player, except that it moves in a fix direction and smaller ones bounce by constantly jumping. Spikes has the same orbiting system, but it’s planet radius is much smaller to allow it to go into the planet. I use FlxTween and the FlxTimer to allow the spikes to move in sequence. Rockets simply spawn outside the screen at an angle and move towards the centre of the planet. If a rocket touches the planet then it would be destroyed, resulting in an instant game over.

I also added an escape object, which changes the planets side and makes the level a little bit more harder. This was for variety, so you wouldn’t have to stay on the same planet. If I had a bit more time I would have included more animations on the planet itself.

Speaking of the planet, that was one of the first objects I applied polished graphics to. To give it a more detailed pattern, I used the built in Cellular Automata function, and applied the pixels to the circle. Since it uses a random seed, the pattern is different on each playthrough.

The planet’s destruction is a particle effect that uses the planet sprite’s texture, a technique I used a lot in Gemstone Keeper. However one gripe was that I had to make a derived FlxEmitter class that could allow me to set how many frames I wanted based on the particle’s frame size.

Along with proper sprites, smoke was added to the spikes so that the game can provide a one second warning before spikes hit. I also added a distance check to avoid some unfair spike deaths. Finally I added a second camera mode incase the first one wasn’t interesting enough. The follow camera simply rotates with the player so they can stay in one spot while all the other objects rotated around. It did mean having to create a new Camera for UI elements, since objects can only be parallax scrolled by position.

The last elements I added were the title screen and audio. Sound effects were produced with BFXR and music with Abundent-Music’s Procedural Music Generator. Audio is one of my weakest skills so these procedural tools made that quick and simple, although I probably wouldn’t enter myself into the audio category for them.

I figured I add a smaller version of the planet in the title screen and have the player sprite on a bigger world to give a vague sense of a setting, with emphasis that the player is fighting on tiny planets and not just a giant on a regular sized planet.

And that’s basically how I made littleBLASTplanet. If I had more time I probably would have created more enemies and made proper transitions between planets. Aside from that I’m pretty happy with the results, particularly hacking the physics to getting jumping and moving around a 2D planet to be possible.

Voting for the game begins on Wednesday Friday, so if you took part in Ludum Dare, please check it out!

Gemstone Keeper at LAGC 2017

So I had a great time at the London Anime and Gaming Convention, even despite some unfortunate setbacks. Indie Zone Administrator and developer at Grandpa Pixel (Folks behind the RPG Legenda series) was unable to make it at the last minute. What made it all the more unfortunate was that there were only three indies at the Indie Zone this year: myself, Crystalline Green (developer of Flight of Light and Atlantis Dare) and Hei Stories (Indie Animation Studio working on Seeking Scarlet At The End Of The World). Needless to say we brought attention to the many attendees who were walking around the gaming area, looking for something to play outside of the retro games in store.

  

I also did a short talk on game development in general, talking about my game development process and answering questions on topics such as piracy, game engines, looking for feedback and much more. Despite the small numbers, demoing the game did help find a few bugs and it was great hearing people say they love the visuals and the challenging gameplay. There was one kid who went back to the game multiple times, which was unexpected.

In a weeks time on Saturday the 18th to the following Sunday I’ll be at GEEK Expo in Margate. Unfortunately unless some other plans come up this will be the last event I’ll be exhibiting Gemstone Keeper before release, as I was unsuccessful with my application at the Leftfield Collection at Rezzed. I will be sure to attend Rezzed as well as GDC in San Francisco so there might be a chance to see me around. Till then I’ll be making my usual posts on social media.

Where to play Gemstone Keeper?

On March 31st, Gemstone Keeper will be available on Steam. However before then there will be a few opportunities to play Gemstone Keeper at some game events, at least in the UK. These events are beneficial for getting feedback, so the game’s quality will improve before release. Here are two gaming events which are currently confirmed places to try out the beta version of Gemstone Keeper.

https://i0.wp.com/winter.londonanimecon.com/images/logo.png

Feb 7th and 8th – The Rocket Complex London Metropolitan University

LAGC is a bi-annual anime and gaming convention run by AnimeLeague, and specifically I’ll be in the Gaming Area where the Indie Zone is. I have attended the convention several times in the past, and have enjoyed the many events and stalls available.

Feb 18th and 19th – Marine Studios

GEEK is a gaming and comic book (among other things) festival, featuring retro and modern games, as well as pinball and of course, indie games. Gemstone Keeper will be present at GEEK’s Indie Zone. This will be the first time I have attended an event in Kent, so I’m looking forward to what this event has in store.

Now while I won’t be exhibiting, I will also be reaching outside the UK as I go to GDC in San Francisco, (Feb 27th – March 3rd). While I won’t be showing off Gemstone Keeper on the show floor, I’m hoping to meet several other indie developers and attend meetups around the conference, so there may be a few opportunities for Gemstone Keeper to be played during the week in the USA.

While it hasn’t been confirmed yet, I am hoping to once again, attend Insomnia Gaming Festival in April. I last attended Insomnia’s Indie Zone at i58 and had a great time there, so it would be great to present Gemstone Keeper there once again.

Finally, I can now confirm that Gemstone Keeper now has it’s own official website. This will be a central place to describe what the game is about and to see the latest screenshots and videos, such as these ones below.

Gemstone Keeper Underground

Gemstone Keeper Ice

GemstoneKeeper_Terminal.png

Gemstone Keeper Fire

New Years Update

It has now been one full week of 2017, and a lot of people (including myself) have slowly gotten back to work. Since Gemstone Keeper has been getting close to release, I’ve started work as soon as we can to get stuff done.

Before I get into Gemstone Keeper, I worked on a little game for Ludum Dare 37 where the player is stuck in a porta-loo balancing in the air. That game was Danger: Mondays, and after two weeks of voting the results are in. The results for this Ludum Dare were definitely beyond my expectations. While the amount of submissions for the compo were smaller compared to past years (901 compared to 1117 at LD35), that doesn’t devalue the fact that Danger: Mondays achieved a rank just a few places shy of Top 25 in the Humour category of all categories.

capture

Reading all the comments, I was glad people found the concept amusing, but I’m completely grateful at the how well I did this time around. Thank you to everyone who voted during the day. Apologies for not posting about Ludum Dare any sooner, but I was working on a bigger game.

To be a bit more descriptive, Boss Rush will have the player beating all five bosses as fast as possible, they are able to set the stats and weapons of their explorer before hand and they regain some of their health after defeating each boss.

Score mode allows the player to go through the caverns, and like the daily run mode, will try and get the highest score possible by collecting as many gemstones and materials as they can on a single run. This time however, the player is free to set the seed they want, which will effect all aspects of the game from the levels, player stats, which weapon they have and which items they’ll have at the start.

One of the benefits of working on these game modes (from a developer’s perspective) is that we go through all the main game modes again to not only ensure they work through both the main game mode and these smaller game modes, but to find any bugs or issues that was missed out the first few times.

Another update we’ve done is on the gemstones themselves, namely how they are rendered. Originally, the Gemstone Geometry was generated using a Gemstone Mesh Generator that was developed at PROCJAM, and then rendered using a custom software approach using SFML (you can read a comprehensive write up of this on my websites in part 1 and part 2). However, over the last week of December, it was decided that it was time to update this for performance and to improve quality by changing the rendering process to an OpenGL Hardware render approach.

Below you can see the difference, on the left is the software approach, and the right is the new hardware approach:

This weekend I’ve been playing around with post-process effects, as it would be nice to have some visual effects that would appear through the entire game, although it would be possible for the player to disable certain effects if that want to. To pull this off, the framework now has a multipass post processing system where it’s possible to disable certain effects.

This allows us to apply multiple post process effects at once, and allows us to add the options we need to allow players to enable/disable certain ones.

CRT Shader

Bloom Shader

This is only a small sample of what is being planned, leading up to Gemstone Keeper’s release on March 31st 2017. I’ll also be attending London Gaming & Anime Con in early February and GDC in San Francisco later in the month, however the latter will just be as an attendee.

Here’s to 2017 being a successful year for many people!

GBJAM, Talks and Progress

Over the last month I’ve been working day and night, and having some fun in a few places as well.

From October 1st to October 10th was the GBJAM5, the games jam where the theme is the original gameboy. While the aim is to make a game that could play on an original gameboy, the only rules that matter is the resoluton being 160 x 144 pixels and only using 4 colour graphics. I’ve been taking part since the first one back in 2013, and I’ve only missed GBJAM2. It’s a jam I love because it’s small, I love the restriction of the game’s size and graphics, plus growing up with a Gameboy Color means I have a bit of nostalgia for the system.

Despite the games jam lasting 10 days, I was going to spend the weekend in Dublin so I could spend some time with my sister, who’s been travelling around Africa for a few months. I decided to work on a really simple game idea, a block moving from start to finish, avoiding some obstacles on the way. The idea ended up being so simple it took me the first day to get basic graphics moving on the screen, some obstacles and a palette swapping system. I was able to use the rest of the time updating the graphics, adding a few more objects like locks, keys and bouncepads, as well as a transitional effect and some other screens to make the game feel complete and authentic.

The end result was MonoCube, an action puzzle game where all you have to do is get to the end.   During the development process I got a surprising amount of attention, and even after submitting the game early I got several comments, the game ended up getting 7th place in gameplay! You can check out the game here.

On November 8th, I will be speaking at the Digital Technology Conference at Stoke Campus, Staffordshire University. My talk will be about Indie Game Development and the Steam Greenlight process, on what I did to get Gemstone Keeper greenlit and offering my advice. This will be the first time I’ve gone to the Stoke campus as a Graduate, and I look forward to seeing what the campus is like since the games and computing departments all moved from Stafford earlier in the year.

Now I’m going to return to Gemstone Keeper, I’ve got one planned boss remaining to work on, and I’m also focusing some time on the audio (both music and sound effects). In the meantime, I’ve updated the game’s titlescreen, as I felt the original could have had a more authentic layout, as well as some improved scrolling for the background.

August is a Busy Month…

So I have been around quite a few places this month, because of this my progress on Gemstone Keeper has been a bit shakey. Progress pretty much stopped earlier this week because I fell ill on the Sunday evening and I’ve only managed to recover to a working state on Wednesday. There has been one main update if you follow me on Twitter, the new spider boss! Designing this boss allowed me to improve my skeletal code as well as try out a new boss mechanic, slowing the player down with webbing!

https://i2.wp.com/i.imgur.com/cN93VD2.gif

So I’ve been to three key places:

Electomagnetic Field 2016

This is a bi-annual festival for all things geeky in the world of technology, software, cyber-security, hacking, mathematics ect. I camped for three nights with running electricity and wi-fi (yes, really) provided by the organizers and there were many workshops, talks and projects dotted around the place. I went back in 2014 after a friend invited me and I loved it so much I’d thought I return. It was a bit further than last year (Guildford instead of Bletchley), but they definitely expanded in size and activities. Everyone was also given a badge that you could connect via wi-fi and run apps, I even wrote my own! Would definitely look forward to it again in 2018:

Berlin

This was a proper vacation for me, and unbeknownst to me until days before I went, I was going to be in Berlin during the same time period as Gamescom was running in Cologne. I did think about visiting Cologne for a day to check out Gamescom but I felt the cost was too much and I wanted to see Berlin. It was also near the end of this trip that I caught a bug so the flight back was painful. Still a very nice trip to have, seeing the Berlin Wall, Checkpoint Charlie, the Book Burning Memorial outside Humboldt University, even the Computerspiele Museum, so I did at least one video gaming thing in Germany.

Insomnia58 Games Festival

https://i1.wp.com/www.citynitesguides.com/wp-content/uploads/2016/07/insomnia.png

Yes, the one that starts tomorrow! I’ll be at Insomnia58 and I’ll be bringing Gemstone Keeper to the Indie Zone with me! It’ll be there for all four days, although I might wonder around every now and then to see what the festival has to offer. But if you are visiting the Birmingham NEC from the 26th – 29th, go check out the Indie Zone, there are loads of cool independent games on show there that are worth trying out.