Love2d is awesome. Basic hello world: the whole project is 3 lines of code and that's how it should be. I've written a few games with it. I've used just Atom with love2d-extensions. You might want to take a look at ZeroBrane Studio, a free IDE for lua development which has quite a few nice tools for it (like live updates / debugging).
Read into LUA. It’s very simple and easy to learn, especially if you already know a language like java.
Here is a good textbook-like guide for beginners.
Here is a good place to practice it and get a good understanding before jumping into the more difficult aspects.
Here is a collection of documents and tutorials that will help a lot.
If you prefer watching videos, there are tons of helpful guides on YouTube for not only learning LUA, but making skins on Rainmeter. Hope you have fun learning!
Easiest way imo to start with Lua is with ZeroBrane Studio...
Download it, run it, type some code and hit F5 to run/debug or F6 to just execute the code (there are buttons for those actions too).
Either use https://studio.zerobrane.com/ or write a plugin for https://github.com/Alloyed/lua-lsp on Vim. Not really sure about any other options.
I'm a savage who blindly writes code without that stuff, so sorry if I missed something.
It's a bit complicated in the sense that you need a kind of debug stub in your application - there's no Lua built-in for external debugger access, this missing link between debugger and (Lua) code has to be integrated into your application, too. I am assuming here that you use Lua within your application, interconnected with the rest of the code by using the Lua API.
Thus, every solution you might encounter is a bit proprietary in the sense that it will be fit for a certain debugger only. For Zerobrane, this is documented here: https://studio.zerobrane.com/doc-remote-debugging
Well, adding .lua to your file name should work since VScode comes with few built-in plugins. One thing is that you need to edit Envinrametal Variables by specifying the path. Once Lua53 works on the CMD, you are good to execute. However, you may face some issues while running the code. I would recommend you watching this video.
If you're trying to make games using Lua, there is a dedicated IDE for Lua alone. You may check out ZeroBrane Studio. You don't have to deal with plugins and stuff. Hope this was helpful for you.
I just got ZeroBrane's remote debugger to work with my game in about 30 minutes, following their official guide. Basically it was setting a flag in Zerobrane's menu, adding
package.path = package.path .. ";C:\Program Files\ZeroBrane\lualibs\?\?.lua;C:\Program Files\ZeroBrane\lualibs\?.lua" package.cpath = package.cpath .. ";C:\Program Files\ZeroBrane\bin\clibs52\?\?.dll;C:\Program Files\ZeroBrane\bin\clibs52\?.dll" require('mobdebug').start()
to the lua file I was trying to debug, and it basically worked.
Haven't done much more with it since getting it going but it worked and I was stoked.
As a tip, if you something interesting on the workshop or just want to see how something was made, download the mod and look at its main.lua file.
I also recommend downloading ZeroBrane Studio and installing this in ZeroBrane's installation folder. It's an API that autocompletes Afterbirth+ related stuff.
It is better to learn a bit of Lua first. The /r/lua sidebar has a link to the Lua tutorials wiki. You can download the command line interpreter from lua.org, or the Zerobrane Studio IDE.
I believe the version of Lua used with the Lua box is version 5.1.
The main reason to learn a little Lua first is that developing and debugging Lua code from the Lua box is a little limited. You can print out messages to the log, but you only see that when pressing 'Q' on the Lua box itself. You can also print log messages to the HUD, which fade after 4 seconds, and you have very limited space to print out anything.
The Lua code runs on a 40Hz tick, meaning the Update() function is called 40 times per second. So this function will run, make changes to whatever (thrust level, angle of a spinblock, etc.) and then exit. Global variables keep their value on subsequent ticks. So, for example, I set the target_altitude
variable based on the user input, and each tick I check to see how far away the current altitude is from the target.
You need to install a Lua interpreter on your system.
http://luabinaries.sourceforge.net/
Though you might be better off with an Integrated Development Environment (IDE):
ZeroBrane has an IDE that you could jump in and do plugins for. There is a want for a code snippet plugin (detailed here: https://github.com/pkulchenko/ZeroBraneStudio/issues/783). The developer seemed very cool.
Just a thought. It's pretty much all Lua.
I'd suggest ZeroBrane Studio, a free IDE for Lua that comes with it built-in
Lua is a small language primarily designed to be embedded in other programs, not really for general use like Python, so it's understandable that the official stuff on the website is fairly technical
THIS!
You should definitely check this out /u/jjpeelo, using a code text editor will help you to avoid these silly errors.
There's also ZeroBrane which I highly recommend because it was specifically made for lua.
no worries, this is a very common problem to experience (unfortunately). It's because as an advanced programmer, it's easy to forget that things like the command line are not obvious and easy to use at all to beginners, and are a real barrier to getting started. This problem is exactly the same for many other languages like python, ruby, perl etc by the way, it just happens that many of them come bundled with a good development environment (for example python on windows usually installs together with IDLE, which is a graphical editor for python scripts).
If you are having any problems with running your code in Atom, I would maybe suggest also installing ZeroBrane Studio, which is a great development environment & editor built specifically for Lua, that has good support for running (and debugging!) Lua right built into it: https://studio.zerobrane.com/
Strongly recommend ZeroBrane Studio for anyone new to programming: https://studio.zerobrane.com/
Normally I hate IDEs, but this one is a lot more accessible and straightforward since it's 100% focused on Lua. The author is very responsive and helpful; he teaches programming to middle schoolers as his day job, so he has a lot of practical understanding about how to make things usable and not over-complicated.
Well, either way, since you seem to be having considerable trouble with the process of compiling Lua by hand, I would suggest you just download the ZeroBrane IDE, which comes with many versions of Lua already compiled and ready to use.
Google lead me to this: https://studio.zerobrane.com/doc-remote-debugging
However, you should still run awesome for debugging in Xephyr. If you do this in your "actual" awesome session and the debugger breaks awesome, well, your WM is now frozen and you cannot e.g. change window focus.
> Do your programs work on Windows 10? I read your cautions and it gives me pause of trying it without finding out more about it. The only other OS I have is Windows 7.
It should. I don't have access to anything other than Linux but Lua is available on pretty much every platform. If you use the Zerobrane IDE (which is free) then the Lua part will be easy. Getting the sheet music to print out requires Lilypond which I think requires you to set the path in Windows. The download page for Lilypond explains it pretty well. You'll also need Timidity which should install easily.
If you do decide to install and try out the software let me know. I can help plus it will be helpful to see how it is for someone else to try it.
> Oh, and I would not take it for granted that everyone on music theory reddit knows music theory! So far, I see that a few do at a relatively high level, but the majority are the "DIY selfers" that read a couple of definitions an then just make up stuff. I am so tired of hearing "why does this work?" questions.
Those are the questioners and not the answerers. Plenty of regulars are quite knowledgeable. If I'm writing for the knowledgeable ones then I don't dumb it down. If I'm writing for the novice then I tone it down appropriately.