To build a mostly fully featured tetris game in 24 hours of work. This work will be spread out through 3 days lasting no more than 24 hours.
The project will be timed with a modern clock.
The project must be built from scratch with no additional SDKs or APIs other than the Windows API since it is required to create a window and access audio. The C++ standard library makes calls to the OS for certain functions such as threads so avoiding the Windows API would be basically impossible. Anything that can be done without the Windows API such as rendering must be done from scratch.
The tools used are as follows.
- git
- cppPS
- Windows API
- VSCode
- Clang
- Ninja
- Windows Alarm Clock app
- Live Split
- Mixcraft 8 Pro Studio
With the project officially finished, there are things that I wish I had done originally that would have helped the project along the way.
The project had decent direction but there were too many first time attempts for different functionality.
Scale, Rotation, and Skew for images took a considerable amount of time and did not get used due to a change in how the pieces
were to be rendered. The audio was meant to take a different approach than what it ended up taking.
The approach taken was unknown territory as well and also took a considerable amount of time.
AI is something I do not have enough experience with to attempt to create one for this project and my knowledge of tetris
is not good enough to create a believable AI for it. Some compiler debug settings would have assisted in debugging as the project
went along but did not get used until around the end of the project.
Because of these things, I think if I had not wasted as much time as I did on the additional Image Drawing function and used the right
compiler settings from the start, I would have finished in 24 work hours. I do not think I would have had enough time to create an AI.
The requirements were a bit much for 24 work hours with much time spent researching how to do different things.
Approxiametly 5 hours was spent on just getting audio to play and about 1 or 2 hours was spent creating the song.
Had I picked a simpler method for playing audio foregoing the need for audio adjustments, time on audio would have been at most 3 hours.
I still consider this project to be successful even though the version finished in 24 hours is borderline playable.
2 versions of the application are availiable as releases.
The 24 hour cut off mark and the more polished version which added 5 1/2 hours of development.
Note that the application may be removed for potentially being a virus. The application can be compiled from the source code using the tools listed.