9 ms·
LÖVE 0.10 released with iOS and Android support
- desireco42 11y agoThis is pretty grand news, and I never used Lua for game development. Congratulations.
- smacktoward 11y agoI would love to tinker with LÖVE, but I don't know the first thing about Lua. Anyone have pointers to good introductory resources they can share?
- AlexeyBrin 11y agoYou can pretty much learn the language in 1 - 2 days if you are an experienced programmer. Try the LUA website, they have some links to good tutorials.
- LewisJEllis 11y agoFrom http://www.lua.org/about.html http://www.lua.org/about.html: > "Lua" (pronounced LOO-ah) means "Moon" in Portuguese. As such, it is neither an acronym nor an abbreviation, but a noun. More specifically, "Lua" is a name, the name of the Earth's moon and the name of the language. Like most names, it should be written in lower case with an initial capital, that is, "Lua". Please do not write it as "LUA", which is both ugly and confusing, because then it becomes an acronym with different meanings for different people. So, please, write "Lua" right!
- venning 11y agoLÖVE has their own recommendations on resources to learn Lua from here: https://love2d.org/wiki/Main_Page#Lua https://love2d.org/wiki/Main_Page#Lua
- seivan 11y agoHow's the performance compared to say Cocos2d-X in C++? For say something like large scale steering forces and Behavior agents?
- striking 11y agoLuaJIT is fast and Love is minimal. It has threads and can callout to C. So performance is good.
- seivan 11y agoTurns out JIT is disabled on iOS and AppleTV. So might not get that boost.
- striking 11y agoIf you're really interested in maximizing performance, http://lua-users.org/wiki/LuaToCee http://lua-users.org/wiki/LuaToCee can help you turn your Lua code into C code instead. With some skillful manipulation of liblove, you can compile your game down to a 100% static executable. But no one's really bothered because Love is best at prototyping than actually releasing games, and performance is "good nuff" at this point in time anyway.
- Gracana 11y ago"Programming in Lua" is Lua's K&R. It is a very well written technical book. The Lua reference manual is also very approachable. http://www.lua.org/pil/ http://www.lua.org/pil/ http://www.lua.org/manual/5.3/ http://www.lua.org/manual/5.3/
- Franciscouzo 11y agoLöve uses luajit by default, which is Lua 5.1 with some 5.2 sprinkled on top.
- keyle 11y agoLua is really easy to pick up, even without a book. Start using it with LOVE and have fun.
- yareally 11y agoIf you have some experience with javascript, Lua's syntax, scoping and structure are fairly similar to that of ECMAScript 5. That's a very macro and broad comparison of it, but if you have scripting language experience, you'll be fine.
- LewisJEllis 11y agoFor a couple of quick intros, try Learn Lua in 15 Minutes[1] and Learning Lua from JS[2]. For a bit more depth, try the Lua-users Tutorial Directory[3]. For serious depth, the two recommended by Gracana, PIL[4] and the reference manual[5], are fantastic. For an overview of the ecosystem, including some useful gamedev libraries and LÖVE-specific resources, take a look at awesome-lua[6] (my own, shameless plug). http://tylerneylon.com/a/learn-lua/ http://tylerneylon.com/a/learn-lua/ http://phrogz.net/lua/LearningLua_FromJS.html http://phrogz.net/lua/LearningLua_FromJS.html http://lua-users.org/wiki/TutorialDirectory http://lua-users.org/wiki/TutorialDirectory http://www.lua.org/pil/ http://www.lua.org/pil/ http://www.lua.org/manual/5.1/ http://www.lua.org/manual/5.1/ https://github.com/LewisJEllis/awesome-lua https://github.com/LewisJEllis/awesome-lua
- makeset 11y ago[1] is also here: https://learnxinyminutes.com/docs/lua/ https://learnxinyminutes.com/docs/lua/
- kazagistar 11y agoIt is very minimalistic. There are only 8 datatypes: 4 immutable (nil, number, string, boolean), 3 mutable (table, coroutine, function) and userdata which is used for arbitrary opaque "exterior references". The standard library is fairly small. There is a small amount of "metaprogramming" possible that lets you overload operators and do some basic prototype-based OOP, but the whole thing is very approachable. Personally, I think it is one of the better options for a learning language because of how simple it is.
- lectrick 11y agoI kind of wish someone would be inspired to write something like this in Elm (http://elm-lang.org/ http://elm-lang.org/), if only to help people get away from buggy OO-mutable languages
- luchadorvader 11y agoI just don't understand comments like these. Providing a blanket statement that doesn't provide any reasons whatsoever. It doesn't really help contribute to the post, and it just angers people. I hate the term troll, but that's what this feels like. If you actually feel this way then I feel bad that you restrict yourself to only one type of tool. Also I find it confusing when functional evangelicals talk bad about OO and mutable languages when a lot of the languages compilers are built on languages like C. They wouldn't even have functional languages without C.
- spion 11y agoWhile Haskell's (well, GHC's) runtime does have parts that are written in C, GHC itself is written in Haskell (and was originally written in a ML dialect I think). The lineage of FP languages seems to be very different than whats typical. But yea, random blanket statements like that aren't helpful. There is an older Lua backend for PureScript (at https://github.com/osa1/psc-lua https://github.com/osa1/psc-lua) that may be worth checking out... if it gets a revival. AFAIK that version is a superset of (current) Elm, so it may be possible to combine it with love to get some sort of "Elm for love2d" :)
- lectrick 11y agoYou don't understand comments like this because you probably don't speak from years (20+) of programming experience in OO languages, like I do, and because it is hard to show people certain better ways of doing things that unfortunately requires years of experience beating your head against the wall in other ways to really see it. But don't take my word for it, here is John Carmack (hardcore C++ developer) on the topic, from this link: http://gamasutra.com/view/news/169296/Indepth_Functional_programming_in_C.php http://gamasutra.com/view/news/169296/Indepth_Functional_pro... "My pragmatic summary: A large fraction of the flaws in software development are due to programmers not fully understanding all the possible states their code may execute in. (Emphasis mine. That alone explains most of the bugs I've seen.) In a multithreaded environment, the lack of understanding and the resulting problems are greatly amplified, almost to the point of panic if you are paying attention. Programming in a functional style makes the state presented to your code explicit, which makes it much easier to reason about, and, in a completely pure system, makes thread race conditions impossible... "No matter what language you work in, programming in a functional style provides benefits. You should do it whenever it is convenient, and you should think hard about the decision when it isn't convenient." This is a man who has coded slightly longer than I have, and IMHO he is correct on all these points. I merely believe he didn't go far enough (for example, immutable "variables", which are not available in OO languages without hairy workarounds, ENSURE that the state your code "sees" is not tampered with "from the outside," further reducing bugs), but statements like this are why I take the viewpoint I do. Take the amount of time you debug as a percentage of your total programming time (and hell, we all enjoy debugging to a degree, don't we? But what's debugging, really? All it is, is trying to discover a state that wasn't conceived of when the code was designed, no? That's the whole point of your stack trace, right?). Now, chop that time in half. Would you want this? Who wouldn't? Yes, FP is not appropriate for all realms where code lives. But it should most certainly fill all the spaces it currently does not, where its appropriateness is not out of the question. I would also strongly recommend the "Are We There Yet?" talk by Rich Hickey http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hic... which pretty much destroys mutability as a language-level trait, pretty much rendering it the mother of all bugs (literally). Again, don't take my word for it- here is MIT's core CS curriculum on mutability's dangers: http://web.mit.edu/6.005/www/fa15/classes/09-immutability/ http://web.mit.edu/6.005/www/fa15/classes/09-immutability/ Have I made a strong argument yet, now? This is why I get upset whenever a new language comes out that does not feature FP/immutable paradigms. If you're new, you SHOULD be using these, otherwise you're just perpetuating more man-years of debugging hell for people. I am tired of watching new programmers make the same mistakes over and over and over again. The very length of this comment alone indicates how hard it is to communicate this AND why it sounds like preaching/proselytizing/trolling.
- lazedrickw 11y agoReady for 2016 RT 🆕 Music 🆕 Video Go viral https://t.co/krZehctR83 https://t.co/krZehctR83 Next rapper to blow up Lotto Montana
- geoffpado 11y agoSite's loading too slowly for me to get to the main page, so at the risk of starting a Haddaway thread… What is LÖVE?
- p4bl0 11y agoIt is a 2D game development framework for the Lua language.
- fffrad 11y agohe meant, baby don't hurt me.
- purpled_haze 11y agobaby don't hurt me no more.
- deleted 11y ago[deleted]
- geoffpado 11y agoAwesome, thanks.
- deleted 11y ago[deleted]
- hughes 11y agoSite is hugged to death. Google cache/mirror: http://webcache.googleusercontent.com/search?q=cache:https://love2d.org/wiki/0.10.0 http://webcache.googleusercontent.com/search?q=cache:https:/...
- mkagenius 11y agoYou mean Loved to death? ;)
- Dotnaught 11y agoHow does LÖVE compare with Corona SDK, a commercial Lua-based mobile framework?
- AlexeyBrin 11y agoLÖVE is free, open source, runs on desktop and mobile, local builds and so on. Also, it is based on SDL2 so, if you know C, you can modify the code. That being said, Corona SDK is probably more mature for mobile. Personally I prefer LÖVE because of the fast iteration cycle do to local builds (Corona SDK builds the game on their servers).
- rstupek 11y agoOnly if you want to deploy it to a device. Otherwise you can reload instantly when developing on PC/Mac
- AlexeyBrin 11y agoI know you can use the simulator to test, but I prefer to test directly on the device and when you need to wait ~1 minute per build it is a bit annoying. I used Corona SDK for a small 2D game two years ago, maybe now the build times is better ...
- seany 11y agoYou can also use the "viewer" tool to sync your project with a application shell on the device via dropbox.
- versteegen 11y agoReposting what seany wrote 4 hours ago [dead]: You can also use the "viewer" tool to sync your project with a application shell on the device via dropbox.
- striking 11y agoLove is used mostly to prototype games for the PC, and support has only begun today of the mobile frontend. (It was usable for a while, but only now is it supported.) Love has minimal bindings, basically only enough to make use of most of SDL and OpenGL. It lacks all of the native and GUI support of Corona (except where you write your own C bindings... have fun with that, I suppose.)
- keyle 11y agoLack of native mobile support was one of the reasons I dropped LOVE for other frameworks. This is fantastic, and LOVE/Lua is really fun to work with, I highly recommend this framework.
- vbit 11y agoDoes love work well with moonscript?
- leokaplan 11y agoYes, very well
- thegeomaster 11y agoWhile we're at it: everyone, check out MoonScript [1]. It's a great, succinct and featureful compile-to-Lua language, although sadly not very widespread at the moment. It features significant whitespace, syntactic sugar to reduce keyword noise in programs, table and list comprehensions, line (statement) decorators, classes, export and import for working with modules, implicit return, JSON-like table literals and much, much more. I, for one, absolutely love working with it. [1]: http://moonscript.org http://moonscript.org
- nikolay 11y agoEveryone check out Lapis [0] as well! [0]: http://leafo.net/lapis/ http://leafo.net/lapis/
- superfunc 11y agoAwesome, thanks for this! I've always found love to be great, but I didn't enjoy using lua once the program grew to a non-trivial size.
- tedajax 11y agoI tried but the \ syntax for calling an instance method on an object is asinine and I hate it.
- deleted 11y ago[deleted]
- vbit 11y agoCan you make networked multi player games in love that work on mobile?
- kneeko 11y agoYes, LÖVE includes ENet and LuaSocket.
- scotty79 11y agoI encountered LÖVE when I was searching for simple graphics engine that can do 60fps consistently without frame skipping. It worked very well.
- tommoor 11y agoPerfect timing to make a game over the christmas break :)
- supernintendo 11y agoThis is wonderful. I'm quite fond of Lua and while I've tinkered with LÖVE here and there, the lack of mobile support turned me off from using it for serious projects. I'll be giving it another look soon. As an aside, I'd like to plug a Lua library I have nothing to do with called middleclass [1]. I've used it with LÖVE and it's handy for game dev! [1] https://github.com/kikito/middleclass https://github.com/kikito/middleclass
- fit2rule 11y agoMiddle-class is awesome, thanks for sharing that .. I'll put it on my lab bench for hacking over the next few days. Continuing the list of 'handy little Lua libraries that others in this thread might be interested in', I'll add that I think that a lot of newcomers to Lua from languages like Ruby and Python might enjoy having lua-enumerable around as well, which provides a set of enumerable ops that fit in quite well with Lua's tables .. check it out: https://github.com/mikelovesrobots/lua-enumerable https://github.com/mikelovesrobots/lua-enumerable Hanappes' got a few nice Lua classes in its lang folder too: https://github.com/makotok/Hanappe/tree/master/projects/hanappe-framework/src/hp/lang https://github.com/makotok/Hanappe/tree/master/projects/hana... Useful for newcomers to Lua and pro's alike, imho ..
- deleted 11y ago[deleted]
- aidenn0 11y agoLOVE uses LuaJit, right? How does that work with mobile where you may be denied execute access to the data segment?
- aidenn0 11y agoTo answer my own question, here's a quote from the LuaJIT website: > Note: the JIT compiler is disabled for iOS, because regular iOS Apps are not allowed to generate code at runtime. You'll only get the performance of the LuaJIT interpreter on iOS. This is still faster than plain Lua, but much slower than the JIT compiler. Please complain to Apple, not me. Or use Android. :-p
- eljimmy 11y agoAnyone got any games written using LÖVE to show HN?
- kneeko 11y agoI made oh my giraffe [1] in LÖVE and released it for iOS and Android using these ports. [1] http://www.ohmygiraffe.com http://www.ohmygiraffe.com
- blinduck 11y agoThat is really cute. I think this is a really well done landing page.
- eggy 11y agoVery simple but beautiful! The LÖVE wiki on the Android port has an example of running from adb, but how did you create and apk for your Android port?
- kneeko 11y agoThank you! This page has documentation for packaging an apk: https://bitbucket.org/MartinFelis/love-android-sdl2/wiki/Game_Packaging https://bitbucket.org/MartinFelis/love-android-sdl2/wiki/Gam...
- shuzchen 11y agoWhen I had spare time I was working on a Terraria-inspired game. Here's a sample video of how far I got: https://www.youtube.com/watch?v=clxX8QZonL4 https://www.youtube.com/watch?v=clxX8QZonL4 with the code here: https://bitbucket.org/sirpengi/lua_lovestory/src/tip?at=default https://bitbucket.org/sirpengi/lua_lovestory/src/tip?at=defa... I ended up using luajit FFI to call into C to calculate lighting. I wonder what the FFI support is on the android/ios ports.
- talles 11y agoI love pet projects, specially little games (have made some with SDL in the past). I don't know how Terraria does it (never played) but I suggest you that you only moved the camera when it's necessary (instead of keeping the character in the center literally always). The camera jumping along with the character might even let the player dizzy...
- cmiller1 11y agoI tried Löve a few times as well as many others while searching for an engine to make simple graphical/physical simulations using a dynamic scripting language in for work (using other libraries). It was okay but my favorite was Gosu (ruby/C++), I wish it saw more love.
- wiradikusuma 11y agoA bit OOT, LibGDX is another game engine, but for the JVM (can use Java, Scala, Clojure, Kotlin, etc), that runs natively on desktop, Android, Web (transpiled to JS), iOS (using RoboVM). It has Lua support as well through 3rd party. Udacity has Nanodegree using it: https://www.udacity.com/course/mobile-2d-game-developer-nanodegree--nd011 https://www.udacity.com/course/mobile-2d-game-developer-nano... Disclaimer: I'm writing a game using LibGDX.
- Veratyr 11y agoI tried LibGDX but the thing that troubled me was that while other engines had a relatively straightforward approach to cross platform builds (click a button or build a particular target), LibGDX required you to write a bunch of boilerplate for each platform. Is that still around?
- badlogic 11y agoThe boiler plate is 10-20 lines per platform, which is auto-generated for you and let's you do platform specific things easily. Any production game needs this capability to include things like ads, notifications etc.
- fit2rule 11y agoGive MOAI a try - we solved this problem recently with the addition of the pito tool (pito means "navel", "whistle" and "beer", in Rapa'nui) which generates complete host projects for every platform MOAI supports. The end result, you really can run the same code everywhere. (http://github.com/moai/moai-dev http://github.com/moai/moai-dev)
- willvarfar 11y agoWhat is really staggeringly missing is a web port! It should be a click-away to run a LÖVE game in your browser. Its not. A few good prototypes have been made, but they are all abandoned? :(
- fit2rule 11y agoWe have this in MOAI (a competing framework) already, by way of the emscripten tool .. which is awesome .. so it means that with MOAI you can write apps that run on iOS/OSX/Windows/Linux/Android .. and HTML5 hosts. Pretty amazing times .. (And we're about to do a new release of MOAI soon too..)
- saintfiends 11y agoHow does LÖVE users handle source being open when distributing games? I would guess not everyone will be okay with their artwork, sound files and other resources being available so easily.
- james-skemp 11y agoHTML5 game development is much the same. Even with compiled applications someone can get your code and resources if they want them, so ... I think if developers aren't okay with their resources being that available, they probably don't look at using frameworks like this.
- ing33k 11y agoas a non game developer, LÖVE was the only framework using which I was actually able to create a small game . So simple it hurts.
- jslakro 11y agoOne of the most consistent frameworks in LÖVE I know is https://github.com/necrophcodr/fuccboiGDX/ https://github.com/necrophcodr/fuccboiGDX/