-
-
I am the world's greatest Dance Dance Revolution Player in training
-
Actual depiction of the code. This is how is really looks, this is not a joke.
-
An actual depiction of my coding descent into madness
-
Gymnasiums are inspirational for dance. What are heels for if not to play basketball?
-
The positive reinforcement conditions me to dance more.
Inspiration
Have you ever wondered about combing the magic of dance with the fantasy of being able to sprint? Well wonder no longer!
What it does
This project integrates Dance Dance Revolution into Fallout 4.
How we built it
Video game development is done with developer's tools - and in this case the discarded bones of the Morrowind creation kit is no exception. You can measure your progress using the number of warnings you generate - also not an exaggeration - the warnings box has its own dedicated layout button. The Creation Kit crashes - so be sure to save often. It also crashes when you hit the save button - so don't bother saving anyway - the real joy is in the creation.
All scripts in papyrus need to be attached to in game objects - which is why my code is literally running on flamingos and basketball hoops - object oriented programming is a dark path.
Because there is no built in way to map controls of a keyboard or mouse to player movement in the mini game, triggerboxes that correspond to player movement are used as a proxy for dancing. This works hand in hand with the world's jankiest stack.
Challenges we ran into
Papyrus does not have any official documentation, and is rarely used, as a result there is no way to ask AI for support, and there is no way to ask the community for support.
It is also not supported by any IDEs (until recently), and the tools in game often require industry tools to perform any serious editing (editing BGDM meshes is downright impossible without nifskope).
Papyrus does not support switch statements, it is also not supported by AI like ChatGPT - which gives blatantly wrong responses on how to code. All coding must be done artisanally by hand like Todd Howard intended. All support comes from documentation created by trial and error from the community - so if a function doesn't work you can rest assured that your pain is felt by all.
Papyrus does not support initializing arrays, it also does not support multidimensional array, or iteration through strings - in short there is no way to store data whatsoever - but we did! Using a lot of floats repeatedly jammed into arrays which continually delete themselves, we were able to create an iterable system that allowed the creation of 4 minute long dance routines for the player to enjoy.
Accomplishments that we're proud of
It works! It just works.
What we learned
If this is the effort it requires to program in legacy systems - no wonder there is such job security.
What's next for Dance Apocalypse
I would like the system to run even smoother - despite solving critical issues it still isn't the seamless experience I desire it to be. I have yet to implement Carameldansen or my custom version of the Rocky Theme With Car Horns Added.
Built With
- creationkit
- papyrus
Log in or sign up for Devpost to join the conversation.