datagod's Feed

09-28-2019 at 01:28 PM
Rate this Entry

Arcade Retro Clock: OutBreak!

Today I would like to focus on OutBreak! which is game #8 on the Arcade Retro Clock. Since this is the most recent game, it is the most advanced in terms of game mechanics.

I don't have any professional video game programming experience, so everything you see here was from my own designs. I likely re-invented many wheels, but that is not the point of this project. Innovation, creation, and challenging myself to be better are the goals.

I have an object called VirusWorld which has many methods/functions. It also contains other objects such as:

Playfield - A customizable map of the virtual world. The playfield for VirusWorld is currently 16x16 but is scrollable if it goes beyond the physical size of the display. Each virus in the game is stored on the playfield. If a viris is moving, it can look at the XY co-ordinates of the Playfield, and access the object there (only one object fits) and see what its properties are.

DisplayWindow - that causes a 16x16 window to be written to the display buffer. Every object in a 16x16 grid of the Playfield is examined to see the color, and that color is drawn to the buffer.

DisplayWindowWithSprite - This is a variation of the DisplayWindow function. I have a clock sprite that slowly slides onto the screen every X seconds. After the playfield is written to the buffer, the clock sprite overwrites a section of the buffer, depending on its current location.

More games to tweak!

  1. datagod's Avatar

    Drawing maps are pretty cool. DinnerPlate is an object instance of VirusWorld. I'll go through and cleanup the names when I am finished.

    Map[x][y] is a two dimensional array (in python it is lists, not arrays, sorta. I can make things work, I don't necessarily understand all the nuances). Visually I lay it out as in the photo above. Each integer represents a color fro m1-36. The LEDs are RGB, but I have pre-defined 36 colors because they are pretty and that's how I roll.

    This particular map is 18x18 which allows me to create a border on the playfield that is not visible. I don't scroll this map, it is just drawn from [1][1]. That gives the viruses more room to move. Other maps have walls around the outside. it is great to be flexible.

    On the 8x8 version of the display, I have a 64x64 map, and a window scrolls around looking at what each virus is up to. It is super cool, but on the big screen I didn't bother (yet).

  2. datagod's Avatar

    @Jace Hall We should talk about a special Twin Galaxies branded clock. Limited edition. :)

Join us