2012-04-10 30 views
0

我正在構建一個科學/教育應用程序,並且我需要提供強大的用戶腳本功能。我的選擇是:AppStore中的嵌入式腳本 - 使用Python還是陷入困境?

  • 嵌入現有的語言如Python或Lua語言
  • 或創建我自己的COCO/R的語言,例如

(起初我建立在C#中,但可能會後來移植到C++ for iPad & Android的覆蓋範圍。) 每種方法都有其優點,但一個很大的原因是我不想被關閉掉應用程序商店。蘋果顯然禁止運行解釋代碼的應用程序。我真的不明白這是如何定義 - 當然任何應用程序通過解釋自己的數據結構運行?我認爲這是某種「我們知道色情的時候看到它」的定義,而且你不能讓你的系統看起來太強大。如果是這種情況,我在想,如果我構建自己的語言並只傳輸活動的語法樹而不傳輸腳本源,那麼我就不太可能觸發警鐘 - 它看起來像任何舊數據結構體。任何人都知道這是對的嗎?

+0

這不是一個真正的編程問題。 – lhf 2012-04-10 12:52:43

+0

Apple限制應用程序運行* external *腳本。這主要是因爲你不銷售一個應用程序,然後當它運行它成爲另一個應用程序 - 至少在我看來。寫你的應用程序合法,不要嘗試和遊戲系統。 – sylvanaar 2012-04-10 16:21:36

+0

在所有應有的尊重,我真的不知道什麼「寫你的應用程序合法」的意思,也沒有任何其他人我問過。但是,爲了讓我的應用程序在3分鐘內因爲含糊不清的原因而被拒絕,進行了幾個艱苦的工作並不是非常有吸引力。如果系統沒有明確定義,那麼「遊戲」也沒有明確定義。 – thund 2012-04-11 12:56:35

回答

1

蘋果放鬆了他們的授權語言,允許Lua在幾年前。它用於大量iOS遊戲(包括憤怒的小鳥,所有EA遊戲等)。事實上,在App Store上有很多遊戲在中使用 Lua,使用基於Lua的框架如Corona或MOAI(例如Crimson:Steam Pirates,這是一款Bungie Aerospace資助的遊戲,在App Store上排名第一幾個星期)。還有Codea這樣的應用程序,這是一個Lua腳本環境,最終用戶可以使用它在設備上直接構建遊戲/玩具。 Lua是很有在iOS平臺上很受歡迎。

創建你自己的語言將是荒謬的,國際海事組織。 Lua太好了,非常適合iOS:輕量級,快速,易用,用戶友好,易於嵌入和擴展等。但是,您可能無法將其集成到C#應用程序中。我真的不知道MonoTouch是如何工作的,但在桌面環境中,C#是託管代碼,編譯爲字節碼,但Lua的API是本地代碼。彌合這種差距是可以做到的,但這是更多的工作。

總之,你可以使用Lua,你不必隱藏它。你不能做的就是創建一個「元平臺」,用戶可以基本上通過你的應用程序下載全新的應用程序(未經Apple審查)。

編輯:關於「我建立在C#中,但可能後來移植到C++的iPad & Android伸手可及」,您可能想要查看MOAI。它是一個用C++編寫的開源,跨平臺(PC,Mac,iPad,Android,Chrome)框架,用於在Lua中編寫遊戲。可以節省您的時間開始,而不是稍後移植。你可以直接在Lua中做所有事情,如果你遇到了需要裸機性能或者不能通過Lua API訪問已經暴露的功能的東西,你可以用C或者C++編寫它。

+0

非常感謝。但是,您是否允許下載新的lua代碼來修改您的應用內容?例如,假設您編寫了一個交互式報紙應用程序,其中交互式文章由lua定義。你能更新你的lua嗎?或者,您的應用只能顯示一天的新聞?這會有點可悲。 – thund 2012-04-13 18:54:33

+0

如果添加新內容?好的。如果它提供了全新的行爲?那就不要。這兩種情況都超出了你所說的需求範圍(最終用戶腳本),對吧? – Mud 2012-04-13 19:13:29

+0

不,這是在我所說的範圍內 - 在報紙的例子中,說最終用戶可以上傳文章。要上傳交互式文章,他們會使用最終用戶腳本。所以我認爲你說這是允許的,如果新的lua腳本與舊版腳本不具有「完全不同」的行爲。這是非常模糊的。這是否意味着特別有創意的最終用戶不會被允許上傳內容,而無聊的人可以?或者如果整個應用程序的內容變得太精細,它可能會被關閉? – thund 2012-04-13 19:31:46