Laser Hockey DS

From GameBrew

Laser Hockey DS
AuthorMoose At Play
Last Updated2008/12/31
TypeArcade Games

Laser Hockey DS is a DS homebrew game ported from Laser Hockey on Wii Play.

User guide

Project similar to tennis, move the platform to hit the ball into the opposing goal.


Stylus - Move platform



Known issues

Game banner icon is still messed up.

Add touch panel code to prohibit Join/Cancel loop.

Exiting the hockey screen causes a memory leak.

Random power shots (Box2D), may be ok?

DS for player who exits multiplayer game does not shut off wireless hardware.

Cancel wireless codepath executes on startup? Possibly emulator only.

Paddle colors are wrong on child in multiplayer.

Ball looses a lot of vertical velocity after hitting walls eventually settling on a single Y coord.

Fast moving paddle moves through the ball.


Build 0.6.0 2008/12/31

  • Add background music (intro, gameplay).
  • Loop background music.
  • [BUG] Host/Join Cancel button never pops up after tapped once.
  • Add sound effects.
  • Hook into Box2D paddle-ball collision to play sounds.
  • Removed paddle-neon collision from Box2D with ContactFilter, doing it manually with bounding box.
  • Moving your paddle into the goal area is no longer allowed by design.
  • Randomizing which wall sound gets played on each contact.
  • Hook into Box2D neon-ball collision to play sounds.

Build 0.5.0 2008/09/05

  • Using 24-bit color backgrounds again.
  • Score is drawn under other sprites.
  • The ball is much smaller.
  • The paddles are much smaller.
  • Added glow as a separate translucent sprite behind ball.
  • Added glow as separate translucent sprites that draw behind paddles.
  • Added splash screen that fades in and out.

Build 0.4.0 2008/05/31

  • Cleaned up source code.
  • Using Box2D for physics, still needs a lot of tweaking and bug fixing.
  • Huge improvement. Took almost two months to add though.
  • Re-initializing memory between screen changes.
  • Remove remnants of old placeholder engine.
  • Using Box2D's body rotation for the sprite rotation.
  • Player 2 takes control of Update when ball is in his/her court.
  • Vast improvement in responsiveness of game.
  • Select button exists practice or multiplayer.

Build 0.3.4 2008/03/31

  • Pressing start will exit Practice...correctly.
  • Any player pressing start will exit multiplayer.
  • Cleaning up after each screen.
  • Sending score over.
  • Added "Press Start" message.

Build 0.3.3

  • Moved paddle visibility flag into sprite for wifi transfer.
  • Paddle's can send their position.
  • Players must both press Start to begin multiplayer game.
  • Ball position is now sent over from host.
  • Parent will do all the gameplay processing.
  • Fixed paddle and ball positioning across wireless.

Build 0.3.2

  • First DS-DS WiFi communication, in title screen.

Build 0.3.1 2008/01/31

  • Added status text on connection error.
  • Wireless no longer turns on before it is supposed to.

Build 0.3.0

  • Added multiplayer buttons Join and Host.
  • Added DS-DS initialization.
  • Extra update when performing screen switches.
  • Now drawing right before the V-Blank.

Build 0.2.0 2008/01/05

  • We have a nice looking title screen with a single button for Practice which just launches the same old game with no way out.
  • Added a real player two paddle.

Build 0.1.7 2007/12/31

  • Added the score numbers in Lucida Sans Unicode. It sounds like the most boring font but think that works for this game. Our art director may change this later. Also hooked the actual scores up to the sprites.
  • Finally detecting lid closes.

Build 0.1.6 2007/11/30

  • The ball can now move between screens. There are actually two balls, one for each graphics engine. However, only the main ball (lower screen) is checked checked for collision detection. The sprites in each screen will wrap and currently using this feature to draw the ball on the top screen when the position goes negative. The same goes for the top paddle so didn't have to rewrite physics methods at all. Forced paddle to be in negative world (yes, that was a Mario reference) so that the negative world ball will collide with it.
  • The ball can travel through the goal. It is keeping a score up to 9 but you can't see it yet.

Build 0.1.4 2007/10/31

  • A paddle appears when you touch the bottom screen. You can move it around. If you're not moving too fast, the ball will sort of bounce off of it. That is all. Might leave the physics as bad as it is for now and concentrate on sending the ball to both screens next.
  • Added paddle sprite.
  • Hooked paddle sprite up to touch screen input.
  • Added some simple collision detection.

Build 0.1.3 2007/09/30

  • This Build actually looks worse than the last one. Dropping pretty pictures for functionality. Wanted to learn how to use the 2D graphics engines in graphics mode so drew parts of the neon bars and the ball using a simple 16-color palette. It is now displaying the backgrounds and ball (finally a moving ball) using character and screen data however, the game is still not playable. For people without a hardware setup, bundling NO$GBA (a Nintendo DS emulator) with this release.
  • Removed full color bitmap image to allow using graphics mode.
  • Learned how to use 16x16 color palette.
  • Added character background for glow.
  • Added character background for neon.
  • Added spinning ball sprite.

Build 0.1.1 2007/08/31

  • Grabbed one side of the board from Wii Play and converted it to a DS-sized screen. It uses both 2D engines to display the screen on the upper and lower screen. The code from June release was not really how it was intended to be implemented the paddle so it is not included in this Build. In other words, this Build just puts a picture on each screen.

External links