Version control / Source control

mcc111

  • Posts: 4
Hi, I tried out Stencyl tonight for the first time and was very impressed! I'm interested in trying to use this for serious development.

One thing I am missing so far is being able to use a version control software, like "svn" or "mercurial", with Stencyl. This to me is a feature I really depend on, I like to be able to experiment with different things and not be afraid I will not be able to get the program back to the last working state.

What I've done so far is just `hg init`'d my game directory and then added all the files (except .bak's) to the repository. This seems to work but it doesn't work great because Stencyl keeps adding and removing files in this directory. Normally I would not need my IDE to be aware of my version control system but Stencyl seems special because it does do all this automatic file management.

Is there a way Stencyl could be made to kind of be aware of a version control system, since it knows when files are being added and removed and thus knows when it is time to "add" or "remove" a file? Alternately would Stencyl happen to be based on something on the inside like Eclipse which I could add an existing vcs plugin to? Thanks!

Sorry if this is a question that has been asked before, I can't seem to find a way to search the forum for previous posts.

Jon

  • *
  • Posts: 17531
This might be doable through an extension that's able to hook in at the times when it starts adding and removing files from the system. We've actually been wrangling internally with this too since we'd like to start checking in our content (games, kits) into SVN but are resorting to ZIP's for now.

Rob

  • *
  • Posts: 1268
Not exactly version control but one can keep saving their game by going to Game center left banner Game settings, left click and enter a new name in Name field. You will find out that you've actually created a duplicate of the game in your game folder.
GOLDEN RULE #1 : SAVE YOUR GAMES FREQUENTLY
IOS/XCODE DEBUGGING
http://www.stencyl.com/help/view/xcode-ios-troubleshoot/
WATCH STENCYLWORKS VIDEO TUTORIAL BY SUNRISEKINGDOM
http://www.youtube.com/watch?v=KDfRfjzr9j4&feature=channel_video_title

gigaclon

  • Posts: 163
well if you use dropbox you get a sort of version control

mcc111

  • Posts: 4
This might be doable through an extension that's able to hook in at the times when it starts adding and removing files from the system. We've actually been wrangling internally with this too since we'd like to start checking in our content (games, kits) into SVN but are resorting to ZIP's for now.
OK! I was actually going to ask whether there was some way to create a Java extension to the stencyl IDE. I think I've found the Extensions documents/subforum now though (I had somehow missed the extensions feature before). I will look into making a simple extension.

Jon, do you think you could briefly explain the development process for Stencyl? Like is Stencyl being developed under the auspices of a company or is it written by volunteers? Is there any possibility of a future open source release? My apologies if this is already explained somewhere.

Thanks

Jon

  • *
  • Posts: 17531
We're an incorporated company. I'm the only full time developer, although we have some dedicated volunteers who also make contributions to development but are not formal employees or contractors.

My focus has been squarely on developing out our new initiatives (iStencyl, StencylForge 2, etc.) while the volunteers have focused on bug fixing and enhancements of the core tool.

With the extensions SDK, you can't quite do the version control idea since we haven't added hooks at the granularity you need. However, I look forward to seeing what else you come up with!

mcc111

  • Posts: 4
Jon, thanks-- I'll give the extensions API a run through later and see what I can get it to do.

If there's a useful thing I think I can get working as an extension, and I just need one or two hooks, could I maybe submit requests for hooks of certain kinds to be added in a future version? Would the more appropriate place to do this be in here or in the extensions forum?

Jon

  • *
  • Posts: 17531
I'll set up a topic in the extensions forum for suggesting hooks.

ashes999

  • Posts: 9
Are there any updates on this? I'm new to Stencyl, and looking for this, too, since we're four developers. Stencyl doesn't even tell me where it saves my project files (Application Data\Stencyl\...).

I didn't see any other threads on this topic -- sorry to revive an old thread.

ashes999

  • Posts: 9
Just to clarify, I'll test out how well merging work between users works before I post back -- I'm more interested in that than an actual extension, since I use Hg.

Joe

  • *
  • Posts: 2480
We're not to the point yet where we integrate well with source control software. We'll be looking to improve that in a future release.

ashes999

  • Posts: 9
@Joe if you guys are taking notes, I have a couple of suggestions that will make a huge difference.

1) Be version-control friendly. What this means is isolation of data and data structures; if two developers make very different changes, they should be able to merge them together. Usually, this means using text file formats, and keeping changes isolated (eg. global data in a global file, scene data in individual scene files)

2) Think distributed. For example, two users generate a new level; if both files are called level_2.xml, you'll get a conflict. Compare this to GUIDs, which are independent and don't collide.

Anyway, I hope to hear more about this topic soon.

Joe

  • *
  • Posts: 2480
Yep, the big problem right now is isolation. Thanks for your points.

ashes999

  • Posts: 9
There also seems to be an issue with exclusions. Some files change a lot (such as scene thumbnails), and are even generated. It's not obvious which files these are; putting them in a directory like "generated" would make it more obvious.

Because otherwise, this makes each small change you make appear to be huge, and increases the chance of a conflict.

oripessach

  • *
  • Posts: 259
Any updates on this?

At the very least, some guidance on which directories need to be checked in and which ones contain only generated files will be greatly appreciated. Even if the code isn't ready for parallel development yet, version control is extremely important even for a single developer. I've seen enough users posting about not being able to load their projects to worry about not being able to easily roll back to a previous version.