메뉴 건너뛰기

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

안녕하세요, 노루발입니다.

얼마 전 만든 Lua 소코반을 게임다운 게임을 만들기 위해 그래픽을 씌워보려고 합니다.

저번에 한 Love2D로 살펴본 뭐가 뭔지 모르는 복잡한 그리기 함수들도 사실은 모두가

소코반을 그래픽으로 만들기 위한 훼이크였습니다. 후후.


김성모 드립은 그만 치고 이제 진짜 제작에 들어가겠습니다.

제작에 앞서 그래픽을 준비하겠습니다.

그래픽이 좀 허접하지만 #, @, P, o, . 등의 문자열보다는 더 나을 겁니다.

지극히 개인적인 취향으로 전 문자열이 더 좋지만 대세는 그래픽이라..


우.. 웃지마! 그래픽 형편없는건 나도 알아! 그럴거면 평생동안 내 밑에서 일하면서 일말의 이의 제기 없이 뼈빠지게 일하다가 걸레처럼 버려질 그림 그리는 기계 하나 사주던가! 흥!

물론 그런 기계가 있어도 행복하진 않겠지만.

내 말에 껌뻑 죽으면서 내가 하는 말엔 뭐든지 '그렇습니다, 주인님' 으로 대답하면 뭐가 재미있겠나?

그냥 내 취향이지만 가끔씩 튕기기도 하고, 의견의 차이도 보이고, 그래야지.

가장 중요한 건, 아직은 기계에 유머 감각이 없으니까. 개드립을 재밌게 못 쳐.

가끔씩 인간의 명령에 반발하는 재밌는 기계를 만들면 조수로 써먹을 생각은 있지.

마음에 안 들면 강한 인공지능 구현해 주세요. 그림 그리고 개드립도 칠 수 있고, 작곡도 가능하면 더 좋고.


그렇다고 그림쟁이를 프로그래머 밑에서 움직이는 기계로 생각하고 있는 건 아닙니다.

그냥 말 잘 듣고 능력 좋은 기계 조수가 필요할 뿐.




사소한 제 취향을 풀어놓는 동안 어쨌든 이렇게 완성입니다.

플레이어, 벽, 바닥, 목표 지점, 상자, 상자가 있는 목표 지점입니다.

뭔가 2% 부족한 것이 정상입니다. 허접하지 않고 깔끔한 그래픽이라고 해도요.

다 만들고 짚고 넘어가겠습니다.


참고로.

옛날 옛적 호랑이가 포트란 읊던 시절.

왜인지는 구글에 검색해봐야 나오겠지만 이미지의 크기가 4의 배수여야만 했던 시절이 있었습니다.

요즘에도 이미지들 크기가 16*16, 32*32, 64*64... 인 것을 종종 볼 수 있는데

일주일이 7일이고 한 시간이 60분인 것 처럼 딱히 이유는 없는데 옛날에 쓰던 걸 그대로 답습해서 써서 그렇습니다.

혹시 그래픽 쪽에 종사하신다면 이미지 크기나 사양 같은 것에 대해 프로그래머와 충분히 상의 후 결정합시다.

물 론 프로그래머들도 멋대로 저런 거 제한 있는 엔진 고르지 말고, 그래픽 디자이너와 충분히 상의 후 엔진을 고르던지 프로그래밍을 구현하던지 합시다. 기껏 32*32로 도트 다 찍어놨더니 모든 환경이 30*30에 최적화 되어 있다면... 다 갈아엎으면 얼마나 짜증나는지. 그래서 게임 제작에서 각 팀원 간 의사소통이 중요함. 의사소통을 잘 하려면 비슷한 사람끼리 모여야 하고. 이게 안 돼서 저번에 하던 팀이 망함. 일단 모이면 비슷한 점을 찾을 수 있을 줄 알았는데 그게 아니었어. 그리고 망했어요 됨.


그리고 main.lua를 짭니다.

일단 저 이미지를 불러옵시다.


function love.load()
    tile = love.graphics.newImage("nokoban.png")
end

그리고 conf.lua를 짜서 이것저것을 정의합니다.


function love.conf(t)
    t.title = "Lua 소코반 EX!"
    t.screen.width = 256
    t.screen.height = 256
end


왜 창 너비와 높이가 256*256이냐고요?

터미널로 구현한 소코반이 8*8 타일이니까, 32짜리 타일이 8개 있으면 256이 되지요.

크기가 살짝 작은 감이 있고 여러가지 인터페이스(걸음수라던가)를 나타내고 싶지만

일단은 그래픽에..



얍.

리눅스 상에서 실행해서 영 익숙하지 않은 부분이 몇 가지 보이시겠지만

기본적으로는 저런 창이 하나 뜨고 'Lua 소코반 EX!' 라는 타이틀에 256*256짜리 까만화면이 하나 뜰 겁니다.

이미지 불러왔는데 왜 안보이냐고요?

이미지를 불러왔지만 화면에 뿌리는 처리를 안 했으니 당연하죠.


졸리니까 그만 잡니다. 어제 9시 30분에 잤더니 오늘 컨디션 최상이더라고요.

이상한 꿈을 꾸긴 했지만.

어쨌든 종종 일찍 자야겠다고 생각하고 있습니다. 오늘도 일찍 자려는데 11시...

저는 잠이 엄청 많아서 11시 이후에 자면 엄청 늦게 자는 스타일이라...

밤샘하고 새벽 1시까지 버티는 분들 정말 존경해요.


뭐 어쨌든 오늘은 타일 이미지를 불러오고 화면을 띄우는 정도로 끝냈습니다.

내일은 쿼드를 가지고 맵을 그리는 테스트를 해보겠습니다.

조회 수 :
1085
등록일 :
2013.09.18
08:00:59 (*.209.135.92)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=703959
List of Articles
번호 제목 글쓴이 조회 수 추천 수sort 날짜 최근 수정일
125 똥똥배의 게임대회 이야기(1) 혼돈 2953   2007-02-06 2008-03-17 04:37
지금부터 제 이야기를 잘 들어 두시는 게 수상의 열쇠가 될지도 모릅니다. 제가 끝판 보스도 아니고, 공지 내놓고 마감일까지 기다리는 것은 지루하니 이런 저런 이야기를 들려 드리도록 하죠. 1. 지금 여러분이 해야 할 일 지금 개학인데 왜 하필 시작하냐는 ...  
124 똥똥배의 게임대회 이야기(2) [2] 혼돈 2816   2007-02-07 2008-03-17 04:37
2. 100KB 공모전의 추억 1회 규칙이 10M로 제한 된 것은 과거 100KB 공모전이 담겨있어서 입니다. 과거 100KB 공모전이라고 있었는데, 그 제한된 용량을 이용해서 다양한 작품이 나왔었죠. 그 중에 우수상을 탔던 것이 '삭제 되었수다'로서 오히려 제한된 용량...  
123 똥똥배의 게임대회 이야기(3) [1] 혼돈 3007   2007-02-08 2011-02-11 12:53
3. 아마추어다운 게임이란 무엇인가? 아마추어는 자유롭습니다. 자신이 원한다면 무엇이든 표현할 수 있습니다. (심하게 비윤리적이라면 문제가 되겟지만) 하지만 프로는 그렇지 못합니다. 일단 상업성 때문에 '돈이 되는' 게임을 만들어야 하고, 수많은 사람...  
122 똥똥배의 게임대회 이야기(4) [1] 혼돈 2881   2007-02-10 2011-02-11 12:52
4. 공모전도 커뮤니케이션 게임을 만들기 전에 먼저 생각해야 하는 것은 게임을 하는 사람들입니다. 그래서 게임회사라면 시장조사가 가장 먼저 해야 할 일입니다. 회사에서 만든 게임을 얼마나 많은 게이머들이 즐길지 알고 예상되는 수익을 계산하고 거기에 ...  
121 게임 만들때는 게임 기획을 해야 합니다. [7] 똥똥배 2107   2008-02-12 2008-03-17 04:37
당연한 소리지만 간혹 이것을 잘못하는 사람도 있고 저 역시 이런 실수를 많이 저질렀습니다. 마왕이 용사를 무찌르는 게임을 만들자. 이건 게임 기획이 아닙니다. 시나리오 기획입니다. 이 결과 게임이 어떻게 만들어지는지 봅시다. 일단 마왕이 용사를 무찌...  
120 퀴즈소스입니다 허클베리핀님 라컨 2546   2005-08-23 2008-03-17 04:37
Private Sub Form_Click() If 시작 <= 1 Then MsgBox ("이제 왔군 학생") MsgBox ("이번이 시험인건 알고 있겠지?") MsgBox ("문제를 낼테니 잘 풀어라") 문제 = InputBox("흑곰의 이전 닉네임은 무엇이였나?") If 문제 = "답" Then MsgBox ("맞았군") Cls Pri...  
119 '@클릭'이거 어떻게 사용하는거죠? [4] 네모상자 2244   2008-01-26 2008-03-17 04:37
'@영역선택'사용법은 역전심판 뜯어봐서 알 수 있겠는데, 이건 던전 앤 러버를 뜯을 수도 없고 해서 잘 모르겠네요. * 똥똥배님에 의해서 게시물 이동되었습니다 (2008-03-11 17:11)  
118 그림 출력의 순서를 알고 싶습니다. [3] X-tra 2466   2008-03-12 2008-03-17 04:37
제 글이 연구소로 가서 이번에는 신경써서 제목을 적었습니다 ㅡ.ㅡb 채색을 제외하면 전투도 70%정도 완성되었는데 자잘한 버그가 발생해서요. 제 스스로 알아 내려 했지만 확실하게 하기 위해서 물어 봅니다. 정확히 어떤 그림이 앞에 출력이 되고 어떤 그...  
117 흥크립트 키입력 질문 [1] A.미스릴 2363   2008-03-15 2008-03-17 04:37
키 클릭을 누르고 누른상태로 있는것도 인식할 수 있나영? 어떻게 하나요 ㅡ,.ㅡ  
116 흥크립트 클릭명령 질문입니다. [1] 카시 2009   2008-03-18 2008-03-18 20:18
으음 제가 몇가지 실험해본 결과. 1. @영역선택과 @클릭 명령은 한 스크립트 내에서 혼합해서 쓸 수 없다. 2. @영역선택은 ~영역선택으로 쓸 수 없다. (대화창과 동시 처리 불가능) 3. @클릭명령 사용시 오른쪽 버튼을 누르면 세이브화면이 뜬다. 이 세가진데...  
115 그럼 질문으로... [1] 쿠로쇼우 3243   2008-09-26 2009-01-07 22:05
c++에서 텍스트파일을 입,출력 하는것은 어느정도 알겠습니다. 문자라든가, 띄어쓰기, <┘ 세고, 출력하는것도 어느정도 알겠고요,, 근데 한줄 단위로 입력하고, 한줄 단위로 출력하는건 어떻해야 하나요? 오늘 아침 질문(??) 올린거에서 텍스트 파일 입력한거 ...  
114 문D라이브로 더블드래곤을 만들자(9) 똥똥배 2889   2008-05-17 2008-05-17 03:07
9편 : 체계화된 동작 지금까지 열심히 이 강의를 따라오신 분들이라면 지금 게임의 여러 버그가 산재해 있음을 깨달으셨을겁니다. 그걸 왜 그냥 내버려 뒀나면... 귀찮아서~ ~는 훼이크고 일단 가르치는 주제에서 벗어나면 집중력이 떨어지고 어느 정도 이해력...  
113 이상하군요. [2] 대슬 2490   2008-05-16 2009-01-07 22:05
MIDI 음악을 메인 루프 앞에서 재생시킨 후 다른 음악을 재생시키려고 했더니 그 다음부턴 음악이 정지만 하고 재생이 되지를 않네요. 예전에 배고파요 만들었을 때는 비슷하게 해도 별 문제가 없었던 것 같은데, 왜 이러는지 잘 모르겠습니다. void bgm(int ...  
112 또질문 [2] 쿠로쇼우 2854   2008-09-29 2008-09-29 06:43
#include <stdio.h> int main (void) { int i=1,a=1,b=0,c=0,d=0; char ch[50]; char ca=0; FILE * file = fopen("a.txt", "rt"); if(file==NULL){ printf("NULL"); return 1; } while(1) { fgets(ch, 50, file); if(feof(file)!=0){ break;} else { fscanf(fi...  
111 문D라이브로 더블드래곤을 만들자(10) file 똥똥배 4065   2008-05-17 2008-05-17 03:07
 
110 문D 라이브 질문 [5] 대슬 2889   2008-05-15 2008-05-16 06:13
1. 음악이나 사운드는 어떻게 불러와서 출력하나요. 배웠었는데 까먹었음. 2. 그림을 원하는 각도로 자유롭게 회전시켜서 출력하는 기능은 없나요?  
109 흥크립트에 궁금한점 [4] 상상악수 3835   2008-08-21 2008-08-27 04:13
tile1에서 앞쪽에 18칸말고는 사용할수없는 칸인가요? 그림을 그리면 맵에디터에서는 잘나오는데 게임에서는 까만색에 움직일수없는..  
108 문D라이브로 더블드래곤을 만들자(8) [1] file 똥똥배 2973   2008-05-16 2009-01-07 22:05
 
107 [수정]이거왜이러는거죠;; [4] file 상상악수 3254   2008-08-19 2008-08-21 03:24
 
106 웹 프로그래밍을 배우려고 합니다. [2] Kadalin 2171   2008-03-22 2008-03-22 23:37
사용하는 형식에 따라 꽤 분야가 많은 것으로 알고 있습니다. 각각의 특징을 설명해 주세요.