Long time lurker here who has just signed up to say thanks for all the hard work creating this. I’ve been using Atom happily to code but that lack of portability and consistency setting it up on multiple computers has been a real pain.

Tried the web based version and absolutely loving it so far. There are certain habits I’ll have to relearn but that’s a given with any new IDE.

To echo the previous people: Would be cool to be able to customize the colour scheme but I’m getting used to it pretty quickly. One thing that atom does quite well with the choicescript addon is that it highlights variable names when you create and set them. It doesn’t do it for *if conditions currently but that would potentially be helpful with understanding some of the more complex *if statements in my code. Is this something that could be done?

Finally I can’t believe you completed this in the last month of your degree, where do you find the time?!!? My dissertation was all consuming at that point in my computer science degree. I’m in awe!

edit: Forgot - could we also have an option to turn off spell checking for lines beginning with certain commands. For example my variable names are all flagging up because they’re normally multiple words all squashed together. I don’t want to have to manually add them each time to the dictionary. If we could set it to ignore for lines beginning with *set , *if, *temp, *goto and *create that would bypass the issue. Oh and *label.

5 Likes

I’m really glad to hear it. Purely out of curiosity, what are you finding most, shall we say, difficult(?), to adapt to? It sounds like there may be room for improving the intuitiveness of the program there.


Your other suggestions are all pretty valid. I’ll be looking into allowing general customisation of the way it highlights (and in what colours), but this will be a pretty big undertaking, so bear with me.


I’ve had some pretty mixed opinions on spellchecking “command lines”, as some people actually like that it misspells (catches errors quickly), but again, I’m happy to discuss and potentially review this (if I can’t squeeze it into a custom option).

Oh I didn’t. Fret not. We meant to release around Christmas, we missed that and then it wasn’t until I finished exams in mid-may that we managed to finish it up :laughing:

5 Likes

I like that the spell-checker highlights or underlines the words outside of standard English because when editing it helps me focus on the variable, label or whatever the item is and I can triple check myself.

2 Likes

I’m trying it at work at the moment so I’ve not had a chance to fully play with it yet. I think it’s mostly muscle memory adjusting to the new system but when I hopefully get a chance to do some coding later in the week I will try to make a note of things that don’t seem immediately obvious.

I completely understand about the spell checking. Any sort of programming spawns its own unique style code for the programmer in my experience so there’s probably going to be quite a few “marmite” options that people love or hate. I suppose once i’ve added them to the dictionary they are done, my main concerns are:

  1. Importing a large project means initially a lot of monotonous adding to dictionary.
  2. They are then added permanently to my dictionary, if I do another project then they could potentially stop me spotting a typo in a variable name if I use very similar names (which I do).
    Far from the end of the world though!

Glad to hear you’re all only human :wink:

Thanks again for your hard work.

4 Likes

I should probably 'fess up and accept much of the blame for this…

Being a lazy coder I use a lot of abstract and abbreviated variable names (“why use ‘intelligence’ when I can just use ‘int’”, I tell myself) so I find that once I’ve added them to my user dictionary it kindly points out all my typos and misspellings immediately after I’ve typed them, avoiding who-knows-how-many “Unknown variable name” type errors. :smiley:

I appreciate that upon first importing an existing project, or when adding new variable names, there’s a little bit of housekeeping to do to make sure the system work best for you, but I do think it’s worthwhile in the long run for that reason alone. We have to (or should) run Quicktest often enough as it is, without also having to rerun for every variable name typo it finds!

4 Likes

Very good point Vendetta, perhaps with a bit of flexibility on my part it could be a boon rather than a hindrance!

3 Likes

Apologies for the double post.

I’ve just been messing around with the console (wow, so much power!! :smiley: ) but might have stumbled across a bug and not sure where the best place is to report it.

When using “*track_all_on” the log updates when using the normal view that docks to the right but if I “popout” then it doesn’t update the log. I’ve tried restarting the game after popping out and also re-enabling the tracking after i’ve popped out but it doesn’t update. Going back to the non popped out window still works as normal though throughout.

Hope that made sense… Also hope I managed to delete all the “pooped out” typos…

3 Likes

I think this bit from the “Console” Help docs might explain your issue?

Easy to overlook though! As you say, it’s a very powerful bit of kit so there’s a lot of info on it to explain all the functionality. Do let us know if that doesn’t explain your problem though, or if there’s anything else not properly / fully explained.

3 Likes

Sorry! I haven’t fully read the documentation yet as I’ve been like a kid in a candy store. Certainly living up to my alias… That would make perfect sense. I’ll try to just write down anything else I’m not sure and check against the documentation first.

Thank you for your help!

edit: For future reference, where is the best place to submit any bugs we find?

3 Likes

No problem, glad to help.

If you’re unsure something is an actual bug, a query here is probably the best way to go. If you’re pretty sure it is, you could mention it here anyway or feel free to report it here.

2 Likes

So far, this is an amazing IDE. Great work.

My one question is, in order to do some of the more odd things like play music, you have to edit the index.html file in a standard ChoiceScript installation from GitHub.

So, my question is, can we edit such a file through the IDE in a way the changes are persistent and don’t have to be manually added to the exported game HTML file ourselves? As it stands now, if I wanted to add music and a JavaScript button to start and stop it, I have to export the game, and add it to the HTML file myself, with every export. The next export simply overwrites the old and removes those modifications.

4 Likes

Glad you like it!

Our current goal with CSIDE is to help with (and encourage) the active development of standardized ChoiceScript games. Long story short, we’ve decided to follow and promote CoG’s rules and styles. This means no code modifications (amongst other things, such as the use of *script). That said, there is a *sound command in the current version of ChoiceScript, which is supported in CSIDE. Would that suit your current requirements?

CSIDE may eventually support game modifications, but for the time being, we’re focusing on support for standard development. We’d want to support mods in a fashion that is as safe, easy and intuitive as possible. The avenues that modding opens up are many, so it’s going to prove difficult to handle edge cases for everything.

8 Likes

That’s perfectly fine. I hadn’t seen the “sound” command in my Googling and reading, and that would solve my problem much better than modifying the html anyway. Thanks!

p.s. The *sound command seems to work perfect in an exported game, but in the IDE it simply throws an error about “thisProject.path is not a function” and stops the game.

3 Likes

Wait!

*whispers
Is there actually a functional *sound command? I don’t see it anywhere! Not on the wiki, at least.

I didn’t see it documented either, as I think it’s super new.

But it worked with:
*sound whatever.mp3
With whatever.mp3 in the same folder as the source files. However, the IDE still doesn’t like playing the sound for me, but when exported to a game, and whatever.mp3 sitting in the game folder with your game HTML, it works like a charm.

4 Likes

Ah, that sounds like a bug to me. Hehe. Sorry about that. I’ll investigate! Thank you for reporting and my apologies for the inconvenience :slight_smile:

3 Likes

'Tis true, the Wiki always seems to lag behind actual ChoiceScript developments & improvements and takes a while to catch up, mostly because it’s a purely voluntary thing and all those involved have their own projects (and life in general) to pursue. I might wish for more contributors (all the Command pages can be edited by any Wiki member of reasonable standing, and new pages for such as commands or articles can be submitted by anyone)—or even just a decent CS Changelog from which to work on the Wiki more efficiently—but as they say: “If wishes were fishes…” I haven’t grown any gills yet, but I do remain insanely grateful for any and all help received!

And to not entirely derail the thread:

It’s worth noting that CSIDE itself uses the Wiki to provide Command Help. If the option of that name is enabled under Settings, double-clicking any valid, typed *command in the Code Editor window will launch your default browser (or open a new browser tab) and navigate directly to the WIki page for that command… if it exists! This is a very useful feature for newcomers and others still getting to grips with CS, so if anyone reading this can spare a little time now & then to help out with keeping the Wiki updated, please do mosey on over and pitch in! :slight_smile:

4 Likes

Cool, thanks. Also, in the end, you may want to include any sound files referenced in a sound command in an export to game, parsing the sound commands and copying said sound files out along with the HTML game file automatically. This way, releasing a game will also take all of its resource files with it with one click.

Obviously that can be a thing you implement later, as simply copy-pasting some mp3 files is far from the worst thing ever, and I am more than happy to do it that way for now. But a one-stop “click to prepare the game” that includes any external files in its workflow is obviously a great thing, and very much one of the great parts of using any IDE.

And so far, CS is very impressive in general. I come from Inform 7, and Inform 6 before that, and while I do tend to lean more towards parser based IF, just the very story-like structure of a CS game is a lot of fun to play and write in. While parser games give more of that simulated world, game like feel, CS gives more of the interactive story feel, not to mention the advanced goodies like variables and all.

One final question before I leave you alone :wink: ! As CSIDE is geared towards a streamlined, standardized CS without engine modifications (which I agree with wholly. Nothing makes software harder to work with than assorted and non-standardized modifications and hacks buried deep in HTML files), I wonder if the stuff from smPlugin.js or something similar is included, for saves and persistent data?

p.s. Added a *sound entry to the wiki: *sound

3 Likes

Just downloaded CSIDE and played around with it for a bit to test things out. I really love the interface and I think it’s really intuitive! Loving the spell-check feature and the streamlining of testing. Thank you so much @CJW and team for such an awesome job done.

5 Likes

I know nothing of this!!

Wait, this makes the process easier??

-runs from office-

5 Likes