UCANT (Unity Custom Adventure Novel Toolkit) (In Progress!)

Discuss topics that are unrelated to Ace Attorney Online, introduce yourself if you're new and read the latest Member of the Month interview.

Modérateurs : EN - Assistant Moderators, EN - Forum Moderators

Règles du forum

UCANT (Unity Custom Adventure Novel Toolkit) (In Progress!) 

Message par Ferdielance » Mer Mai 25, 2016 9:20 pm

In working on my fancase All the Brooks and Soldiers, I kept running into the limitations of AAO. Not because AAO is inadequate - far from it! AAO can do pretty much any reasonable thing you'd want to do.

Sadly, I'm not doing reasonable things.

Suppose you want to embed elaborate Professor Layton-style puzzles, have smoother 3D object rotations than PyWright allows, or otherwise extend the base idea of an "AA game." You can fake some of that in PyWright, AAO, or even Ren'Py, but it'd be nice to have a framework that's a more open to extension in ambitious ways.

That brings me to UCANT.

What is UCANT?

In a few words: An Adventure VN engine for people who like to program, but also like having tools to make that easier.

In more words:

UCANT is a set of Unity assets, including lots of scripts and a simple text script parser. I'm using it to make All the Brooks and Soldiers, and that's its main purpose. But I will release it to the public to see if other people can make use of it, and try to support it in whatever limited way I can.

When should I use UCANT?

UCANT is meant for the following case:

* You are making an adventure novel, a hybrid of adventure game and visual novel. Examples include AA games, Professor Layton, Dangan Ronpa, Zero Escape, etc.
* You need a simple, clean way to handle dialogue and control flow, but also have gameplay scenes that diverge drastically from choice-clicking.
*** Those gameplay scenes would be easier to make in Unity than in Ren'Py.
* You want an engine that makes good use of a large chunk of the screen (like AAO), supports scaling (like PyWright), and does NOT necessarily emulate the look-and-feel of the DS/3DS.
* You are willing to write scripts in text for most basic operations.
* You are prepared to learn how Unity works for more advanced operations, like making your own minigame/special interface. CantScript lets you make "hooks" to stuff you write in Unity pretty easily.
* You are mostly using original assets, not importing pre-existing ones. AAOs make it very easy to use assets from AA, and PyWright has pre-built asset libraries! It's a bit tougher in UCANT. Not so much anymore! Now it takes animated .gifs

In short, UCANT is best used when...
* PyWright and AAO, which have had a lot of development work put into their usability, will not work for your project.
* Ren'Py will not work for your project.


What are the disadvantages of UCANT?

* Want to load pre-made AA assets from an online database (like AAO does) or asset packs (like PyWright)? UCANT.
* Want to import an animated GIF and have it straightforwardly turned into a talking character? UCANT.
*** To be fair, animating characters is a pain in every system, and at least UCANT is friendly towards making new expressions by mixing and matching eyes and mouth for a character.
*** You could even Frankensprite inside Unity using the animation editor, if you wanted. I suspect you should not, though.

*** Now animated gifs are supported and work very nicely!
* Want to prototype a game as quickly as possible? UCANT.

What are the advantages of UCANT?

* Simplifies integration of relatively gnarly game engine stuff. If you want to put in a 3D exploration scene, I'm going to try to keep out of your way.
* Simplifies AA-style text display and warns you about four-liners, etc.
* Simplifies common refinements to VN game design, such as giving shorter summary dialogue on repeated Talk/Examine commands, etc.
* Does not rely on loading assets from the Internet every time the game is played. You could put a complete build of your game on DropBox or even torrent it, and that'd be that. (PyWright also allows this.)
* Does some simple type checking and error handling early on, so that you aren't surprised by errors after the game begins.
*** Of course, not all errors can be eliminated this way. I can't detect an infinite loop, for example!
* Built on the Unity framework, which has lots of tutorials and documentation online.
* Works on any system Unity can deploy to (Mac, PC, etc) with a single click of the Build button. Warning: Not optimized for phones!

How does one use it?

* Get Unity 5 and import the UCANT .cs files.
* Add all the assets you need to use (characters, backgrounds, etc) to the appropriate folders.
* Register the assets with the game - for characters, this involves making a file that tells the game what a character's animations are, etc.
* Write any special engines you are adding to the framework using Unity's editor and C#.
* Either define new CantScript functions that can hook into your engines, or use the predefined "EngineHook" function to allow your CantScript scripts to call your engine.
* Write your game scenes as text files in CantScript.
* Playtest and revise, expect a certain amount of suffering at this stage.

What is CantScript?

CantScript is a custom language for Adventure Visual Novel writing that aims for:

* Brevity for common commands. PyWright, Ren'Py, and Catalysis all can be good examples in this regard.
* Principle of least surprise - how commands work should be fairly intuitive.
* Readability.
* Failing early and loudly, not quietly and subtly. If you make an obvious mistake in your code, ideally UCANT will throw an error at you as soon as the game starts, even if the error is in the endgame.
**** To this end, CantScript uses static typing - that is, commands expect very specific kinds of objects, and will complain as soon as the game runs.
**** This means you have to declare your variables, but there's a lot of leeway as to where you do that.

CantScript is not built for super-high speed. This is a deliberate choice - Adventure Novels tend not to require that in general, and specific segments that would require it can be handled as C# scripts you write yourself and hook in.

Where is the project now?

I'm implementing CantScript gradually. I've gotten a good enough system for handling commands in general, but we'll see how well it sticks together when I add flow control!

Current Plans:

My first step is to make a pre-alpha version that has the following capability:

* Show dialogue
* Set variables
* Do flow control, including player choice
* Display characters, backgrounds, and textboxes.

I'd like to see if people can make simple choice games with that! Then once I've gotten feedback on usability and documentation, I can add more and more features.

Once I am at that stage, setting up some kind of online code repository seems like a good idea.

Comments and suggestions are welcome, though I'm going to try to limit how much stuff I implement "out of the box." The goal here is to make AA or Danganronpa-styled games, not recreate AA or DR.
"A slow sort of country!" said the Queen. "Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!"
Avatar de l’utilisateur
Ferdielance
 
Message(s) : 729
Inscription : Dim Mars 09, 2008 12:46 am
Genre: Masculin
Langues parlées: English

Re: UCANT (Unity Custom Adventure Novel Toolkit) (In Progres 

Message par Ferdielance » Jeu Avr 20, 2017 7:10 am

UCANT was on hold for a while, but the project is now moving along again. The biggest news is that I've found a good .GIF decoder for Unity, so now UCANT does, in fact, support .gifs.

Right now, I've implemented an expression engine that can run a simple if statement on a wide range of integer + variable expressions. String variables are not supported _yet_. Flow control is looking good, if simple. Character emote switching is working, too.

There's a VERY long way to go, but the command system I've put into place, if a bit finicky, is well-suited to what I want to do.
"A slow sort of country!" said the Queen. "Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!"
Avatar de l’utilisateur
Ferdielance
 
Message(s) : 729
Inscription : Dim Mars 09, 2008 12:46 am
Genre: Masculin
Langues parlées: English

Re: UCANT (Unity Custom Adventure Novel Toolkit) (In Progres 

Message par Marios2 » Jeu Juil 20, 2017 1:45 am

UCANT be serious. Even anyone who CantScript UCANT make a complicated case. That's amazing. WhoCANT hope that this succeeds? All the brooks and soldiers are waiting patiently on UCANT's completion.

In all seriousness, it's good to see that this is alive (as of last month but still) and I hope you can finish it.
I also made this post for the puns.
Marios2
 
Message(s) : 7
Inscription : Lun Déc 08, 2014 6:21 pm
Genre: Masculin
Langues parlées: Greek, English

Re: UCANT (Unity Custom Adventure Novel Toolkit) (In Progres 

Message par Ferdielance » Lun Juil 31, 2017 8:08 am

Update:

* Massive refactoring and rewrites have slimmed down a lot of the messiest chunks of the engine, but more is still to come.

* Saving and loading games now works... sort of. I still need to polish some specific cases!

* This project is still in its infancy, but even so, I really do think I've seen some forward progress!
"A slow sort of country!" said the Queen. "Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!"
Avatar de l’utilisateur
Ferdielance
 
Message(s) : 729
Inscription : Dim Mars 09, 2008 12:46 am
Genre: Masculin
Langues parlées: English

Re: UCANT (Unity Custom Adventure Novel Toolkit) (In Progres 

Message par Ferdielance » Dim Août 13, 2017 12:36 am

Updates:

* Choice options have been added.
* Saving now takes a screenshot and metadata.

Next priorities:

High priority:
* Adding a proper quit button, instead of forcing manual exit or just ending when the demo ends
* Ensuring the save system doesn't create further problems
* Examine screens - the first step towards a location system

Medium priority:
* Fixing an annoying bug where the screen flickers on save
* Other aesthetics fixes for the interface, such as more fade transitions

I anticipate examine screens being tricky, but I have some interesting features planned.
"A slow sort of country!" said the Queen. "Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!"
Avatar de l’utilisateur
Ferdielance
 
Message(s) : 729
Inscription : Dim Mars 09, 2008 12:46 am
Genre: Masculin
Langues parlées: English

Re: UCANT (Unity Custom Adventure Novel Toolkit) (In Progres 

Message par Ferdielance » Lun Août 28, 2017 5:14 pm

Updates since last time:

* Several bugs in saving fixed.
* Preliminary Examine screen engine added and working.
* Resources now auto-register when imported to Unity - now you can drag a background, sound file, etc. into a folder and immediately call it by filename in a script, rather than rewrite a configuration file to include it. This does not work for character sprites (and shouldn't).
* Displaying variable values in dialogue added.
* Centered text added.
* Quit button added.
* Some more fades added, and fading system standardized.

To-do next:
* Revise Examine screen code to include optional back button and check for bad examine areas (ones that link to undefined script label) (Done, with automated generation of examine scripts.)
* Add typewriter mode shortcut. (Done. The command type "This is typed dialogue." will automatically make the color, sound, and centering of the text fit typewriter mode.
* Add text input prompt (Done.)
* Add investigation mode buttons
Dernière édition par Ferdielance le Sam Sep 23, 2017 1:09 am, édité 2 fois.
"A slow sort of country!" said the Queen. "Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!"
Avatar de l’utilisateur
Ferdielance
 
Message(s) : 729
Inscription : Dim Mars 09, 2008 12:46 am
Genre: Masculin
Langues parlées: English

Re: UCANT (Unity Custom Adventure Novel Toolkit) (In Progres 

Message par Enthalpy » Mer Août 30, 2017 3:35 am

Very nice! When do you expect to release the next demo?
[D]isordered speech is not so much injury to the lips that give it forth, as to the disproportion and incoherence of things in themselves, so negligently expressed. ~ Ben Jonson

Current AAO Development Priority: Issue #124+: Psyche Lock Back Conversation
Avatar de l’utilisateur
Enthalpy
Community Manager
 
Message(s) : 4121
Inscription : Mer Jan 04, 2012 4:40 am
Genre: Masculin
Langues parlées: English, limited Spanish

Re: UCANT (Unity Custom Adventure Novel Toolkit) (In Progres 

Message par Ferdielance » Ven Sep 22, 2017 7:28 am

I think I'm going to see if I can get an investigation going! With the examine screens in good shape (aside from a strange long load time on the first one called, which I can work on), once I have investigation menus I can start work on a much more substantial demo.
"A slow sort of country!" said the Queen. "Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!"
Avatar de l’utilisateur
Ferdielance
 
Message(s) : 729
Inscription : Dim Mars 09, 2008 12:46 am
Genre: Masculin
Langues parlées: English


Retour vers General chatting

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité