Yes, if you use web fonts.
You can embed them manually if you don't want to use Google CDN. You'll need a bit of CSS (similar code) and this converter: https://font-converter.net/en to get browser-specific font files.
If you are using SugarCube 2, this should help you:
http://twinery.org/questions/1412/sugarcube-how-remove-only-the-back-and-forward-arrows-sidebar
The first answer is correct. Add
Config.history.controls = false;
to the story's Javascript, which you can find by clicking the name of your story in the bottom lefthand corner of the interface (next to the house icon). This will disable the back and forward arrows in Sugarcube 2.
I hope you like Twine and find it useful for your horror story!
I've had loads of luck monetizing my games, I'll answer your questions in order below.
Yes I already had an audience from tfgames + f95. Patreon works far better than itch.io. I'm a patron of TME and and Chris Klimas (two twine devs).
I'd have to hesitantly agree with you, adult content certainly generates more revenue, but that's true with lots of game engines, rpg maker, rags, renpy, the most profitable on average tend to be adult oriented. Though that's not always the case, of course.
For security reasons, browsers are unable to do directory searches, so it's not possible to write JavaScript code to do that for you.
The closest I could recommend, assuming you're using Windows, is opening a command prompt (WindowsKey + R
, then run "cmd
"), then put the drive name and hit ENTER
, then do "cd filepath
", and then do "dir *.mp4 /b > mp4_files.txt
" to output the filenames to a text file. If, for example, your videos are in D:\games\mygame\videos
, then once you open the command prompt window you'll input something like this:
d: cd "\games\mygame\videos" dir *.mp4 /b > mp4_files.txt
and that will create a file in that directory named mp4_files.txt
, which will have the names of all of the .MP4 files within that directory. You then just need to convert the contents of that text file into an array in your code.
A good text editor, like Notepad++, will help you quickly create a macro so you can convert those filenames to something easy to paste into your code.
Sorry there isn't a method to do that directly from your code, but that should at least make it a little less painful to generate the list of filenames. 🙂
You could, but you'd have to write your own parser to do that, which is a lot of work.
If that's what you want to do you'd probably be better off using something like Inform 7, which was built for that kind of stuff.
Yikes. Like I said before, I don't really have the coding knowledge to have sussed this stuff out before, so I'll have to take your word on the issues. But this is what I've found so far:
Installation instructions for different formats in 1.x
As for Twine 2.x, I do believe Sugarcube is one of the default formats available from the main menu.
GZipping images won't actually tend to compress the image much, and it will add time where the image needs to be compressed and then decompressed. Because of that, it's actually recommended that you do not compress binary data which is already compressed (see the "PageSpeed recommends" section on the right on this page). This page notes, "Image and PDF files should not be gzipped because they are already compressed. Trying to gzip them not only wastes CPU but can potentially increase file sizes."
So, gzip isn't really a solution when it comes to speeding up image downloads.
Twine's ide is great for small projects, but quickly becomes a pain when trying to make anything bigger. Tweego in VS Code is a much better development environment for twine. You can use as many .js, .css and .tw files as you want and tweego will compile them into a single twine .html file. A great tutorial for setting it up can be found here:
https://dev.to/lazerwalker/a-modern-developer-s-workflow-for-twine-4imp
JavaScript has powerful string parsing tools, so it is possible. You could also theoretically import a library and set it up to work with a story format (use SugarCube or Snowman, Harlowe is a bit harder to extend). No matter what you do, though, you're in for some work, as there aren't any story formats I'm aware of that support the kind of parsing you would need for this out of the box.
Edit. Quest is a better platform for generating parser-style IF that can work in a browser.
I'm assuming the HTML file you're uploading to the server works fine in Firefox when you run that local copy, correct?
If so, what you might want to do is get something like WinMerge, use that to compare the version of the file you uploaded with the version you get when you download that same file from your website, and see what's changed. That way you can see what that server is breaking and possibly work around it.
Let us know what you find out.
you can also use switches instead of if: http://twinery.org/questions/32749/about-switch
​
basically thin of it like a junction of if statements you define what variable you're checking and put all the conditions in a row below it with a "default" if nothing matches.
I felt the same way when I found out, haha.
BTW, here is some CSS you can use to add background images to your game and make passages display in a nice translucent textbox.
And here is some CSS/javascript you can use to create a second sidebar, on the right side of the screen.
I combined the two, and for the hell of it also made both sidebars translucent in my own game project. I just wanted to share these as I think it looks very sleek. ;)
Here’s one way: http://twinery.org/cookbook/typewriter/harlowe/harlowe_typewriter.html
You would basically have to store any typewriter text into arrays. More trouble than it’s worth if you ask me, if you want to apply it to the whole story.
Sure. You can store the amount of money a player has in a variable, subtract from it when they spend money, add to it when they gain money, and check if they have enough when someone tries to buy something.
Some of the basic building blocks are here:
http://twinery.org/questions/1682/how-to-make-a-working-store-in-twine-2-sugarcube-2
"Documents/satellites_and_waterfalls.ogg"
)."Documents"
directory in this case) for the system to be able to find the audio file.
Compile your project (in the Twine IDEs it'll be called Build or Publish), place the compiled HTML relative to your "Documents"
directory, open it in your browser of choice. If your browser supports OGG files (and not all do), you should hear your BGM. Also, you'll have to distribute your project with the same setup, so it may behoove you to use directory structure other than your "Documents"
directory.
See also: twine 2 sugercube 2 No audio what-so ever at the Twinery.org Q&A site, as it covers almost the exact same question.
I'm working on this android app. Twine has been very helpful for a coding newbie like me, and especially your contribution in the forums and that of the community. Thanks again :)
I will assume that you are using the Twine 2.x application.
You first use the application's Publish to File option to create a story HTML file for your project, which you save somewhere on your local hard-drive.
You then two basic options for making this story HTML file (and any external media file it referenced) public accessible:
If you want to see things made in Twine, go ahead and check out the Twine tag on itch.io, there's ton of great stuff there. For most of it, you can even download the HTML file for and then open it up in Twine so you can see how it was made!
I ended up finding a different tool called Obsidian, it's perfect for what I need.
I tried Tiddly variations, but I just didn't like the linking and filtering as much. Appreciate pointing me in the Wiki direction though!
I assigned it the variables()
function. I've used it in the engine for a long time without issues, so that's not the problem.
> Also, you said that you "completely gutted" the story's JavaScript section, if so, where is the code that you included above located?
Not sure what you mean -- I use standalone .js files and Tweego for compilation. The Setting modifier code was in its own file.
It doesn't appear to be the problem, though; when I added it to an older version and uploaded that, itch.io didn't give me the error.
ProZ is my bilingual dictionary of choice, and it does include Russian as a language on there. It's useful because there's a lot of professional translators on that site, who are amazingly generous with their time if you have a question (I took a legal translation class last semester, and those guys saved my grade)
Linguee is my other favourite site for this sort of thing. It uses translated websites to search for phrases, so like if you were to look up a specific phrase in Russian, it would return a whole long list of websites that use that phrase in Russian, and what the English version of that website uses. Keep in mind on this one that while it can have great examples, it can also have very poor translations as well. Linguee is best used to cross-reference context and usage between examples.
Sorry, no disrespect meant, i just didn't know how to do it properly.
I uploaded the game with images and a save-file which you have to load. Open the game, load the save file and then just click on the "end week" button on the top right. You have to click with the left mouse several times until you get the "combat screen". You will see instantly, since the error message is huge and the combat screen shows a lot of numbers (i added them just to see what is happening as long as i test it).
I really appreciate your help now and the many times you already helped me before. I will not forget that, since iam at a point where i cannot continue on myself and i invested a lot of time in my game (i tried to find the error, but i just don't see it).
You might want to check out Inform 7 if you are interested in making a game more along the lines of the old Adventure or Zork style games, where you type in commands and get responses. It's an excellent game design system!
Unless you're installing the "IM Fell" font on their machine, I highly recommend picking the fallback fonts you want as alternatives, otherwise it will look really bad for people who don't have that font installed.
Also, some web browsers do not support font styling of things like dropdown menus.
If you want to make sure setting the font will work in a dropdown, you'll need to use a custom dropdown menu, as opposed to the default <select>
element. You can find some example custom dropdown menus here:
If you never changed the story format, then it's probably some version of Harlowe.
You'll need to open the HTML file in a good text editor (I use Notepad++) and do a search for "<tw-storydata
" within that HTML element the values of the "format
" and "format-version
" attributes should tell you what story format you were using and what version of that story form at you were using, respectively.
Then just pick the story format name from the Tweego list of formats which most closely matches that format and version, and that should do the trick.
It should work fine, but please let us know how it turns out. 🙂
VSCode comes with a built-in Tasks system which you can use to execute external tools (like TweeGo), and one of the built-in task groups is build.
The following is a copy of a tasks.json
file I use with a particular workspace.
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "Build Story HTML file", "type": "shell", "command": "tweego -o .\story.html .\src ", "group": "build", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [], "presentation": { "echo": true, "reveal": "always", "focus": true, "panel": "new" } } ] }
(obviously you would want to change the story.html
reference in the above to something else, you may also want to specify which story format to use if you're not using SugarCube)
hey! yeah you were right about the file !! the answer below fixed it tho :)
​
abt the browser thing, i managed to add music to my first passage and it plays just fine? it autoplays right away, though maybe it works bc i uploaded it to itch.io rather than its own website
Well, to take the example from that page, and put it into Twine using the SugarCube story format, you'd first put this in your JavaScript section:
setup.geoFindMe = function() { function success(position) { var latitude = position.coords.latitude; var longitude = position.coords.longitude; State.variables.latitude = latitude; State.variables.longitude = longitude; $('#status').empty().wiki('<a href="https://www.openstreetmap.org/#map=18/' + latitude + '/' + longitude + '" target="_blank">Latitude: ' + latitude + '°, Longitude: ' + longitude + '°</a>'); } function error() { status.textContent = 'Unable to retrieve your location.'; }
State.variables.latitude = 0; State.variables.longitude = 0; if (!navigator.geolocation) { $('#status').empty().wiki('Geolocation is not supported by your browser.'); } else { $('#status').empty().wiki('Locating…'); navigator.geolocation.getCurrentPosition(success, error); } };
Then in the passage where you wanted to use that function, you'd put this:
<<button "Find my location">> <<run setup.geoFindMe()>> <</button>> <span id="status"></span>
That will call the geoFindMe()
function, and the results will be displayed within the "status" <span>
.
That code also sets the $latitude
and $longitude
story variables, if you want to access the data that way (they will both be set to 0
if it couldn't get the location).
Note that the function works asynchronously, which means that the values won't be available immediately after the geoFindMe()
function is called. They'll only be available after the success()
function is triggered.
Let me know if you have any further questions, and thanks for the award. :-)
The problem is, if I'm understanding what you're trying to do correctly, is that what you're describing is an incredibly complex story generator, which would either require some AI knowledge to program (a level of which has only recently become possible) or would simply be a "mad libs" kind of game.
If you think you're up to writing something like that I would start very small and then work your way up.
Frankly though, I don't believe that Twine is up to the task that I think you're envisioning, especially due to the large amount of data needed and the processing power required to perform what you want in a reasonable amount of time.
Perhaps I've misread what you're trying to do, but I will point out that the fact that you haven't seen anyone else do this should be an indication of its difficulty.
The closest I could think of would be "Dwarf Fortress", but it doesn't generate a story, so much as it simulates a world where we can see things that happen in that world in a narrative way sometimes.
Hi, i tried to find the error by myself, but i just don't see it.
This problem is wearing me out atm, i knew that combat would be complex, but if i had known before, i would have made everything more simple. But i already put a huge amount of work in the game and my plan was to start a patreon after finishing combat, because then i all basic mechanics would be finished more or less.
I cannot puplish an html since i don't have a website, but maybe the html as download would be as good? If you could help me to find what i did wrong that would be a huge burden lifted off my shoulders.
This is what I do. Added a couple of batch files to do the compilation, one to create a 'testing' version and one to create a 'release' version. Then I edit using Atom.io which has a sugarcube plugin for the syntax checking.
Moving to Tweego really helped to streamline my process.
There are lots of good reasons to use a text editor (though the visual interface is a good reason to stick with Twine!).
Various things it can help with include having spell check (if you install a relevant package), less risk of deleting packages, easier testing workflow (since you can set tweego to "watch" your files and rebuild anytime a change is made. Searching and replacing is also way nicer!
Not to mention, you can have syntax highlighting for sugarcube! On the built file, you can also use sugarValidator to find errors (bad links, unclosed tags etc.).
The file organization is also great. I'm personally working on a game that's 700+ passages (almost 100k words) atm, and a lot of the passages are long due to the game's styling. That's all split up into ~60 files, and into a few folders (CSS, JS, Widgets, as well as a folder for each playable character (2) and then files for their various main sequences).
The last nice thing is being able to use the many HTML/CSS/JS tools that programs like Notepad++ or Atom have to make your life easier. For example, I use emmet for atom to save my life vis a vis HTML tags--I just type the shorthand, then hit tab and I've got my full tags. Autocomplete & other standard features are nice too.
Starting with Tweego will definitely slow you down initially, but I think it's a fairly important tool when games become more and more complex. If your game is light any HTML and you do have plans for it to end eventually, you should be okay, but try it out on a test project sometime!
The lack of syntax colouring is the main reason I gave up on coding directly in Twine. I personally use Atom (you can download a Twine package for SugarCube; not sure if there are packages for the other formats). That fixes issues 1, 2, 3, and 5, although you do have to copy/paste back and forth.
I've decided for the time being I'm gonna take the "it'll do" route of writing it in a note editor type app and then just typing it back out when im on my computer again. This doesn't work too great with plain text editors, so I came across a tree-based editor called Notecase, which seems to do the job nicely.
I'd still like to know if there's any kind of proper equivalent to Twine or even if there's an android "port" being worked on at all, though, since I feel it'd be a neat idea.
Is it possible to make an "action packed" Twine game like you describe? Yes.
Do I know of any examples? Not really, but there probably are some. You could check the Twine games on itch.io as the most likely place to find them.
Should you use Twine to make such a game? Probably not. Making a game like that is like using a hammer to drive a screw into wood, you can do it, but the result won't be pretty. You should use the best engine for the game type that you're making, if possible.
Obviously there will be limitations on what engine you can used based on price, skillset required for use, media types required, and how much time and effort you're willing to put in. However, if you want to make a good game then you need to use the right tool for the job.
And for what you're describing, I'm not sure Twine is the right tool for that.
​
Regardless of what you choose, good luck! :-)
Sorry, I'm very new to reddit. I wrote a whole thing here but somehow it didn't post.
I wanted to thank everyone for having a very helpful community that made this game-making experience very fun and very easy. This was my first experience making a game at all and I have no experience with coding or anything like that.
my own paper walls is a horror game and as such has some dark themes. The game itself is on par with a PG-13 movie with a little blood but no excessive gore or violence. It works best if you have some headphones and get yourself firmly into spook position and take advantage of that October horror lingering in the air.
Here's the blurb from the page on itch.io:
>Tara is an introverted girl who shares an interest in horror and the paranormal with her friend Becca. Unfortunately for them, they live in a painfully boring small town in the Pacific Northwest. The only place that has any chance of being remotely creepy is the middle school that was decommissioned a few years ago. Becca convinces Tara to join her and some others she knows from the internet to spend the night there.
Thanks again.
You'll need to open the .js file (JavaScript file) in a text editor of some sort. Opening a text file shouldn't cause an error, so I'm guessing that whatever tried to open it on your system wasn't a text editor.
If you want a good text editor for Windows, I'd recommend Notepad++.
You weren't quite clear about exactly what your first question was, but it appears to be, how do I convert a list of names into JavaScript code. Correct?
If so, I generally just use Notepad++ for stuff like that. I either come up with a search-and-replace method to convert a list into a JavaScript-usable format (such as replacing ,
with ", "
) , or I record a macro to convert one line and end in a position to convert the next line the same way, and then just hold down CTRL+SHIFT+P to repeat that macro on every line.
Regarding the second question, there isn't one best answer, since it depends on the size of your data sets. Generally speaking though, you'd pull from that list, check the existing names to make sure it wasn't already used, and if it was, then pull a different name and repeat. Just be careful to limit the number of retries if it's possible to run out of unused names.
Hope that helps! :-)
This sounds nice actually. I love writing and Twine has been an interest of mine, now that i have found some time, and gotten pretty good a JavaScript to work with Sugarcube, i have been enjoying it. I feel it would be nice to earn something for the effort, but i do like itch.io. In any case any additional way to help these sorts of creators is welcome, if done right. As text games and MUDS, games with unique features, and really most old fashioned games really need to return more still. :)
Some moderator notes:
To OP:
I think you should edit more info into this post; things like how this works, why you think this is a good alternative to Patreon / Itch.io / etc, whether there are any fees, what sort of rights the author retains, etc.
Github Pages will let you host your HTML, audio and images.
For more free hosting options there's a good /r/webdev thread about it here
The User interface you describe is most commonly associated with Visual Novels (VN), and to a lesser extent with the Character Dialogue within a Japanese Role Playing Game (JRPG). And there are development environments that specifically target those "types" of projects, two of them being Ren'Py (for VNs) and RPG Maker (for JRPGs).
Now while is certainly technically possible to create a User Interface that looks & behaves like you describe using the Story Formats associated with Twine, and SugarCube in particular, you will need to use code to work around some of the core principles of the story format engines.
Two of those principles being that:
1. The Passage is the main "unit of work".
2. Variable changes that occur within a Passage are only persisted to the History System during the next Passage Transitioning process. eg. it relies on Passage Navigation occurring.
You should check out Storyboarder - amazing free tool for storyboards with a 3D character scene generator.
​
> Is there anything wrong with JSHint?
Probably not? I'm not sure. JSHint started life as a more configurable fork of JSLint—that's like giving you more condiment choices on a shit sandwich; i.e. still not something you should want to eat. As I said however, that was how it started, it may be much improved today—I haven't taken another look at it.
ESLint started life as a more configurable and pluggable response to both JSLint and JSHint—see: <em>About ESLint</em>. It's an actively developed, super configurable JavaScript linter for both syntax and style correctness. There are also plans to add support for TypeScript.
I'm sure that JSHint is probably fine for what most people use it for. Personally, I probably would not still be working on public JavaScript projects without ESLint—I use it as blocking part of my build process on things like SugarCube and some of its add-ons.
You do not need to disable transpiling. It's easy to avoid this particular issue with Babel, which is a combination of the plugin- proposal-decorators
and plugin-transform-runtime
plugins. Simply disable one or both of the plugins—if you're using one of the and the kitchen sink plugin packages, switch to something less inclusive.
​
When using any code transformation tool it is far, far better to:
The former is especially important as separate plugins may interact in strange ways—the case here.
​
Specifically to this issue:
plugin- proposal-decorators
is only necessary if you need/want to use decorators, which are still in the proposal stage and not finalized.plugin-transform-runtime
is never necessary. It's only really useful if you are not combining your project's JS together before running it through Babel or want the regenerator. Combining your JS together before passing it through Babel avoids the former and any need for the regenerator is easily avoided by not using generator functions.​
For liniting: I recommend [ESLint](https://eslint.org/).
Well... No and yes?
First of all, you're referring to this: Framer
Framer outputs HTML, so it can't be directly imported into Twine.
However, if you are familiar with HTML, CSS, and JavaScript, you could pick apart the HTML output from Framer, and you could probably manually copy over the important parts to Twine with some tweaking.
So, it might help you write some of the web page code, but it's only really useful if you could understand the output well enough to convert it into something Twine could use.
Funny enough, I just ran across this article which may help:
"A Modern Developer's Workflow For Twine" - by Em Lazer-Walker
Not sure if I understand correctly, but I'll try to answer it:
The game is sanbox / openworld like. So travling from room to room (2minutes) or location to location (up to 2 hours) takes time, time is added with <<addminutes 2>> and <<addhours 2>> for example. The longest I use is 8 hours for sleep
Since I use the above mentioned time widget ( http://twinery.org/forum/discussion/comment/11723/#Comment_11723 ) these addmins and addhours advance time within the game.
I was hoping to be able to create / find a timer that automatically uses the addmins and addhours.
It's possible but significantly more fiddly than just a number. You will need custom javascript.
There's an example here: http://twinery.org/questions/351/how-can-i-implement-a-visual-health-bar-in-harlowe-2-0-1
This worked for me. http://twinery.org/questions/15935/audio-in-harlowe-background-music-and-sound-effects-pls I noticed that the looping only works for .mp3 and .wav files, could not get it to work with .ogg
When you say "static image" do you mean a fixed positioned specific image that does change, either the position or the image that is being should, during the entire play-though?
If so then you may want to use a technique, like the one shown in thefirst example of my comment to the Creating A Panel Similar To The UI-Bar topic on the Twine Forum Achieve, to append a custom HTML container element (like a <div>). Doing this ensures that the <img>
element won't destroyed and recreated each time a Passage Transition occurs.
Without knowing exactly what you want to do with the image I can only give a general example, but the JavaScript code to add the custom HTML element could be as simple as...
var $image = $('<img id="static-image" src="IMAGE-URL">').insertAfter("#ui-bar");
...you may not even need to assign the generated element to a variable.
The first "Left Sidebar": Harlowe related recipe in the Twine Cookbook demonstrates how to use CSS to reposition a footer tagged passage so that it appears over blank area to the left of where the contents of the current passage is shown.
If you prefer that footer tagged passage to appear above the right blank area instead then that should be achievable by making the following changes to the CSS example:
The extension updates Twine UI with its features, there are no obvious buttons and lists.
All formats are fine with basic features like if-then. SugarCube is cool because it uses Javascript as macro script. Writing JS is harder but debugging is easier in browsers.
tweego is a compiler. You write a text file in notepad (VSCode, Atom, vim, anything), run the compiler in the command line (tweego code.twee
), it makes the game.
Don't take the 100 number as a rule, it's just a trend: Twine becomes slower with more nodes, you might not even notice the difference until 1000 nodes, that depends on your machine. I think exporting to twee and compiling from several twee files should work.
So depending on which format you are using, you will accomplish this differently. If Harlowe, check here. If Sugarcube, check here instead.
In a nutshell, with Harlowe you would write: (event: when time > 5s)[MAGIC!]
Note that 5s here stands for 5 seconds. Whatever is in the brackets is what pops up after the time has elapsed (including pictures and links).
Sugarcube is basically the same, except it uses open and closing arrows, thusly:
<<timed 5s>> Magic!<</timed>>
The "Left Sidebar": Harlowe (both v1.x and v2.x series) recipe of the official Twine Cookbook demonstrates how to us CSS to reposition a header tagged passage so that it appears over the left blank area of the standard Harlowe story layout.
You could use the same technique to reposition such a "header" passage containing your image, except in your use-case you would likely need to change the left & right padding of the main <tw-story>
HTML element which for Harlowe 2.x defaults to the following CSS:
tw-story { padding-left: 20%; padding-right: 20%; }
eg. you would likely need to add something like the following to your project's Story Stylesheet area.
tw-story { padding-left: 50%; padding-right: 0%; }
And assign a width: 50%;
value to the CSS you''' be using to reposition the header tagger passage containing your image.
warning: That same left blank area is used to display the story format's default Undo and Redo links, so if you want your image to use all of the left blank area then you will need to either:
​
tw-sidebar { display: none; }
You should be able to control the candle image brightness/opacity with CSS dynamically using a method similar to this Q&A.
Ok then. Perhaps that is what I should be doing. The source for my original code scheme is this post:
But reading your suggestion and going back over this post, maybe for my own needs I did precisely the wrong thing by using this method of storing keys instead of the objects themselves.
I'll play with it this way, thanks for your response.
*mind explodes trying to test this*
​
Wish I could help, found this old forum post though which could help push you in the right direction though -> http://twinery.org/questions/5090/displaying-text-once-the-user-hovers-on-a-link
​
Please do post your solution if you find one!
http://twinery.org/questions/1028/why-are-you-not-meant-to-define-widgets-in-storyinit
Short answer: just because something seems to work doesn't mean it always works or is doing exactly what you assume. The docs are written by the creator of SugarCube. On top of that, if you don't do things the way the docs indicate, there is absolutely no guarantee that things will always work that way: future updates to the engine may change how things work.
You're talking about transferring from the online version of Twine to the offline Twine application, correct?
"Publish to File" in one, then "Import From File" should work fine, assuming you're using the Twine 2 application, and not the Twine 1 application, and assuming you have the same version of the story format you used (Harlowe, SugarCube, etc...) installed into Twine.
If the interface to the Windows application looks totally different from the online interface, then you're using the Twine 1 application instead of Twine 2. Downloading and installing Twine 2 and then importing there should fix your problem. (Links to both Twine 1 and Twine 2 are on that page, so make sure you download using the correct link.)
Nice. That's the sort of thing I meant by "a more Twine-y solution." I didn't know tags added a class to the <body>
--thought it was just the passage. Is that noted in the documentation somewhere? I didn't see it on the wiki page for tags when I was reading through the docs.
I don't have a lot of experience, but I do know that Twine saves your story as an HTML file. I would try going to http://twinery.org/2/#!/stories and import from file. If that doesn't work, I'm not sure what your options are.
The online documentation is pretty good, and there are a few good tutorial books, also.
I was using an example from here, but it seems like the files are no longer present for some reason. I've mostly been browsing the wiki documentation to understand the syntax and such, and haven't been looking around in more detail on other sites.
I'm only speculating here, however, it could be due to the way Harowle wraps and dewraps user content as part of its passage transition animations (see my explanation of the issue in a thread about animations at Twinery.org's old forums).
As a workaround, delaying the start of the video by a second or so should bypass the issue. For example:
{(live: 1s)[ <video src="..\vid.webm" width="640" height="480" preload="auto" autoplay="autoplay" type='video/webm; codecs="vp8, vorbis"'></video> (stop:) ]}
Two sites, just two. I'm a lot more familiar with Reddit so posted here first after struggling with this problem until giving up and going to bed.
The afternoon of the following day saw this thread still silent so I thought perhaps it was a bit too technical for here. I registered for the Twinery Q&A site in the hope that the question would be a better fit there and by the looks of it, it was. Your response was exactly what I needed to get my code running!
Thanks!
I realize you were probably attempting to hedge your bets, so to speak, but you don't really need to ask the same question on umpteen many websites.
What about the targets\About this folder.txt
file you mentioned seeing. Did you read it? Maybe it has some insights as to what's going on.
You could also try asking the question at the official website's Q&A section—probably what you should have done first. I know other Macintosh users check it, so you might get better help there.
Hey! Nice to meet you, thanks for making this.
> Alternatively, you can clone the DAD repository (or as a submodule) and either import the latest dist/da.js, or directly from source as modules such as import {...} from "dynamic-avatar-drawer/src/player/player.js"
and bundle everything together with webpack. This has the advantage of allowing an IDE (like WebStorm) to make coding a lot easier.
So you do! Thank you :). I haven't actually tried it yet, but that should be enough for me to get through it.
> What kind of help are you offering (I thought it'd be me helping you integrate it rather than you helping me with something xD)?
Ha! Well if I were to integrate DAD into my projects I'd like to give myself a pleasant experience as a user. Have you used TypeScript? I value being able to have error checking on types and function calls, so the next step for me after a hacky prototype would be to create a declaration file that would express the correct usage of DAD's objects and functions. Down the road if it's as good a fit as I hope I might create a react component so that I can take my logical character state and just drop that into a component to render the appropriate options and transformations. A published npm package for easy dependency management and import wouldn't hurt either.
I know my stack and use cases may not be yours, so I wouldn't want to ask you to cater to my needs. I'm capable of building the connecting pieces I want myself, so I'm using this chance encounter on reddit to offer to contribute what (if anything) I do build back to the project.
It's definitely a bug.
To help fix it, publish your story as HTML, delete it from Twine, open the HTML file in a decent text editor (I prefer Notepad++ myself), do a search for:
position="
and change any "NaN" or "undefined" in them to something like:
position="400,400"
and then save that. Now, import that HTML file into Twine and go into that story. Now just click on any passage which is more than one passage stacked on top of another, and one of them should pop off to the side. Once that's done you can rearrange the passages as you prefer.
Keep in mind that you can draw boxes across passages to select multiple passages to be moved by clicking down on the background, dragging the box window across the passages you want to select, and then letting go of the mouse button. That will allow you to move multiple passages at once.
Hope that helps! :-)
This generally means that the passage "position" data has become corrupted.
The way you normally fix that is:
​
<tw-passagedata pid="1" name="Start" tags="" position="900,400" size="100,100">
In any that have weird position values (e.g. position="NaN,NaN"
or position="-1.66768,-1000
") and change them to positive multiples of 100.
Save the HTML file with a different filename, that way you still have the original file if you break something.
In Twine, import that HTML file. If you have any problems playing it after you do that, you may need to either set the starting passage again (hover your mouse over the starting passage, click the "..." button, and then tick the checkmark next to "Start Story Here") or set the story format again (from the bottom menu pick "Change Story Format" and pick the correct story format).
Hope that helps! :-)
Thanks HiEv! I'm working on trying to figure out how to do a voice-over without talking during the actual recording... Not entirely sure how I'm going to work through it, though... I'll figure it out eventually. :) This is my very first recording of this type, so I'll get better over time hopefully. :D
P.S. I love MHA. :3 I'm making a game based on the series' Fantasy AU (I'm doing the coding while a cousin of mine does the actual story and writing part) so this is how I came to look into Twee itself (I think I also mentioned it during the recording). I'm thinking that the Twee format as well as Coda will help with writing our game.
Anyway, thanks again for the critique and compliments! ^_^
~Techy~
Wattpad's Tap had their beta go live last year, I believe, and while I'm not certain on the success of it so far, it does still seem to be going. It is also on the play store.
Also,, there is an excellent book on programming with Twine on Amazon: https://www.amazon.com/Writing-Interactive-Fiction-Twine-Melissa/dp/0789756641/