2010-11-01 21 views
6

Xin chào, tôi đang học C# và nghĩ về một ý tưởng hay. Xét rằng một trò chơi đủ đơn giản. Nói, một phiên bản làm lại của một trò chơi kiểu nhập văn bản cổ điển, một trò chơi C# về mặt lý thuyết có thể được chuyển đến tất cả các nền tảng tôi liệt kê ở trên, với ít hoặc không có thay đổi mã nguồn gốc, đúng không?Một trò chơi C# để cai trị tất cả (iOS, Android, WP7, W7, Mac OS X và XBOX)

Rõ ràng giao diện người dùng sẽ phải được tinh chỉnh và tôi rất nghi ngờ một trò chơi như vậy sẽ thực sự tồn tại trên từng nền tảng đó!

Nhưng, mặc dù C# thực sự là MS nặng, thông qua các phương pháp khác nhau, có thể hoạt động, đúng không? Hoặc, tôi sẽ phải thay đổi nguồn C# thành Objective-C? Android có có ngôn ngữ chính thức mà họ hỗ trợ như Apple và MS không?

Đây là một câu hỏi kỳ lạ, nhưng nếu điều này là đúng, thì C# thực sự là một ngôn ngữ đa năng tốt đẹp mặc dù nó chủ yếu dựa trên và xác nhận bởi MS.

+4

Chủ yếu là đường dẫn, bạn có thể sử dụng C#/XNA để tạo trò chơi Windows/Xbox/WP7 và có thể sử dụng C# qua Mono/MonoTouch để thực hiện OS X/iOS. Hiện tại, Android không có triển khai thực hiện mono phù hợp để hỗ trợ điều này. Điều này không hề có nghĩa là không khuyến khích, đồng thời MS cũng đã cung cấp ngôn ngữ C# cho cộng đồng .. http://www.microsoft.com/interop/cp/default.mspx –

+0

Bạn có thể gửi câu trả lời này, nhưng vâng , Tôi đã nhìn vào nó và tôi sẽ có mặc dù nếu không về Android. – Qcom

+0

retagged ios-> iphone –

Trả lời

11

tôi quyết định gửi một nguyên nhân câu trả lời Tôi nghĩ đến một vài điều có liên quan hơn để nói.

Trước tiên hãy trả lời câu hỏi của bạn: Có, nó sẽ hoạt động. Không, bạn sẽ không phải chuyển sang Objective-C. Các ứng dụng của Android thường sử dụng Java.

Và một chút nền thêm ...

tôi nghe những điều tốt đẹp về MonoTouchMonoDroid cho sự phát triển đa nền tảng sử dụng Net, C#.

Bạn đã chấp nhận rằng bạn sẽ phải xử lý các lớp giao diện người dùng cụ thể cho từng nền tảng, do đó bạn đang đi đúng hướng.

Quan trọng là, vào ngày 9 tháng 9, Apple đã thư giãn các nguyên tắc của họ trước đó ngăn chặn các ứng dụng được xây dựng bằng Monotouch được phát hành trên thị trường.

Statement by Apple on App Store Review Guidelines

Đặc biệt, chúng tôi đang thư giãn tất cả các hạn chế đối với các công cụ phát triển sử dụng để tạo ra các ứng dụng iOS, miễn là các ứng dụng kết quả không tải về bất kỳ mã . Điều này sẽ cung cấp cho nhà phát triển khả năng linh hoạt họ muốn, trong khi bảo toàn tính bảo mật mà chúng tôi cần.

Cũng quan tâm, từ blog Craig Dunn ...

ConceptDev (Craig Dunn's blog): MonoTouch meet WindowsPhone7

+0

Có!Tôi biết đó là một tuyên bố của Apple. Tôi cần phải tìm các ứng dụng khác được xây dựng bằng cách sử dụng monotouch và xem nếu có luôn luôn lag .. – Qcom

+0

Bạn sẽ đúng chính sách-khôn ngoan ở phía Android. Khía cạnh độc đáo của Android là các nhà phát triển có thể làm chỉ là về những gì chúng tôi muốn, tốt hay xấu. –

1

Bạn có thể nên kết nối với C++, iOS và Android có hỗ trợ gốc.

+0

OK, mặc dù, tôi cần phải tìm hiểu những điều cơ bản của C# cho ASP.NET vì lợi ích, vì vậy tôi figured nó sẽ được tốt đẹp để có thể viết một số trò chơi với cùng một ngôn ngữ. – Qcom

4

Tôi không phải là một chuyên gia phát triển trò chơi, nhưng đây 2 cent của tôi,

Bạn không có bất kỳ vấn đề với các trò chơi phát triển trong C# mục tiêu tất cả các nền tảng, mono c# chạy thành công trong tất cả ở trên nói plaforms bao gồm monodroid - Andriod và MonoTouch - iphone.

Nhưng vấn đề là cụ thể đối với các thư viện đồ họa bạn sẽ sử dụng. Ví dụ, các thư viện Xbox chỉ nhắm vào các cửa sổ. Nhưng nếu bạn gắn bó với OpenGL, bạn có thể giải quyết vấn đề.

+0

Cảm ơn các liên kết Mono và đề xuất OpenGL! – Qcom

+1

Tôi đã nói giống như Ramesh trong bối cảnh câu hỏi của bạn. Thông qua monotouch và monodroid bạn có tùy chọn để làm C# trên tất cả các nền tảng mà bạn đã đề cập. Bạn thừa nhận bạn sẽ phải đối phó với lớp ui một cách riêng biệt, do đó, đó là một nhất định. –

+0

Vâng, khi tải xuống một ứng dụng mẫu được tạo bằng monotouch, bạn gần như có thể phân biệt được một chiếc monotouch với ứng dụng tiêu chuẩn-c .. Đáng buồn là – Qcom

6

Chủ yếu là đường dẫn, bạn có thể sử dụng C#/XNA để tạo trò chơi Windows/Xbox/WP7 và có thể sử dụng C# qua Mono/MonoTouch để thực hiện OS X/iOS. Hiện tại, Android không có triển khai thực hiện mono phù hợp để hỗ trợ điều này.

Đây không phải là ở tất cả có nghĩa là để được nản lòng, còn MS đã đưa ra ngôn ngữ C# cho cộng đồng vì vậy đó là tích cực ..

http://www.microsoft.com/interop/cp/default.mspx

+0

Không được khuyến khích, cảm ơn bài đăng! – Qcom

1

Không có lý do gì để cần C#, sau khi tất cả các bạn có thể sử dụng để phát triển Vb.net ASP.net:) (không nói đùa, một ngôn ngữ tốt hơn của nó đặc biệt là xem xét hỗ trợ xml nhúng VB có)

Tuy nhiên, để phát triển di động, tôi nghĩ bạn đang đi sai đường phát triển đa nền tảng. Đối với điều này, bạn sẽ luôn nhận được 80% mức độ bao phủ, 20% cuối cùng sẽ là một nỗi đau. Ví dụ, nếu bạn chọn C#, bạn sẽ nhận được Windows và Xbox, nhưng không phải là Playstation và iPhone rất kém.

Vì vậy, bạn cần trình kết liễu phổ biến thấp nhất - và đó có thể là C++. Bạn có thể đặt GUI Qt lên trên cùng (với QML tuyệt vời có thể là công nghệ giao diện người dùng tốt nhất hiện tại) và điều đó sẽ chạy trên hầu hết các nền tảng - kể cả Android. Nhưng không phải WinPhone7. C++ vẫn là một lựa chọn tốt cho tất cả các nền tảng, kể cả Windows sẽ chạy nó (C++/CLI) và có thể dễ dàng kết nối giữa target-C và C++. Lựa chọn tốt nhất của bạn có lẽ là để đi tuyến đường đó (và một phát triển trò chơi được thực hiện bằng C++ dù sao để nỗ lực không lãng phí của nó).

Rất có thể, bạn sẽ không bao giờ nhận được một mã đơn lẻ hoạt động tốt trên tất cả các nền tảng. Có lẽ javascript sẽ là cuối cùng mặc dù, như MS 'Bob Muglia has said họ không tập trung vào Silverlight nữa, thích HTML5 + javascript cho công việc nền tảng chéo.

+0

Vâng, bạn có thể sử dụng VB.net nhưng có rất nhiều hỗ trợ cho C#, và như tôi đã nói, tôi ít nhất có thể phát triển một forebear mạnh mẽ cho XBOX, Windows và WP7. Tôi đánh giá cao câu trả lời của bạn nhưng không hoàn toàn đồng ý với bạn. Tất nhiên có những lựa chọn tốt hơn, nhưng nó có thể hoạt động. – Qcom

+2

Đáng xem xét câu chuyện html5 + javascript ... ngay cả khi nó chỉ dành cho lớp giao diện người dùng, nó thậm chí có thể là giải pháp để tạo nền tảng chéo cho lớp ui, nhưng nó vẫn là một kế hoạch cho tương lai. Bạn vẫn có sự lựa chọn những gì để sử dụng để thực hiện bất cứ điều gì là dưới mui xe (và trên máy chủ của bạn nếu có). –

+1

Về sự nhầm lẫn xung quanh Silverlight và BobMu hiện tại, tuyên bố của SteveB cũng đáng xem xét. http://www.microsoft.com/presspass/press/2010/nov10/11-01Statement.mspx Cách diễn giải cộng đồng có vẻ hơi u ám vào lúc này, có thể mất một chút thời gian để bức tranh trở nên rõ ràng. –