In this article I talk about optimizing the level rendering routine for my game Bouncy Ball for the Color Computer. With the help of the mad man Simon Jonassen, I was able to take the render routine from 7 fps to 50 fps! I was quite surprised at the results. I made a video at the end of this article, and explain things in detail here. I also list a couple resources you might want to have in your back pocket.
I started working on converting my level renderer for Bouncy Ball to assembly. Check out the video below. The C is on the left, assembly on the right. The speed difference is about double the frame rate. Although, in the video I forgot that the C version is double buffering, and the assembly isn’t. Assembly also isn’t printing text. So I fixed both versions behind the scenes.
Awesome progress over this new years weekend. I started with a 4 page TODO list, and I have all but the end of game sequence done. I still have levels to build, joystick support, and then in-game sound and (maybe) music to implement. Sound will be via Simon’s irq driven routine. I even had some time to start work on Bouncy Ball’s official web page, and some package art. Now though, I think it’s time to take a short breather and maybe type in another BASIC program. I’m thinking Connect 4. I remember having that one typed in and added some Coco 3 hi-res graphics and sound to it.
You can now download a playable demo. I fixed the joystick button read routines. Use button 1 on either joystick to move forward, button 2 to move backwards. I don’t map RGB colors yet, so your colors will be different on an RGB monitor. See the README.txt in the zip file.
I have been thinking about game AI the last couple weeks, and since I’ve been working on a retro themed game for a retro Coco 3, an old book on BASIC games came to mind; Tim Hartnell’s Giant Book Of Computer Games. Tim was a self taught programmer and the author of several successful books on computer programming.
A few nights back I couldn’t sleep, so I decided it would be relaxing to type in a program from Tim’s book. My first choice was Reversi, but there was either an error in the printed source, or I miss-typed something and the program just wouldn’t run. My second choice was Gomoku, which ran the first time I typed RUN. The game has a strong defensive AI, but not much on the offensive side. I’m thinking it would be fun to work on that part of the AI. But that’s for another post.
Started working on ROB3. He is a tank robot that. I have two way communication with my ICE2 controller. Which means I can control the robot, but I can also have the robot send info to the controller. For instance I can send the current amperage that each motor is drawing, and show it on the controller. Or if I had my sonar attached, I could see what distance it was measuring.
ROB1 was my first prototype robot base. He’s a tail dragger controlled by an Arduino UNO. I used two continuous rotation servos, a gyro, and an Xbee. I had a second Xbee connected to my laptop, and using a terminal program I sent drive commands to ROB via the Xbees.
My first animatronic project. It shows how I made an eyeball that can ‘look’ around. It’s a little ruff, but I’m happy with the results. I am using 2 micro servos, Arduino Mega, rotary encoder from sparkfun, PS2 style joystick and the coolest little 132×32 pixel OLED display from Adafruit.
Quick boink bouncing ball test on my Arduino and graphic LCD. I can get about 40fps with one 32×32 graphic.