Saturday, May 6, 2017

My Connect Four Clone Project


Project
A Connect Four clone (personal challenge)

Software Used
Clickteam Multimedia Fusion Developer
www.clickteam.com

Cool 3D
www.ulead.com

Screen Recorder
Blueberry Flashback Express (Free Edition)
www.blueberry.com

I have this vision of developing and marketing cross-platform games under my own label. They would be non-violent content and ministry tools for youth, and some retro-style simple games like the kind I enjoy.  I haven't had as much time to finish most of the projects because of all the fires I got going at the moment, but I sometimes sit down and try to build on an idea.

Recently I challenged myself to a personal project. I wanted to see if I could throw together a demo of Connect Four in one day.  I'll be transparent and say right away that I did not succeed, but that's okay.  The idea came up originally when I was in a statistics class, and thought about a Connect Four game board, and how many possible combinations there were to win. It's a nerd thing.

I drafted a quick mockup of a Four in a Row game board like the one in the video, which is not the official size of Connect Four, but a smaller version, and determined 68 ways to win, counting both red and black. Little disclaimer: I don't know if that's correct, but it's what I came up with.

I hadn't had time to play with the idea until my most recent class ended and I had a little free time, and decided to take up the challenge. I did not build the game demo in one day, but I built some rudimentary art and basic animations in a day. They are not up to commercial quality, but the point was just to see if I could do it. That was two days ago. 

Yesterday, I built the basic instructions into the play pieces. Where I got stuck is how to bring in a piece and drop it into the slot of your choosing. At first the method was to apply a drag-and-drop routine to the entity (the "checker" piece) and line it up with the slot and have it collide either with the bottom, or another piece.

The brick wall I kept hitting was that if the player didn't line the piece up just perfectly, then it would fall down haphazardly and might be barely visible. No problem, I thought, with my usual optimism. I'll just build barriers between each column, and make them real skinny and invisible to the player. I'd use instructions in the code that if the piece collides with the barrier, it would bounce off and keep it in line with the grid holes.

That didn't work, because the code took the collision to mean that the piece should just stop in place, and get stuck halfway down. Sometimes when programming a game with gravity and "platform" rules, you run into the same limitations you would in the physical world.

I settled on a different approach, which I fixed today. I have five buttons to pick from, and they are set up to spawn a piece which will fall perfectly in line. Not the most elegant solution, but it works for now. This is day three of my one-day challenge, lol  :-)

No comments:

Post a Comment