For the final project of the class, we were building a Tetris game as a full division instead of just our usual groups. Even though one team already had the base gameplay working, the rest of us had to add features, fix logic, write tests, and make sure everything actually integrated without blowing up the repo. It sounded simple at first, but doing this in a distributed setup with everyone touching different files was way more chaotic then I expected. For my part, I was mainly assigned the S Block, the ghost piece toggle, and reset score functionality. I thought I’d be implementing reset score myself, but when I finally pulled the latest main branch, I realized someone else already wrote the entire Score logic and tests. That honestly confused me because I had no idea who did it, and it made me feel like my task basically disappeared. I made sure I was on time too, so it was even more confusing why somebody took over. On top of that, we had so many files being edited by different people that sometimes I wasn’t even sure which branch I should be on or if my work overlapped someone else’s. The ghost piece toggle ended up being my main actual implementation along with the S Block. It was pretty small, but I still had to make sure it connected properly with everything else (SimpleBoard, Viewdata, the UI, etc). After writing the test for it I ran into the problem of the test showing “Tests run: 0,” which stressed me out until we figured out it was just a path/package issue. Once fixed, the test passed and I pushed it in its own feature branch and made the PR. The Git workflow was honestly where most of my stress came from. Pulling from main always brought in huge dumps of new changes like new sound effects, new piece logic, new classes, someone else’s unit tests, etc. It felt like every time I synced my branch I had a new puzzle to figure out. The design doc phase also showed how split everything was. Team 4 handled the actual game engine, while our division handled the extra features, updates, blocks, unique shapes, etc. But honestly, I did get better at handling Git, reading other people’s code, writing tests, and understanding how coupling between components works in a bigger system. It wasn’t perfect, and I thought it was frustrating at times, but I definitely learned more from this project and this class than any other in terms of "real world" work.
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)