Update worklog 1-24-22
This commit is contained in:
parent
60b493901c
commit
d5ec750c7f
25
spec.txt
25
spec.txt
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user