Show Posts
|
|
Pages: [1] 2 3 ... 9
|
|
1
|
Community / DevLogs / Re: Sci-fi espionage interactive novel (Project 5, 2018)
|
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.
|
|
|
|
|
2
|
Community / DevLogs / Prose node editor stream
|
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.
|
|
|
|
|
3
|
Community / DevLogs / Day 38 - Broken promises
|
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.
|
|
|
|
|
4
|
Community / DevLogs / Day 36 - Prose & implementation
|
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.
|
|
|
|
|
5
|
Community / DevLogs / Day 33 - Graphical data editor, part 3
|
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!
|
|
|
|
|
6
|
Community / DevLogs / Day 30 - Graphical data editor, part 2
|
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.
|
|
|
|
|
7
|
Community / DevLogs / Day 28 - Graphical data editor, part 1
|
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 beginningsRudimentary 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.
|
|
|
|
|
8
|
Community / DevLogs / Day 27 - Prototype stream
|
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.
|
|
|
|
|
9
|
Community / DevLogs / Day 25 - Implementation, implementation
|
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.
|
|
|
|
|
10
|
Community / DevLogs / Day 23 - Going at it again.
|
on: October 29, 2018, 06:50:57 PM
|
3 and a half hours on creative writing. Got a fine idea for one of the friend events on planet 1. It was supposed to be a token competition, a competition in the physical world rather than the virtual, but I switched it into a role playing experience. One of the alien races is very social and they are into these sort of things. Rest on monkey work, you knew that already. The stream will be on Friday this week.
|
|
|
|
|
11
|
Community / DevLogs / Day 22 - First drafts
|
on: October 26, 2018, 05:49:06 PM
|
|
Still many small paths to fill in, when it comes to mission 1 of Planet 1. The main branches are there though.
Finished up the first pass of an optional outdoors event on Planet 3. Been slightly distracted this week by unrelated things, as mentioned before, but at least I've got the hours in.
Next week I will implement the first drafts of P1M1 and P3M1, which I wrote earlier. I'll also be writing prose for non-mission related events, such as friends, marketplaces, hobbies, etc. Much more linear prose when it comes to those, a welcome change!
A stream too at some point. Will be the most boring to date!
Cheers.
|
|
|
|
|
12
|
Community / DevLogs / Day 20 - Automation + scheduling
|
on: October 24, 2018, 05:20:11 PM
|
Wrote two scripts to make the prose implementation process easier. The first, more important, script copies a DATA file and then transforms it into an ACTION file by adding in basic variables, types and such. Basically going from this: DATA TextName1 " Some text. " Into this: ACTION TextName1, TextName Requirements TextIndex = 1 Effects TextIndex+=1 " Some text. " The text is left in the file to make it easier to hook up the actual logic between the ACTION objects. The second script then removes the quotes. Together these two bits of code will speed up the process by leaps and bounds. Currently writing the first mission for Planet 3. It is about eavesdropping on a private meeting set in a Spa. I've come up with a lot of different branches, for instance, infiltrate disguised as a worker, go in as a guest and break into the private side from the inside, social engineer your way into the meeting itself. Many options only one of which is going to be seen by someone who reads the novel once... Now I know why some developers aren't too keen on these sort of one-use choices. Lots of work for little gain, except if there are enough readers of course... Something I'm very sceptical of when it comes to this project. Lastly the schedule then. Very briefly, it is getting pretty late again, it seems I won't have the time for all the prose I've planned out. The task list at least seems rather daunting, taken the recent lapse in productivity. Three extra weeks is all I can afford this year (because the year kind of ends...) and I'm keeping two of them in reserve just in case. I guess the plan for now on is to complete one mission per planet, as these are the most time expensive events of them all, and then add in everything else. Missions are by design separate from each other so I can easily add more of them later if I have the time. Some of the ideas I've had so far won't work that well with fewer missions, but they are nothing but ideas so not much is lost there. That should clear things up. Cheers.
|
|
|
|
|
13
|
Community / DevLogs / Day 18 - Rhythm readjustements
|
on: October 22, 2018, 01:44:30 PM
|
|
Fickle thing this inspiration. Today three hours on writing (Planet 1 mission 1 outline and beginning); spent the rest on implementing older prose i.e. monkey work. I do need to automate parts of that.
Friday I had absolutely no creativity, tired due to the erratic rhythm of the past few weeks. Spent a few hours on the same grindstone nonetheless.
The rest of the month will be shaky too when it comes to the schedule. After that, depending on a few things, I might have the last two months of the year for the project or not... I don't like uncertainty.
Unlike project 3, I will finish this one within the year or not. Here I have the skills and know-how, it just takes time.
More on the schedule come Wednesday.
Cheers...
|
|
|
|
|
15
|
Community / DevLogs / Day 15 - Hacky prototype, tomorrow.
|
on: October 17, 2018, 02:33:36 PM
|
The holiday is over! Enervating! The first mission is finished, apart from one additional branch only open to those with special gear. Hooked up the mission briefing, beamed in from the HQ, and mission start events to the day cycle (cycle cycle in the in-world jargon...) Adding more missions should be faster now. The naming/visualisation headache is still there; will try to find a solution on Saturday. There are still quite a few Todo chapters (parts? places? events?) and temporary choices. It's a prototype, not a whole demo yet, although I will use the same mission in the demo not to spoil too much! Getting late. Will publish it tomorrow. Hopefully no WebGL issues crop up this time. Cheers! PS. Made this in a jam during the holiday weekend with a friend. An excellent use of time, jams; much recommended!
|
|
|
|
|
16
|
Community / DevLogs / Day 14 - Slow progress part 2
|
on: October 11, 2018, 04:00:08 PM
|
|
The first mission (third mission on planet 2, by design) is about 80% done. It is not very long, some branching, missing the end and a bit of flavour.
Getting the naming conventions right has taken some time again. Had the same issue in AAA, I seem to recall. There is no visual editor for the data objects, which means that a non-linear structure (branching, looping, fuzzy selection) is flattened to a single top to bottom text file of objects (like code in general), rather than a 2D picture (like a flow chart). Easy to make mistakes and hard to spot them without testing the prose in Unity (which is fast enough as previously mentioned).
I could add a simple visualizer which takes all the current objects and makes a map out of them, showing all potential connections between each objects. It would be useful, even if not editable. Could use an opensource node UI library for it; there are many of those out there, although probably not in C# outside of Unity assets.
I'll give the prototype one more day, next week. Hopefully it is releasable at that point, if not then I'll settle with just the stream as I want to get back to writing more prose proper. That is the creative and difficult, due to lack of experience, part in this project. The implementation is nothing but elbow greese a plenty.
Cheers.
|
|
|
|
|
17
|
Community / DevLogs / Day 13 - Slow progress
|
on: October 10, 2018, 12:42:14 PM
|
|
The prototype release might have to wait until next week. The first mission is taking a while as I'm adding development features while I go.
Another reason is an inkling of a flu and, I have to admit, holiday fever (as in, I'm much overdue for one!)
Going to push it tomorrow, both the project and my luck.
The prototype stream will also have to wait, past next week in fact. Then again, there won't be many streams for this project to begin with. What is there to show?
Cheers.
|
|
|
|
|
18
|
Community / DevLogs / Day 11 - Short prototype week ahead
|
on: October 08, 2018, 12:33:41 PM
|
Nothing but prose implementation today. Second draft basically, changing things to make them fit; that's the plan for the whole week. I do like this part in text based projects. Individual "chapters" are mostly independent and testing them is a charm; jumping straight into any point in the story with any custom variable values. The upcoming public prototype will include the intro, planet fall, settling in and one mission. Pretty much the same as what the demo will be in the end. Another screenshot, why not? Also from last week though... The encyclopedia. Read up!Taking a long weekend off the project. Friday, Monday and most of Tuesday are not going to be productive. The current progress is strong enough to warrant such a move, and the last project turned out just fine despite similar scheduling shenanigans. Basically, future me will fix the discrepancy once more. Cheers!
|
|
|
|
|
19
|
Community / DevLogs / Day 9 - First look, end to woes
|
on: October 04, 2018, 01:53:36 PM
|
Continued the ~5 pages per day pace. Trying to write shorter missions and events without exception leads into longer form prose once the inspiration strikes. Been able to come up with a variety of scenarios, for instance: a mission tailing a target which can turn into a chase; climbing the highest tower of the city on an off day; and meeting an informant, a simple deal evolving into a battle of sorts. Solid progress on the programming side once I finally cleared the latest problems, more on those later. The intro mostly functions, I still need to implement an input field for the agent name, and keywords can be clicked for an encyclopedia entry on the topic! I can hide important information in there instead of trying to combine it with the prose. This helps with communicating ideas while the plot itself stays non-linear. First screenshot then: The font is a quick, temporary and generic sci-fi pick; it will change in the far future.OK, to the technical jargon then. Feel free to zone out if this isn't your thing. Everything worked just fine with the old DLLs from AAA. The interactive prose system is divided into 4 libraries for reasons of portability and cleanliness. The code needs to be modified for this project, of course, and an innocuous enough adjustment later everything broke. Unity, by default, consumes at most .Net 3.5 assemblies. For some time now Mono has not supported 3.0 or 3.5 anymore, which threw me into dependency hell trying to downgrade the Mono version from 5.x to 3.12 or so. No dice, even a total wipe and purge did not resolve the issue, the newest version stands. Next possibility, use the experimental Unity .Net 4.x equivalent setting. Rebuilt the DLLs with 4.5 and they worked! A shallow victory as another issue cropped up: VSCode intellisense (via Omnisharp) broke, cannot find 4.71 assemblies. Oh, bother! Monodevelop does not do debugging in Unity no more it seems, so ditching VSCode altogether isn't much of a possibility. This time switching to the Win 7 PC would have been too bitter a pill to swallow. Last alternative I could think of... revert the libraries down to .Net 2.0. I actually remember this specific though crossing my mind previously during some other string of unfortunate Mono/.Net issues, but this time I went through with it! In practice had to rewrite a few LINQ function calls as foreach loops, not a biggie after all. Back in business. No more headache inducing setup steps, I hope upon hope... strange project.
I will take that as a compliment and try to make it even stranger! Cheers!
|
|
|
|
|