Also we're coming out with a specialized native reader which will eliminate all browser issues for many platforms. It'll be great.
This is certainly a fix for some
of the issues I have with web delivery, and I'll look forward to seeing it, but it still doesn't help with the part where I'm not always connected to the Internet. :/
I'm interested to know how you use rollback. I don't have a good sense of how it can be used. Unless the game is Prince of Persia.
Well, in a lot of senses I'd use rollback in exactly the same way as I'd use readback; to go back and catch stuff that I missed either because I was clicking too carelessly, or I clicked accidentally, or something like that... only with rollback there's the added advantage that it gives you all the old graphics and visual effects and sound that you might have missed as well.
Another, similar use case is if I go to select a menu item, but accidentally click on the next one down, and end up making a choice I didn't actually mean to make; with rollback, I can roll back to before the menu and choose the item I actually wanted to go for.
Lastly - and this is the part which is contentious for a lot of developers, but it seems that the more people play with it the more they accept it - with rollback it's possible to say "you know what, I don't like this answer after all, I'm going to go back and change my mind". A lot of beginners in Ren'Py try and find ways to block people from doing this, because they feel like it's 'cheating', but realistically you can do exactly the same thing with save/load anyway, so there's little point trying to block it.
To cite a real-world example of this use case, when the user 'ArianeB' signed up to this forum, they mentioned a game they'd written before and put on their website: you can find it here
. I had a go, and one thing I was rather annoyed by was that some choices (and there are many) lead down very limited cul-de-sacs which the player quite possibly didn't intend to go down. It seems that if you do more than one physical-affection thing when you first meet the girl, for example, you get stuck in a situation where you can only
do more, which is going to piss her off. It's not a realistic restriction - should a person find themselves in that situation there's nothing stopping them from stopping and talking about poetry or something, but the game wouldn't let you... so a not-unreasonable response would be to roll back to a point where the game would let you do what you actually intended to do in the first place.
On transitions being limited to just scenes/lack of character sprites. This is NOT TRUE.
Code samples. First of all, let me mention that the code samples you're posting is the machine verbose output, you're not expected to actually write all that, and that the renpy examples you showed is not the equivalent of the NovelStream script.
You're leaving out where you declare the char name variables, which is an unfair comparison.
I did look around for documentation, but all I could find under docs was the first tutorial video, so I had to guess, play with the editor and see what it produced, and look at existing VNs to work it out for myself. I couldn't find any way to declare char name variables, nor any use of such in existing VNs, so I presumed that the pattern I did see was the way it was supposed to be done.
Is there any particular reason to not have the editor support variables for things like character names? Or is it there, but I can't find it?
As it goes, I had tried that one last night. I didn't see any animated sprites, though?
So as a writer, first you have your text. I consider the text the most important, basic, part of the story. I write my text in OneNote or Word, and then I paste this into the Ignition script view.
I then add the basic tree, the ;s ;p and ;b, that create the scenes, pages, and breaks respectively.
Firstly, I would suggest that this isn't the way everyone is going to write. VNs are very much text-driven, it's true, but they're also visual - hence the name - and I think you'll find a lot of people write the scene direction stuff - when characters appear, the background, etc - in alongside the prose from their first draft onwards. I know I do at least to a degree.
And right now, writing on Ignition is a perfect experience for me.
Beware the curse of familiarity; I'm sure you're familiar with it already (if you'll excuse the pun) since I get the impression from the way everything hangs together that this isn't your first software project... but in case you aren't: it's very easy to become so familiar with what you have gradually built up that you never stop to think how it must be for someone coming to it for the first time.
This is a common problem for bedroom programmers difficulty-balancing when making games, because by the time they have something working they're so intimately familiar with the mechanics and the interface that their first attempt will likely be balanced for them, an already-expert player from all the incremental testing, and everyone else will find it obscenely hard. The same thing goes for UIs, though - it's often the case that when you first put them together you just shove stuff where it fits, but you never revisit it and after a while you're totally productive with it because you know it, but when someone else comes along they try it for five minutes and find it impossible to use.
I had the impression that this was probably the case with your editor when I first used it. But on the other hand, I'm used to typing everything out by hand anyway, so I'm maybe not the target audience.
Also, when clearing the page Ren'py uses the nvl clear command.
In Ignition you just change the page with ;p, or use ;h for an auto hiding break.
There's also a more verbose ;c clear page as well as a ;c clear page images, but hey.
From my point of view, the insistence of beginning every command with a semicolon is one of the things that puts me off scripting in your language, but I can understand why you're doing it if you're so desperate to avoid quotes around everyone's dialogue. (I can think of characters I'd prefer to the semicolon, but that's beside the point.)
However, I don't understand why you're sticking to single-character commands, it's counter-intuitive, hard to remember and hard to read. It seems to me it's things like that - or the impression of things like that, since no modern language I know of has such obtuse commands - which put most people off even trying to learn to program.
And can Ren'py play an anonymous audio or show an anonymous image? It's the little things like this that makes deving on Ignition faster, because you don't need to declare stuff you won't need later on.
Personally, I seriously doubt that it makes a huge difference, especially since the majority of VNs I've seen developed on this forum re-use the same images over and over again, so it wouldn't make sense to use them anonymously anyway... with the exception of so small a percentage (event CGs) that it's hardly worth considering.
Personally I use the source control built into NovelStream because it suits my needs. I presume this is better for the 95% of writers out there than learning Git with all its complexities and unneeded features.
Complexity equals flexibility, though, and none of the writers I've ever talked to have had any trouble with something like SVN. You make it sound like learning Git is equivalent to learning C++ (or CVS! :3), but really, there's not that much you need to know. Especially since most VCSes these days have at least one decent UI you can use to access them.
And again, relying on the VCS built into the site carries with it all the problems inherent to relying on the site for anything else - I'm dependent on you and your datacentres, account funds and goodwill, not to mention my internet connection... and if any of those go missing, suddenly I can't get at my work. It's one thing to rely on NovelStream existing for VN distribution, because if it dies one day I can always port my VN to another platform... but if it dies and I'm also relying on it for keeping all my files, then I'm screwed - I've lost everything.
(IIRC Git (since you cite it as an example) is decentralised anyway, so even if I lose Internet access to the server it's on I can still keep using it locally and the changesets will get merged later, and the same goes for my artists working in a different location.)
We do have a (basic) VCS. It's only available if you're logged in, so I can see how you might miss it. That's why I said we offer something more. If you're an experienced developer you can use your own high power VCS, but for everyone else they'll be automatically introduced to a revision system that's great for most teams.
As it goes - why not use a recognised "high-power" VCS for your online offering, behind the scenes, and then offer more-experienced teams direct access to the server so they can log in form their own desktop tools? If you use something decentralised like Git, then you have all the benefits of a built-in online system without the drawbacks...
Since all the media assets are downloadable from your website via URLs in the source of the page for each VN, do you have any plans for making it difficult for people to rip other people's graphics off? If I had to guess, I'd say amateur game developers are probably more worried about this than straight-up piracy, and it's an area that Ren'Py does have a slight advantage in.
We're very big on people making their assets available for fanfiction. This can only help promote your work. If someone is using your assets for their own unrelated work, you can sue them. I don't think a technological response is the correct solution here.
Whatever your personal views on the matter, I expect this will be a major concern for a lot of people, all the same - if you don't do anything about it, expect lots of support issues that basically read "someone is stealing the sprites from my VN please make them stop". I would advise offering people at least the option to mark their assets as private to just their VN.
What if people don't want to see fanfiction around their work? Maybe I'm making a touching auto-bio VN about the last days with my now-passed-away grandmother; the last thing I want to see is some Internet arsehole re-animating my grandma in a poorly-punctuated swearing-filled parody.
(As an aside, how do your partners feel about this? I'm kind of surprised if they have the rights from the Japanese property-holders (for, e.g. Crescendo
) to allow the sprites from their VNs to be used in random user VNs for free, let alone profit... I believe the Ohtori Princess
VN uses screencapped images from the Utena
anime, is that licensed at all, let alone for everyone on the Internet to use those graphics for their fan VNs?)
Each ajax load preloads all the content on the NEXT couple of segments so that you're never stuck on a loading screen.
On Social I can write many articles about it, and tonight is really too late. But for example, if your friend gives you a few tomatoes, you feel compelled to give some back to her, regardless of whether or not you enjoy the process of growing tomatoes. With social, the interactions within a game becomes not just about the game itself, but there's extra addictiveness added, an added viral aspect, because you find the game more rewarding when it rewards your social life, not just your fake game life.
Sure, I understand how things like FarmVille thrive. But those things are not VNs, which revolve around reading text
, not giving people things or making (even pretending to make) things or whatever. If you were touting Dating sims I could almost see the utility of stuff like this, but you don't seem to be aiming at dating sims; I'm not convinced that your scripting is flexible enough (unless there's yet another hidden layer you've not mentioned anywhere). Not to mention that you explicitly mention Ren'Py's DSE on your comparison page, which gives the impression (when coupled with the very long list of basically the same thing you cite that NovelStream can
do) that it's not something you care about.
So how does the so-called Social Web fit into our enjoyment of reading a VN?
You mention 'Achievements' and 'GamerScore' on your features list; are you referring to the XBox Live things with those names (in which case: have you dealt with everything already or would people have to negotiate with MS themselves?) or are they analogues that exist only within your service (in which case: isn't that a bit disingenuous?)?
And they're not xbox live achievements, they're NovelStream achievements. And it's not disingenuous, have you never heard of Starcraft achievements or Steam achievements? Many services offer achievements (xbox is the forefounder), it's just that we do too.
Many platforms offer 'Achievements', but I've never seen anyone offer 'GamerScore' apart from XBox Live; I wouldn't be at all surprised to find it was a Microsoft registered trademark. I definitely feel that to place both items next to each other in a features list and not make it clear that you're not talking about XBox Live Achievements and GamerScore is disingenuous; it's obvious that a significant number of people would read them as being affiliated with MS.
I you honestly don't mean to deceive, I would strongly recommend re-naming one or both of these features.
Also you will be able to have your VNs be Facebook Apps and employ the many Facebook App promotion strategies.
This, on the other hand, is kind of interesting. Although I wonder to what degree people are willing to sit down and put several hours into reading a VN on a Facebook app... and whether they'd be able to, with all the other FB distractions.
Jake wrote:I think that you can pretty much guarantee that if anyone uses your service at all, it'll be a bigger problem than you originally thought. ;-)
Excuse me, but we already have publishers on board, and at least 3 30+ hour visual novels that will be launched at release. We are also working on many more.
Publishers != users. I meant "if you have any significant number of end-users on your service, then I expect you'll find it's a bigger problem than you originally thought".
If a service is popular, then people will first start trying to game it, and then start trying to rip it off and/or rip people off with it. So if you're predicting high volume, make sure you're ready to deal with hundreds of users complaining that through absolutely no fault of their own they managed to have bought some really expensive VN - the proceeds from which have already been siphoned off into the scammer's bank account - and now they can't get into their account.
(It's also worth putting systems in place to try and mitigate the user's ability to do stuff like that, but expect it anyway, whatever you do.)
If somebody shows me their source, I will develop Ren'py conversion tools. I don’t have anything to work off of ATM.
As it goes, there's a couple of example projects - the Ren'Py demo and "The Question" distributed with Ren'Py itself. IIRC Mugenjohncel also made the script to "The Fucking Question" open-source, and IIRC something called "Heavy Metal Madonna" which I've not personally looked at.