Is LÖVE really necessary?

General discussion about LÖVE, Lua, game development, puns, and unicorns.
User avatar
karlkatzke
Prole
Posts: 4
Joined: Mon Feb 09, 2009 1:42 pm
Location: College Station, TX
Contact:

Re: Is LÖVE really necessary?

Post by karlkatzke »

LÖVE is, I think, necessary. It fills the niche of an easily distributable cross-platform engine. It uses a well-designed embeddable language that's easy to understand. It's early in it's maturity, but, um, that's why it's version 0.5.0.

For me, LÖVE doesn't compete with pygame, it replaces pygame. The main problems with pygame is that it's difficult to make something that a) works, and b) scales well. Python projects have a way of scaling way out of proportions into a deathmarch really fast. (Take a look at Trac and Zope/Plone if you want a really good example...) Most people who are creative enough to develop and implement a game that's going to play well and be successful are not the type that can program in Python; most of the people who program in Python have the aesthetic sense of a computer nerd. See also: Design of PyGame homepage.

My main thing with LÖVE is that it's still a pretty blank slate, and I'm not that good of a deep level programmer. We've seen lots of widget libraries and helper tools pop up in the short amount of time that LÖVE has been around. What I can't find (but again, I'm a newbie) is places where the developers have taken some of those ideas and dug through them for things that can be integrated into the core. I also think that if the core developers released small incremental new versions more frequently, we'd see more action.

Two good examples of "how to do it" are Zend Framework's release cycles -- given the x.y.z version system that LÖVE and ZF share, the ZF team releases a .z version at least once a month. Another good example of how to do it (but with a lot of documentation fail) is the Dojo Toolkit for javascript. They have the core Dojo, the Dijit UI toolkit, and the DojoX experimental extensions.

Does LÖVE need to be 3d? Hell, no. There's so many good reasons not to be.

Does it need to be fast? Well, that's kind of the definition of a game. Lua's got some good functionality here (I've been looking into putting some of my light-cone/vector game logic into coroutines that can be polled from the core) that could be leveraged, but that's something that the community needs to help the developers with.

Is there space in the market for it? Yes. If you look around, you find that most independent game developers have a framework in C++ or another high-end fast language that they've built themselves, or they mutter and grumble along with something else that will "do" until they make it big. So far, LÖVE seems to scale better and is faster to develop in than most of the prototyping tools used in the main game development arenas. And those are usually all limited platform-wise, or you have to do stupid voodoo to get them cross-platformed. LÖVE does that out of the box. That's impressive.

In short: LÖVE serves an under-served community that wants to produce good looking cross-platform 2d games with a minimum of coding knowledge. Sure, most of the early games are going to be in the form of casual games, because that's what can be produced quickly and it's still young as a technology. As you see bigger projects arrive on the scene, I think you'll see more depth to the contributions that get put back into the community.

Now, back to your grindstones, devs...
User avatar
Skofo
Party member
Posts: 146
Joined: Mon Dec 22, 2008 10:55 pm

Re: Is LÖVE really necessary?

Post by Skofo »

karlkatzke wrote:Most people who are creative enough to develop and implement a game that's going to play well and be successful are not the type that can program in Python; most of the people who program in Python have the aesthetic sense of a computer nerd. See also: Design of PyGame homepage.
Oooh, that's cold. :emo:

While you do make good points, particularly the one that LÖVE is relatively easy to get into and make something out of so game developers can put more focus into the design and other creative parts of their games. However, I feel that many of your other points aren't as well made. No offense intended at all. :ultrahappy:

You talk about Python and pygame like they're brainfuck, while they're actually quite simple compared to almost all other non-IDE options for creating games, and for making pretty much anything else. I don't think it's fair how you trashed Python, as Python has successfully introduced many a beginner into programming and is known by many as one among the easiest, prettiest and simplest to use languages, and many people actually make a living off of it. You don't think that casually deeming Python bad and unable to make scalable projects is at least a little bit unwise?

I do not see how one would think that Python is less scalable than Lua. Lua does not feature classes, which I feel are an integral part to being more scalable than a language which does feature classes.

I also find it odd how you appear to find that programming logic and creativity are mutually exclusive. It was pretty mean how you labeled most people who enjoy Python as having poor aesthetic sense. Or the aesthetic sense of a computer nerd, as you say it, citing the design of pygame's website. The design sense of pygame's web developer/designer certainly does not represent Python's community, pygame's community or any other community. Also, lest you forget, LÖVE is developed in C++, a language which is agreed upon by most as harder to use than Python. If your argument that Python programmers (i.e. computer nerds) cannot make pretty websites because they all lack aesthetic sense, wouldn't C++ programmers make even uglier websites?

Besides, if you're coding or even designing games at all, many would consider you a computer nerd, which would naturally include you.

Those are my thoughts. I am not personally attacking you in any way, I just think that you should rethink some things before so nonchalantly insulting a community.

P.S. I am interested in seeing things you have designed.

P.P.S. I am by no means criticizing LÖVE, I think that it is more superior to any other 2D game development framework, even pygame, just not for the reasons karlkatzke said. What I most enjoy about LÖVE compared to pygame/pyglet is that it's not simply a general port of a multimedia framework. It's actually geared towards making games. Things like automatically making usable animated sprites out of sprite sheets and other simplifications have been immensely helpful to me and will be in the future. The integrated rigid body physics engine and particle system and the very simple to use functions for both of those are really awesome as well. These types of things let me focus less on programming and more on actually creating what I want and getting it out there. Last but not least, LÖVE's warm and tight community has a near narwhal level of awesomeness. ^^
Working on: Viator
Need a 64-bit Debian package for LÖVE? Here it is!
User avatar
rude
Administrator
Posts: 1052
Joined: Mon Feb 04, 2008 3:58 pm
Location: Oslo, Norway

Re: Is LÖVE really necessary?

Post by rude »

karlkatzke wrote:I also think that if the core developers released small incremental new versions more frequently, we'd see more action.
That's true, but right now there is only one active developer: me. I could probably manage to release small incremental versions more frequently if I managed to NOT redesign everything internally all the time. But I can't. Believe me, I would release more often if I could.

Also, if had a company the size of Zend, you would have a new LÖVE-release every ten minutes.

@Python: Never used it, but hey; NASA uses Python. :ultraglee:
User avatar
Tad2020
Prole
Posts: 9
Joined: Fri Feb 06, 2009 12:00 am

Re: Is LÖVE really necessary?

Post by Tad2020 »

I like LÖVE, it's has just enough low level stuff to do something with and it uses Lua. It could really go for some more optional libraries for GUI and whatnot, but in the short period of time between when I first found it last year and just recently when I started to use it, there have been several such libs started. I'd would like to see coroutines fully supported someday, they make somethings much easier.
rude wrote:@Python: Never used it, but hey; NASA uses Python. :ultraglee:
They've also used Lua.
User avatar
karlkatzke
Prole
Posts: 4
Joined: Mon Feb 09, 2009 1:42 pm
Location: College Station, TX
Contact:

Re: Is LÖVE really necessary?

Post by karlkatzke »

Skofo wrote:P.S. I am interested in seeing things you have designed.
I was speaking from personal experience. I send my sister money, and she sends me outfits that are all matched. If I were allowed to dress myself, I'd dress like jacob nielsen designs.

Now, behavior? Behavior I have down. On top of computer programming I train, foster, and work with rescue dogs. When I look at programming, I look at it from a user interface / behavioral point of view. If it displays the behavior I want it to,

Just like with the dogs that are my primary victims, programming languages are easier or harder to get to behave. PHP is really easy to get the right behavior out of, so it's what I use the most. It's feature-rich, easy to get started with, and powerful. Stuff written for PHP3 will with some very minor tweaks work on PHP 5.3. But you can also have the benefits of objects and (soon) namespaces.

On the other hand, Perl is kind of like a swiss army chain saw. It's got 300 different types of blades, but if you pull the wrong one out, 3 years from now you'll find that you made a choice that resulted in the exposure of your weenus to the business end of the chainsaw. Python is also in that category. You can build beautiful structures with it, but you can also spend more time building structure than you do coding behavior.
You talk about Python and pygame like they're brainfuck, while they're actually quite simple compared to almost all other non-IDE options for creating games, and for making pretty much anything else. I don't think it's fair how you trashed Python, as Python has successfully introduced many a beginner into programming and is known by many as one among the easiest, prettiest and simplest to use languages, and many people actually make a living off of it. You don't think that casually deeming Python bad and unable to make scalable projects is at least a little bit unwise?
Show me a very large, open-source, widely used, heavily hacked on project in Python that isn't internally a brainfuck. In my corner, I have Zope/Plone and Trac. Go ahead, I'll wait. (I haven't been able to find one.)
While you do make good points, particularly the one that LÖVE is relatively easy to get into and make something out of so game developers can put more focus into the design and other creative parts of their games. However, I feel that many of your other points aren't as well made. No offense intended at all. :ultrahappy:

I do not see how one would think that Python is less scalable than Lua. Lua does not feature classes, which I feel are an integral part to being more scalable than a language which does feature classes.

Lua's more in PHP's category in my mind. It's easy to get down and make something happen, even if it's something complex and you're a n00b to the language. I wasn't talking scalability in the sense of how many concurrent users or how many concurrent objects you can keep in memory or stuff like that; I was talking about how well an application written in the language ages and matures. With PHP, since it's so easy to get started and to build a whole lot of functionality into a very poorly designed package, it's equally easy to undo that and craft it into a "nicely structured" code base. With C++ (as our host has pointed out) and Perl and Python, you can code yourself into a corner REALLY easily that requires you to rewrite the entire application every time you want to release. Look at Trac's code churn for a good example, and look at how they refactored Python for 3.0 for another example. Code churn is bad for a single-developer open-source or spare-time project. I mean, unless you really like coding. I hate coding. I like making a computer do things, though.
Besides, if you're coding or even designing games at all, many would consider you a computer nerd, which would naturally include you.
True. But I know better than to pick out my own clothes.
Also, if had a company the size of Zend, you would have a new LÖVE-release every ten minutes.
I think there's only three or four people that have commit rights on the Zend Framework core. Most of the people that work at Zend are in the business of providing custom consulting with the optimizer and hacking on PHP itself.
User avatar
Xcmd
Party member
Posts: 211
Joined: Fri Feb 13, 2009 10:45 pm

Re: Is LÖVE really necessary?

Post by Xcmd »

Löve is freakin' fantastic and one of my favorite little things to tinker with. I just really wish the physics documentation were more... there. With practical examples of things you might actually try to do in a game.
We don't borrow, we don't read, we don't rent, we don't lease, we take the minds!
User avatar
karlkatzke
Prole
Posts: 4
Joined: Mon Feb 09, 2009 1:42 pm
Location: College Station, TX
Contact:

Re: Is LÖVE really necessary?

Post by karlkatzke »

Ooh, ooh, John Gruber wrote this today:
There’s a great line in Programming Perl, the bible on the Perl programming language by Larry Wall (Perl’s creator), Tom Christiansen, and Jon Orwant, which sums up the entire appeal of modern scripting languages:
One thing that’s easy about Perl is that you don’t have to say much before you say what you want to say.
In Perl, this is a complete working “Hello world” program:

Code: Select all

print "Hello world";
That same simple example also works, without changing a character, in Python and Ruby. If you want to print a string, you just say “print”. The equivalent program in C, in contrast, requires you to say a bit before (and after) you say what you want to say:1

Code: Select all

#include <stdio.h>
main() {
    printf("Hello, world");
    return (0);
}
The result is that programmers often wind up using efficient languages like Perl, Python, and Ruby to write little throwaway programs that they might never have written in the first place using, say, C, because it’s so much less of a hassle to get a simple working program off the ground. There’s simply less friction between the idea to write a little program and actually doing it.
User avatar
Skofo
Party member
Posts: 146
Joined: Mon Dec 22, 2008 10:55 pm

Re: Is LÖVE really necessary?

Post by Skofo »

Xcmd wrote:With practical examples of things you might actually try to do in a game.
Like? Perhaps I could make a few. If you need one sooner than that, you could look at the Box2D examples in other languages, since it's the same thing with different syntax.
Working on: Viator
Need a 64-bit Debian package for LÖVE? Here it is!
User avatar
Xcmd
Party member
Posts: 211
Joined: Fri Feb 13, 2009 10:45 pm

Re: Is LÖVE really necessary?

Post by Xcmd »

Skofo wrote:
Xcmd wrote:With practical examples of things you might actually try to do in a game.
Like? Perhaps I could make a few. If you need one sooner than that, you could look at the Box2D examples in other languages, since it's the same thing with different syntax.
A few "obvious" examples speed to mind:

Platformers - How do I make my dude jump? How do I make him land on things that are not the ground?
Artillery - How do I have a "cannon" and have it fire a projectile in a specific direction and have gravity act on it as well as it's own velocity?
All Games - Collision: How do I tell when one thing's struck another?

Really that's all I'm personally interested in doing. Everything else I can kinda figure out on my own... I think. Maybe. I don't know.
We don't borrow, we don't read, we don't rent, we don't lease, we take the minds!
User avatar
Skofo
Party member
Posts: 146
Joined: Mon Dec 22, 2008 10:55 pm

Re: Is LÖVE really necessary?

Post by Skofo »

Mmm, platformers in Box2D are tough to get just right. I tried it with Box2D Flash, ended up almost pulling my hair out. Here's a neat little demo that someone made in Flash: http://www.emanueleferonato.com/2008/10 ... ing-box2d/. A big disadvantage to that one is that you can pretty easily "climb" up walls and steep hills. But if you like it, I might end up porting it. Lunar Penguin, a game made with LOVE and located on the forums, has a pretty neat platforming system utilizing a sphere for the player character. Perhaps you could dig into the source for that one?

An artillery demo should be relatively simple to make, though. I might end up making one. ^^ (But I wouldn't wait for it if I were you.)

EDIT: BUT I would not abandon all hope. One game which pulled off a Box2D(?)-based platformer really well is SeppuKuties. http://www.kongregate.com/games/ArmorGames/seppukuties
Last edited by Skofo on Sat Feb 21, 2009 9:53 am, edited 2 times in total.
Working on: Viator
Need a 64-bit Debian package for LÖVE? Here it is!
Post Reply

Who is online

Users browsing this forum: No registered users and 61 guests