Posts by defisym

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.

    The implement of array (at least Android is, we don't have Windows source, but usually the behavior is the same) has no optimize for sparse array. Memory will be allocated once write to a coord that exceed the current capacity.

    So it's easy to calculate the memory usage, x * y * z * element size, result in byte, divide it by 10^6 for mb. For value, element size is 4, and for string it's string length + 1. If you alloc a 3 dimension array (large map tile info for example) it's possible to exceed the 3.2GB memory limit.

    Solution : use another data structure, or wait for the (promised) 64bit update.

    Encrypt is done in another extension by using the bcrypt API of windows, the algorithm is BCRYPT_AES_ALGORITH, and first 8 character of the key input in fusion is the 16 byte key and later is 16 byte IV (fusion uses unicode so 8 wchar is 16 byte). If input is not enough then a not rigorously algorithm is performed to padding it based on given part.

    Webp and Png are good but the good old Jpg won't load? <-Is that a bug?

    You can check the file with ffplay, a tool provided by FFMpeg, to see if it's supported, which will provide detailed error infos.

    Please login to see this attachment.

    About the jpg, as this object is designed to display video and do not have gap when loading like ADS, when a video is loaded, extension will seek to the keyframe of the position you given and decode to next valid frame with exact time stamp, to grantee there is something displayed, then revert to the given position for actual playing.

    For jpg file, the seek to timestamp 0 function seems does not reset the context (for reading in short) to the state it's created, so the decode part receives an error of end of file then return blank. IDK if it's safe to skip the seek if the current time stamp equals the given time stamp (although seems it can fix the jpg issue), as it's a base function shared, not only the open routine rely on it but also other functions needs to call it.

    Maybe you can check Please login to see this link., which provides several options about anti-aliasing.

    As it's rendered by another lib, so it doesn't have alpha issue or eat blank characters like DX11 runtime

    These are great news, thank you defisym !

    A question, is this extension also HTML5 compatible ?

    [EDIT] I've seen that it's also HTML5 compatible, which is really fine !

    Unfortunately, after the port of android, the transplant to other platforms is not continued.

    After the 295 update, due to the runtime change, some breaking change was also implemented to this extension, so now it's windows only (or rigorously, not tested for latest android runtime, or to say the android version is still 2022 version)

    Quote

    Theres some free or sale tutorials / archives to understand the how to create visual novels on Fusion 2.5?

    Please login to see this link.

    It's not something that can be said in short. The most important part is building your own script system, as it's torture to hard coding all scenes in events. And you need to make something handy for script editing. Made Please login to see this link. to provide error diagnostic, asset preview and hint, quick add/edit dub files, etc. I spent almost one year making it handy and usable.

    Please login to see this attachment.Please login to see this attachment.

    Anyway, if you work very hard you can just hard code everything just like what I have done eight years ago.

    The script can be based on a big excel describe everything of one line or only describe the operations, previous one is easy to implement but hard to extend, latter one costs more time of parsing (text split & regex usually is enough), saving/loading, and cannot implement features like 'jump to next selection' easily. About the routes, you just need to record the global values that affect it and current script position, as one script calls another at the end, so on the contrast it's not that hard comparing to actually write multi routes.

    Once the core part is done, other systems like omake is super easy to implement and won't cost long.

    Quote

    pressing "Esc" opens a screen where you can choose "save game" which displays 4 spaces where if you click on one of them it saves the game generating a screenshot of the scene on the screen

    As you cannot hook fusion's render system to get the state of one layer when there's something above it, the only solution is capturing the screen when you open the menu (to memory or clipboard), and save it to disk when user actually clicks any save slots. And you need to capture the correct area (e.g., client area without title and menu bar, and handle the black part around it when window size is different to frame size), and taking DPI scaling into account.

    You also need to build your own save/load systems, depending on how your script system is designed. E.g., iterate all graphic objects and save its states, then restore it when loading. Note that fusion doesn't have built-in cross frame caches, so it will be a performance bottom neck of save/load and fast forwarding

    Please login to see this link. is designed for this, especially for visual novel, and it works properly most of the time.Please login to see this link., which cannot be fixed by my side.

    Cool extension, but ADS works with MP4s if the computer has the codecs (Win10+ does), maybe remove that from the help file?

    Yes but you can't assume players are not using Win 7, have those codec installed, and may conflict with other software codecs like pot player (got one report but forget the details), and that's the main reason this extension was made: during crowd founding got several reports that video cannot be played.

    I can add a comment to clarify this.

    it's easy to implement in events, as 2.5plus introduces break for child events. But usually it's not good to hard code then, for script parsing, it's about index jumping, each line has an index. You can wrap it with if or switch clause, but it is jump internally.

    E.g.,

    Code
    if select != 0 goto label ELSE
    // select 0
    jump to label END
    label ELSE
    // select 1
    label END

    Dump file:

    Please login to see this link.

    Context:

    It's a simple function to save surface to file and stretch to given size.

    If the target surface is HWA, it will be converted to bitmap first, then create a bitmap surface with wanted size, then stretch target surface to it.

    the stretched surface is saved by ExportImage.

    Crash is caught in stretch, which is provided by surface class, and it's a bit random: sometime crash each time exporting and sometime won't crash after several savings.


    Thanks in advance.