The year was 1998. The high end desktop pc I had at my dormetory was a pentium 166Mhz. We programmed in turbo pascal in those days and bit banged in mode 13H. Which had a whopping resolution of 320x200 with 256 colors. But it was easy a pointer to an adress in memory and just dump bytes in it which give you a pixel with that color on your screen. Using this technique we wrote a game one day which is a combination of Arkanoid and Pong and dubbed it ArkaPong.
Together with 2 friends we made the initial game in just one weekend. Anthony Liekens explained me how to use objects in turbo pascal and had a nice fastvga library for drawing to the screen smoothly and having a double buffer as he had been making many diy games the year before.
I had plenty of computer gfx and oberon experience writing 3d engines but not much gfx experience in turbo pascal yet. It was also really cool to see we could also use objects in turbo pascal as well. That made the multi ball and dual pallets so much easier to code.
Sam Tulfer the third on our 'geek weekend' team was all about learning physics back then and helped to think of new specials and other things to create. He didn't share the same passion of programming computers back then, but many years later he also ended up working in IT. I wonder if that magical weekend had something to do with that.
Apart from the usual arkanoid special blocks that widen or narrow your bat etc. You could also shoot at eachother and thereby score even more points. A weekend later I further extended the game so it also supported one player mode as well and added some finishing touches like high score tables, menu structure etc. We had more fun creating it than actually playing it. When we passed it around for free to other students a lot of them enjoyed it as well.
Here's the original game from 1998 runnable using dosbox for download : DOSBOX_demos_hotfix_14_10_2021.zip with graphics games, arkapong game and even the Turbo Pascal IDE included (7.2Mb). The MD5SUM should be 4c266850a338fae2115a8249de26a5c8.
You can open it in macOS, just type arkapong and then enter to start the game in the dos prompt.
Arkapong for Android
Here's a demo video of arkapong running on android. It got pretty far but needed a lotd more polishing and extending before I wanted to release it into the wild. I imagined of also going into 3d mode and adding network'ed playing to eachother before doing an actual release. In the demo you could already see that rendering was pretty smooth even on that (now ancient) Galaxy S4 mini android. The game engine I implemented also allowed me to run it in 0 player mode to let the game play against itself and really test the stability and to show it could get pretty intense while playing this ;). On the right is a video of that alpha version for android.
It was fun working on it for a few weekends. But paying the bills and taking care of the family has taken up most of my spare time so for now further development has been on hold for a while now. I might pick this back up if I get into a bit more comfortable situation financially and/or time wise.
Going WebGL/browser based for arkapong in 2020
So there are these nice browser game engines like Phaser now. Wanted to try if I could use it to write some games in the future. As an exercise I tried porting our good old arkapong. I didn't finish it to a state where it was equal to the original but after a few hours it was clear it would be a breeze and I might do it if I find some free time (right now I've got too many unfinished pages on this blog and anykey kickstarter that need my attention more...). Almost can't believe that in less than a one pager allmost all the basics of the game are there ;).
Sure it needs way more specials, some effects for the explosions (easily doable with particles from phaser). But most of it works and it's pretty clean code. Only downside is that phaser is quite big around 1Mb in js code just for the phaser libary (compare that to the 18kb executable of the original it's clear we are now in the era of bloatware. The whole dosbox including the complete turbo pascal ide is just 7Mb zipped :). Now 1Mb in 2020 isn't that bad or an entire physics and opengl/webgl gfx library, also it would be a lot easier to add other physics features like gravity etc. In our 1998 version everything was handcoded and even the blocks + ball we're drawn using code. Here we have it easy to make nice gfx using the sprite engine provided etc.
Just visit this page to play it Arkapong prototype with Phaser.js. So all that would be needed is to wrap this in a webview and you'd have an actual mobile app ;). There was a breakout example on their site that helped me out a lot. Only tricky part was getting multi-touch working correctly. But also that wasn't too difficult.
Also you'll notice the red score (player2) is upside down. This is wanted feature as your supposed to play it on a mobile or tablet with 2 people ;). And yes it works properly with 2 hands sliding at the same time (tested it together with Noah'tje he found the game nice and asked if I would be adding shooting and bombs. Yes, the original had that too ;)
Game logic so far: If you miss a ball you loose 50 points. For each brick you get 15 points added. You can hit another paddles ball and then that will also give you points if it hits a brick. Basically the logic is if a ball hits a brick points are assigned to the paddle that last hit it.