Prior Work

This being the first weekly status update, I’ll include a short summary of work done up until this week:

Before this week I had worked on basic graphics implementation, being able to render a playfield with an area displaying upcoming tiles. The playfield was able to render individual tetrominoes and move/rotate a single active tetromino. This rotation was consistent with the Super Rotation System and the piece could also be moved left and right, soft dropped, and hard dropped. Additionally ghost piece was working, showing the location of a hard dropped falling tile. Though this work is essentially a series of prototypes, the work itself is fairly modular and should lend itself to a final product efficiently.

Progress

This week I worked on the Seven Bag, generating new tiles in a constrained PRNG fashion for the user to place on the playfield. I also implemented some overarching game logic, creating 2 FSMs that manage game states. Outside of the main game window, the first FSM manages the menus and screens displayed to the user, allowing them to choose between the two modes we have opted to implemented. The second FSM manages the cycle of spawning new pieces and locking them into the floor.

The locked state of the game was converted from a hardwired values to registers, which could be updated with the final position of the falling piece. This caused the LE usage of our prototype to explode from 10K logic elements to 40K logic elements. By sequentializing some aspects of our design, I reduced the usage to about 29K elements. This is an aspect of our project we will need to keep a close watch on moving forward.

While I do not expect the remaining parts of the system to consume large amounts of area, there are a few arrays being used that are quite large (800 bits+). Using them combinationally tends to cause copies to form, rapidly using up our remaining area.

In addition to game logic, I’ve started working on importing images as .mif files that we can use to render onto the screen. This we intend to use to be able to render the start screen that the user will see first when the system is reset and/or initially configured.

Schedule

Overall, I am on track as far as implementation goes. I plan to have the single-player version of the game functional before spring break. Next week I want to work on delayed auto start and gravity, in addition to rendering text on the screen for a few different applications, rendering different information to the user.

Deanyone’s Status Update for February 15

Leave a Reply

Your email address will not be published. Required fields are marked *