Sunday, 17 November 2013

Hardware + 80:s classic game = winning

This year I actually won NaGaDeMon. Winning NaGaDeMon means you make a game, complete it and play it. That's it, really simple.
As I just recently bought an Arduino kit, I decided to cross the border from the familiar area of software into the mysterious land of hardware. I also learnt from last attempts failure to keep it simple. No really... really simple... and so I made a recreation of the classic 80:s game "Simon".

It's made from the components you can see in the video: 1 Arduino Uno, 4 push buttons, 4 coloured LED:s, 1 piezo(used to generate some noise) and a bunch of resistors and wire.

The thing that is not obvious in the video is the 226 lines of code.

So what is the game about?

The game selects a sequence of colours every round, and you´r task is to recreate the same sequence. Every round you manage to complete starts a new round with a sequence that is one colour longer. The game ends when the player selects a wrong colour in the sequence the game has performed.

The game has 2 modes:

1) Building mode, where the game only selects a random colour for the extra colour that is added every round. So the sequence is always the same, only one colour longer every round.
2) Random mode, where the game selects a random sequence of colours every round and adding an extra colour every round to make every round increasingly harder to copy for the player.

Building mode is selected by pressing any of the upper buttons, and when you do, the game answers by playing four spinning loops with the LED:s.

Random mode is selected by pressing any of the lower buttons, and when you do, the game answers by playing a randomised pattern with the LED:s.

Tuesday, 12 November 2013

Again with the old school...


My(by now a bit late) idea for this year is to open this box and see if I can make a game out of it... :-)

Sensors... Motors... LCD... LEDs... And a wee bit of simplistic scripting... This will either fail miserably to the smoke of burning components, or fail gloriously to the smoke of burning components...

Hell, it just might even succeed!

Friday, 2 December 2011

A challenger appears!

I've been working on a game too, so I'm here to claim my prize! I call it GRAV:BEAT (formerly known as Stuts 2) and it's the sequel to a game I made many years ago but never released mainly because I wasn't happy with the performance. But since then a lot has happened on the Flash platform and we now have GPU-accelerated graphics through Stage3D, so when NaGaDeMon came up I decided to give it another go. The goals I set up for this game was to create a fast-paced game using the Starling framework with lots of special effects running at 60 fps. Oh! And with ball physics!

Hopefully this game will be released sometime in the not-too-distant future. This is what's left to do:
  • It needs more levels! I'm designing them with Inkscape so it's a quite nice experience :)
  • More features! I want to introduce new gameplay elements as you progress through the levels so that the player is curious to see what's next and keeps playing.
  • Some other stuff..
The game is running in Flash and is intended to be played on a computer with a keyboard. It will have highscores and ads from Mochi. When (if?) the game is finished for the primary platform I might look into porting it to mobile devices as well.

It actually feels like I'm really close to finishing the game, so stay tuned! Let's make this December a game design month too! :) All right! Let's go!

Thursday, 1 December 2011

Winning?

You "win" NaGaDemon if you make a game and play it. My RPG game has not progressed that much sins my last post and I can not really claim to have played a complete game at this point, so I guess I kind of lost.

However!

I also won! Wohoo! Because I went from "I would like to do this" to "This is what I'm doing" ad for me that is a really big change. And also, just because NaGaDemon is over does not mean that the game is over. I will complete this game/engine. My end goal is to publish at least one game in the Android Market using this engine. Either free or paid(or both?). I know how to do it, I know it can be done and I really want to do it. So thats's it: I will do it! :)

So what was the end result? Well, basically I'm at the point of the last post with the addition that when the player is thrown into the battle screen: there are 2 enemies there that starts tracking you by closing in one step each time you move. And once they get next to you, they attack you and you usually die. An by usually I mean always. There is rudimentary support for adding weapons and armour into the battle calculations but none exist.

So in short: I'm not done. There is a few things left to make it a "game". There are a lot of things left to make it a game. I will do a lot of things.

A fun month! I will do it again!

Wednesday, 30 November 2011

Success! Well, kind of? :)

The month is over and while I am far from having what would be called a complete (as in publishable) game, I am gonna declare NaGaDeMon won (at least more than lost ;))

All the basic features for core game play is done: The player is controlled by rotating the device (sometimes violently), there is a goal that needs to be reached before time runs out, there are enemies that eat some of your remaining time, and boosts that give you more time. The player also dies if losing control and bumping the head against the ground.

I have successfully deployed and played my game from start to end today, all five levels, dying sometimes, winning sometimes. Success!

But the main reason it's such a raging success is that I managed to do this, without spending insane amounts of time, and still: there's a big part of a game done, I've learnt a new environment and a new platform, I've re-learnt a lot of horrible trigonometry, made new friends and most importantly: remembered how fun it is to make games! There will be more.


Here, have some screenshots, and then I'm gonna talk a bit about what more there is and what is missing:

Super simple intro level, meant to teach the absolute basics.

Suddenly, the goal is... where?

And tricksier still.

So, like I said, all the core features are there and it works. So what needs to be added?

Graphics


Obviously! All of it is ugly placeholder graphics, with programmer's animations. The player needs to be interesting and make cool moves, and everything else needs an artist's touch.

Sound


Also placeholders, though I start to like what Dennis has done for the soundtrack (the sound effects is all my fault!)

Fail


The game needs to taunt the failing player and there needs to be a death screen.

Win and Highscores


The game is designed so that you are supposed  reach the goal with as much time left as possible, meaning that avoiding the enemies and collecting a strategic amount of candles at the same time as reaching the goal will net you bigger scores. This should also be tied to a server, of course!

For the obsessive-compulsive player, a big hit! ;)

Levels!


These are just placeholders, although the first two-three levels now are at least sketches on how to ease a player that don't know what to expect into how to play the game (hopefully). The level editing works so the process is fast, but it still would take quite some tweaking and testing to make good levels, as usual.

Level select


Select level screen, and unlock levels.

Replays


Haven't tried this, but should be possible to save each game and have replays, thanks to Box2D being deterministic, meaning that the physics will repeat the same things given the same input - which is current gravity each frame. They could be played on the start screen, they could be replayed from a menu - and other players could download and watch your speed runs! (Much like N does it).

Tweak and optimize


Make everything better and faster. :) There should be a lot to do on that front.

Other polish


Such as a help screen, menu system, real splash screen, fonts and so on.

Conclusion


I think this could very well be turned into a real game, but then I would need to enlist some help with graphics and sound. I'd also say that taking some time making maybe 15 good levels with nice rounded corners is very doable. So, am I? Definitely maybe. ;) I'd like to see this game in a completed form, and at the very least I'm going to spend some more time tying it together.

Thank you NaGaDeMon! And thank you Bjarne for making me do it... See you again next year!

Tuesday, 22 November 2011

Terrible pace

I've had such a terribly slow progress lately that this blog looks like it belongs to Stoffe. So terrible in fact that I just had to post for the most minuscule of triumphs. After battling with the Bitmap class for way too long and finally realizing that I was a terrible programmer, not that the Bitmap class was terribly implemented: I finally managed to create the pixel-upscale that I wanted.
The tiles in the image here are 16*16 with a pixel-size of 5*5. It is a bit too big naturally, but I thought it would make a better screenshot. I guess a typical pixel size for the final game would probably be 3*3 on a mid range screen.
The image is a bit crushed in this post, so click it to see the original if you want to see a more realistic view of the scaling in action.

Monday, 21 November 2011

Refactor, bugfix, implement, blog, rinse, repeat

New version: http://dl.dropbox.com/u/14713777/GhoulsnWheels.apk

See below for info on what's new.

A fair bit of Sunday's hacking went into restructuring poorly thought through structure. Not perfect now, but better, and a bit easier to work with.

Also got my first real bug report, Mr BZR (if that is indeed your real name) discovered that a part of the world was invisible but still had collision. Since the visuals and collisions are drawn from the same dataset, there should be something wrong in my code... a quick look in Inkscape confirmed that the collisions were correct, so something about the level drawing code then...

Sure enough, and thankfully easy to find (this time). An Obi-Wan error causing the code to ignore the second point in each polygon was a bit odd though, but oh well. :) Slipped past me earlier because most edges are pretty short and so doesn't affect the layout much. Good catch there!

So, some new stuff as well:

Time - it will run out. There's a countdown going on in the corners and when it's down to zero, well so are you. Would be nice to see how this looks on other devices because I'm pretty certain my values are off and therefore hard-coded to my device at the moment.

My First Enemy - a playset suitable for all ages. Not only will the countdown bring death and destruction, there's also a winged demon loose that steals some time from the player given the chance! (What actually happens will be made more visually clear, right now you need to know it to notice it I think).