
CityCraft
An interactive 2D animated cityscape with dual-player control, dynamic weather, fireworks, and environmental sound effects.
Background
CityCraft was our midterm project for CSCI-20, our Java programming class. The task was to build something using Java GUIs, graphics, multithreading, and OOP. The thing I'm most proud of here is that there are zero images in this project. Everything you see, the roads, clouds, rain, lanterns, mountains, buildings, the characters, all of it is just pure geometry and hardcoded values. No external assets at all.
The Art Direction
The vibe I was going for was a peaceful, Minecraft-inspired scenery. You can control two characters, there are NPCs, and there are random trigger events like rain starting, lanterns lighting up, and fireworks going off. It's a very charming little world for something made entirely out of shapes and colors. I had a lot of fun with this one, and it made me appreciate how much you can do with just code when you commit to it.
Looking Back
This was only our midterm project, not even the final, and yet it's one of the ones I look back on the most fondly. There's something satisfying about making something that looks genuinely alive using nothing but math and code. No assets, no shortcuts, just logic turning into something visual. It reminded me that programming is kind of like art when you let it be.
