[Tool] Chronicler - ChoiceScript Visual Code Editor

Weekly Dev Log 6:
10/1/15

University is back in full swing and so is the homework that goes along with it. Not complaining mind you, it is nice to get back to learning new things.

Not much to report other than I’ve been looking into better methods of constructing an undo / redo system. The one currently in use basically creates a backup of your project right after an action of some kind is made, and stores this in a list. When the user hits “Undo” it simply reloads the entire project as it was before the last change. As you can imagine, this is not a very efficient design. It is, however, easy to implement, and works quite well.


My current idea for a new undo system involves say, an “id” for each action. When an action is performed, a ds_map is created to store the relevant “before and after” data for the action and added to the list of undo events.
For example: when you begin to move a bubble, a ds_map is created with data for an “event_id”, “bubble_id”, “x”, and “y”. where

  • “event_id” holds BUBBLE_MOVE_EVENT,
  • “bubble_id” is the unique identifier for the bubble being moved
  • “x” & “y” are the starting location of the bubble before it is moved.

The cool thing about this method is that I can display to the user unique information about each undo event. Like, hovering the mouse over the undo button will show a list of available undo / redo actions. Hovering over a specific action will highlight what was done so you can compare the difference.

This means a lot more work on my end, but I feel the memory and efficiency savings will be worth it.


Another thing regarding the undo system, is that I would like to store the data in the project save file. This way, when you quit Chronicler and fire it back up again, you will still have the ability to undo / redo actions. I feel this is an important feature that nearly all applications lack.

Of course there will be an option in the settings menu to change the maximum number of undo / redo events to store in memory. (or unlimited, but this could cause Chronicler to crash if your PC runs out of memory!). Now that I think about it, I can simply store the last 20 undo events in memory and the rest in the save file. That will enable true unlimited undo’s. (as unlimited as your hard drive anyway haha). It will however increase the size of your .chron files. I may add a popup that asks if you wish to remove undo’s beyond, say, 1000.


I also need to find a way to determine whether the the user clicked the close button on the window and ask if they wish to save their project before exiting.


That’s all for this week. I’ll work on the undo system in my free time. This is a core feature that needs to be implemented immediately rather than tacked on later.

1 Like

Bi-Weekly Dev Log 7
10/15/15

I apologize for the lack of update last week, but I do have joyous news!

The Professional edition of Game Maker: Studio now includes the Ubuntu and Mac export modules at no extra charge!

As soon as I get some free time this weekend, I’ll upload official Linux and Mac builds of the current version of Chronicler.
The only problem I am anticipating is the extension I’m using for file management. I am not certain if it is Windows only or cross-platform. If it is the former, then I’ll have to look into other methods. GM:S uses a “Sandbox” feature when it comes to file management. It essentially does not allow the program to open or save files in any location that is not specifically allowed by the user. (and these locations only stick around until the program is closed…). Without the ability to save or load files without requesting permission from the user every time, I won’t be able to implement auto-save or loading the last opened project, and the user is essentially stuck with “save-as” every time they want to save their project.

I am hoping the current extension is indeed cross platform, but if it is not, then I’m sure I can find some other workaround for the Non-Windows crowd.


Some of you may have noticed that I updated the main post. I rearranged the sections into a more aesthetic and functional system. I notice that about 15 downloads occurred right after I did this, so it seems to be working. (:

1 Like

It is as I feared: the file management functions do nothing when built on the linux platform. I contacted the developer as they mentioned that their plugin was designed to be cross-platform, but that feature was not currently available. I have yet to receive a response. However, building it as Windows and running it with Wine (sort of) allows it to work.

Now, I could dig into the current Chronicler code and come up with a workaround, but that would involve changing a lot of things, and would generally be a big hassle. I feel it would be better to just account for it during development of Chronicler 2.0.

1 Like

So this doesn’t yet work on mac?

@Hanon_Ondricek

Technically, no. It doesn’t. In that I cannot build the binaries (.dmg) for it to run natively on Macintosh PCs.
However, if you are technically savvy and willing to follow some steps, it is possible to install Wine on a Mac.
Wine is an open source wrapper that Linux uses to run Windows (.exe) programs.


To elaborate further, I am in the process of developing Chronicler 2.0 from scratch. I fully intend to design it with cross-platform compatibility from the start. (Something I did not account for with the current version).


The reason that the current version of Chronicler cannot be built for other platforms is that I elected to use third-party extensions for more robust file management, and in the case of the launcher: a way to execute a separate program.

These extensions are (currently) for Windows only. I contacted the developer of the file management extension inquiring as to their plans for cross-platform support, but have received no response.


For Chronicler 2.0 my only option appears to be to create my own extension (.dll) that works cross-platform. This is something that I’m willing to do as it seems like a fun mental puzzle on my part, however it will greatly slow down development which is already sluggish due to prior obligations such as work and university.

I have looked into GUI libraries for other languages such as C++, C# and Java, but found them lacking in certain necessary functions. HOWEVER, I was playing around in Unity 3D the other day and discovered that it not only contains all the GUI functionality that I could want (such as a built-in textbox), but is also cross-platform and I wouldn’t need to use extensions for file management! I just need to brush up on my Unity C# skills and it seems like everything I need for the next iteration of Chronicler.


Now, it is possible to modify the current version of Chronicler to use the native file management functions unique to Game Maker: Studio, but it would basically force non-Windows users to use “Save-As” instead of “Save” due to the “security” features of GM:S. As I stated in a previous post, this is a less than desirable outcome for both the users and myself as the developer.


Thanks for your interest in Chronicler!

  • BenSeawalker
1 Like

Thanks for doing this, I look forward to seeing what you come up with!

For the issue with the file saving and sandboxing, you could implement the thrid-party system for windows only, and have it use the built-in “safer” functions for other platforms. I know it would inflate things somewhat, but it seems like a decent compromise to me.

@stainedofmind
Indeed, I have considered this. However, I feel that forcing non-Windows users to have to use “Save-As” whenever they made changes to their project would be incredibly annoying.

Now, I’ve been playing around with Unity 3D (on a side project) and I feel that it has a robust enough GUI system to develop Chronicler 2.0 in. I could even do some pretty neat 3D effects with it as well. haha


Now, if anybody really wants cross platform support immediately, I am willing to modify the existing code to use the builtin functions on non-Windows platforms. No need to reply, just leave at least 3 likes on this post and I’ll try to have the update out within two weeks.

1 Like

Somewhat Occasional Dev Log 8
11/24/15

Greetings good forum members. As many of you may have guessed, I’ve been excessively busy between work and homework, however, all is not lost! In my very little free time, I’ve been working on Chronicler-Next! (if you can think of a better name, please speak up…)

Unity is great, but like GM:S it is not designed for developing general use applications.
With this in mind, I knuckled down and poured over all the resources I could find on wxWidgets (cross-platform C++ GUI library). It also has OpenGL support for rendering graphics which is perfect for what I need.

I’ve been playing with different layouts, and decided that a Visual Studio style UI will be best for the new Chronicler. By this I mean that there is a main central window with tabs for different scenes and a side window with tabs for [Files][Search][Properties][etc.] Below which resides the three iconic “bubbles” ready for placement.

The [Files] tab contains (of course) all your project files. From individual scenes and variables to generated ChoiceScript code and project properties. This will allow, as one of you suggested, the ability to have both the scene and the CS code open side by side on the screen. I’d like to make it so that one can edit the code and have it appear in the scene and vice-versa. However I feel that may be a bit too ambitious at this stage of the game.


In any case, Finals are next week, and assuming I survive them I’ll have at least a month to dedicate to Fallout… I mean Chronicler. *ahem


I’ll post some screenshots as soon as it looks a bit better. My only concern atm is that I don’t have a Macintosh to build on and getting an ISO to work with Virtual Box is both more than difficult, and less than legal… If someone would be willing to help out on that front when the time comes I’ll send you an email with exact instructions for installing and compiling wxWidgets with XCode.

Thanks!

  • BenSeawalker
2 Likes

Hello all, Finals are finally over and to celebrate I am hosting a CoG game making contest!

The first annual Chronicler Christmas Contest! begins immediately and runs through Sunday January 11th. (see link for official rules) : Chronicler Christmas Contest!

Spread the word! Form teams! The winner receives 10 CoG games of their choice on Steam!


In other news, progress is being made on Chronicler - Next and you may (hopefully) expect the first beta release by the end of January when the contest ends. (How am I supposed to work and read all your submissions at the same time?) D:


Merry Christmas everyone! May you all have a wonderful holiday and happy Chronicling!

1 Like

I have grabbed Chronicler but when I try to run it it just hangs, with a “taking longer to connect than expected” message.

@cottage14 Check your internet connection? Just ran it myself 3 times myself with no issue.

You can try holding Ctrl and hitting the download button. That particular error is just saying that it can’t check your current version with the version on the server. (It should say you have an out of date version if you haven’t downloaded it yet)

Here is a direct link to the exe: https://dl.orangedox.com/tBa2idPkQ0ZnRSOIzl/Chronicler.exe

I’m developing a new version with QTWidgets so the launcher should be somewhat unnecessary until I’ve got that done.

Hey all, may I ask that anybody who is participating in the Chronicler Christmas Contest please post a response over there stating their intention?

I would like to have an estimate of the number of participants.

Thanks!

  • BenSeawalker

@cottage14 Did you ever get it to work?

Yeah. My problem was not downloading the thing, but getting it to run from my laptop. About the tenth time it finally connected to the internet and seemed happy.

However, I have not gone further yet as I have not investigated the tool far enough to understand it. I am a great fan of AIR applications, so will poke at it again soon.

a

I keep getting an error message whenever I save the thing, but I haven’t got a clue what causes it. Perhaps you could enlighten me.

ERROR in
action number 1
of Step Event0
for object obj_file_component:

Data structure with index does not exist.

@Cecilia_Rosewood

I’ll look into it. Could you perhaps send me a link to your .chron project? (You can email it to me at benseawalker@yahoo.com)

EDIT:
Sorry, just realized that the error is when attempting to save. >_<
Does it do that for the example project or one that you create?
Could you email me some screenshots of your project so I can replicate it?

Long… Drawn out… Sigh…

I appear to have lost version 1.4.8 of Chronicler and it was apparently never uploaded to github (v1.4.7 is on there now…)

I must have left it on my pc at work and forgot to upload it to github, or copy it to a data traveler…

in any case, GM:S has received a few updates, one of which changed the signatures of several functions. So now I have to wade through 10,000 lines of code, find the offenders, and change the arguments to match the new format. (not easy as the “search function” only looks for files, not what is contained in the files…)
Also, they updated their “debugger” as well to ensure that the messages it gives me are as unhelpful as possible. >_<

@Cecilia_Rosewood As I said before, just email me some screenshots of your project and I should be able to spot anything that might cause that error. Right now I would rather work on Chronicler-Next than try to keep up with the GM:S changes…

WHY I USE GM:S IN THE FIRST PLACE!? D:

Hi, I’m having some problems with chronicler for my short story. Whenever I try to copy and paste from scrivener or microsoft word, the text always lose the quotations, double dashes, and ellipses. Is there a way to fix this or get around this?

It seems to work fine when I type from notepad++, but I love my scrivener for keeping organized, and I don’t get the same feeling of writing with other programs. I tried copy/pasting into notepad++ and save/load it, but it still didn’t work.

@Icura That is an interesting bug… Have you checked the generated CS code (i.e. startup.txt) to see if they are preserved there? It could be that they are hidden in GM:S.


I know that this is a problem with MS Word as it uses its own special characters for those things you mentioned. Out of curiosity, does it show them as strange symbols, or are they completely invisible?

As this post mentions, this is a problem with any application that isn’t Word, and explains how to fix it:
http://www.laptopmag.com/articles/disable-smart-quotes-word

(As seen in the final image, you can also disable the “smart dashes” as well)


This post shows something similar for Scrivener
:http://www.atfmb.com/2012/06/11/scrivener-quick-tip-convert-to-smart-quotes/

(just do the opposite to convert to “straight quotes”)


Once you’ve converted all quotes/dashes to “normal” instead of “smart”, you should be able to copy paste it into Chronicler. (: