2013-05-22 4 views
4

저는 현재 Xamarin 도구를 사용하여 iOS, Android 및 Win8로 포팅하고 싶은 Windows Phone 용 메모리 게임을 가지고 있습니다.Xamarin을 사용하여 Windows Phone 게임에 이식하십시오.

비즈니스 로직을 하나의 어셈블리로 중앙 집중화하고 각 플랫폼에 대한 UI를 간단히 작성하고 싶습니다.

코드는 간단한 C#이지만 비트 맵을 사용하여 게임에 카드를 표시합니다. 그러나 필자가 읽은 바에 따르면 비트 맵을 사용하기위한 다양한 플랫폼에 대한 표준 지원은 없습니다.

이 문제에 대한 권장 방법은 무엇입니까?

나는 MonoGame과 같은 것을 사용해야한다고 생각하고 있지만, 내가하고 싶은 일이 과잉이라고 생각합니다.

+0

이미지 비트 맵을 참조하는 경우 귀하의 재량에 따라 이미지보기 또는 모노 게임에 iOS/Android를 사용할 수 있습니다. 그러나 System.Drawing.Bitmap 객체를 참조하는 경우 iOS/Android 용 Mono의 현재 안정적인 릴리스에서는 Bitmap 객체를 사용할 수 없기 때문에 다른 것을 사용해야합니다. 이 경우 MonoGame을 권하고 싶습니다. – kc7zax

+0

가장 큰 관심사는 이미지를 읽는 플랫폼 간 방법 (PNG)을 사용하는 것이 었습니다. 내 최고의 옵션은 MonoGame에서 지원되는 Texture2D를 사용하는 것 같습니다. MonoGame의 pluralsight 과정은 매우 도움이되었습니다. http://pluralsight.com/training/Courses/TableOfContents/monogame –

답변

2

코드가 C#으로되어 있다고합니다. 내가 아는 한 Xamarin은 C# 코드를 Android 및 iOS에서 실행할 수있는 유일한 방법입니다. Xamarin에는 이 사용 가능하지만 앱의 크기가 제한 될 수있는 무료 초보자 용 버전이 있습니다. 크기 제한에 도달하면 라이센스 비용을 지불해야합니다.

라이센스 비용을 지불하기로 결정한 후 포트에 MonoGame을 사용하려면 다른 비용은 들지 않습니다. 게임이 이미 XNA를 사용하고 있거나 일부 XNA 경험이있는 경우 MonoGame을 사용하는 것이 좋습니다. MonoGame은 XNA 포트이며 게임 제작을 위해 설계되었으므로 많은 게임 관련 작업이 더 쉽습니다.

다른 대안은 표준 앱 구축 API를 사용하여 앱으로 게임을 제작하는 것입니다. 이것은 가능하지만 Xamarin의 무료 버전을 사용하여 비용을 절감하려는 경우가 아니라면 이런 방식으로 이점을 얻을 수는 없습니다. 앞으로 더 많은 게임을 제작할 계획이라면 총알을 물거나 MonoGame을 배우는 것이 좋습니다.

MonoGame에서 비트 맵을 사용하면 문제가되지 않습니다. 하지만 PNG 파일로 변환해야 할 수도 있습니다.

하나의 어셈블리에서 비즈니스 로직을 집중화하는 것은 일종의 휴대용 클래스 라이브러리를 사용하지만 PCL의 제한으로 인해 파일 공유를 사용하는 것이 더 쉽습니다. 기본적으로 각 프로젝트의 파일에 대한 소프트 링크가 있습니다. 파일을 업데이트하면 동시에 모든 프로젝트에서 업데이트되지만 새로운 파일을 추가하면 각 프로젝트에 개별적으로 추가해야합니다. 약간의 유지 관리 통증이지만,별로는 아닙니다.

0

물론, 출발점으로 UI와 로직을 분리해야합니다.

여기까지 가려면 console 게임 버전을 만드는 것이 좋습니다. 콘솔을 사용하면 응용 프로그램에 매개 변수가있는 명령 만 보낼 수 있습니다. 마우스 또는 실시간 키보드는 사용하지 않습니다. 모든 UI 관련 작업이 남아 있습니다. 비즈니스 논리와 사용할 명령 만 남아 있습니다.

그런 다음 MonoGame을 시도해야합니다. 2D 게임에 충분히 안정적입니다. IL 코드가 너무 많지 않으면 iOSAndroid은 무료입니다!

다른 방법은 ... Unity 3D입니다. 해당 엔진을 사용하는 것은 작성한 코드에 따라 다릅니다. 어떤 경우에는 비즈니스 로직을 공유하는 게임 엔진을 사용할 수 있습니다. 새로운 Unity 3D policy 덕분에 인디 게임 개발자는 무료로 게임을 만들고 배포 할 수있었습니다.요컨대

계획은 다음

  • 은 (콘솔 I/O로) 코어 기능성을 구현할;
  • 그런 다음 엔진을 선택하고 대상 플랫폼에 UI를 구현하십시오.
+0

이미지/비트 맵을 사용하려면 MonoGames 또는 Unity 같은 타사 라이브러리를 사용해야합니까? 아니면 다른 플랫폼에있는 이미지/비트 맵을 지원하는 .NET의 일부가 있습니까? –

+0

간단히 말해서, 아니요. 모든 대상 플랫폼에 대해 대상 플랫폼 API를 사용하여 그려야하는 이미지 파일 또는 바이트 배열 (압축 된 리소스)이 있습니다. 예를 들어'iOS'에 이미지를 표시하려면'UIImageView'가 될 수 있고,'Android'에서는'ImageView'가 될 수 있습니다. 이것은'iOS' 버전과 약간 다릅니다. 따라서'UI' 코드는 상대적으로 커질 것입니다. 'MonoGame' 또는 Unity의 요점은'UI' 코드조차도 공유하는 것입니다. 'MonoGame'에서 이미지를 보여주는 모든 플랫폼은'Texture2D' 클래스를 통해 수행 될 수 있습니다. 'Unity '도 마찬가지입니다. –