Homework 4
Leyth Toubassy
December 14th, 2022
Music 256a / CS476a, Stanford University

Final Deliverable: Rhythm Dungeon
You may notice that the project looks very different than it did at the last milestone, and that's because it is! After Milestone 3 I realized something, I really wasn't proud of what I had made, on the other two projects I was happy with them because I felt proud of them. Each time we presented I was excited to show the class what I had made but this time I really wasn't. I tried improving it and went to Ge for some advice and he gave me the advice I was scared he'd give me - wipe the slate clean and try again.
So I did.

On Saturday I took the bad idea Ge gave me and ran with it. 4 days later and here's the result, I hope you like it! (And that it is actually better than what I had before...)



Anyways, what I wanted to do with this project is create a game where the music is extremely reactive to the gameplay instead of just being sort of overlaid onto the action. The origial idea was to make a Rhythm game that let you sort of play the song while fighting, but I fell into this trap where it felt more like you were reacting to the music instead of shaping it. Also that old project just looked unimpressive.
Enter Rhythm Dungeon, this game is a turn based RPG style battler where you can attack and cast spells to take down a massive boss. Each character has a unique melody made from a different ChucK synth, and when a character attacks or casts a spell their melody becomes louder. A MASSIVE thank you one of my best friends Nick Collins for composing the song for me so I could focus on just coding it into ChucK, he was a lifesaver.

Instructions:
The game is simple, take down the boss, each turn a few party members will have a purple circle underneath them, this signifies that the boss is targeting them with it's next move.
To use a move just click it! Any Character specific move will increase the volume of that character's melody, guard will nullify almost all damage but won't increase the music volume, so use it sparingly if you want the banger tunes!!

Files:
Production Build - Windows
Full Project

Reflection:
Overall I think I learned a lot about myself and my philosphies in design through this ordeal... I'm probably going to do worse on my math final because of it but in the end I think it was worth it.
In the spirit of full disclosure there's a lot that's unfinished here, I wanted to encorporate more shading and light that reacted to the music but I didn't have time, there also no logic coded for the player losing right now, but it allows for you to have more musical creativity. I may keep working on it to add those things but I'm pretty happy with how it turned out, hopefully I can do the same on the math exam I have today...
Sprite work/animations take so ridiculously long, so much of the time went there but I think they came out all right at least...




Milestone 3 : Minimal Essential System


I spent most of the week re-writing everything I had last week, last milestone when I was having a crisis over my lack of musicality Ge said that my sequencer was musical. I took that and ran with it, I ended up reimplementing everything I had last week so that in the rythm game sections, everything is being driven by a modified version of the chuck code that powered my sequencer. I also decided to implement a top down section of the game which is basically just a glorified loading animation, but I found it helped to tell the story of this game (Luckily for me all the games I've ever made have been 2D top down games made in unity, so I had lots of code to pull from, as well as the tileset used in the video). The most time consuming thing this week was probably the Knight. I used a lot of references and basically just copied a bunch of people's characters pixel by pixel until I was able to take those skeletons and put a new character on them. The animations are... shoddy... to say the least. I think this next week will consist of some small refinements to the codebase (with one surprise new feature), but more than anything else will be making more tile maps, monsters, animations, and most importantly, better rythm game levels. I'm very very glad that most of what I have to change are aesthetic things, as now I'll be able to focus more on the game design, and less on the nitty gritty programming.

If I'm being honest I think the fact that the base Knight sprite didn't exist before I made it is like the coolest thing ever, it's like exactly what I wanted it to be.
Milestone 2 : Prototype
Full disclosure, I did not do a great job balancing my Turkey to Milestone ratio over break and what I have is a VERY rough prototype.


Right now the hit registration is a bit off, getting it to work at all was way more complicated than I bargained for because you need to be able to mark hits both before and after the note actually goes off. I'm working on having some more granularity on the registration depending on one's timing. The final project will be much more game-ified as well, with different levels etc, this is very much just a prototype of the core mechanic, the final project will also have 4 streams of inputs coming in at once. I also plan on making new sprites for this project, I just haven't gotten around to it, and truthfully, don't really know what I want them to look like yet. Also the final project will be an actual song (or the closest thing I can make to one) not just random sin beeping.
Milestone 1 : Three Ideas
The dungeon quest project is the one I've been thinking about doing from the beginning of the class, and is *probably* the project I'll end up doing. I won't lie though the blind maze idea is really enticing me now, I just don't think it's visual enough to be used in this class, so I may file it away for some day in the future.