Author Topic: A simple breakout clone with a twist  (Read 24194 times)

Etinarg

  • Rogueliker
  • ***
  • Posts: 424
  • Karma: +1/-1
  • Idea archivist and game tinkerer.
    • View Profile
    • Gedankenweber Blog (German)
A simple breakout clone with a twist
« on: March 10, 2010, 09:51:53 AM »
I haven't made much progress with my roguelike projects lately, particularly because I was busy with two or three other projects.

One of them is a little breakout clone, which was started in a moment of nostalgia, and then evolved in kind of a funny direction, both in sense of graphics and gameplay.

=> http://www.funkelwerk.de/applets/brickdoh/

The twist in this game is that you can give the ball spin, and make it fly a curve. Just move the paddle when the ball is about to hit, and you can give it spin. Spin is funny, but evil  ;D

Later levels have small diamonds which you can hit for extra balls, wind from the side, upwards gravity, and spring tiles which work like flipper elements and sent the ball back at double speed.

Scoring is special too, you get bonuses for steady and easygoing play (see left panel), and penalty for getting hectic. It's meant to encourage relaxed and easygoing play.

The whole thing is a java applet, and needs the Java plugin 6 installed to run. The plugin comes with the Java runtime 6, it should register automatically with the browser. Version 5 will do, too, but for some reason crops a bit of the lower end of the display. I'm aware that Java plugins don't work everywhere, but there is some hope that it will at least work for a good number of people.

Have fun if you try. Five levels wait for you :)

Krice

  • (Banned)
  • Rogueliker
  • ***
  • Posts: 2316
  • Karma: +0/-2
    • View Profile
    • Email
Re: A simple breakout clone with a twist
« Reply #1 on: March 10, 2010, 10:59:36 AM »
The spin feels really random. Sometimes you get a spin without doing anything. Lost the game, because the mouse cursor went out of focus, it's annoying feature. Why not make a real game with proper programming language and some adjusting for better spin control?

Etinarg

  • Rogueliker
  • ***
  • Posts: 424
  • Karma: +1/-1
  • Idea archivist and game tinkerer.
    • View Profile
    • Gedankenweber Blog (German)
Re: A simple breakout clone with a twist
« Reply #2 on: March 10, 2010, 11:10:47 AM »
I have adjusted the spin a few times during the last 3 or 4 versions, so I might do that again. "Random" isn't the problem though, I'm sure, since the calculations are completely deterministic. If you can tell me better in which situation the spin appears wrong, I can go and fix it. "Random" would leave me to pure guessing and that isn't a good base for bugfixing. At the moment I'd translate "Random" to "Doesn't work as I expected", which may or may not be a bug, depending on what you expected  ;)

Java seemed ok for this little toy. I wouldn't know what another language could do better there.

The focus problem is annoying that is right, I ran into that, too. I have a few ideas how to fix it, but I haven't decided yet which way to go.

Thanks for trying and letting me know about your experiences with it :)

Edit: I was thinking about the "random" problem some more. Maybe you don't mean the spin at all, but the bounce direction? The paddle is not flat, but curved. If the ball hits left of the paddle center, it gets bounced back more leftwards, if it hits right, it gets bounces back more rightwards. There is a neutral zone in the middle of the padde.

Spin is, if the ball flies a curve as result of a bounce. It can even be a circle if you give it a lot of spin. Also spin reverses as result of a bounce. So depending on the spin the ball already has, the paddle movement, and the location where the ball hits the paddle, I presume the result can appear "random" to a new player. But it's just complex.
« Last Edit: March 10, 2010, 11:30:32 AM by Hajo »

Hi

  • 7DRL Reviewer
  • Rogueliker
  • *
  • Posts: 154
  • Karma: +0/-0
    • View Profile
    • Email
Re: A simple breakout clone with a twist
« Reply #3 on: March 10, 2010, 02:33:11 PM »
iti'a kind of cool. It means that we much be playing breakout on a pool table.

Etinarg

  • Rogueliker
  • ***
  • Posts: 424
  • Karma: +1/-1
  • Idea archivist and game tinkerer.
    • View Profile
    • Gedankenweber Blog (German)
Re: A simple breakout clone with a twist
« Reply #4 on: March 10, 2010, 03:41:32 PM »
Cool sounds good :)

Unfortunately the table is not completely even in some levels, particularly level 3 and 4  ;D But the pool table analogy looks good.

Vanguard

  • Rogueliker
  • ***
  • Posts: 1112
  • Karma: +0/-0
    • View Profile
Re: A simple breakout clone with a twist
« Reply #5 on: March 12, 2010, 01:45:13 AM »
If you spin it really hard, it immediately shoots back and you'll probably lose.

Should the steady score be able to go below zero like it does?

Etinarg

  • Rogueliker
  • ***
  • Posts: 424
  • Karma: +1/-1
  • Idea archivist and game tinkerer.
    • View Profile
    • Gedankenweber Blog (German)
Re: A simple breakout clone with a twist
« Reply #6 on: March 12, 2010, 03:03:34 PM »
There sure can be killer spin. I had such too, that the ball hits the paddle, goes into a small circle and then drops out just besides the paddle and now chance to rescue ...

I might turn down the spin effect in the next release.

I think I was undecided about the steady score. Initially it could go below 0, but I seem to remember I wanted to clamp it to zero. Either I missed to do that completely, or it just is clipped for the score calculation (no negatives scores). I'll check it again, thank you for pointing that out :)

Krice

  • (Banned)
  • Rogueliker
  • ***
  • Posts: 2316
  • Karma: +0/-2
    • View Profile
    • Email
Re: A simple breakout clone with a twist
« Reply #7 on: March 12, 2010, 04:23:56 PM »
I got a spin that made the ball go under the paddle and through it I think. That was kind of funny. Breakouts were one of my favourite games back in early 90's. I remember Arkanoid 2 well, because it came with Super Pack of Atari ST. Some time ago I even planned to make a clone myself, but it was maybe too sophisticated plan and I never started to make it.

Etinarg

  • Rogueliker
  • ***
  • Posts: 424
  • Karma: +1/-1
  • Idea archivist and game tinkerer.
    • View Profile
    • Gedankenweber Blog (German)
Re: A simple breakout clone with a twist
« Reply #8 on: March 15, 2010, 09:39:01 AM »
Yes, there can be funny effects :)

The very first version of this took only 3 hours to make, with simple block graphics, no background or so. I was positively surprised how swift development was there, compared to other projects of mine. I'd recommend it if you need a break from more serious and deep though projects.

Etinarg

  • Rogueliker
  • ***
  • Posts: 424
  • Karma: +1/-1
  • Idea archivist and game tinkerer.
    • View Profile
    • Gedankenweber Blog (German)
Re: A simple breakout clone with a twist
« Reply #9 on: March 23, 2010, 11:57:39 AM »
I've tried to pick up my projects again, and decided to start with something fun and easy, my breakout clone.

I've added a particle system, that I hope to expand later. For the moment, the ball just leaves a trail of rainbow colored stardust. Also I've reduced the ball spin effect by 25% which should make the game a bit easier to control:


After the particle system, I was trying to look into Java sound programming, and added three simple sound effects for testing. One paddle bounce sound and two tile bounce sounds.

http://www.funkelwerk.de/applets/brickdoh-051/

I don't have much experience with sound programming, and I had a former try freeze up my computer. I don't know if this was a faulty sound driver, or if I did something wrong. I compared my code with sample sound playing code from the web and adjusted one place which was testing if a sound sample is already played - the former version just skipped samples that are already played while the new version actually stops them and then tries to play them from start again. Should not be that much of a difference? The new version did not cause any problems in my tests, but a bit of uncertainty remains.

Besides the sound, version 0.50 and 0.51 are identical.