The More You Have, the Worse It Gets

Ludum Dare 40 took place last weekend, the theme was the title above. Honestly it wasn’t the theme I was hoping for, but in the end, I took an idea I had and adjusted it slightly to work.

The idea I had was that a single level would slowly get corrupted and change, you can shoot away the corruption, but touching the corruption would kill you. This already could fit the theme quite well, the more corruption in the world means the worse it is for you. I wanted players to move around a lot, so I had the additional goal of collecting glitch boxes, which would create more corruption over time.

I used HaxeFlixel to develop the game, as it was bread-and-butter for me in game jams such as Ludum Dare, especially when there is not much time to work on an idea (I had spent the entire Saturday out with friends for winter festivities, all I did was write notes on what the idea would be, so in all I only had around 11 hours to work on a game).

b056


To get the corruption to update and move around, I used the tilemap system and updated the grid with Conway’s Game of Life algorithm, that way it gave the impression of mutating outwards or dying out depending on the numbers. Fortunately, with recent updates to HaxeFlixel, you could do collision response based on specific tiles, so it was easily possible to remove tiles and change the map when bullets collided with it. The extra artefacts also use Conway’s Game of Life. although the grid is 4 times larger than the main corruption grid.

The artwork was done in Photoshop, although it was a very simple and rushed job. The “corrupt” graphics was a multicoloured character set that I had to create and tweak by hand to fit into a 10×10 pixel grid.

The music was a combination of cgMusic and LMMS, quite a good combo to have because it meant I let one program generate a music set, then import it into LMMS as a midi file for me to set instruments (using soundfonts), effects and tweak the melodies how I like.

I managed to upload the game with around 30 minutes left before the compo deadline!

b05c

On Tuesday I fixed that timer, which appeared broken when you reached a minute because I messed up how the string was being built. It took a few uploads for those changes to appear, something that kind of frustrates me about HTML5 and how web browsers will not always clear out the cache if the content has been changed.

GIF

Feel free to play the game on itch.io as well as rate or comment on the Ludum Dare page.


This wasn’t the only games jam I did this winter, I also took part in PROCJAM, where I built a planet generator. It’s not my best work to be honest, although I was able to work and improve my 3D OpenGL rendering in the Vigilante Framework.

Advertisements

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!

#GBjam, Game Development and Work Updates

I’m back and ready to update everyone on what’s been happening since I went to Japan last month, which was an awesome holiday where I got to go to the cities of Tokyo, Kyoto, Osaka and Sendai, with highlights including seeing foxes at the Zao Fox Village, walk around Akihabara’s arcades, game and electronic stores, dressing up as a Samurai, going to the Ghibli Museum and Nintendo’s Old Headquarters! Despite being in very humid weather, and both my sister and I carrying our bags from hostel to guest house to hostel almost every night, we were able to see so much and yet miss out on quite a lot. We talked with other travellers and heard about seeing Mt Fuji and Sumo Wrestling in Nagano among others, but I think I can see them another time.

But only a few weeks after I got back, I was out again for a week in Ireland…which is why the longer than normal absence. I got to see some of the big towns and cities from Cork to Dublin, as well as a lot of countryside, however it did help bring inspiration for a game I recently made.
Welcome to Kilkenny Pub Brawl!

Continue reading

Newgrounds API with Haxeflixel

I was recently asked to do a tutorial on how to get the Newgrounds API, allowing you to use Newgrounds Ads, Medals, Leaderboards and other site special stuff, to work with HaxeFlixel using FlashDevelop. Since there isn’t much on the subject, I thought I’ll write a quick one up to get people started.

Continue reading

Ralph Baer & Ludum Dare 31

https://i1.wp.com/www.vintagecomputing.com/wp-content/images/interviews/baer_harrison_pong_3_large.jpgI would first like to start this post by talking about Ralph Baer, wildly known as the father of video games who passed away on December 6th. Since 1966 he always had the idea of games that can be displayed on television screens, and developed what he calls “the brown box” which had rotary controls and played a simple tennis game with two panels and a square ball. This patented idea eventually got picked up by TV manufacturer Magnavox and became the Odyssey, wildly considered the first video games console. Along with essentially founding computer and video games as we know it today, he also invented the classic electronic game Simon (and its sequel Super Simon) and carried on developing and tinkering with electronic prototypes, giving him 150 patents to his name.

He lived a full life and his work has lead to the creation of the largest entertainment history, and lot of gamers and game developers are where they are today because of his work.

So last weekend was Ludum Dare, the 31st bi-annual 48-hour games jam. The theme for this one was “Entire Game on One Screen”, a bit basic for a theme but it’s much better than the joke theme that got a lot hype in the voting stages (no snowmen please!).

You can play my entry right now, it’s called Glow Drop and it’s a physics based puzzle game, just click the image below to go to the Ludum Dare page!

I initially wanted to develop my entry using HaxeFlixel, but software issues struck and I was unable to use it, and since on the Saturday I spent most of my time developing on a train to London with no wi-fi, I decided to switch to using Construct2.

While I didn’t really feel motivated to using Construct2 again after spending over a year developing a certain award nominated stealth game using it, turns out for the game I ended up making it was worthwhile. Construct2 has one of the most easiest physics set up out of any engine I’ve used, and since the entire game has to be on a single screen, it’s much easier to manage a visual layout than a coded game state

Since I was out with friends and family for most of Saturday, I was hoping to release for the 72-hour jam. However, when I noticed that most of the game and the graphics were finished with four hours remaining, I felt like I could pull it off and upload for the compo, and I succeeded!

I’m already getting positive comments so far, so I might use a day or two from my Christmas break to polish the game more and release it as a mobile game! If you guys like the idea let me know if there is anything I could add/change to make it work!

https://i2.wp.com/ludumdare.com/compo/wp-content/compo2/407933/21252-shot2.PNG https://i0.wp.com/ludumdare.com/compo/wp-content/compo2/407933/21252-shot3.png

#PROCJAM, University and Final Year Project

Yesterday marks the end of #PROCJAM, a games jam all about procedural generation, or the idea of generating stuff from algorithms. For a whole week, your goal is to either produce a game that uses procedural generation in some way (and possibly follow the optional theme of INFINITY), or a tool that procedurally generates stuff to help out other developers. ProcJam is a games jam I’ve been pursuing because it’s a topic I’ve been gaining interest in for the last few months, with games like Spelunky and Rouge Legacy being really popular and the whole idea about creating fully usable stuff out of code, and being able to create new and different stuff every time is awesome.

Continue reading