Gemstone Keeper: Playable at EGX

After many years of working on games, I can proudly confirm that Gemstone Keeper will be shown at EGX from the 17th – 20th October at the ExCel Centre in London, and it will be the Nintendo Switch version with both the single player Campaign Mode and the multiplayer Survival Mode. It will be part of the Tentacle Zone, ran by Payload Studios, alongside 17 other great indie titles.

There have been a few minor changes since it last appeared at Insomnia, however I do not intend to make anymore changes outside of bug fixes and other technical hitches as it’s getting closer to the end of the year.

I’m honestly excited, while I’m still a bit annoyed that the largest games expo decided to move to London (in a decision that not everyone was happy about), it’s been difficult to get an opportunity to show your work there. Next week I’ll be putting some time to make sure a demo build is ready that can handle hours of uninterrupted gameplay. If you plan to go to EGX, be sure to look out for the ASCII amongst the green tentacles!

I should also close off by giving my love to all the game devs who took part in Ludum Dare this year, I decided to hold off on taking part because of a lot of travelling I did the week before. I’ll definitely look at going back for the next one, especially since my hopes is that Gemstone Keeper will be on the eShop long before then.

 

Advertisements

Insomnia Report

Last week, I was one of 24 indie game developers who showed off their games in the Indie/Tentacle Zone, part of the Insomnia Gaming Festival (i65) at the Birmingham NEC. Over a four day period, thousands of gamers got an opportunity to try our games, some in development for platforms, others being in early access or recent release. For me, it was an opportunity to show Gemstone Keeper for the Nintendo Switch, to see what bugs people would find in the port running on proper hardware for an extended period of time.

The first thing I noticed when I arrived on the first day was the stands were great! When I last went to Insomnia back at i61, the Indie Zone had the blank, cubicle-like, walls with one table, which had been used as far back as the Indie Zone’s introduction around i52 back in 2014. It was an acceptable setup considering that Indie Zone spaces were free to those who applied and PC setups were provided. Last year however, the Indie Zone was being operated by Payload Studios, the developer of the game TerraTech and managers of the Tentacle Zone at EGX and Rezzed, they managed to deliver by replacing the plan walls with backdrops that featured banners of our games! (we provided the poster art for them to print)

That didn’t stop some developers going the extra mile: Space Lizard Studio created a cardboard scenery around their table to match the theme of their Papercraft Horror game, Paper Cut Mansion. The developer told me that it took them two weeks in their spare time to create it and it looks impressive! Rhys510 on the otherhand, didn’t bother with a table with a monitor, system and controller, as their game was on a fully functional arcade cabinet!

On each day, the doors opened to attendees at 10am for priority attendees, and 10:30am for everyone else. What appeared to be a surprise to most of the indie devs was the amount of people who turned up on Friday, particularly in the morning. It was anticipated that Saturday and Sunday would be the busiest days, with Friday and Monday being the least due to it being near the end of the school holidays and a bank holiday respectively. The morning was espected to be quiet in general because that would be time people would explore the whole event and jump into the other areas that required queues, such as the Borderlands and MediEvil stands, or the Ubisoft Experience. This wasn’t the case, Friday morning had attendees trying out each indie game. While the crowds wouldn’t compare to Saturday, it was still a good first day.

This was the crowd on the Saturday.

While having more people to keep an eye on and try your work is more hectic, it does make the work of showcasing go a lot quicker. Retro Revival was a decent showing, but not many people turned up to its indie section, which made the whole event feel a lot longer. Plenty of people managed to try out the game, both the standard single player mode and the multiplayer survival mode, I ended up making a procedure where if I see an individual or a single child with parents approach, I’d let them try out the single player mode, but when a group approached the table, I’d ask if they wanted to play multiplayer, and set up the controllers if they said yes. This ended up being a good strategy, as groups might lose interest if only one person plays at a time (although I noticed pairs who went straight into the single player mode took turns at each level).

There were some technical hiccups though, as before the first day I had technical issues that prevented me from creating new builds for the Switch (lesson for the future: never update the SDK or firmware before your big events). I was fortunate to have a working demo build from a week before that I could use, but even then it had slowdowns and it even crashed at one point, which required a force restart. This was the case for both the Friday and Saturday, fortunately on Saturday evening I was able to fix two main issues that were causing crashes, and with my notebook that had an entire page filled with minor bugs in it I was able to get through and create new builds for both Sunday and Monday.

Overall, I’d say I had a great time. I got to try out a number of the games such as “Bubbles the Cat” from Team Cats N Bears, Velocity G by Repixel8, Robot Champions and many others, and hung out with a group of them on the Sunday (sadly I missed out on the pub quiz that took place on the Friday).

The next event I plan to show Gemstone Keeper will be at EGX in London in October, so I hope to see as many (if not more) players there!

Gemstone Keeper (for the Switch) for the Public!

Hello everyone! It’s been a while, but my game development focus has been majorly on Gemstone Keeper for the Nintendo Switch! Significant progress has been made to it, plus Ironbell and I (as well as feedback from devs of Naezith) have been continuing our work on SFML-Switch, fixing issues that we find. The submission process is currently in its early stages and with any luck there will be an announcement on its release later this year.

The biggest areas of progress to Gemstone Keeper that have been made is that the Switch release has a local multiplayer mode called “Survival” where up to four players can fight an infinite amount of enemies until the last player dies.

Another big change to Gemstone Keeper is that the graphics have been significantly upgraded to a higher resolution to accomodate with the Switch’s HD displays. While it might seem strange to do this, but the painstaking process of using much larger fonts to generate the textures in the game results in a significantly sharper display overall. To the untrained eye it might not appear noticeable, but when compared side by side or in a split screenview, the differences become crystal clear (pun intended).

Back in June, the Switch port had a public test run at the Retro Revival Festival in Walsall (where I was also selling some games from my private collection). Despite some major technical difficulties, I managed to get some good feedback and players to try out the game, so I’d say it went pretty well!

From the event I also got to speak to Chris O’Regan from the video game podcast group Cane and Rinse, and after he got to have a go at the game and got in touch after the festival, he invited me on the Sausage Factory to talk about the game, as well as my development background and games design! I had a good time talking, although I usually get nervous when speaking in a mindset of having an audience, I like talking about my work and how I feel about games that show a more technical aspect over an artistic or epic approach to them. So if you have under an hour to spare, why not try hearing us talk for a bit?

Gemstone Keeper Episode of Sausage Factory

But that was back in June, what about now or next month? Well I’m happy to confirm that Gamepopper will be returning to the Indie Zone of Insomnia Gaming Festival as part of their i65 lineup (for the first time since i60 back in April 2017). Both myself and the game will be there for all four days of the festival, but do also come down for the rest of what indies have to offer.

There will be one more event in the near future where players can try out Gemstone Keeper, however I’m going to hold back on announcing it until after the final details get sorted.

 

RainbowJam – Fursuit Run

For the month of September, I needed to take part in a game jam, but initially, I wasn’t sure which one. I looked through all the jams listed on indiegamejams.com and while you are spoilt for choice, not many were catching my eye. That was until one of my friends from the Birmingham Indie Developers, Kirsty Fraser, mentioned a game jam she was organising.

RainbowJam is a two-week games jam about exploring LGBT+ themes, running for its third year it’s partnered with the non-profit organization Queerly Represents Me and encourages representation and to “create games exploring and celebrating identity, gender, sexuality, sex, life, and love!” After working on Re(re4ti0n, I’ve felt a little urge to create some more experimental games that go against what I generally like, which would be arcade retro shooters/platformers with a neon glow or a retro aesthetic. I also knew I had some 3D functionality in Vigilante that deserve to be worked on enough for a complete game, so I spent a few weeks earlier in September to create a basic 3D game system.

Unfortunately, my 3D stuff was limited to what you can render. I consider Vigilante a 2D game framework with 3D elements, so I didn’t bother implementing 3D collision detection, but I had an idea: what if I make the game function in 2D space, but display in 3D space.

What I did was set up a small 2D enviroment with a tilemap and a basic sprite, and I set up the 3D models to display the scene based on the tilemap while the camera’s position and rotation is based on the sprite’s position and angle.

 

As you can see, I got the tilemape to display really well, the floor being a multi-segmented plane that could display mutliple different tiles in one model, and the walls being cubes that are scaled depending on where their neighbours are. Initially I was creating each cube as a separate model, which I felt was dangerously innefficient so I created a batch rendering group, creating one model but using multiple V3DObject instances to specifiy where that model should be rendered. I did need other things in the game though, stuff that the player can interact with, so I created a special model that could render a 2D sprite (including 2D animated sprites!) in a 3D enviroment, always facing the camera.

The last major thing I wanted was to add an additional level, as wondering a single room is good but extremely limited. As such I made a second tilemap, a model to represent a ramp of sorts and added variables and additional groups to tell what floor the player is on, and as such what should be displayed/collided with. The bigger challenge was implementing how the player will climb up stairs, as it also had to factor falling. Combining gravity with the player moving upwards if the sprite is overlapping the area where the said slope is situated took a lot of trial and error before I finally got a dituation where the player could fully explore the floor above and walk back down to the ground floor!

After making the slope look a bit more like steps, the demo was pretty much ready for RainbowJam.

To make a game for Rainbow Jam, I wanted to make a game that is about sharing love and making people happy. I went with a game about being a fursuiter because as a furry, I know the community is very supportive of LGBTQ+ people and as someone who’s performed in fursuits at conventions and meets, I feel the most important aspect is to make anyone you see feel happy, entertained and loved, even if it’s by portraying a character.

Making the attendees you interact with was probably the biggest challenge, I made a dough body sprite with frames for actions at each angle, and made the object switch frames based on what angle it’s facing from the player. As for the AI I considered setting up a finate-state machine, but fearing it would be too much work for a jam I went for a simple state model. I got my code for line of sight and path finding from previous projects in order to get the attendees  to walk around the floors they are on, wave at the player when they see them and either hug or prepare a camera for a photo, responding to what the player does at the same time.

To simulate the limited vision of fursuits was to overlay the screen with a mask. I added a little bobbing while walking for fun, as seen in the tweet below, however a fellow gamedev suggested getting the camera to bob in time as well, which ended up working pretty effectively!

All the graphics and audio was done on the last day, I used the dough sprite as a base while I apply the colour and details over it. I unfortunately realised the limitation I set myself using a 20×20 tile size, but I think there is enough space to see who is who. As for the enviroments I used some references for hotels, such as the carpet and ceilings. There is a chandelier on the ground floor, which I designed myself to be multiple 2D images rotated because I found most 3D models online to be needlessly complex.

At around 11pm on Sunday, I uploaded Fursuit Run to Itch.io making this the game for September. There is still a voting period which begins when the jam officially ends on the 6th October. So far the reception has been fairly positive, mostly from furries, some non-furries don’t appear to like the idea without actually playing the game as of writing. I’m pretty happy with how the game turned out, as well as the 3D system. There is definitely room for improvement, as there isn’t much optimization that could be done such as view frustum culling. I’m hoping to get it improve for my next games jam, 7DFPS.

HighJam #1 – Berzerkatron

UPDATE: The results of HighJam #1 are online. Berzerkatron got Second Place in Theme and Third Place in Graphics! Thank you to all those who have provided feedback. I have since updated a post-jam version of the game and to celebrate the results a new update has been uploaded. You can find out more on Itch.io.

As part of my effort to participate in one game jam a month, the month of February is HighJam. This is the first game jam is organised by HighSight Gaming, a Twitch Streamer who specialised in Indie Games with Indie Insights for a while (a show which Gemstone Keeper appeared twice on), although now it’s been replaced with a new show analysing classic games, In Hindsight.

The theme of this jam was Atari Remakes, specifically to quote the description: “you must reimagine any Atari 2600 game of your choice”. One of my favourite 2600 games made by Atari was Berzerk, originally released at arcades in 1980 and was ported to 2600 in 1982. While the rules stated that I was not limited to the graphics, sounds and mechanics of the original, I felt like doing a “modernized” look wouldn’t do so well. The concept in my mind was to do a reimagining that would be in the style of Jeff Minter. It’s most likely due to the man’s past work, I had an image in my head of a “Berzerk 2000” of sorts, with a psychedelic feel, visually creative backgrounds and random sound samples.

Click here to go straight to the game!


Here is how I developed two of the most interesting concepts of this game:

The Level Rotating Transitions

This was a feature I was really keen to make, and once I found it was possible and implement, I wanted to keep silent about it so people can witness it while playing and see what their first reaction to it was, and when watching HighSight’s Playthrough (Skip to 01:54:30) I think it’s safe to say it worked. The initial version of the cube shader was by gre on gl-transitions.com, a website I’ve used recently for Gemstone Keeper.

The shader itself fakes perspective by skewing both textures so it appears thinner when further away, and moves both so it appears like a cube.

I modified the texture to remove the reflection at the bottom as it seemed unecessary and added a variable and functions so it could not only rotate it clockwise in the Y-Axis for horizontal transitions, but rotate it in the X-Axis for vertical transitions, it was then a case of using a uniform variable for me to define which direction I want the shader to rotate towards. You can check out the modified shader in the Assets folder of the game.

Randomized Levels

Funnily enough, having the levels be randomized wasn’t out to be creative but because I couldn’t think of a quick method of creating a huge array of level designs (the original Berzerk had somewhere in the range of 1024 different level variations!).

When looking through the original Atari version, I figured the levels were all configured into a 3×3 grid (I realised I was incorrect afterwards, as the Atari 2600 had 4×3 grid levels and the Arcade version had 5×3 levels), and then by defining each segment to a binary number I could determine which segment should have walls in either or all four directions.

I’d then construct a path between the player’s starting segment and the segments of each available exit, for the the remaining segments that have no value set, I’d use a random value. This last step had to be constrained as to have as few empty rooms as possible. However, as the above gif shows, not all levels are fully explorable. I also use the grid to determine which areas enemies and civilians should appear in.

Backgrounds

Unfortunately, I didn’t have the time to plan out or work on the brilliant background effects Jeff Minter develops, but GLSL-Sandbox is an excellent gallery of GLSL shaders that render brilliant visuals without any additional assets. I decided to pick ones that were monochromatic and were visually interesting without pointing too much attention from the game itself. I also used my multipass shader system to apply a shader that added a diamond gradient and another that made it possible to crossfade between different backgrounds.

Civilians

Interestingly, the idea of civilians to rescue (idea taken from Robotron and Llamatron) was kind of a last minute idea. I added this part of the game to encourage players to explore the level and add pressure to spend more time in the level while involving Evil Otto.

I did run out of time to implement some things I wanted like particle effects, but I’m happy I managed to get a playable version done. I did take one or two days off to have some leisure (and charity work) but I feel this is worthwhile. Hopefully enough people will vote and leave a good rating on this game.

New Years Resolutions

Good evening everyone! It’s no doubt that 2017 has been a hell of a year following what happened in 2016, but we fought through and we are still here fighting! This year has also been huge in terms of game development for me. I managed to finish SEVEN games this year, six from game jams such as #RemakeJam, PROCJam, Jamchester and Three Ludum Dares!

https://img.itch.zone/aW1hZ2UvMTYzMjc3Lzc1MjE2Ni5naWY=/315x250%23c/L0i8g2.gif  https://img.itch.zone/aW1hZ2UvMjAxMDM1LzkzOTE3OC5naWY=/315x250%23c/q5QpUK.gif

The seventh game was the nearly two year project Gemstone Keeper, which made an initial release on March 31st earlier this year and has since had numerous updates, although grouped together as four updates. The most recent of which was 1.0.4 that was announced on 21st of December. The game is currently on part of the Steam Winter Sale, and is currently 50% off!

Gemstone Keeper also had a second smaller release as it was ported to Linux, the build being available on Steam in June. I documented the progress to port the game in three blog posts (part 1, part 2 and part 3), and got a small amount of coverage from dedicated linux gaming websites as a result.

There was also an accomplishment in travel as well, 2017 was the year I went to both GDC in San Francisco and Develop in Brighton for the first time! Both events were great opportunities to meet up and socialise with fellow game developers and listen to talks from great minds such as Ken Perlin, John and Brenda Romero, Jordan Mechnar and Tim Sweeny.

As for 2018, I want to set some goals. As with many New Years Resolutions, chances are they will be forgotten and unaccomplished, but considering I managed to lose weight this year, I might pull through with a bit of committment.

First one is that I want to take part in at least one game jam a month, meaning I’d be finishing 12 games next year. I like the challenge and creativity from game jams, but this year I feel like six isn’t enough. At least spacing out the game jams to one a month will give me time to find a weekend or so to get my head down and finish something.

Second one is to get a game on console. It’s not like I haven’t bothered trying before (I’ve reached out to Nintendo about developing Gemstone Keeper for the Switch to no avail), but it would be nice to expand my work beyond desktop PCs and web development. Porting my own game to Linux should show how when I put my mind to it, building a game to another platform by hand is possible, and it would be great to show I can do that on one of the three main systems.

Thanks for reading and have a happy new year everyone!

Gemstone Keeper on Steam Right Now

https://i1.wp.com/i.imgur.com/EprkPSq.gif

Check out the Steam Store, and you’ll see that Gemstone Keeper has a page where you can add to your wishlist, purchase the game and write a review for it. I greatly appreciate seeing people buying the game and giving it a good review, it really means a lot after realising that this game has been in development for nearly two years (May 2015 – April 2017). Reviews in particular are important because I’d like to collect a list of issues and make fixes, and hopefully add a bit more to the game over the course of a year. Gemstone Keeper will also be shown at Insomnia 60 at the Birmingham NEC and maybe a few more events if people find an interest.

In particular I want to thank Vincent Rubinetti for his contributions for the game. While he was the person I had in mind to do the soundtrack from the point I listened to his music in INK, I was a bit nervous about approaching him with the demo I had. However after a few emails back and forth, we made an agreement and we were underway for producing a great accompanyment to the game’s visual art style and atmosphere.

https://i1.wp.com/i.imgur.com/ajrVcHB.gif  https://i1.wp.com/i.imgur.com/24gcQz8.gif

In addition, I’d like to apologise for leaving this two days late; I couldn’t plan ahead because I spent the last few days sending out emails and twitter DMs in the hopes to get the game looked at by people; I fixed bugs and adding some last minute features such as damage numbers appearing whenever you hit something with your bullets and being able to type the seed you want to use in Score Mode.

On the launch day, I was at Rezzed, where I did talk to a few people about my game, but mainly walked around and tried out a selection of great titles. By the time 6pm rolled around, I hung out at an after party and chatted to a few developers.

Then the day after was my birthday, so I figured I would post on social media, but spend most of the time away from the game and more with friends and family to celebrate and relax.

https://i1.wp.com/i.imgur.com/prEWNzt.gif https://i1.wp.com/i.imgur.com/Fi4QFr6.gif https://i2.wp.com/i.imgur.com/DTZmFdO.gif

As for my future plans, aside from this game’s maintenance, I’m hoping to return to smaller games for a while. In particular I want to try a few more game jams and experiment a bit more, I have a few ideas I want to try out, and now I have a little less pressure on me to work a bit on them.