-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Self-descriptive object #9
Comments
Repo up here: https://github.com/hornc/nanogenmo2022-albatross After a first session (it's November in my timezone) I have a basic seed text start paragraph, and the super rough bones of a minimal 'reader' that reads it to generate more text:
Next steps are to break up the descriptions to mix describing words and letters, add variations, probably with a Tracery grammar, and being a little more context aware, to make the thing more accurate, and slightly less tedious. Then I'll need to make the description page and chapter division aware, and work on displaying the layout nicely. Then I'll need to figure out how long a reader might realistically keep reading such a text, and describe what happens next... which is how the plot will evolve. The current code outputs:
Just these three blocks produce 49,468 words, 532 shy of the target, which is pretty good for the minimal effort so far.
I only need 532 more words over the rest of the month to be done! Going breadth first with NaNoGenMo seems a good strategy -- get the word count, then work on making those words incrementally better over November. I'm considering this a MVP 'undercoat' for the project, or very low-res background texture for the 'world', which will hopefully get some interesting detail and more structure as the month progresses. Session1 tag: https://github.com/hornc/nanogenmo2022-albatross/tree/session1 |
Session2: https://github.com/hornc/nanogenmo2022-albatross/tree/session2 I've added some more sophistication to the reader, but reduced the word count to 11605 in the process. The sample gives a better idea of what I'm aiming for though. I've scrawled out a lot of narration examples and variations on paper, and I'm trying to code them all up so they occur automatically, and fit together semi-decently.
I'm not using Tracery yet, and I realised I had wanted to make this completely deterministic, without any random or psuedo-random choices at all. All decisions should be made by the reader character based on how often or how recently they had done something, and I guess I'll have to model those factors, and that might not play neatly with Tracery. Not sure yet. This session was a bit rushed, trying things out quickly. I think I need to impose some more structure on the text reading module before it gets out of hand. |
I really like the self-descriptive object part of this: I tend to think that one of the best measures of an artistically successful NaNoGenMo project (in my personal estimation) is having a strong concept paired with an implementation that conveys that concept to the reader. A self-described object fulfills the first half, so now you just need to actually make it. |
Thanks @ikarth.
I totally agree with the importance of this. I had been reviewing one of my efforts from last year, and was a bit disappointed that it wasn't as good as I remembered. Technically I had implemented most of the things I intended, but none of that was particularly obvious from reading the output one year later. I had been too deep in the code, and making things happen technically. Hopefully I will do better this year! I'm a little worried I'm going to tie myself in knots with the self-reference, but it'll be an adventure :) |
Session 3 and 4: To verify the accuracy I added some "tests" as part of the novel. One chapter begins with the tests, and another chapter is a commentary on those tests:
The realisation here is that the 'world' has both a logical structure (chapters, and sentences) , and a physical structure (pages, and lines), and it can be navigated using either. I have direct control over the logical structure, but the physical structure is determined more by the pdf / layout tools. Another thought: any musings I have on what this novel is supposed to be, and on the role of reader and narrator can be written into the text as I try to figure out what is supposed to be going on. |
I love this wonderfully original idea. I can't wait to see how the final version turns out! The previews alone are fascinating. |
I've neglected my dev diary -- I'm made some sporadic progress over the last week, but all sessions have felt a bit rushed. Here is a summary of what's been happening, and roughly what's next: session3: Nov 02Got pdf output working with markdown to pdf using session4: Nov 03Brief session; adding some plot elements to the 'plot.py' module. session5: Nov 04 / 06Two brief sessions exploring the same ideas spread over a couple of days. Structuring the code a fraction. Got a rough placeholder for a module to describe letter-shapes, and added a test to see how words were distributed over the multiple chapters. session6: Nov 07Fill in the letter-form describing module with a pytracery grammar.
session7 Nov 08Push to get my initial ideas for chapters 1, 2, and the beginning of chapter 3 all in place.
Next steps: Work on the next bits of plot development. I have some ideas of the content, but am not sure quite where they will fit into the existing structure, or how best to link them. Progress output:
|
Well, it's the last day of November and I'm not close to finishing my NaNoGenMo 2022 project to the level I had hoped. I still like the idea, and want to do it justice. From a little bit of self-reflection I think my usual problem with these projects is setting out to write in one month:
Observing projects that get completed, they tend to use existing tools and frameworks which the authors are generally familiar with to create a 50k word novel. The best ones tend to be where the creator understood the framework used well, and was able to push it to create something impressive, using their knowledge and skill. Trying to create both (a new framework, and a decent novel) leads to resource conflict, and the two tasks compete with each other, leading to both feeling half done at the end. I think that was my problem last year, I technically made a framework that hit all of (most of?) the design goals I had intended, but none of that was particularly obvious from the final novel output -- it would require a better write up and technical docs to explain. The final novel didn't stand up as well as I would have liked on its own. On the one hand, focusing on 1. is clearly what I like doing, and it seems to be a reasonable part of what NaNoGenMo is about, but on the other, working solely on a framework without producing a decent output feels like it misses the point too. The output at the end of the month is supposed to be the 50k words (with code and dev diary (the most overlooked part?) as secondary outputs). Trying to fit everything in one month is a recipe for a rushed framework, and a rushed output (i.e. mediocre output, regardless of how good the idea was -- the idea can suffer for being crammed into one month). I am going to try an pull something together to get a finished product over the line, but it won't be the novel I intended to write, unfortunately. |
Last day: Rushed PR to get something in over the word count: hornc/nanogenmo2022-albatross#1 I ran out of time to do most of the things I wanted, after a promising start to the month. I embraced the self-description and went with a description of a relatively standard over-ambitious and not-quite-there NaNoGenMo novel : https://raw.githubusercontent.com/hornc/nanogenmo2022-albatross/lastday/output/unfinished.pdf The last chapter is almost a work on its own... apologies for having to rush it. I may still work on this to make myself a proper finished physical book and work on completing the self-descriptive model. I hope someone enjoys the output, despite the rough edges. Generating novels is hard. |
I like this, good work! |
This is AWESOME! I love the novel with the final output and the original idea leading to it. |
My idea for this year is to (try to) create a self-descriptive object. It will be a sort of 2nd person mostly linear choose your own adventure / text based walking sim where the world is the book...
The narration will be third person, but the reader is "you". I want some Stanley Parable-esque conflict between what the narrative says and what the reader chooses to do. There will be page jumps, and splitting of the character, I expect to have to track multiple versions of "the reader", offset in time and compliant vs. non-compliant readers. I still need to figure this out though.
There will be a lot of self-referencial description, and the code will generate this and keep things consistent. If the idea works well, it'll be a mystery walking-sim in book form. Having a physical copy printed would be kinda fun.
The text was updated successfully, but these errors were encountered: