메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

love2d.org/

Love2D 홈페이지.


Lua로 2D 게임을 만드는 프레임워크입니다.

무료고, 오픈 소스이며, 윈도우, 맥, 리눅스에서 동작하며, 안드로이드에서 동작하게 하는 논의도 활발하다 합니다.


그럼 일단 받아봅시다. 아무리 좋아도 내 컴퓨터에 못 깔면 소용없지 않습니까?

Windows라면 LÖVE 0.8.0 for Windows 를 받습니다.

Installer와 Zipped가 있는데, Installer는 exe 파일을 컴퓨터에 설치하며

Zipped는 설치하지 않고 실행 가능한, 가지고 다닐 수 있는 포터블 버젼이라 생각하시면 되겠습니다.

전 Installer 깔았습니다.


혹시 다른 OS를 사용하는 분이라면 아쉽게도 다른 정리글을 찾아보셔야 할 겁니다.

저도 사실 Ubuntu를 사용하고 싶지만, Broadcom 무선랜 드라이버가 자꾸 유선랜과 충돌해서

뻗어버리는 현상 때문에 못 쓰고 있습니다. 차기버전 나올때까지 기다려야죠, 뭐.

(아 주 못 쓰는 건 아니지만 매우매우매우 귀찮은데다, 이어폰으로 음악이 안 나오는 것 때문에 제 삶의 낙 중 하나인 모든 것을 다 끝마치고 자는 것만 일과에 남겨둔 채 누군가에게 방해받지도, 누군가를 방해하지도 않고 Nightwish를 듣는 것을 포기해야 해서 안 쓰고 있습니다.)


하지만, 낙담 마세요. 비록 Love를 설치하는 것과 만들어진 소스 파일을 실행하는 것 외의 Love 내의 프로그램 코드나 실행 결과 등은 어느 OS던 똑같답니다. 설치를 마치고 어떻게 모두 만들어진 Love 파일을 실행하는지 다른 곳에서 알아온다면 강좌의 나머지 부분을 봐도 좋아요.


자, 이제 깔았다고 생각하고 저와 여러분의 첫 Love2D 프로그램을 만들어 보겠습니다.

메모장이나 좋아하는 텍스트 에디터를 실행한 후 다음과 같이 입력해 주세요.


function love.draw()
    love.graphics.print('Hello World!', 400, 300)
end


그리고 이것을 main.lua로 저장합니다. 파일 형식을 모든 파일(*.*)이나 루아 파일(*.lua)로 지정하는 것 잊지 마시길. main.lua.txt도 아니고, main.lua.lua는 더더욱 아닙니다!


이제부터 몇 가지 선택권이 있습니다.

1. 폴더를 하나 만들어 주세요. 뭐가 좋을까? 이름은 상관 없습니다.

전 식상하게 FirstProg라고 썼습니다.

이제 이 폴더 안에 아까의 main.lua를 넣습니다.

폴더를 설치하거나 다운로드 받은 Love.exe 혹은 Love.lnk(바로가기입니다.) 위에 드래그하여 끌어 놓습니다. 그러면 프로그램이 실행됩니다. 폴더째로 드래그해야지 main.lua만 드래그하면 안됩니다.

2. main.lua를 압축해서 zip 파일을 만듭니다. 폴더 째로 압축하지 말길.

압축 파일을 열자마자 main.lua가 보여야 합니다. 유식하게 '최상위 경로에 있어야 한다.' 고 합시다.

그리고 zip 파일의 확장자를 love로 바꿉니다.

2 - 1. 당신이 유식하다면 명령 프롬프트로 간 뒤 cd 명령어를 적절히 사용하여 xxxx.love 파일이 있는 곳으로 갑니다. 그리고 설치되거나 다운로드받은 love.exe(lnk는 안 됩니다!)를 xxxx.love가 있는 곳에 복사하세요. 그런 후 다음과 같은 명령을 실행시킵니다.

copy /b love.exe+xxxx.love [이름].exe

xxxx.love는 당신이 만든 .love 파일의 이름입니다.

그 렇다면, [이름].exe가 나올 겁니다. 진짜로 [이름]이라고 치지 말고, 독창적인 네이밍 센스를 발휘해 보세요. 어쨌든, 이제 exe 파일이 생성되었습니다. 이것으로 love가 다운로드되거나 설치되어 있지 않은 장소, 예를 들어 친구네 집이나 PC방 등에서도 당신의 프로그램을 실행할 수 있습니다.

이 방법은 꽤 복잡하므로, 나중에 다시 한번 찬찬히 해보겠습니다.


음, 썩 대단하진 않지만, 썩 나쁘지도 않은 여러분의 첫번째 프로그램이 나타났습니다.

제 넷북의 괴악한 해상도 때문에 저 글자가 정 가운데에 있진 않군요,

(리눅스도 잘 안 돌아가고... 이왕 뭔가 사려면 좋은 걸 사야 합니다. 아니면 저처럼 고생합니다.)


자, 이제 여러분은 love를 설치하고, 프로그램을 작성하고(사실 이해하지는 못했고, 복사해서 붙여 넣었습니다. 괜찮아요, 저도 그랬으니까. 모르면 차차 알아가면 됩니다.), 프로그램을 실행했습니다. 축하드립니다!


다음 정리글. 언젠가 씁니다.

덧글 태클 환영.
조회 수 :
465
등록일 :
2013.09.17
08:20:16 (*.209.135.92)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=703428
List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일sort
65 똥똥배의 게임대회 이야기(4) [1] 혼돈 2881   2007-02-10 2011-02-11 12:52
4. 공모전도 커뮤니케이션 게임을 만들기 전에 먼저 생각해야 하는 것은 게임을 하는 사람들입니다. 그래서 게임회사라면 시장조사가 가장 먼저 해야 할 일입니다. 회사에서 만든 게임을 얼마나 많은 게이머들이 즐길지 알고 예상되는 수익을 계산하고 거기에 ...  
64 똥똥배의 게임대회 이야기(3) [1] 혼돈 3007   2007-02-08 2011-02-11 12:53
3. 아마추어다운 게임이란 무엇인가? 아마추어는 자유롭습니다. 자신이 원한다면 무엇이든 표현할 수 있습니다. (심하게 비윤리적이라면 문제가 되겟지만) 하지만 프로는 그렇지 못합니다. 일단 상업성 때문에 '돈이 되는' 게임을 만들어야 하고, 수많은 사람...  
63 똥똥배의 게임대회 이야기(2) [2] 혼돈 2816   2007-02-07 2008-03-17 04:37
2. 100KB 공모전의 추억 1회 규칙이 10M로 제한 된 것은 과거 100KB 공모전이 담겨있어서 입니다. 과거 100KB 공모전이라고 있었는데, 그 제한된 용량을 이용해서 다양한 작품이 나왔었죠. 그 중에 우수상을 탔던 것이 '삭제 되었수다'로서 오히려 제한된 용량...  
62 똥똥배의 게임대회 이야기(1) 혼돈 2953   2007-02-06 2008-03-17 04:37
지금부터 제 이야기를 잘 들어 두시는 게 수상의 열쇠가 될지도 모릅니다. 제가 끝판 보스도 아니고, 공지 내놓고 마감일까지 기다리는 것은 지루하니 이런 저런 이야기를 들려 드리도록 하죠. 1. 지금 여러분이 해야 할 일 지금 개학인데 왜 하필 시작하냐는 ...  
61 안녕하세요~ 질문하러 왔습니다. [6] X-tra 1894   2008-03-09 2008-03-17 04:37
소리재생에 문제가 생겨서 질문드립니다. 제가 대화가 넘어갈때마다 소리를 재생하기 위해서 @소리 1, "MAIN\SE\스킵.ogg" 대화가나불나불~ @소리재생 1 를 메모장에 적었습니다. 그런데 소리가 나오지 않는겁니다. 버그리포트에는 "사운드 파일을 찾을 수 없...  
60 질문 하나더. [3] 흑곰 1715   2008-02-13 2008-03-17 04:37
1 아무 것도 없이 빈 줄 혹은 주석이 속도에 영향을 미치는지. @이동 등에서 영향을 미칠 것으로 추측됨. 2 @이동 -1 을 하면 무시되어 다음 줄을 읽게 되나요? * 똥똥배님에 의해서 게시물 이동되었습니다 (2008-03-11 14:26)  
59 갑자기 급질문.. 궤레브 1737   2008-02-08 2008-03-17 04:37
별 특별한건 아니구요 변수 강좌 보니까 ? 가 사용되더라구요? ?는 무슨 의미인가요? [분기] ([레벨]==16)?91:[분기] [분기] ([레벨]==15)?92:[분기] [분기] ([레벨]==14)?93:[분기] [분기] ([레벨]<=13)?94:[분기] @이동 [분기] 여기서 보면 [레벨]==16 이런...  
58 [re] 갑자기 급질문.. [1] 똥똥배 1548   2008-02-08 2008-03-17 04:37
>별 특별한건 아니구요 >변수 강좌 보니까 ? 가 사용되더라구요? >?는 무슨 의미인가요? > >[분기] ([레벨]==16)?91:[분기] >[분기] ([레벨]==15)?92:[분기] >[분기] ([레벨]==14)?93:[분기] >[분기] ([레벨]<=13)?94:[분기] >@이동 [분기] > >여기서 보면 >[...  
57 마우서 포인트 바꾸기 질문 다시 ㄱ- [2] 장펭돌 1807   2008-02-05 2008-03-17 04:37
똥똥배님이 알려주신대로, DATA 폴더내에 mlc 파일을 하나 생성하고, 커서에 "파일명" 이렇게 재대로 했는데.. 안됩니다. 똥똥배님은, Global.mlc 를 이용할수 있지만, 저는 Global.mlc 내에 그림파일을 추가시킬수가 없어서 안되는거 아닙니까? * 똥똥배님에 ...  
56 마우스 포인터 바꾸기가 안되네요... +질문2 장펭돌 1748   2008-02-04 2008-03-17 04:37
어떻게 해도 자꾸 마우스 모양이 안보이길래... 아예 mlc 파일을 DATA폴더 밖으로 꺼내고... System.txt와 같이 둔 상태로 그림 파일명이 "마우스" 이므로.. {#커서} "마우스" 이렇게 해봤는데도 안되네요... 으음,, 어떻게 해야하는겁니까... ㅇ 질문 2 "DIVX...  
55 {질문}그림에대한 질문일세. [5] 슈퍼타이 1703   2008-01-30 2008-03-17 04:37
뭐 만화에서보면 눈이 빛나거나 빠르게 달리는것처럼 효과주고 점프할때 바닥에 ^^ 이런식으로 효과 주는거나 빙글빙글돌때는 주변에 원같은거 그려주고 그런걸 뭐라고 하죠? * 똥똥배님에 의해서 게시물 이동되었습니다 (2008-03-11 14:26)  
54 혼돈님께 질문 흑곰 1596   2007-12-25 2008-03-17 04:37
혼돈님의 경우에는 게임 그래픽을 언제, 어떻게 준비하나요? 음... 그러니까 대충 뼈대 그래픽을 그려놓고 게임을 완성한 후 그래픽을 고친다 라던가, 그래픽을 전부 작성해두고 게임을 완성한다, 혹은 그래픽을 만들어가며 게임을 제작한다 등등... 다년간의 ...  
53 [re] 혼돈님께 질문 혼돈 2048   2007-12-25 2008-03-17 04:37
옛날에 뼈대를 그려놓고 일단 게임을 만들자는 주의였는데 나중에 완성하고 나면 고치기도 귀찮고, 그 그래픽에 맞춰 만든 거라서 그냥 그대로 쓰게 되는 경우가 많았음. 그래서 그 다음부터는 처음부터 그래픽 소스를 제대로 준비한 뒤 시작하는 식으로 했습...  
52 홍크립트에 질문이 있어서 왔스므니다. [3] X-tra 1699   2007-12-07 2008-03-17 04:37
제가 홍크립트로 와이드 화면의 게임이 만들고 싶어 질문하러 왔습니다. 메모장으로 해결이 가능 하면 좋겠으나 아마도 무리 겠죠 ㅡ.ㅡ;; 소스를 건드려야 하면 어디를 건드려야 하는지 알려 주셨으면 합니다. 직접 건드리고 싶어서도 문제가 발생하면 많은 ...  
51 질문 2가지+1 [2] file Wonder 1964   2007-11-30 2008-03-17 04:37
 
50 혼돈형에게 질문! [3] 장펭돌 1851   2007-11-28 2008-03-17 04:37
만화를 그릴때, 우선 손으로 그리지 않습니까 그럼 그린뒤에 스캔해서 컴퓨터로 옮긴뒤에 펜으로 그려진 선을 잘 보정해 줘야 채색이 가능할텐데, 어떻게 선을 다시 컴퓨터로 그려주나여 그냥, 노가다로 마우스로 원래 펜으로 그린 선을 따라서 그려주는 겅미?...  
49 혼돈형한테 질문 (페인트샾 관련) [2] file 장펭돌 939   2007-11-19 2008-03-17 04:37
 
48 스크립트 질문좀 하겠습니다....이벤트에 대한것!! [2] 여유 1859   2007-04-23 2008-03-17 04:37
Class Quick_status < Game_Player 아니면 Class Quick_status < Game_Event 어떤걸로 하는것이 옳은 선택일까요 그리고 이벤트의 X,Y좌표 이벤트의 Screen_x,y좌표(화면 XY좌표) 이벤트의 ID 이벤트의 이름 이것들을 나타낼 수 있는 방법을 알려주세요 예) a...  
47 [질문]알만툴 게임 [1] 허클베리핀 1974   2006-12-28 2008-03-17 04:37
처음 키면 ascll 로고뜨고 eb!회사 로고뜨는 나오는거 그림 어케바꾸나욤?? * 똥똥배님에 의해서 게시물 이동되었습니다 (2008-03-11 14:24)  
46 여러분 질문있어요. 성심성의껏좀 알려주세요 흑흑 [6] 케르메스 2022   2006-02-11 2008-03-17 04:37
sw = 0; for (j=2; j<WWT; j++) { if ((WWT%j) == 0) { sw = 1; } } if(sw ==1) { cout << "WWT는 정수입니다" } if(sw ==0) { cout << "WWT는 정수가 아닙니다" } -------------------------------------------------------------- 이건 변수인 WWT가 정수인...