'작업일지2/SRPG Project'에 해당되는 글 1건

  1. 2014.11.15 001 - 시작! 개발 언어는 C#, Managed DirectX 1

001 - 시작! 개발 언어는 C#, Managed DirectX

-------------------------------------


예전서부터 기획해오던 게임들 중 조금 규모가 큰 SRPG 프로젝트중 하나를 끄집어내서 시작하려한다

지금 진행중인 프로젝트라던가.. 아직 다른것들이 끝나지 않아서 많이 바쁘긴 한데 허헣,

일단 병행해서라도 시작은 때려봐야..


스토리가 있고, 샌드박스적 요소도 가미되어있고,

간단한 스크립트 언어를 사용해서 제 3의 개발자가 모드를 만들 수도 있는 Isometric / SRPG 게임을 만드려고 한다

완성되면 최종적으론 스팀에 올려서 팔고싶어!



그렇게 하고싶어!(꿈도 크다)



중간에 또 지치거나 흥미가 떨어져서 관두는 일이 없도록

작업이 어느정도 진행되고 할 때마다 작업일지를 써 두려고 한다.


여러가지 시행착오를 겪고 글을 쓰고 하면

다른 개발자들한테도 어느정도 도움이 되지 않을까 싶기도 하고!



여튼 1일차인 오늘은 개발 언어와 툴 등을 정하려 한다.



게임 엔진.. 이라고 하긴 뭐하고, 프레임워크서부터 차근차근 만들어나가려고하는데

처음엔 C++/DirectX를 이용해서 개발하려고 했는데..


C++을 마지막으로 만진 지 2년이 지나고(유니티와 WPF를 계속 다루다보니 C#에 너무 익숙해져버림) 나니

클래스를 만드는 데만 10분이 걸리더라(시발)



그래서 C#으로 개발하기로 하고 관련 그래픽 라이브러리를 찾는 도중..

OpenTK나 타오프레임워크나 이것저것 검색해서 알아보게 됬는데 관련 자료가 너무 적더라..


그러던 중에 Managed DirectX를 접하게 됬는데

마소에서 C#에서 DirectX를 사용가능하게 해 둔 거더라.

설명 참 깔끔하다. 나는 허접이라 깊게는 아무것도 모르거든 허헣.


여튼 유투브에서 관련 예제를 찾아서 예제 프로그램을 하나 만들어보았고 정상 동작하는걸 확인했으니..

그래픽 라이브러리야 언제든지 갈아 치울 수 있으니(아마) 일단 C# / Managed DirectX 이하 MDX! 로 개발을 시작하기로 결정!


일단 Managed DirectX를 이용해서 그림 한장을 띄우는 것까지 하려 한다

듀토리얼이 거기까지 되어 있었거든!


△ C#/ Windows Forms 응용 프로그램 선택


△ 요로코롬 생긴다



이제 Managed DirectX 관련 DLL을 세개 참조를 해야 하는데..

참조할 DLL 목록은 아래와 같다.


  Microsoft.DirectX.dll

  Microsoft.DirectX.Direct3DX.dll

  Microsoft.DirectX.Direct3D.dll


DirectX SDK를 깔면 기본적으로 설치되며, 경로는 기본 설치경로에 설치했다면 아래와 같다.

C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0


 솔루션 탐색기에서 참조에서 참조 추가!


△ 위에서 언급한 DLL 세개를 로드합시다


이제 C#에서 DirectX를 사용할 수 있습니다!

바로 코딩모드로 들어가보자


Form1.cs파일을 아래와 같이 수정한다.



그리고 f5를 눌러 빌드하면..!


응..?


응?..


이것은.. Managed DirectX는 닷넷 4.0에서 지원되지 않기에 나는 오류네요

차근차근 아래와 같이 닷넷 버전을 낮추어봅시다


 프로젝트 -> 속성 -> 대상 프레임워크를 .NET Framework 2.0으로


그리고 빌드해도 오류가 납니다.

왜냐하면 닷넷 버전을 낮추었기 때문에 사용 못하는 참조들이 있으니께..

△ 참조에서 저렇게 노란 세모모양 경고 아이콘이 뜬 것들을 전부 삭제해줍니다.


△ 이렇게!


△ 당연히 참조를 지웠으니 에러나는 using문 몇개를 지워줘야합니다.



△ 그리고 빌드했는데 또 에러가 난다면.. 아마 x86, x64 플랫폼 관련 오류일 가능성이 큽니다.


 고로 프로젝트 -> 속성 -> 빌드 -> 플랫폼 대상 을 x86으로 맞추어줍니다.





그리고 빌드하면!






 이렇게 성공적으로 이미지가 출력되는 것을 보실 수 있으십니다.




하지만..

창 크기를 변경하면 이미지가 출력되지 않죠

그래서 창 크기가 변경될때마다 다시 그려주는 작업이 필요합니다.



 먼저 윈폼 이벤트 목록에서 SizeChanged 이벤트를 등록하고



Form1.cs파일에 아래와 같은 코드를 추가해줍니다.

        private void Form1_SizeChanged(object sender, EventArgs e)
        {
            InitializeGraphic();
            Render();
        }



그러면 늘어나는 냐루코! 아니 이미지를 볼 수 있습니다!


이제 잠시 외출했던 팀원들도 돌아왔고 하니.. 오늘은 이쯤 해두고

다시 개발하러..쿨럭


Posted by HisaCat (Lagacy)
: