== [조현태/블로그] ==
현재 제작중인 게임은 배경만 이중버퍼링;; 케릭터는 setpixel노가다인 즐거운 프로그램(?)이다.
이유는 만들기 시작할때 API에서 bitmap파일을 읽는다는 사실을 모르고, bitmap파일의 헤더를 짤라내고 내용을 편집해서
나만의 bitmap데이터를 만들어버린탓..;; 거기다 메모리DC와 일반창에 출력하는 DC에의 setpixel연산속도의 차이가 비슷
할것 같고, 나만의 데이터(?)의 압축률을 상승시킬 수 있다는 기대에 케릭터 출력부분은 그냥 둬버렸다.
그러나 케릭터 숫자가 늘어나면 거의 한화면 분량의 setpixel이 나오기 때문에 좌절..이될거란 생각에 모든 연산부분을
이중버퍼링으로 하기로 했다.(구현방식도 정말 독특하다.. 정말 나만의 구현방식. 자신은 최대빠른 연산을 자랑한다고 주장
하나 근거는 무근이다. 사실 일반적인 방식이 더 빠르나 만든게 아까워서..;;)
그래서 bitblt를 이용한 투명그리기를 계획하던중 문득 위키가 있다는 사실이 생각났다!!(뭘 새삼스럽게;;)
모처럼 이용해봐야지..ㅎㅎ 하고 검색했건만..나오지 않았다..ㅠ.ㅜ
하는수 없이 다른 방법을 찾기로 생각하고, 위키를 뒤적이던중 몇몇 선배님들이 노가다해 놓으신 기록을 보게되었다.^^
노가다=실수수정 ㅎㅎㅎ 물런 나도 사소한(이라고 적고 중대한 이라고 읽는다.)실수를 많이 하기때문에 그 고통을 잘 안다.ㅠ.ㅜ
특히 for()문의 괄호뒤에 ;를 붙였을때의 슬픔이란...(if문의 괄호뒤에 ;를 붙이면 경고가 뜬다. 근데 for문은 안뜬다. 쳇..)
이렇게 뒤에보는 사람들을 위해서 작업일지를 적어둘까..(남들이 볼일이 없나..;;)
만들던 bitblt나 연구해야겠다. (개념은 잡았으나 명령어를 모르는 관계로..;; 나중에 정리해서 위키에 올려줘야 겠다.)
귀차니즘과 게으름의 압박으로 작업일지는 포기..
요즈음 \'테스트 주도 개발\' 이라는 것을 배우고 있다. 그러나 요즘 진행하고 있는 프로그램은 아직 시험해보기에 맞지않아 보류!
그러나 저걸 배우고나서 테스트->테스트사이의 시간을 줄였다. (여전히 리펙토링은 엄두도 못낸다.ㅠ.ㅜ)
테스트 시간을 줄이면 확실히 오류를 줄일 수 있고, 긴장감이 적어진다.
그래서 즐거운 프로그래밍~ (이라기보다 긴장이 줄어서 나태해진다.)
혹시 이 글을 보시는 분은 테스트 시간을 줄여보길 바란다. 나름대로 장점이 있다고나 할까..
.....그만놀고 만들던거 마져해야겠다..<-이게 단점이다.쳇..
모처럼 쉬는날이라, 조금 업데이트가 많았다(라고 적고 게을러서 거의 안했다라고 읽는다.)
프로그램을 수정하면서 느낀점인데, 내 프로그램에는 유독 동적할당을 위한 포인터가 많은 것 같다.
물런 링크드 리스트를 사용할 부분에 대해서는 확실히 사용해주지만, 자료의 변동이 적고 엑세스가 많은 부분이 아직은 많다.
초창기라 그런가? 그렇다고는 해도 DC와 오브젝트를 포인터로 동적할당하는 사람은 나밖에 없을 것 같다. 괴상한 발상
마치 핸들을 조작하기 위한 핸들을 만드는 것과 유사하다고나 할까.. (사실 좀 다른개념이긴 하다.)
그나저나 이미 만들어논 BITMAP은 다써버렸다. 공격하는 애니메이션을 위해 340여장 정도를 캡쳐했다.
언제다하지? 그리파일만 뽑는데 한 3일은 걸릴듯.. 숙제만 좀 적어도..쳇..
결론: 여전히 게으르다. 귀차너.....그림파일만 누가 안해주나?? 디자이너를 구하던지 해야지원..
봄날은 갔다. 끊임없는 숙제와의 싸움만이 있을뿐.... 이로서 이번주는 더이상 게임 업데이트를 못하는 것인가?
리펙토링 중... 좌절...OTL 제대로 된 리펙토링이 아닌듯..;; 확실히 배운대로 하는것 같은데..왜지?
과도한 숙제의 압박으로 아무것도 못함..ㅠ.ㅜ C프로젝트.. 미리 준비를 조금 해둬야 CC가 데이트라도 좀더하지..훗..
CC는 사랑을 즐기세요.^^ 숙제는 솔로가 책임집니다... --CC사랑 보험협의회(?)--
위에 저렇게 적어두고서도, 정작 금요일 밤에 밤새는 바람에 토-일요일은 잠만자서 아무것도 준비 못해갔다는..
CC분들께 죄송한 마음 뿐이랍니다.^^ 그래도 즐거운 데이트 즐기시길..ㅎㅎ(책임지고 마무리 하겠음!!^^)
낮에 같이할때는 남들이 보는데 소스를 짤려고 하니 긴장이 잔뜩되서 손이 굳었더라는..
머리도 같이말이지..^^ 아후~~>ㅃ<;; 그래서 지금 엉망이된 소스를 붙들고 교정작업중..^^ 프로젝트라..
아.. 프로젝트.. 앞날이 깜깜한데? ㅎㅎ 그래도 우리 현지양과 현정군이 상당히 빠른 함수작성을 해주었는데,
다시한번 10개도 넘는 함수들을 1시간도 안되서 작성해준 현지양과 현정군에게 감사.^^ (역시 사랑의힘!^^)
혼자 짜면 상당히 길고 지루한 작업이었을텐데 말야..^^
덕분에 힘이 잔뜩 나는걸..ㅎㅎ 그 성의를 봐서라도 최선을 다하겠습니다!! 충성!! ^^7
귀차니즘의 법칙에 의거하여 방바닥을 구르는중..
아.. 내몸을 구성하는건 단 몇 종류의 원소들과 귀차니즘이란 말인가!!!
분명 내일 숙제가 있어여 해야 되기도 하는데..
이놈의 리펙토링은 해도해도 끝이나지 않는다. 이거 무한번 할 수 있는거 아냐?
괜히 리펙토링을 해서 프로젝트의 끝나는게 늦어질지도.. 혼자하면 모르겠는데, 같이하는 숙제다 보니..
결론: {숙제=귀찮다. 밥=제대로 못먹었다. 잠=아직 부족하다.}=만사가 귀차늠. 역시 잠시 쉬고 해야겠다.
피곤하니 자야지..ㅎㅎㅎ 내년을 위해서 소스를 올려둘까..
무엇보다 능력도 부진한 나를 상대로 고생해준 현정군, 현지양에게 감사하는..^^
바쁜 일상때문이 미뤄져 있었던 미스틱아츠 수정작업중..
공격애니메이션을 어디까지를 짤라야 할지 심히 걱정중..
공격 애니메이션을 고생끝에 편집해서 추가했으나, 몇몇 문제로 고심중..
역시 처음부터 계획을 단단히 짰어야 하는데... 머리가 나뻐서 손발이 고생중...휴..
아무래도 키보드 설정을 다시 수정해야 할것 같다는..
현재 알고리즘의 치명적인 문제점 존재..ㅠ.ㅜ
시험은 GG, 역시 프로그래밍이 더 잼이씀..ㅎㅎ
엉겹결에 강의하나 맡아버렸..;;ㅁ;; 뭐.. 주제가 게임만들기라는..ㅎㅎ
\'현태눙 연약해소 강의 같웅고 못해잉~>ㅁ<;;\' 라고 해도.. 안먹힐듯..ㅠ.ㅜ
.. 오면서 지하철에서 대강 구상 해뒀으니.. 어떻게든 될듯..^^
다 알고있는 내용보면 지루하지 않을까..ㅠ.ㅜ 히궁..ㅠ.ㅜ
모처럼 노는날을 맞이하여, 대규모 업데이트..^^
사실 \'p\'키를 누르면 배경이 어두워 지게 만들려고 레이어 효과가 가능하도록 출력 알고리즘을 수정했으나,
bitblt의 and와 or연산자로는 불가능 하다고 판단, 잠시 보류.
(사실 01111111와 같은 값과 연산을 and연산을 하면 어두워지기는 하나, 안어두워지는 부분이 생겨서 색이 이상해짐.)
(전체를 getpixel과 setpixel로 연산하면 살인적으로 느려짐..;;)
오늘과 내일 2일간 리니지에서 대규모 공성이 있는 관계로 다른 모든일들이 거의 중단상태..
문제는 이게 아니라, 데블스켐프.. 어떻게 되는건지..
신입생 강의.. 과연 내가 하는게 맞기는 맞는지조차 알 수 없는 상황이 되버렸다.
뭐 안하면 편하기야 하지만서도~ 룰루랄라..ㅎㅎ
나중에 선배님께 문자라도 보내보아야 하나..ㅎㅎ
ㅎㅎ 그럼 공성을 위해서 2일간 잠수! ㅎㅎ 데블스 켐프때 보자구..ㅎㅎ
데블스 캠프 때문에 밤낮이 바뀌었다. 이런;;
위키의 글을 읽다가 [제로페이지의문제점] 이라는 페이지에 들어가게 되었다... 그러고 보니 메인에 있었자너;; 난 왜 못봤지?
음..그런데 우리 제로페이져가 진행하는 프로젝트가 없었나? 하는 의문이 들었다.. 그러고보니 뭐 만드는게 없긴 없구나..
개인적으로야.. 이상한 게임비스무리아리까리한거 만들고 있긴 하지만.. 그거야 거의 노가다니 안해도 되는 일이지만,
제로페이저에 프로젝트가 없다닛..;;ㅁ;; 방학중에 만들어 보고 싶은게 뭐가 있을까? 하고 생각하면 넘쳐서;;(버퍼오버플로우..;;)
못만들고 있는 실정..ㅎㅎ (그래도 방학중에 이것저것 혼자서 깨작깨작 만들어서 냐금냐금 놀아야짓..)
....이야기가 새버렸다. 이게 중요한게 아니라 프로젝트가 없다닝.. 뭔가 부산 프로젝트 지부라도 생기면 참가해야지..ㅎㅎ
마직막날 사용한 채팅클라이언트 소스를 이용해서 접속이되는 서버를 만들어 볼려다가, 큐가 필요해서 처음으로 클래스란걸 만들어 봤다.
저번 자바시간에 만들었던게 생각나서.. 앞으로 필요하면 가져다 놓고 사용하려고..만들어 놓고보니..
뭔가 이쁘다. 귀엽다. 기특하다. 상큼하다. 깜찍하다. 음.... 이렇게 적어놓고 혹시 사용하면 속도가 느리려나..라고 생각하는..
나는 나쁜사람인거야..ㅠ.ㅜ 어쨋든 귀여우니 앞으로 종종 애용해 주도록 하겠다. (사실은 귀차니즘의 산물..)
그나저나.. 이거 어떻게 만들지..C는 가끔 어려워 보일때가 있..(고로 가끔 파이썬이 쉬워보일때가 있다.)
c랑 파이썬이랑 연결할려니 무지 힘들어보이는..(인제 작업시작;;;)
만들어서 혼자 채팅하고 놀아야지..(아직 1명 접속하는 서버도 못만들었으면서........이런 바부..;;)
정말.. 이놈의 서버 만들기 어렵군..;;ㅎㅎㅎ
드디어 서버에서 메시지도 보내게 되었...ㅎㅎㅎ
인제 다시 받은걸 분석해서 몇초 걸렸는지 보내주는거 짜면 되는군..ㅎㅎㅎ
한명은 그나마 나았건만.. 여러명은 당최 어떡해 해야 하는지 감도 안온닷..;;ㅁ;;
또 self.seqNum랑 self.delimiter = \'\\r\\n\'의 용도도 불명;; 일단 받기는 하지만, 같은 seqNum으로 보내도 클라이언트가 잘 돌아가는 관계로 같은 번호로 보내주고 있다는..
문제는 부모님 일을 돕느라 방학동안은 하루종일 가게로 GOGO~...
어제 하루종일 차안에 있어서 늦게 일어난 탓에 소스를 늦게 올렸음..^^ 막 작성해서..^^;;
방학중이나.. 부모님 일을 돕기위해 아침에는 가게 저녘늦게나 집으로 돌아오는 관계로..
해야될 게임은 많고... 할 시간은 없나..ㅠ.ㅜ
그나저나 [조현태] 페이지가 너무 길어서 좀 나눴다.^^
컴퓨터를 아예 못하게 되버릴 지도...으아악...
지금 짜고있는 지뢰파인더 녀석.. 같은 부분을 여러번 수정해가면서 만드느라 시간 다잡아먹고있다.
뭐가 이리 복잡한지.. 누가 만든 알고리즘인거야..투덜투덜..(자기학대??)
그나저나 이런 암담한 현실에서도 리니지2 64렙을 찍고 말았다. 공성만 아니었어도 벌써 만렙 찍었는데..ㅎㅎ
우리 학교에서 거의 유일무이하게 리니지2를 하는 현지양의 레벨도 거의다 따라잡았으니~^^
어제 HJ커플 100일이었답니다.^^ 늦었지만 축하해주세요.~ >ㅁ<;;
그래서 오늘은 끝~ 자러갈랭~ 모두들 좋은꿈 꾸고, 내일 좋은아침 맞이하기를..ㅎㅎ
점심시간에 이상한 펙토리얼 뭐시기를 해버렸다.
100만 팩토리얼의 인자수?? 였던가? 하는것을 구하는 문제였는데, 생각처럼 빠르게 연산되질 않았다.
가볍게 보고 심심풀이차 시작했는데, 첫번째 시도에서 100만은커녕 10만펙토리얼을 3.5초에 연산..
좌절하고 약간 수정햇더니, 20만 펙토리얼을 4초만에 연산....
더 팍팍 줄여서 100만 펙토리얼 38초만에 연산.. 줄일 수 있는데까지 줄여서 26초만에 연산..
음.. 일하러 가야된다는 생각에 다른 알고리즘을 급조해서 시도. 1000만펙토리얼(오옷!)을 4-5초만에 연산하는 쾌거를 이룩했다.
냐하하핫.. 역시 찍기는 기적을 낳는법..찍는게 최고야..^^ 방금 문득 그 알고리즘을 더 줄일 수 있겠다 싶어서 줄였건만..
1000만펙토리얼을 2-3초만에연산.. 2초 줄었다..OTL..... 많이 줄어들길 바랬건만..여기가 한계인 것인가!!.......
누가 1억 펙토리얼을 3초안에 계산하는 알고리즘을 만들어 주세요..^^
앗.. 그러고 보니... 이거 컴퓨터가 무지무지무지 좋은면 알고리즘이 발전하지 않아도 상관없자낫..ㅎㅎㅎ
하드웨어의 발전을 기대해야겠군.. 뭐.. 어쨋든 이래저래 머리아픈 하루였다. 거의 일한다고 잠을 못자서 프로그래밍도 못하고..ㅠ.ㅜ
게임!! 나의 사랑스런 케릭터도 못보고.. 잠은 오는데... 에휴.. 거의 졸면서 지뢰파인더를 작성했더니, 소스가 엉망이다.
너무 엉망인데;;; 나중에 완성하고 반드시 수정작업을 해야겠다. 근데 언제 다 만들지..
부모님 일을 돕는다고 마음껏 한것이 없다.ㅎㅎ 코딩을 많이 해보려 했으나.. 과도한 일을 핑계로 게으름을 너무 부린듯..ㅎ
그러는 와중에도 그나마 지뢰파인더 하나는 만들었으니.. 어느정도 보람은 있었다. 사실 이건 시작이고 그외에 만들게 많았는데..아쉽다.ㅎ
- 좋은 테스트 환경이 시간을 아낄 수 있고 잦은 테스트로 버그를 줄일 수 있다.
무엇보다 변수의 변화과저을 쉽게 알 수 있다고나 할까..ㅎㅎ
- 말 그대로 마구 낭비하자는 뜻은 아니다. 그렇지만 사소하게 메모리를 아끼려는데 집착하다가 복잡해져서 재앙이 발생하는 경우가 많았다.
특히 배열의 경우가 그런데, 여유공간을 충분히 두는것이 도움이 되는 듯 하다.
- 테스트 환경을 조성하는 것과 같은 원리인데, 사실 만들어 진 다음에 바껴질 지 잘 모르는 일반적인 숫자라도, 테스트 할때에는 빈번하게 바꿔보는 경우가 많았다. 바꾸기고 편하고 알아보기도 쉽다.
- for 문에서 루프도는 경우가 아닐경우에(사실 루프돌때 사용되는 변수도 가급적 이름을 지어주는 것이 좋다는 것을 알았지만, 아직 익숙하지 못하고, 왠지 i가 루프를 의미해서 더 알아보기 편할 때가 있어서 놔두고 있다만은 고쳐야 할지도...)변수명이 길면 내용을 알아보기 편하고, 특히 소스의 일부를 복사해 올 경우 변수명이 짧아서 편집이 힘든경우가 있었다. 변수명은 이쁘게 지어주자.ㅎ
- 물런 짜고있는 중에 계획이 변경되는 경우가 태반이었다. 그렇지만 이럴때도 시작할때 계획을 명확하게 한 부분은 고치기도 쉬웠지만, 추상적으로 계획한 부분에서는 만드는 것 조차 힘든 경우가 많았다. (어느분께 들은 이야기지만 메뉴얼을 만든다는 생각으로 계획하면 잘된다고 한다. 하지만 아직 시도해 본 일은 없어서 잘 모르겠다.)
- 이런 상황에서는 이런 자료구조를 써야지. 하고 알맞은 자료구조를 구상해 두어야 별탈없이 짜지는 듯하다. 이번 지뢰파인더를 만들면서 나름대로의 자료구조를 만들었는데, 잘 생각해두지 않아서 처음에는 고생을 많이 했다. 우선 자료구조먼저 만들어 놓고 그걸 관리하는 부분부터 만들어 나가면 나은 듯 하다.
- 의외로 그런 곳에서 문제가 많이 생겼었다. 완전히 테스트가 된 함수가 아니라면 꼼꼼히 체크해 봐야 할 것같다. 이러이러 할 것 같다는 가정하에 짠 부분들이 사실은 그런기능을 못해서 예측과는 전혀 다른부분에서 사소한 오류로 고생한 일이 많았다. (사실 이 이전에 만들어 나가면서 테스트를 확실히 거치는 편이 더 좋다고 생각한다. 중간중간에 아무생각없이 테스트를 안하고 작성 또는 수정한 부분에서 문제가 발생한다.)
- 짜다가 진로의 대폭적인 수정이 있어야 할 때, 과거에 부분으로 돌아가야 할 일이 있었다. 그런데 필요한 Ctrl+Z 가지고는 어림도 없는 경우가 많았으나, 자료가 없어서 결국 그 부분까지 다시 짜야 하는 일이 있었다. 큰 수정이 있을 때 마다, 또는 정기적으로 백업해 두면 좋겠다.^^
결과적으로 이래저래 고생은 했지만.. 결과는 뻔한것.. 알고있으면서도 매번 이렇게 고생하는 이유는.. 역시 게으름인가?ㅎ 인생 최대의 적이다. 무엇보다도 혼자서 짜기때문에 고생이 배가 된것 같다. 언젠가 한번 다른사람과 코딩하면서 다른 사람의 코딩 방식을 접해봤으면 하는 바램이 있다. 이로써 뻔하디 뻔한 결과만을 냈지만.. 나름대로 고생했던 그리고 한것이 없는 방학이 지나갔다. 하고싶었던 만큼 하지못했고, 곧 개강이라 슬픈 마음이지만.. 아직 20짤이지 않은가! (벌써 20살;;) 마음껏 놀고 마음껏 놀자..(응?)
- 추신: 방학동안 [LittleAOI]문제를 올려준 [허아영]양에게 감사를.. 그리고 주최인 보창형에게도 감사하는 마음을!ㅎ 그리고.. 다풀었는데 보창형 상품 없어요?ㅎ 아..배고파.ㅎ(갈구하는 눈빛.ㅎ +.+)
----
[조현태]
== [조현태/블로그] ==
http://inyourheart.biz/Lock.gif
- 봉인
----