This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
Viking's profile picture

ComputerCraft IDEs - Market Research

Started by Viking, 02 August 2019 - 12:07 PM
Viking #1
Posted 02 August 2019 - 02:07 PM
I started working on a ComputerCraft IDE way back in 2015. I've stopped playing the game since then, but as I saw a resurgence in Minecraft's popularity in the past couple months, I launched up the game and decided that maybe I should finish my old project.
I'm well aware that most people (including me) prefer to use an actual IDE, because programming in game quite honestly is just tedious. Thus my intention is to create a full fledged IDE which makes ingame editing even faster than using ZeroBrane Studio, Notepad or whatever you have.

Here are some screenies of what I have now:









It needs a lot of refining and bugfixing. I also plan on adding a couple more feature until I release it. This is my feature list for the complete version:
  • Themes - You can create program-wide color themes and also code styles
  • Plugin support (The Bedrock layout editor is also a plugin)
  • Code auto completion - It can even find function parameters!
  • Debugger - Providing breakpoints and a variable watch
  • Multiple open file support (See the tabs on the photo above)
  • File history function - I'll have to fine tune the way file changes get saved, especially given how CC computers have very limited storage

So even though I'm proud of what I have now, I still have a lot of work with this project and I'm wondering whether it's actually worth finishing, given how few people play ComputerCraft anymore
Edited on 02 August 2019 - 12:13 PM
ardera #2
Posted 08 August 2019 - 06:30 PM
That's a very nice program!
I guess you are right, few people actively enjoy CC anymore. Let's just hope that with the rise in popularity Minecraft currently experiences, some people will start playing ComputerCraft again.
Your main features are by themselves, pretty big projects. I certainly would feel overwhelmed by that amount of work. You could try breaking this huge projects up into smaller sub-projects, if you like. A text-based lua debugger similiar to gdb would really be useful.
SquidDev #3
Posted 08 August 2019 - 07:40 PM
I'm curious as to the decision to make in-game editing easier, rather than improving the out-of-game editing experience? I don't think it's a bad thing at all - Lua IDE is so old at this point - I guess just runs counter to how I generally use CC.

That auto-complete is looking very nice though, especially the parameter hints. Just curious as to how you're gathering that info - is that using the debug library, hard-coded in, or doing some other magic?

A text-based lua debugger similiar to gdb would really be useful.
I keep meaning to port debugger.lua to CC - that'd definitely be quite easy to do, just never got round to it. On a related note, it would also be pretty nice to have a more extended version of trace - as CC:T exposes the debug library, you can do all sorts of interesting things, such as showing variables in scope when the crash happened, etc…

few people actively enjoy CC anymore.
I think this is a very hard metric to judge - the 1.12.x versions of CC have had ~4.5 million downloads. While this obviously pales compared with many popular mods, it's not to be sniffed at either. Though then again, I don't think it matters either way, as long as you're having fun writing programs :)/>.
Viking #4
Posted 09 August 2019 - 01:56 AM
Your main features are by themselves, pretty big projects. I certainly would feel overwhelmed by that amount of work. You could try breaking this huge projects up into smaller sub-projects, if you like. A text-based lua debugger similiar to gdb would really be useful.

I completely agree. As of right now, I'm only focusing on finishing a minimum viable product, a version 1.0 if you like. Some main features work as intended already, some need lots polishing and there's others I haven't even started working on. The debugger mode for example is on the bottom of my TODO list, because I believe that will cause the most headache and I don't personally use debuggers for Lua that much, even outside of ComputerCraft.

Unfortunately it seems like there isn't much demand for CC related stuff right now. Maybe if I'll receive some more feedback I'll get back to working on this in full swing. I really wish I finished this project 4 years ago *sigh*

I'm curious as to the decision to make in-game editing easier, rather than improving the out-of-game editing experience? I don't think it's a bad thing at all - Lua IDE is so old at this point - I guess just runs counter to how I generally use CC.

Generally, I prefer to use out-of-game editors (ZeroBrane Studio is my favorite choice for Lua), too. A couple years ago I was really hooked on the idea of working on an IDE (IRL), and lurking on this forum I saw how the ComputerCraft community was (and still is) lacking in that department. Here I am years later, thinking that maybe I should finish it now.

That auto-complete is looking very nice though, especially the parameter hints. Just curious as to how you're gathering that info - is that using the debug library, hard-coded in, or doing some other magic?

I actually use someone else's parser to do the dirty job for me. The AST contains information about function arguments, local/global variables, scopes and everything I need to make the editor show contextually relevant hints. I also created a linker to combine the project source code into one giant file, which the parser gets fed. This makes it possible that if you load an API (i.e. using os.loadAPI), the editor will be able to suggest and highlight functions/variables from any of the loaded APIs.
Edited on 08 August 2019 - 11:58 PM
SquidDev #5
Posted 09 August 2019 - 08:57 AM
The AST contains information about function arguments, local/global variables, scopes and everything I need to make the editor show contextually relevant hints. […] This makes it possible that if you load an API (i.e. using os.loadAPI), the editor will be able to suggest and highlight functions/variables from any of the loaded APIs.
Oooooh, that is very cool. One of my projects right now is trying to do something similar for a static analysis framework, but it's insanely cool to see it built-in to the editor.