Story System

STORY SYSTEM for OpenBoR 2.1

No permission to download
Or maybe im confusing stuff for no reason, just simple dialogue ignoring who's player 1 ,2 etc will suffice.
So theres only talking portraits no matter how many players are onscreen, but i do find it weird if i play only 1 player game and there's portraits of multiple characters onscreen even tho theres only 1 onscreen.
 
That will do too, besides in RV2, his dialogue is just simple and mostly off screen characters. The parser on how the thing works is it detects who's player is active. For example, when the player instead uses player 2 controller, the parser uses player 2 name. Hierarchy goes like this:

Player 1 -> Player 2 -> Player 3 -> Player 4

For off screen characters, it depends on how you write the story, for example, you got some central commander that is watching the player's moves and he addresses directly to the player for no matter what the player is using. Another is the end boss of your stage where they taunt you off the background before they show their faces in the end area of your stage. A lot of possibilities with off screen characters, but yeah, if you don't introduce them early in the story, like a prologue cutscene, it is weird.  :(

There's also the novel comic book approach, like Max Payne, which just displays a certain comic panel or something. For that one you can use the portrait parameter as well as modifying the variables for the story system logic script that controls portraits.  :)

The gender feature on the other hand is useful to show the features of string manipulation. I got it working now actually. I'll just introduce that to the documentation for the system later on. There's still some bugs that needed to iron out.
 
Actually, I did the type 2 in the level text and it worked, an empty canvas without hud and even the game over screen, which is just perfect for displaying credits.

Some of the features have now been polished and fixed with new features and things discovered as well. I placed some sound script functions that I've tested working and placed it in the documentation project.

However, the problem now is credits, there's a bug in it that adds extra distance to the text, I've been trying to fix that for the entire day, but still nothing, I think it has something to do with its for loop, it might need to be rewritten from scratch, but I'll try ahead and do some wrangling before going to bed.

BTW, you guys know how to check if a file's there or not?
 
NEW VERSION! 1.3 is now in the first post for download.

There are things that are changed though:

  • Various function changes - Replaced _pausemusic and _fademusic into _quickpausemusic and _fadepausemusic respectively since fademusic() and pausemusic() can be toggled to be turned on or off. I also added new commands _noskip, _back. See the readme for details. Other than those functions, everything is the same.
  • The turnWhite() function that is supposed to be in updated.c is now in story.c instead, further making it easier for new users to place the system without doing much editing to their current scripts.

  • Added multiple portrait system, using what I learned from Piccolo's story scripts (which is the same as Volcanic's implementation)
  • Added substitution flags for player name and gender nouns
  • Fixed the scrolling text, adding linecount and spacing parameters, since I rewritten some of the logic for drawing and adding text lines

Any questions, you can reply along and let's see what we can do.  ;)
 
Great features, Dude! ;D I think now I got a new idea for the story system. How about in the pre-battle dialogue, the HUD hides (in the very beginning of stage), and after the dialogue closes for proceeding battles, the HUD shows? What do you think? I think it would be complicated to do so. SvC, BB, SFA series, and KOF XIII could be a reference for hiding HUD for pre-battles and showing for battles. Just a thought.
 
That's entirely on your implementation. The system does not have the ability to hide the hud out of the box since it does not have a custom hud system to begin with. You have to write that yourself, but that does not mean it's hard to implement the system to that kind of feature. Note that there's a single index variable that activates the entire story system logic (see story_define.h for the index list) so just check if it's active.

I want to do that to my project, Shadaloo Dolls, where I have these SFA3 styled conversations (similar to KOF XIII), or I could make a different spin for it. Either way, with the way the system is implemented, that won't be hard to do. I'll try to make the system more easier to customize whenever I can with the capacity that I have now.

BTW, have not placed in the instructions, if you used the 1.2 system and wondered that 1.3 doesn't work, it's not
Code:
story();
anymore, it's now
Code:
storySystem();
. Sorry if that bothered you guys.
 
Any entity can cover the HUD if you put setlayer 999999999. I've used it before for special move cut-ins in some of my demos.
 
Yeah, i did notice that. I don't know if this is the case though, but since I've been using text objects instead of drawstring techniques, I don't know if setting the z too high might hide the text. I've used text onjects since drawbox hides the text on drawstring techniques and dra wstring is just too costly for drawing strings of dialogue, except on the scrolling text though, which needs movement. I think it's possible to implement, but since the limit of text objects are only 50 indexes, I think it's hard to use that, but that's out of my scope so far.

Anyway, I hope people would learn from the code and might contribute some improvements to the system, which is still messy as you would see, some of the scripts range from 150-200+ lines of code, with some styling of ifs and elses to reduce line count, but overall, it's complex work.
 
In Openbor stats if you go to 'tools' theres a drop down option for 'file in use checker' it will display all files and state wether it is in use or not.
not really. If the models are loaded by script, the tool won't get it.
 
Cool update, the system is already quite complete  8)

I started creating a basic dialog editor yesterday (mostly to avoid typing underscores and/or replacing spaces). I'll try to release a test version tomorrow. Might include one or two scripts I use as well (a global offset shifter/scaler script and a script that parses models.txt and makes a copy of chars folder containing only files - sprites, etc - that are actually used ; quite convenient to publish a test demo).
 
Yeah, i think so. There are many things for this system that might need fixing, but the feature set can already stand on its own. I'll try to put something, a video that would put up various situations to do with the system, custom dialogs aside from what was default, use of scrolling text at the beginning of the level or something like that.

For the editor, thanks for doing that. Although the story system by itself can be used with any text editor, something that can work with underscores and other things, it would be much better.
 
Ok here's the first version of the dialog editor, hope it's not too buggy.

Download dialog editor

Notes :
- Don't forget to set your mod data folder (Menubar -> Tools -> Settings)
- While editing, use tab key to go from on column to another
- double clicking in the portrait column allow you to view and select the portrait you want (double-click to select)
- I have also included some utility scripts as mentionned earlier (Tools tab on the left of the window)
 
BTW, what's your specs with the editor, what did you use to make it and such? I'm dloading it now and check it for myself, I'll give you some input.
 
It's written in Python and use Qt (via Pyside) to handle graphics components. I've written and used it on a Linux distribution (Kate editor which I use for OpenBOR as well) and then packaged it as a Windows standalone with PyInstaller.

Python & Qt are really handy to quickly create cross-platform applications, and I really appreciate how easy and flexible it is to expand Qt components  :)
 
There are various points that I want to keep in mind both for myself and the editor.

The first is I need to specify if the thing's a scrolling text type or a dialog text type. I might make a flag for types so that not only benefit the editor, but also the system, since you wouldn't accidentally mix up two text.

Second, for the text editor, if the flag is possible now, you may want to size up the last two parameters for scrolling since it only requires two parameters, font type and x value. Fixing the message text boxes to 64 characters is also a must to whereas to prevent problems later on with displaying text.

You may also separate my system from Volcanic's, since even though there's similarities in structure, I modified some of my syntax for some of the functions. Useful if you're going to make some dictionary on functions.

Third, this is for my case, I will need to separate some values for the story text, this way, you can specify the parameters for the scrolling text and dialog, for example the color for the separate dirs, x values for specific fonts (with a parameter style similar to fontmonospace) and other tidbits. Probably a new text file called story.txt in data, I'll do that after I attend to my parents today.

Finally, the editor, although still primitive looking, no offense, is actually quite comfortable once you get the hang of it, like all other editors I've tried like OpenBOR Stats or Fighter Factory which at first was so complicated, I have to look at internet tutorials firsthand, but when I got the feel of it, I don't think I can't edit OpenBOR without Stats or ripping is hard without the use of FF3. This is just a babysteps editor, but it's already having a potential to stand among these things, that's a big thing for me.

I'll try to give more input to this if you're still working on it.
 
Thanks for the input and feedback. I'll probably work again on this in a few days, and at the same time proceed requests and suggested ideas, if there is any.
 
Back
Top Bottom