Update worklog 1-24-22

This commit is contained in:
Dane Johnson 2022-01-24 11:24:04 -06:00
parent 60b493901c
commit d5ec750c7f

View File

@ -61,7 +61,7 @@ be a decision made on how this will work. I'm leaning towards one of three optio
Maybe in the future we can make a frontend for making and playing stories
as a web interface, but we could make the interface pluggable as far as the backend is concerned.
2) I build this non-traditional game in a traditional game engine (Godot probably). This ensures cross-platform
availibility. I'm not 100% sure about my ability to use parsers in Godot, but this looks like a good option.
availability. I'm not 100% sure about my ability to use parsers in Godot, but this looks like a good option.
3) I build this as a reactive web page. I know this sounds like a terrible idea, but there are actually a lot
of cool image and text transition libraries out there. It does mean setting up something like React tho, which
like, just kill me now
@ -70,7 +70,7 @@ Out of the three of these I think the Java thing would be the easiest and I thin
12/26/21
Merry Christmas! Forgot to update this for a bit, but let's talk turkey about what's been done so far. I decided to
implement this as a C++ project for portibility. I know Java might have technically been more portible, but I'm
implement this as a C++ project for portability. I know Java might have technically been more portable, but I'm
thinking Godot is in the near future for this and Javascript has something like a FFI so I went for a C project
called "peg/leg" (`man peg` weirdly...) to implement the language. I can't recommend the project, it is not copyleft
and although the "leg" tool provides a lex/yacc-like interface but it does a terrible job of documenting the peg semantic
@ -78,13 +78,13 @@ actions, (like how the fuck the * operator works or how to properly use the pred
up missing (%nterm, $1, yyin). I like PEGs, but if I could do this again I'd just use flex/bison.
Where to go from here? I could just start integrating this into a Godot project. Right now I'm making a little command
line driver to test it out. Portibility? This project is gonna be small and I could just use submodules, or just little
line driver to test it out. Portability? This project is gonna be small and I could just use submodules, or just little
subprojects in the same project for each interface (Web/Godot/Whatever else). At this point I've written so little code
that I think I could just port it to each project as well. For Godot I'm pretty sure I'll have to integrate it with
the SCons build that they provide on their website, so I probably can't link to a .so file.
12/30/21
I tried to migrate to a library "pegtl", which is pegs implemented using the C++ standard template libray. It was a bit
I tried to migrate to a library "pegtl", which is pegs implemented using the C++ standard template library. It was a bit
of a bust. The project was very deep, very academic and hard to pick up, especially since I'm not really a C++ guy. Guess
I'll just keep chugging with what I've got.
@ -108,7 +108,7 @@ action in the optional as well. Oh well lesson learned. Maybe some day I'll writ
Next up is definitely the Godot Native module. I've already read a bit about how to do it, but I know there will be a few hitches
here and there. Also I want to convert the base module to use entirely c++ semantics, with the exception of printf since I'm not
sure if there is a c++ parallel, which is a bit odd. C++ is weird, no wonder I've avoided using it until now. It seems like c++
developers spend a lot of time coming up with new ways to do things, then declaring them unidomatic and banning them. I guess
developers spend a lot of time coming up with new ways to do things, then declaring them unidiomatic and banning them. I guess
that's kind of a trend with higher level languages as they get older cough Java cough. Regardless, I need to learn it and this
is as good of a project as any.
@ -134,3 +134,18 @@ Okay this project is taking a really long time. At this point it was really just
to make this into a game! Up next is GODOT, it's that time now. Really got to take care of business. Rust stuff is done and somewhat
in, I've left the old library for now. Also the "rust-ffi-demo" should really just be the CLI program now, but it's missing the game
logic. I've decided the library won't handle that anyway, I'll try and make the library just read the stories and handle the pages.
1/24/22
So putting the whole project into a C-ABI compatible library was pretty exhausting but it's done now, and I was about half way
through translating that into a Godot Nativescript module when I found the Rust "gdnative" package. It just does almost
everything for you. On one hand I'm upset that I spent so much time on the C stuff but whatever. Rust apparently lets you
add submodules right into your project, so that's all done.
Do we want to call it a day? Nope. Here's a list of changes
1. Titles and authorship should be in the file. This means that a book is no longer a list of pages. Good thing I changed to
a more flexible peg parser.
2. Options with stat checks and changes should only happen the first time. That or ban circular stories altogether. (Let's hold off on this for now...)
3. Multiple stat check and change blocks per option should be permitted.
I should really show this to Pam soon, I just want to get one example working that isn't totally embarrassing.