Skip to main content

Welcome To The Machine

Hey!

Here's my blog about creating a browser based shoot-em-up game. The game, called Bullet Hell Survive Alpha, is an idea that I've played with a couple of times before over the years. It started off as something that I wrote for a gamejam when I worked at Denki, way back in 2008. It's a game genre that I really like and has got lots of great feedback each time I talk about it - it's still one of the subjects that gets the most hits over on my main blog at http://evilpaul.org.

The game itself is a little different to your usual shoot-em-up - the aim here is simply to survive the bullet hell onslaught and to score points as you go. It's not about blasting your way though levels, finding enemies weak-points and exploiting them.. it's purely about dodging the beautiful patterns of bullets. It's part reflexes, part pattern recognition.

One of the most interesting things, for me, will be building the levels. Making bullet patterns that are both beautiful and survivable (if only you can find the places to hide..) is a lot of fun. In previous versions of the game I've included level editors and I will be doing the same here. I've had some great feedback on previous versions of the game from people who enjoy building absolutely insane levels for themselves.

What's in it for you?

It depends what you are looking for. You may learn a little about JavaScript, a little about gamedev, a little about shoot-em-up development.. or a lot about all of these. You may just enjoy watching the development of a game and playing it as it is built. And feel free to send me feedback and suggestions as I go along - What are you interested in seeing in the game? What would you like me to explain in more/less detail? What do you think should be added/removed?

Because you'll have access to all the source code you'll be able to play around and make your own versions of the game, or really take it apart to understand exactly how it all works. You could even use the codebase as a building block for something completely different.

While we're on the topic of source code, here's one last thing: I don't plan on using any frameworks. No jQuery, no P5.js, no nothing. There are a couple of reasons behind this. Firstly - we just don't need them. Secondly - it's more interesting and illuminating to develop the stuff from scratch. Having said that, if something really warrants the use of a library then I'll use one.

What's in it for me?

I'm an old gamedevver who started off writing commercial games in the PS1 era, and I stayed in the industry until towards the end of the PS3's lifetime. In-between I've released games on GameCube, PS2, XBox 360 and a few others, and I've worked for Sony and Microsoft, among others, along the way. I now work outside of gamedev and this is a way for me to use some of my skills that I don't get to use in my day job. I use JavasScript a little bit at work (mostly in NodeJS) so it's going to be fun to start poking around in the corners of the language. It's also going to be interesting for me to see your feedback and suggestions.

What's next?

I'll start off with a simple post explaining how to get a sprite up and moving around the screen, and then I'll add bullets, spawners, object management, collision detection, debug systems, fonts, game states.... and that's just for starters. I have a lot of stuff planned but I'm happy to be steered by your interests - just let me know what you'd like to see added next.

Comments

Popular posts from this blog

Set The Controls For The Heart Of The Sun

When we last met, I had just started work on a level editor. I'd got as far as adding the ability to select an object and move it around, and then I added an undo/redo system using the command pattern. That was a good start, but dragging items around the level is only fun for so long. What I really want to be doing is.. ..editing the properties of the bullet spawners! And I want to be doing this in realtime as the game plays so that I can immediately see what effect my changes have made to the gameplay of the level.

World In Motion

In the last post I touched on how easy it is to score in this game - you can just camp out on the score bullet spawner and watch the points rack up. I'm going to add a little delay to the score bullets so that they start out in a deactivated and uncollectable state, and then change to active and collectable after a short time - say, half a second. To make it clear what state they are in I'm going to add code to let me change the look of Objects and allow them to be animated.

Give Me Just A Little More Time

In this post I want to make the game time limited. By doing this, I make it more of a challenge to beat the high score. I'm going to set the time limit for a level to 30 seconds - I think that's a good amount. Also, I don't want to just dump the player straight into the action unprepared, so and I'm going to add a couple of bits of  "ceremony" before and after the gameplay to make it a nicer experience. There are a few main things that need to be added to make this happen: Add "sub" states to the Game state: intro, game and outro Intro state needs to show a countdown Game state will run the game as normal, but with a visible "timer bar" to show how long is left Outro state will show a summary of the game - score, high score, etc. Let's start with defining these states: