Lover - A simple CLI for developing games with LOVE :)

Showcase your libraries, tools and other projects that help your fellow love users.
User avatar
4aiman
Party member
Posts: 262
Joined: Sat Jan 16, 2016 10:30 am

Re: Lover - A simple CLI for developing games with LOVE :)

Post by 4aiman »

So... I've tested what I wanted and am ready to share the outcome :)

The idea was to make a GUI thingy to enable Windows' users to do what Lover does.
Windows is not a friendly environment to build stuff. Moreover, ppl tend to despise terminal and do want GUI.

Now what I wanted to test was whether I could build different versions of love2d from source on Windows.
Should that work, there won't be any other problems.

So..

First of all, GUI or not, there will be a *lot* of stuff to download to make this work in Windows.
I won't list things under 50 MB, but the rest of those are here:
  • Visual Studio 2012 for Desktop - 625.0 MB
  • DirectX SDK - 571.0 MB
  • Megasource repo got with mercurial - 179.0 MB
1275 MB Total
The rest of needed stuff will make that up another hundred MB.

Good things:
  • It is possible to install all those things w/o making user click any buttons.
  • Love version switching may be done via "hg update <version tag>"
  • Things like CMake and mercurial can be used in a "portable" manner
Bad things:
  • Mercurial adds itself to $PATH. Inno setup doesn't have a "tick" to not do just that. If there's another Mercurial/TortoiseSVN/etc, this would mess up the environment. Thus, either $PATH should be modified manually or a non-official mercurial setup should be used.
  • VS 2012 Requires certain OS and Internet Explorer versions. While OS can be updated, things like adding IE to N/KN editions may prove to be tricky. Thus, a tool need to take care of that.
  • MinGW builds are out of question, 'cause CMake generates makefile with no sound support. Also, mpg123 won't compile as-is.
  • Downloading prerequisites is tricky since DXSDK and VS have no permanent links. Also some privacy-orientated plugins for Firefox can make it impossible to download those at all. As a solution, a cloud storage may be used to host those files.
  • VS comes in a form of an ISO image. That means it should be extracted or mounted. Not a big deal, but should be dealt with nevertheless.
  • HUGE disk space requirements. Only DXSDK will take up to 1.2 GBs of free disk space.
So far I don't have any VS installed, so can't go further at the moment.

Useful links by Rude:
https://bitbucket.org/rude/megasource
https://bitbucket.org/rude/love/src/eaf ... ew-default
Last edited by 4aiman on Sat Aug 06, 2016 9:13 am, edited 1 time in total.
User avatar
jerluc
Prole
Posts: 13
Joined: Fri Mar 25, 2016 9:59 pm
Location: San Francisco, CA
Contact:

Re: Lover - A simple CLI for developing games with LOVE :)

Post by jerluc »

Sounds great 4aiman, I'm glad you were able to use some of these ideas for your own projects! I would like, however, to try to keep this discussion thread focused on the lover CLI.
User avatar
4aiman
Party member
Posts: 262
Joined: Sat Jan 16, 2016 10:30 am

Re: Lover - A simple CLI for developing games with LOVE :)

Post by 4aiman »

Ouch! :)
Didn't mean to hijack your thread.

The reason I posted it here was to... notify(?) you about the "building on Windows" issues.

CLI or not, you're going to face VS and DXSDK if you ever go as far as making a Windows version of Lover that will actually build love2d executables. Thus, going with pre-built binaries from the official repo would probable be a good idea.

Cheers! ^_^
User avatar
jerluc
Prole
Posts: 13
Joined: Fri Mar 25, 2016 9:59 pm
Location: San Francisco, CA
Contact:

Re: Lover - A simple CLI for developing games with LOVE :)

Post by jerluc »

Sorry 4aiman, I definitely didn't mean for that to come off too critically.

Although I now understand a bit more potentially where the confusion might be coming from: lover does not try to build the love2d executable itself (i.e. "love.exe"), rather it uses the prebuilt binaries to build a distributable package for your game (essentially using the instructions listed on the wiki). This has the nice side effect of also allowing someone to build cross-platform distros through lover simply by it using the prebuilt binary for the target platform, and using the platform-specific bundling/packaging instructions to create the distro from there.

In lover's terms you would:
  • Run "lover new" to create a new project (note this has change slightly from the original "lover init", which is no longer there)
  • Add your target(s) to the .lover.yaml configuration file (valid options are "win-32bit", "win-64bit", "darwin-64bit")
  • Run "lover dist" to create a distro from your project for each of the configured target platforms
From there you can see that a new folder "dist" has been created with the packaged contents (for Windows targets, this is a .zip with all of the files inside, for macOS, this is a normal .app file that can be launched from Finder).

I have not yet tested this setup on my Windows machine, but I have tested that I can build a Windows (64bit) distro of my game from my MacBook that works exactly as expected. More to come on the progress here shortly.
User avatar
4aiman
Party member
Posts: 262
Joined: Sat Jan 16, 2016 10:30 am

Re: Lover - A simple CLI for developing games with LOVE :)

Post by 4aiman »

No harm done :)

Do you have any plans on changing resources (like icons, binary description etc) of a final binaries?
User avatar
jerluc
Prole
Posts: 13
Joined: Fri Mar 25, 2016 9:59 pm
Location: San Francisco, CA
Contact:

Re: Lover - A simple CLI for developing games with LOVE :)

Post by jerluc »

Eventually it would be nice to have that option, though I don't see that as a major thing quite yet. Fortunately, it looks like there is a tiny bit of guidance on the LÖVE wiki around how to do that for Windows, and as I recall on macOS, the icon sets are plain files inside the .app file. Likely I will just include a note in the lover documentation on how to manually change the icons for macOS and Windows for now, and who knows, maybe someone who finds value in lover will be able to help contribute a patch to support custom icons ;).

In the interim, I've added a couple of Github issues for both adding icon support and just plainly documenting the manual process.

Thanks for your feedback!
Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 4 guests