New Year

Celebrate what you have accomplished, learn from what went wrong, and most importantly you must move forward. Hope everyone has a great 2016!

We Are SurroundedTitle

Ag8tZsx

One of my goals for 2016 is for Gemstone Keeper to be on Steam Greenlight. I’ll will be sure to have an alpha build ready for play within the next few months.

Allegro to SFML (aka How I learned to love VertexArrays)

If you have been following me on Twitter, you may have noticed that after game jams, I’ve returned to Gemstone Keeper. Since I started work on my thesis project, GenLevelTools, I have been working in Allegro 5, using my previous experience and the already functional graphics rendering, for both the GenLevelTools and Gem Finder, the simple prototype that is now Gemstone Keeper.

However I decided that I would change the underlying framework from Allegro 5 to SFML 2, the thought of changing systems has been in consideration since IRDC 2015, which came about for numerous reasons:

  • The Gem Finder code needed updating, as it was written during a time where I was under pressure to meet a deadline and have something to show, for what was essentially the most important part of my University degree. Now that I have graduated, and have gotten a full time job, I have a bit of flexibility and less pressure for me to make some improvements. If I was going to update the current code, I needed a framework that could satisfy the needs of a new system. I could rewrite the code with Allegro 5 with my experience and confidence behind me, but…
  • Allegro 5 has limitations, which makes some of my concepts for Gemstone Keeper less feasible. The last stable build of Allegro was back in January, yet it lacks certain features that you’d find in other C++, C# and even Haxe frameworks. Specifically shader support for effects, and gamepad support beyond DirectInput. While shaders are a feature of Allegro 5’s unstable builds, there is the issue of stability and compatibility. My attempts to get the unstable builds to work have been less than futile, and even when I finally got a functional build of the unstable release, I was met with a lack of certain libraries to run shaders (namely libpng1_6.dll). It wasn’t worth it, and if it was a struggle for me to get it to work, then it would be worse for me to help get the game running for other people. Also Xbox 360 controllers are recognised as DirectInput devices, which does have some limitations, specifically with the analogue trigger buttons.

This is where SFML comes in. Like Allegro, SFML is a set of C++ libraries that can be used to develop games for PC, Mac and Linux with experimental Android and iOS ports. However, SFML does have shader support with little to no issues installing either the latest source code or direct download from their stable release. While neither have XInput Gamepad support directly, the SFML community have had no problems showing how easy it is to make an XInput wrapper for SFML.

The real seller for me is that SFML’s text rendering has a much superior output, but also support for wide literal characters. This is a big deal for anyone who is developing games that rely on text, such as games with ASCII graphics.

Firstly, Allegro’s text rendering seems to struggle with rendering text that isn’t a factor of two, or below a font size of eight. This is pretty reasonable for using TrueType Fonts that may not have data for all sizes, but software that uses a lot of text have algorithms that help keeps the quality of text consistent regardless of size. In my tests, SFML handles this quite well, while Allegro has issues such as lack of transparency and defects with certain characters at small sizes.

Rendered text comparison.

Left: Allegro build Right: SFML build

Secondly, being able to use wide literals means that I am no longer restricted to characters in the ASCII format, which have less than 255 usable characters, now I can use over 1000 possible characters in the Unicode format, which as of C++ 11 is fully compatible (SFML says that they don’t support unicode formats at the moment, but as long as the font supports them, SFML should render them!). This means more possible creative designs, so more enemies, environments and other features are possible!

Use of unicode characters in game.

Copyright symbols as enemies, because I can now!

Most importantly, SFML is being constantly updated, like I said earlier, the last stable release of Allegro 5 was back in January. In comparison, since starting the framework transition back in August, SFML has already had two updates for SFML 2. It also benefits that SFML is an active community, and appears to have more of a social media presence. These factors help in both finding framework issues, and possible advice for certain functionality.

The new framework I’ve been working on has a slightly different approach, more similar of an approach to Flixel, like what I did earlier with my MonoGame framework Ricoh2D. As such, I’m using an inheritance of a singular base class, as well as a heavy use of object pooling. This way I plan on having updating, rendering and collisions accessible for each object, to make it easier to add and remove objects at runtime. Like Ricoh2D, I’ve aimed to have collision checking handled on a single function call, with the option to pass in a function for collision response.

Because I’m using SFML, I’m also hoping to produce a more optimal and performance with the aide of VertexArrays. All renderable objects in SFML use Vertices to determine the coordinates, texture coordinates and colour of each point of a graphic. During development, I’ve found it is highly efficient to use VertexArrays whenever you can for more custom rendered objects, as there is some overhead whenever you perform a draw call, although the effect is larger in debug mode. For example, when I initially built a tilemap renderer that drew each tile as a separate sprite, I was getting around 400 FPS. When I changed it use a single VertexArray object, where each four vertices is a single tile, the framerate shot up to 1200 FPS. I have since used VertexArrays to replace SFML’s built-in text renderer with my own, that allows me to have text alignment combined with multi-line rendering, when the built-in renderer only had multi-lined text while aligned left. I am considering creating a sprite-based particle system using vertex arrays, as my current system uses multiple sprite objects.

As of writing, the transition of features from the Allegro version to SFML version of Gemstoke Keeper is around 75%, most of the basic rendering has been implemented, the level generation has been transferred over. I need to implement the current enemy behaviour as well as level progression and other enemy screens to have a complete transfer. Once that is finished, I should be able to work on my plans for new features, and should start planning on releases.

ThreeThingGame and the Ricoh2DFramework

Between the 11-12th of June, I went up with a friend and fellow Windows Games Ambassador Aaron Smith, along with a games design student Nathan Holding to the University of Hull for ThreeThingGame, the University’s 24 hour games jam. The premise is that each team was provided three words, and were tasked with making a game that incorporated them. The games would be judged on how well they fit the three things, and the quality of the game overall and the winning teams would get prizes.

This was going to be an interesting event for all three of us, as despite being used to travelling around several campuses for events, Hull was way far out for us. We were also aware that the majority of students there had been at ThreeThingGame before and new how it all worked. However Aaron and I were a bit more confident in what we could pull off together since we went through a games jam one week prior, where we learned to have a proper functioning version control system that the tools can work with, as well as having an actual artist working with us this time. Our three words were Room, Moon and Lune, and from that we made a Lunar Lander style space game where you avoided asteroids and landed on moon bases.

We also had an additional tool to work with, my Ricoh2DFramework. I don’t think I’ve mentioned it before on this site, but the Ricoh2DFramework is a framework for MonoGame. The purpose of the framework is to provide classes to assist with graphics, collision, input and audio among other functions. I was actually quite eager to use Ricoh2D in a game development project to see how well it works practically.

Game Development went rather well, and while there were some small issues found in the Ricoh2DFramework, they were easily fixed and all of those changes have been uploaded to the Ricoh2DFramework’s repository. There were also some performance issues that required some work arounds in order to avoid (slow downs, glitches and crashes galore), but in the end we finished the game.

What went right:

  • Proper source control: Using C# and MonoGame with Github is much better than the last games jam at Stafford, where we tried to use Unity with Git. Overall it was a nightmare back then to merge all the changes and ensure the project work. Using a system that is completely text based and readable made the process much more easier.
  • More prepared: Using the Ricoh2DFramework definitely saved some time in developing the game, and even though the framework had issues they were much quicker to deal with instead of having to build everything up from scratch.
  • Having an artist: Definitely enables the team to work on the game while assets are being created, instead of having to be made during or after development where issues can arise.

What went wrong:

  • Didn’t sleep enough: All three of us, me especially, thought we could spend the entire night working on the game. We didn’t. I could barely stay awake after literally staying awake for 24 hours, even with an abundance of food, drink and snacks to help us keep our energy.
  • Technical issues: While some performance issues were most likely due to some of the original code that was developed for the game, we also had numerous unexplained crashes from Microsoft and SharpDX libraries. This was especially bad when the game crashed unexpectedly with an unhandled exception while judges were looking at our game. This could’ve been one of the reasons why we didn’t get a place in the rankings, but since we were still using the Technical preview, hopefully issues would be ironed out afterwards.

Overall, I rather enjoyed ThreeThingGame. It’s a neat idea for a games jam and everyone at the University of Hull was very enthusiastic and eager to make games, which makes it even more impressive as the University doesn’t have a specialist games course unlike Staffordshire University.

Now it’s back to the Procedural Level Editor and my newest game project Gem Finder, where I’ve already started on new features…

Glow Drop DX and Global Games Jam are Out!

Over the last week, I’ve technically had to prepare for two releases, and guess what? Both games are out, and I’ve updated the game menu to include links to them! It’s pretty cool how both games were originally made at 48 hour game jams, and both are being updated as we speak. Feel free to read on about my experiences with Global Games Jam this year, and try out these two releases as soon as possible, all feedback is awesome!

Glow Drop DX

We Are Surrounded

Continue reading

Ludum Dare 31 Favourites So Far!

So after rating 100 games for Ludum Dare, I thought I’d talk a bit about a few of my favourites from the jam. They may not be the best out of the competition, but these were the ones that I find have an aspect of good entries that each of these succeed at.

Tightrope Theatre

This is the entry done by brilliant flash game developer Jussi Simpanen, aka AdventureIslands. He always does games for jams big and small and his entries usually bring a quirky design and incredible polish to them, and this one is no exception. In Tightrope Theatre you must travel from A to B, all while riding a unicycle avoiding fire, spikes and the ground below. The entire game is 24 levels long, and feels very complete for a game done in two days, although you kind of wish there was more. Knowing that Jussi tends to add new stuff to his entries every now and then, maybe there will be more to this entry.

Jumping ‘n Jumping

This is an example of how you should achieve an innovative game in 48 hours, you use one mechanic with a unique spin and give it as much potential as you can. In this case, the mechanic of the game is jumping, and the unique spin is that your jumps are limited, but will increase depending on how you play. Eduardo uses the mechanic in a room where you have to jump to survive and you get this gem.

Screen Mover

Most game jams have a theme, and as a developer you are free to interpret that theme to whatever for your game: you can use a literal route (in LD31, that would mean literally running the entire game on one screen), the metaphorical route or the technical route. With Screen Mover, Sh1rogane decided to go beyond literal and technical with the theme to produce something that may look like a simple platform prototype, until you quickly realise you have to move the game window to progress. The only issue with this idea is that keyboard input it locked while the window moves, but the post jam version does fix this.

The Hyperbeam

Sometimes you don’t have to make a game that’s fun to make it a good entry, you can tell a story, show off some great music or in this case, make some really beautiful graphics. The puzzle game elements are clever, but this game is really good at showing off bloom and neon. It just makes it look wonderful, and the music is really soothing as well. As you may tell from my entry, I love neon glow, and this game does a great job at showing it off.

Swotch

If all else fails, just make a game that is fun to play, and make it addictive for an added bonus. This game’s style reminds me a lot of Terry Cavanagh’s Super Hexagon, and since the developer is planning an Android/iOS release, I recommend him get Chipzel to do music for the game.

Don’t forget to play my entry Glow Drop if you haven’t already.

Secret of Escape – Nearly Ready for Release

I’m happy to announce that Secret of Escape is now at the stage where release is on the horizon, so currently we are getting promotional content ready and getting a release date set so we can let as many content publishers and gamers know that we are coming.

Continue reading

Game Developers on Patreon

I remember several months back during the #IndieDevHour on Twitter, someone asked about using Patreon to fund their games development.

https://pbs.twimg.com/profile_images/458690209660416000/bWhe-J8I.pngBack then, Patreon was growing in popularity for independent funding of artists and writers by letting people be regular paying patrons. If you look at the current roll of Patreon Projects, you can see Youtube video producers, bloggers, webcomic creators, podcast producers, musicians and so on, all have a Patreon page. For those content producers, it appears nowadays like it’s a standard form of earning revenue for your work, as I’ve seen some of my favourite online artists and Youtube video creators use the service, both big and small.

But what about game developers and game creators, could they use Patreon to help fund their work? Could they fund a portion of their work using the Patreon system? This is what I want to discuss in this article.

When I mean game developers using Patreon, I mean specifically using it as a platform to fund their work in creating games, while some have used it to produce games development tutorials such as TheCherno, and others have used it for lets plays, this is about using Patreon for games development like how Kickstarter is used for games development.

If you dig deep enough you can find some developers using patreon for developing games. How successful they are is up for interpretation, in the examples I’ve linked some have been moderately successful enough per game/month while others are well below the hundred margins.

https://i0.wp.com/b.webutation.net/4/c/patreon.com.jpg

Why very few developers are using it however? Well it’s easy to say that unlike Patreon, crowd funding sites like Kickstarter and IndieGoGo is both a better marketing and funding platform because a lot of backers use it and people who are successful earn more money. However, I think it’s because of two clear reasons.

The first reason is that it’s very new, it only started last year and while it’s growing fast, not all of the large mediums have caught onto it. As such, not every medium knows about it as well as Youtubers, bloggers and short video producers. Asking many of my game developer friends, I found that most either didn’t know or get the Patreon system.

Another reason is the ideal scope of projects on the platform, as the majority of creators on Patreon use it for small projects that don’t require a huge budget up front, but a modest budget to sustain the creator to keep what it doing. Mix that with the amount of people actually putting money down on individual creators and you can see that it might not appear to be the most viable option.

But on the other hand, Patreon has solved one major problem that crowdfunding sites like Kickstarter is well known for, trust based delivery. Some people remember earlier this year how even after getting funded, not every project on Kickstarter had fully delivered. It’s seen as an understood risk that whatever project you are backing on Kickstarter may take years to fully complete, even if it completes at all. Patreon’s solution is to fund creators for what they have done, and not what they will do. By only paying the creator per project, or on a regular basis, patrons don’t have to feel like they are throwing money away if a creator doesn’t finish a project, and you have the option to reduce or stop pledging a creator (TBC).

A chart showing that overall, only 37% of video game Kickstarters fully deliver on what they promised.

Original Chart from evilasahobby.com

So let’s go hypothetical on this, what if Patreon, or a similar funding system, takes off and does well enough to be popular and known by many people, and those people are wanting to become patrons for talented creators, how would you go about getting people to be your patron?

You could do what’s currently being done, and have patrons pay per game. However that is only viable if you produce regular content, and that requires developing several small games on short development cycles, instead of producing one or two large games over a long period of time.

So why not use that ideal environment to work with Patreon? Some content creators work really well on a monthly basis, while producing content on a varying basis. This could be done with games by having a game being funded by patrons while in beta, where the patrons themselves can have some or full exclusivity towards testing and contributing to the game before release. I can see that model working especially well towards online multiplayer games, where the patrons themselves can act as a small growing fanbase by interacting with each other.

However, what Patreon needs is for time to grow and people to be aware of who they are and what they will do, and maybe we will find more game developers on there and show more creative ways of using a patron system.

GBJam 3 Overview

Those who have been following me on Twitter have been aware for a while of GBJam, an online games jam, and of course, I’ve been working on a game for it. Therefore as today marks the end of the third GBJam, this article will be a part-summary, part-showcase and part-post mortem of the GBJam.

Play my entry, Galaticus, on GameJolt

Vote for it on GBJam

https://gamepopper.co.uk/wp-content/uploads/2014/08/2ed40-gbjam3.jpg

GBJam Banner: Image from 2945 – Devblog

Continue reading

London Gaming & Anime Convention and the Indie Zone Tomorrow

Just a quick reminder of what’s happening this weekend (5th-6th July). I will be showing off Secret of Escape in the Indie Zone along with 9 other awesome indie game developers and their awesome indie games! Alongside us indies, there will be Capcom, Ubisoft, Namco Bandai and GAME in the gaming area! There is also lots of anime, music, TV, film and web related events as well, so it’s a weekend worth going to!

Here’s the full list of indie games at the Indie Zone

More info on the London Gaming & Anime Convention