2013-05-09 40 views
18

Tôi phải phát triển một ứng dụng đa phương tiện đa nền tảng sẽ chạy trên Windows, Linux, MacOSX, Android và IOS. Ứng dụng này sẽ phải có khả năng phát nội dung âm thanh/video, hiển thị ảnh và biểu đồ và có thể hiển thị hoạt ảnh 2D đơn giản. Sau nhiều tìm kiếm, có vẻ như "phương pháp tiếp cận di động nhất" cho vấn đề là sử dụng C++ làm ngôn ngữ và OpenGL ES làm API vẽ, vì cả hai đều được hỗ trợ trên hầu hết mọi thiết bị/HĐH được tốt và sự xuất hiện trực quan nên gần giống nhau trên mỗi (nhóm) thiết bị.Tìm khung OpenGL ES để phát triển đa nền tảng trên Win/Linux/MacOSX/Android/IOS

Rõ ràng, tôi biết rằng tôi sẽ phải tinh chỉnh giao diện của ứng dụng để "mở rộng" trên các thiết bị khác nhau với kích thước và độ phân giải màn hình khác nhau. Tôi cũng biết rằng không thực tế khi yêu cầu hành vi giống hệt nhau đối với bất kỳ đoạn mã nào trên các kiến ​​trúc khác nhau như vậy. Tôi chỉ muốn giảm thiểu mã được viết (ví dụ: viết lại một phần giao diện đầu tiên trong C++, sau đó trong Java phải được tránh).

Tôi không phải là chuyên gia trong lập trình OpenGL ES, nhưng nhìn vào một số mẫu, có vẻ như tôi sẽ cần một khuôn khổ để có một số tiện ích sẵn sàng (menu, nút, hộp văn bản). Tôi không muốn phát minh lại bánh xe.

Đây là dự án có ngân sách thấp, vì vậy tôi sẽ cần một khung là hoàn toàn miễn phí và mã nguồn mở. Yêu cầu thứ hai cũng cho phép tự do thêm/sửa đổi các API của khung công tác khi một cái gì đó quan trọng bị thiếu hoặc bị lỗi. Tôi không yêu cầu một khuôn khổ đa năng (ví dụ như Qt chẳng hạn), có thể xử lý đầu vào, kết nối mạng, lưu trữ, v.v., chỉ vì tôi nghi ngờ rằng một khung như vậy không tồn tại cho các nền tảng mà tôi đã đề cập. Tôi chỉ muốn một loại wrapper OpenGL có thể trừu tượng nhiều chi tiết cấp thấp của nó mà còn cung cấp một số widget UI như Qt sẽ làm. Tôi sẽ xử lý thông tin, kết nối mạng, lưu trữ, cảm biến riêng biệt, có thể sử dụng các thư viện nguồn mở đa nền tảng khác, như được đề xuất here.

Tôi đã đọc rất nhiều câu hỏi tương tự như trên Stackoverflow và Gamedev, và tôi đã nghe về rất nhiều các khuôn khổ (Unity, Corona SDK, LÖVE, LibGDX, Ogre, Cocos2D-x), chủ yếu là tạo ra cho phát triển trò chơi. Ogre và Cocos2D-x, ví dụ dường như phù hợp với một số yêu cầu của tôi, nhưng nếu tôi quyết định sử dụng một trong số chúng tôi sẽ phải mã hóa hầu hết tất cả các phần tử giao diện người dùng của mình (không phải gánh nặng lớn như vậy, ai đó có thể tranh luận).

Một vài nhận xét:

  • các ứng dụng 2D, vì vậy OpenGL có vẻ như quá mức cần thiết. Tuy nhiên, OpenGL ES đã được chọn vì tính di động rất tốt và mức độ hiệu suất cao ngay cả trên phần cứng cũ.
  • Về cơ bản tôi là nhà phát triển Linux C++, vì vậy tôi không muốn chuyển sang HTML5 (vẫn còn quá trẻ) hoặc .NET/Mono (kém hiệu quả hơn) mà không có lợi thế vượt trội đáng kể. Hơn nữa, tôi không thể nắm vững những ngôn ngữ này trong một thời gian ngắn.
  • Tôi đã rất ấn tượng với câu chuyện trong this article. Tôi tin rằng đây có thể là cách tiếp cận đúng: một kết hợp các công cụ và thư viện nguồn mở phù hợp với nhu cầu của dự án. Nhưng tôi vẫn còn thiếu phần quan trọng nhất: khung đồ họa.
  • Viết câu hỏi này, tôi đã tìm thấy this discouraging answer. Tôi hy vọng các yêu cầu của tôi không tạo ra một bộ trống. Tôi thực sự không thể yêu cầu duy trì n các giao diện người dùng khác nhau trên n nền tảng khác nhau.Tôi thực sự cần cái gì đó là nền tảng bất khả tri.

Bất kỳ trợ giúp hoặc lời khuyên nào sẽ được đánh giá cao.

+0

Bạn có thể muốn giải thích chi tiết hơn một chút, những gì bạn xem là "ứng dụng đa phương tiện". Trình chỉnh sửa ảnh khác biệt đáng kể so với trình phát video, khác biệt đáng kể so với game bắn súng góc nhìn thứ nhất, khác biệt đáng kể so với nền tảng phân phối giáo dục, tất cả đều nằm trong ô "ứng dụng đa phương tiện". – CommonsWare

+0

Bạn nói đúng, tôi đã mơ hồ bởi vì tôi vẫn không biết chi tiết dự án này sẽ đi xa đến đâu. Để chắc chắn ứng dụng sẽ phải có khả năng phát nội dung âm thanh/video, hiển thị ảnh và biểu đồ và có thể là hoạt ảnh 2D đơn giản. – Avio

Trả lời

9

Tôi chỉ cần stumbled sang điều mới: GamePlay 3D

nền tảng được hỗ trợ là Blackberry, Android, iOS, Windows, Linux và Mac OS X.

Bạn luôn có thể làm 2D sử dụng một khuôn khổ 3D.

+0

Wow có vẻ chính xác những gì tôi đang tìm kiếm! Cảm ơn bạn rất nhiều, tôi sẽ thử nó! – Avio

+1

Liên kết bị hỏng, trang web mới dường như có tại http://www.gameplay3d.io –

2

openframeworks

Mọi thứ bạn đã hỏi.

+5

Trong khi điều này có thể trả lời câu hỏi, tốt hơn là cung cấp thông tin thực tế tại đây chứ không chỉ là một liên kết. [Câu trả lời chỉ liên kết không được coi là câu trả lời hay và có thể sẽ bị xóa] (http://stackoverflow.com/help/deleted-answers). –

+0

nó là một gợi ý tốt mặc dù. tôi <3 tôi một số oF. –

+0

oF là nơi đầu tiên tôi nhìn bởi vì nó quen thuộc nhất với tôi, nhưng muốn xem liệu có gì có thể so sánh được không. Có vẻ như oF vẫn là vua ngay bây giờ! – plong0

Các vấn đề liên quan