[CSIDE] The ChoiceScript IDE

Oh gee, now I feel bad for mentioning anything about syntax highlighting (and even putting a picture! how dare I! :anguished:). @CJW, please don’t bemoan us all our selfishness! The highlighting as it is now is very much workable, so consider it an if I have absolutely nothing else left to work on feature.

Yeah, I use it! I just personally prefer if it would go straight to the issues, since the game won’t really load anyway when there’s an issue. But it’s probably not everyone’s cup of tea and it’s certainly not the most critical thing out there. Feel free to ignore any of my rambles up there!

5 Likes

:blush: So sorry, that wasn’t my intention at all. That was a wonderful and thought-provoking feedback post and everyone on ‘the team’ would be delighted to see more of these detailed thoughts and ideas, or even just odd ideas as they occur to you—post it, it really can’t hurt to make us aware of it. More often than not it’s a case of “now why didn’t we think of that…?”

All I wanted to point out is that ‘User-defined Code Editor Highlighting’ needs to be taken as a whole (which is indeed a mammoth task) so that rather than be tweaked to suit one person or another’s personal preferences, CJW can take the time to properly design and (ultimately) implement a system that caters to just about everyone’s needs, within reason. But if you don’t at least mention your own preferences, it might never even be considered, so our thanks go out to everyone for expressing their own thoughts—and my personal thanks to @Eiwynn for raising yet another highlighting possibility for consideration (and thereby giving me the opportunity to actually explain the difficulties involved :hugs: ).

5 Likes

Because you were busy thinking of the 3058892877593858 other things involved, and all human minds come with some kind of limit on resources.
Plus, as you’ve pointed out, everyone’s tastes are different. Especially when it comes to something like CS, where people are going to write differently, code differently, test differently, etc.

Thanks to the team for your patience and dedication!

5 Likes

Ok so we didn’t have internet for awhile and I was going a little crazy so I made this:

Just as an example because I bombarded you with stuffs-to-do last time and thought it would be nicer to give an actual visual of some of the tweaks I was talking about. Again, feel free to ignore any of it!

(I should add - is there any way to make the game testing panels use black backgrounds? Especially now that CoG introduced background colors, is it possible to make that a permanent thing when a theme is selected in the CSIDE settings? Or referencing different CSS sheets based on which theme is selected? I don’t know how much extra work it would amount to, but black background for game testing would be, as some might say, “amazeballs.”)

6 Likes

The current version of CSIDE should already support the CS background colour setting:

I’m also actively looking into a “night mode” for general app UI :slight_smile:

7 Likes

I don’t think this question has been asked yet, which would be odd if it hasn’t, but using ctrl+F on these forums is frustrating and hard to sift through.

You’re probably wondering what the question is. Well, let me first tell you of my early childho- jk
Q: Do files need to be uploaded to dropbox to be used in the IDE? That just seems uhh… not good for me. One of my problems with it is I use files with the same name that are public and if I edit that file in the IDE and it get’s updated in dropbox, I’ll have published an unstable WIP of the file.
Is it possible to just upload files from my computer directly?

Edit: What would be super awesome is if I could even upload a workspace (.pwns) file.
** .pwns files would contain the folder directory and name of every scene .txt file.

1 Like

You only need Dropbox for the Web version of CSIDE, but there’s no harm in having two projects for the same game—a “development” version and a “beta test” version—in two different folders. This way you’re never directly working on the “beta test” version, you only ever update it by copying across files (from the “development” version) once you’re happy to release them for public testing.

You cannot upload files directly from your computer to the Web CSIDE, no (it has no means of storing them in the void, hence the use of your Dropbox account for this purpose). The way you’d do it is to use the Dropbox app on your computer to upload them to a Dropbox folder, which you then access / edit with Web CSIDE.

6 Likes

On the web IDE yes, it is Dropbox only. @Vendetta outlines the ideas really well. Both the web and desktop versions serve a different need/style of development. If you really want to “upload” files from a PC to the web IDE, a paralell dropbox.com tab would suit your needs. Though, having said that, it sounds like you’d better benefit from the flexibility provided by the desktop versions of the IDE (perhaps in tandem with the DB app)?

4 Likes

Would cside be phone friendly or have a dedicated app in the near future?

6 Likes

That’s a good question. We’d like to see something working on mobile phones, I have started making a few changes, but it’s not a top (or even official) priority right now. A dedicated app is certainly something that (whilst possible) isn’t likely to appear anytime soon.

11 Likes

So here is this thing i have noticed:

Player sees a text page…even before page break or choice, then he checks stats and then looks back at page and then again looks at stats they will keep increasing.

As it is really late and will be busy in weekend i can give proper tests with code next week. ^^

2 Likes

Thank you for letting me know, I’ll do some investigating. :slight_smile:

I finally got around to downloading and installing CSIDE. Even though I downloaded the initial desktop release way back in mid-June, I never actually got around to using it.

I’m currently unable to find an option to customize the default *author line.

I allowed CSIDE to install to the default location for my Windows machine ( C:\Users\[UserName]\AppData\Local\ChoiceScript IDE ,) and it’s using [UserName] for my *author line. This is not desired functionality. At least not for me. I suppose it’s possible some authors have their Windows usernames set for the same text string they want to use for their *author line. I don’t fit into that group, however. I also suspect I’m not alone in that.

While it’s not particularly difficult to change it on each and every single code test I perform and WIP I begin, it really feels like the kind of function I should be able to set up once and be done with.

Am I overlooking something?

My *author line is different then my Window’s user name. I’m not sure what allowed the different results.
Edit - perhaps it allowed it because I imported the txt file with it already changed instead of started a new project within CSIDE?

Oh, now that’s interesting. Unfortunately, I have no idea how or where to begin testing possibilities :slightly_frowning_face:

Edit: Your edit gave me something of a starting place, and I was able to do a little testing. After importing several sample files created in Notepad++, and creating several new files within CSIDE, I’ve learned… well, not something useful, but I did learn something. Specifically, while importing a file will always keep the same *author line the file originally had, the new files I create still have an *author line that uses my Windows username no matter how many files I imported in advance.

Again, this functionality is easy to correct. It’s simply unexpected and undesired as well.

1 Like

Hi,

By default CSIDE does indeed use your operating system (or Dropbox, for web) username where possible to automatically create an author line for you in new projects.

Seeing as you’d have to write the whole line anyway, I didn’t envision people having a problem with changing the name the odd time they start a new project (my bad).

Would you prefer it didn’t do this at all, or is it just a matter of allowing you to provide a custom username for CSIDE only?

This may be a quirk of my personality, and I may be unique in this, but I make a lot of sample files to test specific coding concepts. I do have a couple of long-term files I work on from time to time, but most of my ChoiceScript work is explicitly testing things like “Will code structure X work in situation Y?”, or “How does command A actually work?”, or even “What’s causing this error and how do I work around it?” I suppose I could (and perhaps even should) simply reuse a single file for that, but I’ve gotten into the habit of making a new file every time I have a new concept to test. Legacy CSIDE’s default “save nothing” behavior spoiled me.

So, how do I prefer CSIDE handle *author lines for all these files I keep creating?

I suppose my first choice would be having two text input boxes in the little “Name of Project?” dialog window that opens when you start a new project: One for title, one for author. My second choice would be inputting a custom username in the settings menu, then having it applied automatically. It’s actually difficult for me to call which of those two options I’d prefer better, and I nearly posted this reply with them in reverse order. :thinking: The current behavior is solidly tied for third place with the “provide no *author line at all” option, however.

I’m not sure how difficult it would be to implement any of the changes I’m requesting. Since it’s quite easy for me to alter an author line to suit my purposes, none of these changes may be worth the effort they’d require of you. Please don’t go overboard for my sake!

1 Like

I think these are pretty reasonable suggestions. The issue is finding the right balance of ease-of-use and customization. I’m trying to keep the settings list as streamlined as possible, so that it isn’t daunting to those who just want to change some font sizes and get coding. At the same time, I can appreciate that others like finer grained control, and we would like to accommodate that too. I feel like there may end up being cause for ‘Basic’ and ‘Advanced’ split of the settings panel shortly.

CSIDE has been built from the ground up with the idea that (wherever possible) you only need to see / use / understand which ever features you choose to. The ChoiceScript community has such a diverse set of enthusiasts (from hardcore, to casual and everything in between), that we wanted to create a tool that was not only really easy to pick up and play, but one that could also give the extra mile for those who wanted it too. The built-in cs console is good example of this masked functionality.


I have to admit, for as far as simply testing the odd code snippets, CSIDE has suffered a minor regression compared to the legacy web environment. I too would very much like to re-implement that scratchbook/‘throw-away’ behaviour, where a simple cut and paste of code can be run and forgotten without entering details or having to remember to delete the project later. At the same time, I don’t want that to be the (only) default behavior, as I think many people benefit from the streamlined (long-term) project creation CSIDE provides. I’ll have to have another think about this.

3 Likes

Hi @Kefs, I’m really sorry it’s taken me so long to look into this. I can’t seem to replicate this behavior in the current build. What platform are you using, and did you manage to put together some example code?

I was able to produce behavior similar to the described error with the following code:
*title Code Test 2
*author @Minnow
*scene_list
	startup
*create credits 0
*label start_loop
You have ${credits} credits.
*choice
	#Add 10 credits.
		*set credits +10
		*goto start_loop
	#Remove 10 credits.
		*set credits -10
		*goto start_loop
	#Quit testing.
		*ending
*finish

After making a selection from the choice, returning to the game from the stats page will repeat the *set command previously chosen, continuously increasing (or decreasing, depending on the #option chosen) the relevant variable. My laptop’s running Windows 7 Home Premium with Service Pack 1 (64-bit). I downloaded cside_setup_x64_v101.exe on September 3.

The following code also produced similar behavior.
*title Code Test 2
*author @Minnow
*scene_list
	startup
*create credits 0
*label start_loop
*set credits +10
You have ${credits} credits.
*choice
	#Return to the loop without changing credit count.
		*goto start_loop
	#Quit testing.
		*ending
*finish

As written in this second example, the credits variable should only increment when *label start_loop is entered either at the start of the “game”, or after looping through the *choice. And, prior to selecting an #option in the *choice, it appears to function correctly. It increments to 10, and remains there no matter how many times the stats page is viewed and returned from…

However, after proceeding through the loop even just once, returning to the game after viewing the stats page will increment the variable again every time. View the stats page a dozen times? Increment the variable a dozen times.

I also tested both versions of the code with *fake_choice instead of *choice, and the behavior persisted.

I then went back and removed the loop, instead going to a straight-through *choice and *fake_choice. The behavior persisted with the following code:
*title Code Test 2
*author @Minnow
*scene_list
	startup
*create credits 0
You have ${credits} credits.
*fake_choice
	#Add 10 credits.
		*set credits +10
	#Remove 10 credits.
		*set credits -10
	#Quit testing.
*label next
You have ${credits} credits. The end!
*ending
For one last test, I checked if going through a *page_break after the choice would break the behavior. I used the following code:
*title Code Test 2
*author @Minnow
*scene_list
	startup
*create credits 0
You have ${credits} credits.
*fake_choice
	#Add 10 credits.
		*set credits +10
	#Remove 10 credits.
		*set credits -10
	#Make no change.
*label next
You have ${credits} credits.
*page_break The End!
You have ${credits} credits.
*ending

It did. The behavior in question persisted only on the page immediately after making a selection. Once the *page_break was cycled, the behavior ceased completely. (It did not, however, return the variable to its original value. It remained at the new, increased (or decreased) value.

I hope this helps guide your own testing. Yes, I’m aware CSIDE is officially Win8.1+. I very much hope the problem isn’t due to Win7’s interactions with CSIDE.

1 Like