001 - 시작! 개발 언어는 C#, Managed DirectX
작업일지2/SRPG Project 2014. 11. 15. 22:07 |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(); }
그러면 늘어나는 냐루코! 아니 이미지를 볼 수 있습니다!
이제 잠시 외출했던 팀원들도 돌아왔고 하니.. 오늘은 이쯤 해두고
다시 개발하러..쿨럭