VinsCool Posted September 30, 2022 Share Posted September 30, 2022 (edited) It's DUMB, it's PONG. It's mostly playable. This is the first game I've ever programmed at all, but I think it's not too bad for sharing with everyone who may want to give it a shot! I've actually been working on this one for some time now, but left the project sleeping while I was beating myself trying to work on Raster Music Tracker. Since I've been taking some time off RMT, I figured I could go back to this one, fix a bunch of things, and release it as soon as it worked well enough to my liking. It was honestly a lot of fun to make, even if I had a lot of troubles with collisions detection, or just the weird nature of Player/Missile sprites. I think I've done a pretty okay job for it being my first game program so far, of course you're all welcome to give feedback or criticism if you feel like it Features: - Programmed in 6502 Assembly, entirely from scratch, without any Pong reference whatsoever, mainly as a personal challenge, and just for the fun of it really - PAL and NTSC compatible, I have not thoroughly tested but I believe even the 16k Atari 400 will be able to run the game - Runs in ANTIC Mode 8, because a low resolution display is perfectly good for this kind of gameplay - Sound, the sound effects themselves were originally made by @pseudografx for the game Bunny Hop, and were borrowed with permission, until at least when I make some original SFXs later - Playable with 2 Human Players using Paddles through PORTA, or 2 CPU Players, any combination of Human/CPU will work - Many deliberate gameplay changes compared to the original Pong were made, such as the ball physics responding to certain conditions, or the way the ball could bounce back from any wall - Score system going from 00 to 99, and rolling back to 00, essentially playing infinitely if you're into that kind of passtime - Dumb CPU logic is in place, which is not very good but it's enough to have the CPU Player fully capable of playing all by itself, even in a CPU vs CPU game - It's Pong, what else could I say? Paddles Controls (Player 1 and Player 2): - Paddles Pots -> Move the Players on screen - Paddles Trigger Buttons -> Action, for now, dedicated to throw the ball back in game Atari Keyboard Controls: - ESC Key -> Exit the game to DOS or Self-Test, I cannot promise this is actually working at all, so please let me know if it's doing anything weird - 1 or 2 Key -> Toggle between Human and CPU Players, for Player 1 and 2 respectively. The game will boot with 2 Human Players expecting Paddles input by default - R Key -> Reset the scoreboard - M Key -> Mute/Unmute sound Downloads: - DUMB PONG v1 (first public release) DUMB PONG v1.xex - Source code https://github.com/VinsCool/DUMB-PONG And that's about it for now. It's pretty much still work in progress, there are a lot of bugs, and obviously I am not very good at this stuff either, but hey, it's all about having fun and getting better at the things I like to do! 😅 Enjoy! -Vin 💜 Edited December 31, 2022 by VinsCool Update with source code link 34 2 Quote Link to comment Share on other sites More sharing options...
Beeblebrox Posted September 30, 2022 Share Posted September 30, 2022 nice. Now all it needs is some funky Pokey toons!!! Now if only we knew someone who was master of Pokey?! 1 Quote Link to comment Share on other sites More sharing options...
Grevle Posted September 30, 2022 Share Posted September 30, 2022 (edited) Good Job 👍. Was it the most difficult creating the routine that controls the ball direction after it hits ? the mathemathics in the pong ball bouncing direction ?. I hope to learn something from the source. Edited September 30, 2022 by Grevle 1 1 Quote Link to comment Share on other sites More sharing options...
rdefabri Posted September 30, 2022 Share Posted September 30, 2022 Cool! 1 Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted September 30, 2022 Share Posted September 30, 2022 Congrats on your first 6502 game, and who does not love a pong game.. Happy debugging.. 1 Quote Link to comment Share on other sites More sharing options...
Thelen Posted September 30, 2022 Share Posted September 30, 2022 Nice!! 1 Quote Link to comment Share on other sites More sharing options...
Ute Posted September 30, 2022 Share Posted September 30, 2022 Looks great! 1 Quote Link to comment Share on other sites More sharing options...
Mark2008 Posted September 30, 2022 Share Posted September 30, 2022 cool, I like it, This reminds me, once at work, years ago, my bosgot inspired by someone who made a pong clock, like the one in the link below. We made our own and hung it up at work in our breakroom. Of course we just wrote it in C# ...now that I think about it, that's not OK...should've been on a real atari, missed opportunity. Pong Clock digital clock | Studio Sander Mulder 1 Quote Link to comment Share on other sites More sharing options...
rensoup Posted September 30, 2022 Share Posted September 30, 2022 12 hours ago, VinsCool said: It was honestly a lot of fun to make, even if I had a lot of troubles with collisions detection, or just the weird nature of Player/Missile sprites. Every coder fails their first Pong collision detection... It's a tradition! HW collision detection is an aberration btw... On the A8 it's just legacy of the A2600 which was probably legacy of the original Pong. The A2600 was designed as a super versatile Pong machine, it's really obvious if you know how it works internally... The irony of course is that HW collisions always fail with the likes of Pong and BreakOut It's possible to mitigate the problem by using more missiles along the trajectory (as a trail or invisible I guess) but software collision are just better (but not easier! ) If you like canned worms : http://realtimecollisiondetection.net/ 1 2 Quote Link to comment Share on other sites More sharing options...
NRV Posted October 1, 2022 Share Posted October 1, 2022 4 hours ago, rensoup said: If you like canned worms : http://realtimecollisiondetection.net/ Lol.. I can also recommend that one. But maybe a little too advanced for a pong game Nice game Vins! 1 1 Quote Link to comment Share on other sites More sharing options...
VinsCool Posted October 1, 2022 Author Share Posted October 1, 2022 Thank you everyone! Wow, I was not expecting many people would have reacted so positively! This really means a lot for me! 17 hours ago, Beeblebrox said: nice. Now all it needs is some funky Pokey toons!!! Now if only we knew someone who was master of Pokey?! Hmm indeed, who could make some good Pong tunes? Anyone? Fun fact, there actually was music included at one point, but I've removed it a few days ago, since I just didn't have anything that was fitting with the gameplay anuway, and playing music with sound effects was too distracting, haha. That was also the reason I did add a 'Mute' toggle in the first place, lol Most of the routines were intended to be used with Bunny Hop, and these were mostly just a more optimised version of the same code I originally had written for VUPlayer, I really need to update that one sometime later now that I think about it... 13 hours ago, Grevle said: Good Job 👍. Was it the most difficult creating the routine that controls the ball direction after it hits ? the mathemathics in the pong ball bouncing direction ?. I hope to learn something from the source. Thank you! Honestly the collisions detection and the ball physics are probably the most difficult part I had been working on so far. I've actually scrapped most of the ball collisions and physics code I made about 2 months ago, mainly due to being a lot messier, and working even less good than what I have right now! I've started writing the newer collisions detection code only 2 days ago, in fact, and tweaked to an acceptable level of quality just last night. I also had added the most of the CPU movements at the very last moment yesterday, before I posted the first version of the game online. There is still a lot to improve, but compared to the first attempt of the code where the ball was likely to pass through the players 50% of the time, I suppose this is not to bad right now I've also got some ball physics programming to improve and tweak, but so far I've added a few functions for boosting the ball knock-back, increment the velocity, and I've also fixed several calculation errors with these improvements. I might actually rewrite some of these routines for a 3rd time if I am not satisfied, I believe things will eventually get better after more time is spent editing code 10 hours ago, Mclaneinc said: Congrats on your first 6502 game, and who does not love a pong game.. Happy debugging.. Thanks! It was a lot of fun to debug, thanks to the fantastic Altirra emulator for this purpose! 9 hours ago, Ute said: Looks great! Thanks, I don't really have much artistic skills when it comes to graphics, but luckily for me, big chunky pixels was perfectly suited for this game! haha 7 hours ago, Mark2008 said: cool, I like it, This reminds me, once at work, years ago, my bosgot inspired by someone who made a pong clock, like the one in the link below. We made our own and hung it up at work in our breakroom. Of course we just wrote it in C# ...now that I think about it, that's not OK...should've been on a real atari, missed opportunity. Pong Clock digital clock | Studio Sander Mulder Oh wow, that's actually really cool! I think if I edited my game code a bit, I may even be able to make it work the same way! I don't think that would be all that much interesting, unless someone left their Atari machine running non-stop I suppose, hahaha 6 hours ago, rensoup said: Every coder fails their first Pong collision detection... It's a tradition! HW collision detection is an aberration btw... On the A8 it's just legacy of the A2600 which was probably legacy of the original Pong. The A2600 was designed as a super versatile Pong machine, it's really obvious if you know how it works internally... The irony of course is that HW collisions always fail with the likes of Pong and BreakOut It's possible to mitigate the problem by using more missiles along the trajectory (as a trail or invisible I guess) but software collision are just better (but not easier! ) If you like canned worms : http://realtimecollisiondetection.net/ Yup! it was a bit frustrating to figure it out lol It's just a bit weird how "too pixel perfect" it is, that you're just unable to get much of it working as you expect after being used to anything else that used hitboxes that didn't match the sprite shape itself. I've indeed done exactly what you describe to work around the issues: 1 invisible player for some collisions detection that were likely to be missed at random, and all of my playfield walls were done in software. I've still got many things to fix later, such as, once again, the ball missing and going through a player (arrrgh! still considerably better than the first attempt I made 2 months ago thankfully), and improvements to the ball physics. To be honest, I already know what I can do to attempt improving much of everything, I just didn't bother as long as I got something that worked well enough since yesterday. By keeping track of previous ball coordinates, for example, I may be able to work around several issues at once, mainly the "Pass through Player without any collision", or the ball getting stuck inside of a player, something that also did happen often lol 1 hour ago, NRV said: Lol.. I can also recommend that one. But maybe a little too advanced for a pong game Nice game Vins! Thanks a lot! I think as long as something is a solution to difficult bugs, it's not too advanced! haha I've only really had issues with sprites collisions, while all of my Playfield walls were processed in software. Most of the collisions detection within the "walls" were really not difficult to do, I mostly just used the screen X and Y coordinates I set to be absolute boundaries limits, and then I simply forced the ball to stay in-bounds. The only other "software" collisions I did were for the 2 opposing sides, checking for if the ball gets "pocketed" past a certain amount of the X axis, then jump to the appropriate Player Made a Point and Play Sound Effect subroutines. It's still a bit of tangled programming, but I think it gets the job done, considering it works a lot better than my previous attempt with this entire procedure 😅 Once I managed to get more bugs fixed, and cleanup my code, I will make sure to upload the sources, so at least that would make more sense compared to me trying to explain all of that stuff in the best of my own words, hahahaha! 1 Quote Link to comment Share on other sites More sharing options...
Ricky Spanish Posted October 1, 2022 Share Posted October 1, 2022 Very good ! The CPU vs CPU is entertaining ! 2 1 Quote Link to comment Share on other sites More sharing options...
adam242 Posted October 2, 2022 Share Posted October 2, 2022 4 hours ago, Ricky Spanish said: Very good ! The CPU vs CPU is entertaining ! I'm running it in Altirra on my second monitor as a screensaver. 👍👍 5 1 Quote Link to comment Share on other sites More sharing options...
VinsCool Posted October 2, 2022 Author Share Posted October 2, 2022 6 hours ago, adam242 said: I'm running it in Altirra on my second monitor as a screensaver. 👍👍 Haha this is awesome! Now the Pong Clock idea really sounds like a cool concept in this specific case 3 Quote Link to comment Share on other sites More sharing options...
VinsCool Posted December 29, 2022 Author Share Posted December 29, 2022 I've honestly forgot about uploading the sources of this one, and also sorta lost interest with it, since it's pretty much good enough as it is to be playable, so here are the sources of DUMB PONG as well as some other stuff that happened to be inside the project folder for a few months, collecting dust.https://github.com/VinsCool/DUMB-PONG Enjoy, or don't. I'm aware a lot of my code has a lot left to be desired but for my defense, it is literally the first game I have coded in 6502 ASM from the ground up, what else would you expect? 😀 It works, so that's good enough for me! To be honest, the CPUs are surprisingly tight when they are played against, all things considered, I think they're quite good compared to most other Pong clones I've played before. 👀 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.