Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1368118 Posts in 64198 Topics- by 56135 Members - Latest Member: Zeroneus

October 21, 2019, 06:18:45 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsSci-fi espionage interactive novel (Project 5, 2018)
Pages: 1 [2]
Print
Author Topic: Sci-fi espionage interactive novel (Project 5, 2018)  (Read 2054 times)
HuvaaKoodia
Level 1
*



View Profile WWW
« Reply #20 on: October 31, 2018, 07:55:50 PM »

Been spending more time on prose implementation than writing; I have quite a bit of prose lined up already.

Finally seeing some progress in that front, yet it is still rather slow. The most time consuming parts: creating the two separate files (full of DATA and ACTION objects) and testing each object connection separately. Will demonstrate both in the upcoming stream.

As a fix for the second one I'll eventually write a script which tries every possible branch, starting from a specified point, trying to find any loose ends and broken connections.

The first issue is much harder to solve. A graphical editor, as mentioned before, could help, but upon further consideration I don't think I have time for a complicated solution. More automation scripts might do, wherever possible. Certain things cannot  be automated, such as DATA object naming based on the content.

Maybe they don't need names at all? Oh, that's a turn right towards the graphical editor again...

Cheers.
Logged
HuvaaKoodia
Level 1
*



View Profile WWW
« Reply #21 on: November 02, 2018, 08:47:53 PM »

2.5 hours of streaming, only 4 hours of editing.





This exciting, not at all boring, video contains the following:

Showcasing the prototype (read out loud for your hearing "pleasure")
Demoing the interactive prose system
Ragging on about the schedule.
And much more!

Cheers.
Logged
HuvaaKoodia
Level 1
*



View Profile WWW
« Reply #22 on: November 07, 2018, 07:20:56 PM »

Took the bull by the horns. Not going to spend any more time with the cumbersome text based data editing, a graphical tool is needed.

A few hours of research uncovered a handful of Windows Forms node editors, a technology only partially supported by MonoDevelop, so I kept looking. The native GUI framework for Mono is called Gtk, GtkSharp specifically for my purposes as I need C# support. Could not find a simple opensource flowchart project for it so started implementing my own, very simple, system with the default widgets.


Humble beginnings

Rudimentary object moving (appears immediately at the cursor release position) and custom line drawing (needed for node connections) are already in. Adding more actions and hooking up the actual file reading and writing are still on the list.

Reminds me of Java GUI programming from years ago. Less intuitive though, despite the visual GUI designer. For instance, I tried changing the background colors and the modifyBG function simply does nothing. Other small annoyances trying to get drag and drop working too. Ugh. Slow and steady, it doesn't need to be pretty.

I'll get back to writing starting tomorrow and trying to finish the editor this week on the side, it is after all technically optional.

Cheers.
Logged
HuvaaKoodia
Level 1
*



View Profile WWW
« Reply #23 on: November 09, 2018, 06:28:35 PM »

Nearly usable; will get to testing it early next week. There are still a few features needed, such as custom requirements and effects. Automatic naming and logic setup, which are the most important factors as that is where text based editing slowed down to a crawl, have been taken care of.


The nodes as supposed to be use vertically rather than horizontally, just so you know.

Importing and exporting are in. The export code is very clever with text indices and action types, clean solid code. The import code is brute force, ugly and gets positions wrong. The difference between programming in the morning and in the evening; exporting is a simpler operation too, to be honest. I will need a JSON meta data file for the positioning information, etcetera. Not going to spoil the actual files with such frivolities.

Lots of small issues: no colors, wrong draw order, funky node movement, no undo functionality, no closing warning message... Not going to bother with any of those! I do intend to publish a public repo of the GUI side of the editor (no-one needs to see the import code), maybe it will be useful for someone despite the shortcomings.

Also about 5 hours of writing in the past two days. A few more (half) events at least. One funny (to me) virtual life event about managing a clone colony at a frontier planet. Very few people are going to get that reference.

Optimistic about the prose implementation side again. Hedging my bets.

Cheers.
« Last Edit: November 09, 2018, 06:33:41 PM by HuvaaKoodia » Logged
HuvaaKoodia
Level 1
*



View Profile WWW
« Reply #24 on: November 14, 2018, 06:08:55 PM »

Finished!

Requirements and effects can be assigned; import and export issues have been fixed (the code is still ugly); positional meta data saved on the side; no bugs either, apart from the visual issues.



Last new feature, raw prose import, is about the new and improved workflow. Let's reminisce with the old ways first!

1. Write prose in a simple format (surround paragraphs with quotation marks, basically).
2. Copy prose to an empty DATA object file.
3. Name each data object based on the paragraph content.
4. Copy data objects to an empty ACTION object file.
5. Run a script which adds in the required ACTION object syntax.
6. Link ACTION objects together with text indices and action types based on the design.
7. Add in extra requirements and effects based on the design.

Lots of steps; most of them very time consuming and, of course, monkey work.

Here's the new workflow with the node editor.

1. Write prose in a simple format (the same as before).
2. Import the raw prose into the editor (nodes created automatically)
3. Link nodes to each other based on the design (drag and drop).
4. Add in extra requirements and effects based on the design.
5. Export into a file (an automatical process)

Two less steps, two of them are the same as before (1. and 4.), two are completely automated (2. and 5.) and the last one (3.) is much faster than in the old workflow. Great!

I've tested the editor on two smaller events, no problems. Tomorrow I will try it on a more complicated event. About the only potential issue I can forsee is having to move nodes around too much if things change. Hmm, maybe there is a way to zoom out in Gtk? I'll have to look into that if need be.

Skipped the devlog on Monday as I didn't have that much to show and since yesterday I've been under a flu cutting the hours effectively in half. Getting better already and motivation is flying high. Writing will be the most time consuming part from now on.

Cheers!
Logged
HuvaaKoodia
Level 1
*



View Profile WWW
« Reply #25 on: November 19, 2018, 07:24:10 PM »

Back to writing and implementing content. Much faster with the editor. 80% of the events already have some prose, 20% have been implemented. Too slow, the schedule will blow up! Not a big problem for the last project of the year.

There is no way to zoom in Gtk 2.0. Here's a manually stitched together and zoomed out graph of a small event.


Would be nice to show a bigger graph, but that would be a pain to put together.

Realized that the editor doesn't actually need to access the C# DLLs at all. I could have used HTML5 and javascript instead, starting with already functional node rendering from an open source project or another. Zooming would work there too! Well, I'll consider rewriting the editor for future projects. The benefits would be too small for this one.

I was too tired to write a devlog last Friday. Will lose about half the day on Wednesday so I'll spend the rest Streaming about the Node editor. I'm unsure of the timing, it'll be an unofficial stream more or less.

Cheers.
Logged
HuvaaKoodia
Level 1
*



View Profile WWW
« Reply #26 on: November 22, 2018, 03:31:09 PM »

I'm glad I didn't make that last stream official. I was extremely tired yesterday and simply could not muster the strength to record anything! Decided to do it today, but then noticed that I actually had no prose ready for implementation, just a lot of half finished events! Oh dear.

Completed one event just for tomorrow (still lacking a little bit, will be writing as well as implementing then) and also added a small feature to the editor.


A comment field. The Cryptic toggles do nothing yet.

Why was I tired? Well, going to talk about that tomorrow! Still not making it an official stream though as I actually have some RL errands to run tomorrow too, but nothing like Wednesday. Phew! I get knackered even thinking about it.

Cheers.
Logged
HuvaaKoodia
Level 1
*



View Profile WWW
« Reply #27 on: December 01, 2018, 06:02:26 AM »

Streamed last Saturday, finally had time to edit the video this Saturday. Yep, the schedule is out the window.





Job hunting is on and it as well as other distractions are taking a lot of days. Only one free day next week and the week after that is up in the air too. I'll switch to a less strict (completely off the cuff) schedule from now on.

The next task, I think, is going to be a bit of programming to get the overall structure implemented with temporary prose for all the lacking events. After that the project is done apart from all of the writing/content.

Cheers.
Logged
HuvaaKoodia
Level 1
*



View Profile WWW
« Reply #28 on: December 29, 2018, 06:55:57 AM »

It has been a month since the last update and nothing, relating to this project, has been done since! Other things, including the holidays, sapped my time. Furthermore my next year will be quite full too, so it seems project 5 will be set on a hiatus of undetermined length.

A shame; I quite like the world and events, despite going off the initial plan when it comes to the themes.

One thing I learned during early development is that coming up with prose is time consuming for an untrained writer. Two to three hours per day would fry my brain and I'd have to move onto other tasks. Not a terrible situation, jumping from task to task, but less than optimal.

Another less than optimal situation was the tools. I started with a completely text based logic-file format, which turned out to be very slow to use with complicated branching events, i.e nearly all of them. The custom visual editor, made as a solution to this issue, works; but the chosen technology, C# GTK2, is cumbersome and lacks important features such as zooming. I should have gone with Javascript and a third party, open source canvas library instead. A bad choice there.

Unsurprisingly, I've come up with many new projects to try next year, so no promises on ever finishing this one, at least according to the current plan. It remains to be seen, if inspiration strikes again and I manage to salvage what remains in one form or another.

Cheers.
Logged
Pages: 1 [2]
Print
Jump to:  

Theme orange-lt created by panic