Glassix 2 v0.13 (finally) released
Changelog:
Well, that must be the shortest changelog I ever wrote lol. But one huge mess to implement.
Anyway, the current Events Editor is a simple basic version which is quite rough but gives complete control over event contents in the game allowing player and myself to add new authors, mods, files and events to the game and even to overwrite events.
I've been rushing to push it out today actually, there are several important nodes which don't have proper dropdowns list and use plain text inputs which makes content unclear but that'll be fix in next version. It's also missing some critical features, such as the ability to add player choices during events but this is due to the fact I didn't use that myself yet in the current events and it will be added in next version.
The code behind all this is quite complex because some nodes values will depend on some other nodes values. Let's take the citizen list for example which will be quite important during scenario. When creating an event, the scenario condition is not mandatory, because the event could be a generic event accessible even in Free Mode, like some small talk and general work events. So the value of the citizens list needs to be changed each time the scenario condition changes, or even empty the list of selectable citizens of there are no scenario. Same things happens when we want to show the list of furniture inside a location. We have an optional location condition and in the event steps, we can interact with the furniture in the room (for this one, I want to easy way at the moment and show all the furniture in the game instead of loading only the ones from the current location if any, I'll fix it later too).
There's also the complexity of the getting entities properties. The game contains various entities, such as infrastructure, location, furniture, citizen which have various properties (a name, a size, an age, a gender and so on...) and I want to make most of those properties accessible in events so that the event can properly refer to the needed property. For example, when having a general talk event and we want the player to use the current character name, the game uses a unique variable structure like "[entity.code.property]", and to retrieve the full name of a citizen in an event, we'd then use "citizen.citizen1.fullname". This part is also not using proper dropdowns but will in the future so that everything is easily accessible in the Events Editor and we can really create unique events matching the involved citizens. It'll also be possible to extend this feature to get access to relationships, for example, Glassix 2 will allow you to get married and change spouses (I'd like to add possible spouse harem too depending on the setting of the city we're in and this city could be changed during gameplay by the mayor, a job which the player could also reach with the proper skills and relations). Since the spouse of the player could change, we'd need a special property to retrieve and we could go with "
citizen.player.spouse.fullname" or "
citizen.player.spouse[0].fullname" if we use harem settings.
I guess I'm pushing it quite far here and it's really complex, but I wanted to share my ideas for the Events Editor now so you know where I'm going with this. I'll try to make everything easily accessible without requiring the player to know all those variables or entities because they will all be presented in a simple dropdown form with human readable labels. I've already started with several nodes but there were quite a lot and some required more dedicated UI to handle their complexity so it's taking quite a lot of time. To be transparent with you, I've been working on this editor for the past 3 months and stacking all my work time on it, it should be around 1 month of full time work on it. That's about 8-9 days of work on it per month, that's all I can afford at the moment since I'm quite busy with my web dev work. Next version should have most nodes completed + the new Choices tab, so still no new content in next version or maybe some basic events, though I'm not planning to release Glassix v0.14 in August (more details in another post).
Ok that's a lot of garble, let's try to give you some insights on the basic workflow of the Events Editor. I will release a proper documentation on the official game website asap too.
Here is a quick breakdown of how it works
The first step are to simply choose or create the author/mod/file where the events will be stored. You can add new authors, mods and files with the "+" button in the top right.
Next we can create or edit existing events.
Inside the event, we'll need to first configure some general data such as the trigger type or its frequency, a complete details of each field will be released on the official website asap.
Then we can configure the conditions of the events which comes in 3 types:
- Character (or actor): A citizen involved in the event which can have specific gender or age requirement for example. A lot of variables are available and will be explained properly in the official documentation.
- Global: A global condition such as the time of day or day index
- Flag: A custom author flag. Author will be able to add their own flags to keep track of players actions and decisions. For example in Glassix 1, one series of event is related to Sarah's secret and whether you keep it, share it with Hikari or share it with the boys. A flag would then have 3 possible values here: not shared, shared with Hikari, shared with the boys. Follow up events would then depend on the value of the flag.
Once the conditions are set, we can move to the steps.
A step is usually a block of text shown to the player, each block of text is a step. So if you have 10 blocks of text, you'd have 10 steps. But when we show a block of text, a lot can happen at the same time, for example, a citizen will spawn, an actor will change its animation, some flags will change and so on...
Here is a quick peak at the current node to impact the current step. I've tried to add tooltips to explain what each node does and when you add one, you'll have more inputs to configure the node you just selected.
For example if we want to add a screen effect (currently a simple image shown but I'll add more effects in the future such as screen shaking or black/white screen), we'll need to select the image to show, its color and opacity. Here again, I've added tooltips when hovering the inputs with the mouse.
Some nodes are set in stone with a fixed amount of values, but some other requires more complex processing, such as changing the behavior of an actor like its animation, the furniture he is using and so on... In such case, a "+" button is available directly on the row to add more nodes to this block.
Once the steps are done, simply save the file and give it a shot in game (I'm afraid there's no quick preview yet but that's coming for sure asap)
This was a quick overview, the full documentation will be available online asap too.
Event files are located in the game folder and can easily be zipped and shared online so that authors can share their mods if they want and expand the game content. You can even edit my own files but beware they will be overwritten with each new version. There is also a priority feature in the event system meaning you can technically overwrite my basic events by your own if you wish so. Just make sure not to use too high a priority otherwise you might lock some core story events preventing advancement of the story.
Anyway, I think I've bored you enough (if you read this far lol). I'm expecting issues with the editor since I didn't have too much time to test it but I didn't want to delay this new version more. Error log can be found in "C:\Users\<user>\AppData\LocalLow\Gaweb Studio\Glassix 2\Player.log" so if you encounter any issue, please attach the file with your message so I can debug this more easily.
I still have a lot to say but I've already spent 3 hours on this and I need to eat so I'll keep the rest for another post.
Thanks for your patience and support!