Design document: Dream of Red Mansions Character Generator
There’s just one last step before actually diving into the coding course, and that’s to define what I am going to try and achieve with the test project.
Because I enjoy trying to figure things out from first
principles, I’ve had a first crack at a design document below based on the
mini-game I’m trying to write. Later on in the project, I’ll read around to see
what literature there is on how to write a good design document – best guess is
there will be thousands if not more articles and probably some
books – to see if there was a better way of doing it.
The basic structure that I came up with was this:
Vision
Description of what I’m trying to do. For example in this
case, I want a program that asks me for my character name, gives me a bunch of
randomly generated stats, and then tells me a story about their life and career
based on the choices I make.
For example purposes I’ll make it a life simulator set in
the ‘Dream of
Red Mansions’ (红楼梦) period (mid-late 18th century Beijing), with the goal
being to achieve the best possible outcome for a character who’s going to star
in an imaginary RPG starting around 1800 – the last flourishing of the Qing before
foreign encroachment
became the dominant issue. I chose
this because I studied the novel at university and because a bunch of aristocratic
Chinese jerks dunking on each other in poetry slams, drinking and getting laid while they try to get official jobs with good corruption potential so they never
have to do any actual work will never not be funny to me.
Elements
Things that I need to have for the program to do what I want
it to, decomposed to the most basic building blocks. For the generator program,
I want:
· Player prompt for name
· RNG to determine base stats within a particular
range
· Database of roles available gated by stat
requirements, with descriptive elements
· Database of skills
· Some way of tracking what roles the character
had in the past – I guess a counter that goes up based on ‘number of times user
has had this role’
· Graphical user interface (GUI), that is, some
way of showing the player what’s going on
· Reset button
· Some way of storing the information provided by
the player, either as output to a text file or a load/save function
· Probably a bunch of other stuff I don’t know
about yet
Of these, the only ones I can make right now are the
database of available roles and skills, but in the interests of my mental
health I want to cycle time spent on that with the coding course.
Details
This is
empty for now, but will eventually be where I write down the detailed
implementation of the elements and put visualisations like flowcharts, basic
mock up of the UI and so on.
Comments
Post a Comment