Games

Click to play 3D Breakout

Screenshot of Breakout clone game play, Jayson Ash Game Developer Studio, May 24, 2019

Breakout is a great classic video game. I made a breakout clone and my version has a crane, who is rather temperamental. This provides an interesting twist to the original breakout game. For now there is only one level, which is a testing environment for adding more features. Using this prototyping method, it is possible to try out ideas and see how they fit into the larger context. This allows for faster development.

In the current state of the game, there are only a few bricks with many more ideas for new bricks to come. Let me introduce you to the bricks so far:

  • Normal Brick – Here we have a regular, standard, run-of-the-mill, ordinary brick. Its main feature is that it breaks with only one strike.
  • Electric Brick – This is a brick that causes electric arcs to appear when struck. Like the Normal Brick this brick is fragile and breaks with only one strike.
  • Invincible Brick – This brick never breaks. Never ever. You cannot break this brick. The computer can't break it either. It just never breaks no matter what... The X-men can't even scratch the paint on the invincible brick. It's that invincible. I've been thinking about some ideas on making this type of brick into a category of variations.
  • Flippy Brick – This brick is very interesting. The other bricks have nothing on the curious nature of this brick. When struck this brick flips over and when hit again it will destruct like the Normal or Electric bricks. 

Each setting of bricks forms a level. When all the bricks are gone, the player advances onto the next level. There's only 1 level so it plays over and over again. I aim to create more levels using the Unity Editor to construct them. I plan to build a level editor later on when I'm ready to begin designing a heap of levels. I will come back here and update this blog post as I go with more verbiage and even some screenshots of the action.

 

Breakout Q & A

Why did you create this project?

I created this project because it was a quick, simple game concept that promised replay value. Replay value is very important to me as a game developer. Replay value provides more opportunities for developing more engaging interactivity.

What was the most interesting thing about creating this project?

The most interesting thing about this project is its various types of blocks. The many block types provides countless possible scenarios to keep the experience fresh.

What part of this project was the most challenging?

The most challenging part of this project was the crane that picks up the ball when it gets stuck. The algorithm to detect when the ball stalled was difficult. The animation of the movement was in equal perplexity. My attempts at animation had me discover a few limitations with the library I was using. There was something called closures while using lambdas that was not working correctly. Knowing the limitations of closures with this library is invaluable. Future efforts with developing procedural animations will go much smoother.

How did you design this project and why did you design it this way?

The initial design involved the most basic components. The basic components were the boundary area, ball, and paddle. Once these components were in place a paddle controller allowed the paddle to move. Then some basic bricks got tossed into the scene for testing the game mechanics. The ball began getting stuck in a horizontal stall, bouncing back and forth. This created an undesired waiting time before the ball found itself back into play. Introducing a crane solved the problem. The crane would detect when the ball was stuck and it would grab the ball and return it to the paddle. Creating the basic components of the game first allows for rapid prototyping.

What features would you like to add to this project?

Since there is only one level I would add more levels of increasing difficulty. I would also like to create a level editor to more quickly create new levels.

Click to play Endless Labyrinth

 Screenshot of Endless Labyrinth game play, Jayson Ash Game Developer Studio, Sept 10, 2019

Endless Labyrinth was a weekend project for my first game jam event. Being my first game jam, I got to meet several other game developers. I learned about some of the different methods they used to create their games.  

Instructions for play: Use the arrow keys on your keyboard as controls. The left arrow causes the left side of the map to lower and the right side to raise which causes the ball to roll to the left. The board tilts downward and the ball rolls in the direction of the arrow in response. Use the momentum of the ball to your advantage. I decided I would create a mini-labyrinth game that would have small maps and progress in levels. I created a system that would generate random maps. This system uses the level number as a random number seed to build the levels. The object is to find the green floor tiles to advance to the next level. Avoid falling through the red tiles with the holes in the middle.

So this simple game allows for a fun user experience. The game play starts very easy and gradually becomes more difficult. As the player progresses they find themselves working through a previous level.

Endless Labyrinth Q & A

 

Why did you create this project?

I've always wanted to make some kind of ball-rolling physics game. Labyrinth was a great game idea that popped into my head at the time. 

What was the most interesting thing about creating this project?

The most interesting part of the project is the maze generation system. I chose Prim's algorithm for its maze generation qualities. This algorithm creates random-like corridors without repeat patterns. The Prim's algorithm provides a nice variety of scenarios for players.

What part of this project was the most challenging?

With the realization of a few issues I was able to create a playable mechanic. One of the issues was inaccurate collision detection. The collision detection issue took the majority of time to resolve. This was challenging because the game engine documentation was very limited.

Another issue was when the player fell through a hole in a red tile when the tile was on the edge of the map. The ball would frequently fall to the next level down and bounce off the side into oblivion. So I used some math to identify which levels created this scenario. prevented these levels from placing red tiles with holes in them around the edge of the map. 

How did you design this project and why did you design it this way?

The first thing I created was a simple static maze for the board. Then I added a ball. Then I added controls to make the board tilt and get the ball rolling. Then I proceeded to work through issues with physics. I researched some solutions on how to generate maps randomly. I found the Prim's algorithm to be up to the task of map generation. I designed the project this way to provide a rapid prototyping method. Rapid prototyping allows to reduce risk on wasting time developing needless features.

What features would you like to add to this project?

I would add a smoother transitioning system between levels. Something I've had in mind is moving levels around so the camera moves through the holes in the mazes. Also, I'd like to add an online leaderboard so players can compete with the highest level achieved.

Page 2 of 2