Jump to content
IGNORED

Paddlefield (was: Pong Wars) (Atari 2600)


Recommended Posts

Paddlefield - The eternal battle between day and night, good and bad

 

Following the cool suggestion in this thread, I started developing my own Atari 2600 version of Pong Wars. Which should not only become a screensaver but also a game. Developing the main kernel provided some challenge and fun. It is a space optimized (ROM has to stay within 4K, so no large tables!) 1LK, which has one single cycle free. I like it. :) 

 

To have more control (editing) and feedback, I decided to create my own topic in this forum.

 

Features and instructions:

  • Fire button ends and starts game, enters select mode and the next select option ("Platinum Couch Compliant" :D)
  • ~553,000 game variations (NTSC), displayed using icons. To enter the selection mode, turn the paddle to the very right and then press fire . By moving the paddle left or right and back to center, you can select/change an option. Press fire to continue. If the selected option has multiple choices, the background color of the selected option changes. You can now change the choice for the option. Fire returns back to the main selection. Options:
    • image.png.896449edf46fc96a1df2ca01758a903a.png Continue (works like exiting a pause mode; note: changing the board option resets the game)
    • image.png.0239706e849d745ca7c5a0555d4c8d65.png Restart (resets and starts a new game)
    • image.png.84f1a43802b520b5a559feab2f9c571a.png Players (CPU vs. CPU, Human vs. CPU or Human vs. Human)
    • Controls (image.png.adc8348845f1e2dbf0bbb3386d338107.png ball steering only, image.png.ee3e3510436e73fc642edcd01b676cf6.png paddles without ball steering, image.png.4ca1543d58798dcdd4f70ec028fd99c7.png paddles with ball steering, image.png.839544105e8266f0282662d7acf7b7ff.png paddles with ball stopping). To steer the ball, move the paddle significantly up or down after the ball has hit your own border (w/o paddles) or your paddle. The steering lasts until the ball hits a border or is returning. In image.png.839544105e8266f0282662d7acf7b7ff.png mode, press and hold fire to stop the ball at your paddle and move the ball with it.
    • image.png.dc2b0b87ded5eb63e31e308f541dc422.png Speeds (15 combinations), left (bright) player's speed <= right (dark) player's speed, a slower left speed can act as handicap.
    • image.png.2773113514eaab14ec85fa253d1e2544.png Board (12 variants)
    • image.png.57a4c2575239cec6163e82723b92586d.png Bright color (16 (NTSC) or 13 (PAL) bright colors)
    • image.png.de2aa708dcb6aef768a7127ecd07e51f.png Dark color (16 (NTSC) or 13 (PAL) dark colors)
  • When using a PlusCart (or an supporting emulator), the selected game variation is saved. It will be used as default when loading the ROM the next time.
  • Goals: Reach opposite border or xx (xx = 30..60, depends on selected ball speeds) extra cells. xx is reduced by 1 every 4.25 seconds, so the game will have a winner after a limited time.
  • The number of cells missing for winning is displayed at the bottom. An arrow pointing left (bright side) or right (dark side) indicates which player is leading.
  • Game over tunes and color brightness changed depending of which side won
  • Slight randomness, each run is different

 

Note: By default the game starts in screensaver mode (CPU vs. CPU) and at maximum ball speed. Make sure to reduce the speed when you start playing the game.

 

As always: Feedback welcome!

image.thumb.png.c2cdef722177aeee39742ebae231bb7c.png

Paddlefield (NTSC) V0.95.binPaddlefield (PAL60) V0.95.bin

 

Edited by Thomas Jentzsch
  • Like 22
Link to comment
Share on other sites

This is such a cool idea for a game, and it's also just interesting to watch as it is right now. I really love the simplicity and challenge. Another thing you could do is periodically change the color palette?  I'm sure there are many interesting pairs of colors that would work well.

 

 ..Al

  • Like 3
Link to comment
Share on other sites

48 minutes ago, Albert said:

Another thing you could do is periodically change the color palette? 

For a reason, or just for the show?

48 minutes ago, Albert said:

I'm sure there are many interesting pairs of colors that would work well.

Sure.

Link to comment
Share on other sites

23 hours ago, Silvio Mogno said:

Cool!

 

Just one question: I was expecting a symmetrical work because balls start from symmetrical points, but they go asymmetrical very soon. Why?

I suppose that's the result of the processing order. Also the right ball usually covers more space on average. 

 

Maybe I should experiment... Yup, that's it. Nope!

 

It depends on the horizontal crossover point between adjacent cells. We are working with even numbers (cells, ball), so there is a point, where the ball overlaps two cells by exactly 50% each. Whether the left or right cell is swapped determines which side receives an advantage.

Edited by Thomas Jentzsch
  • Thanks 1
Link to comment
Share on other sites

I would suggest going more in the direction of "Pong". Using the missiles (variable height?) as bats controlled by the joystick. If you loose your ball it starts from the bat after a time penalty, so it is an advantage for the opponent.

 

  • Like 2
Link to comment
Share on other sites

8 hours ago, Al_Nafuur said:

I would suggest going more in the direction of "Pong". Using the missiles (variable height?) as bats controlled by the joystick. If you loose your ball it starts from the bat after a time penalty, so it is an advantage for the opponent.

That would require a kernel which supports:

  • 1LK
  • asymmetrical playfield
  • two sprites
  • two missiles
  • reading two paddles

Even with massive use of space (padding 0 bytes) this is beyond what a stock 2600 can handle.

 

Cycles:

  • playfield (4 * 7 = 28)
  • sprites (2 * 8 = 16; lda(),y + sta ZP)
  • missiles (2 * 8 = 16; lda(),y + sta ZP)
  • paddles (2 * 8 = 16)
  • loop (9; dey; ldx BlockIdx,y; bne .loop)

That's best case (without unrolling) and requires 28 + 16 * 3 + 9 = 85 cycles. And even unrolling will not help here.

 

Turning the display 90° would hep, but then the block area would become vertically very small.

Edited by Thomas Jentzsch
  • Thanks 1
Link to comment
Share on other sites

Just now, Al_Nafuur said:

it depends on how big the bats are and how fast they move.

You can make them larger and fast, which will allow you to hit the ball easy enough. But for targeting, you would have to be able to hit the ball at a certain area of the paddle. With a joystick and fast movement, this is not possible.

  • Like 1
Link to comment
Share on other sites

Next update (V0.4, see 1st post).

 

This one has quite some differences:

  • added game variations (8) and display them using icons:
    • computer vs computer (endless, no sound)
    • human vs computer (multiple speed combinations)
    • human vs human (two speeds)
  • added randomness, now each run is different
  • defined goals (opposite border, +/- xx cells)
  • added a game over display (screen turns brighter or darker, depending on which side won)
  • added multiple color combinations (as requested by @Albert)
  • removed controls of the horizontal speeds

There are quite some parameters (speeds, required cells for winning, colors...) which will need tweaking. Some testing and feedback is definitely required. 

 

Notes:

  • I removed the horizontal speed controls to make the game more Pong/Breakout like. Also I found this option quite stressful.
  • There is no AI for the computer opponent. To be able to match a human player, the computer simply gets more speed. :) 
  • At least for now a human can also control the computer
  • Like 4
Link to comment
Share on other sites

11 hours ago, Thomas Jentzsch said:

You can make them larger and fast, which will allow you to hit the ball easy enough. But for targeting, you would have to be able to hit the ball at a certain area of the paddle. With a joystick and fast movement, this is not possible.

The way it is handled in games like Air Hockey (GBA e-reader) is that pressing the button moves you at turbo speed. Normal movement is more precise. 

  • Like 1
Link to comment
Share on other sites

Next update (V0.5, see 1st post)

 

Differences:

  • changed the score display, it now shows the remaining gap of the leading side to the game's goal 
  • increased player control effect
  • added multiple initial board layouts (see screenshots below)
  • mode selection now used joystick (left/right: game variation; up/down: board layout)
  • fire button starts game or enters select mode ("Platinum Couch Compliant" :D)
  • fullscreen display - I did some research regarding the VBLANK length and it seems that it is neither required by digital displays nor by modern CRTs. So I keep the screen always enabled. Please let me know if you experience any problems nevertheless (e.g. screen rolls).

PongWars_V0_5_1.thumb.png.31ab781f99f1c92a1a990db880c45d79.pngPongWars_V0_5_2.thumb.png.80ef93bf4427298f31da317784f98b84.pngPongWars_V0_5_3.thumb.png.bbbc88790b0f2d833c64c1f58b8d32cf.png

Edited by Thomas Jentzsch
  • Like 7
Link to comment
Share on other sites

V0.6 is only a minor update which adds tunes (one for good and one for bad) when a game is won. 

 

Currently the game is still 2K. I need some feedback about its current gameplay to know into which direction I should continue. 

  • Like 1
Link to comment
Share on other sites

18 hours ago, ZeroPage Homebrew said:

Your Platinum Couch Compliant TM certification has been approved by the board.

This is definitely something I will be paying attention to going forward with games.  Most especially being able to start a game using a button on the controller, versus having to hit the Reset switch.  But being able to select game options as well from the controller is ideal where possible to do so.  :)

 

 ..Al

  • Like 3
Link to comment
Share on other sites

3 minutes ago, Zoyx said:

I like the idea of this becoming a paddle game. Assuming I am interpreting earlier posts correctly, that may not be possible?

Only with compromises like flicker. Which I would like to avoid. 

 

Also, the game would probably need a neutral area, where both balls can pass through. Which means it would need a third color here. 

 

Or the opponents ball only needs to reach a border, which is between both player paddles. This would have to be made visible somehow. 

 

As of now, I do not see a good solution for paddles. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...