Hello,
2014-05-10 22:42 GMT+02:00 Ralph Boland <[email protected]>: > I was recently approached to develop a children's educational computer > game version of a real (wood etc.) game > (looks like a pretty good game). > I said I would only be interested if I could do the first implementation > in Smalltalk (Squeak or Pharo). > But if I develop this game in Smalltalk what am I dealing with in terms of > releasing this product > to a customer (over the Internet). > > 1) I know I have to build a suitable executable but I have never done > this. I have only written Smalltalk code that I then > use. So how do I build such an image and how big is it (assume code > for game is small (say 3000 lines of code)). > Here's a doc that explains how to build a suitable deployment image and executable for windows and Mac: https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/lastSuccessfulBuild/artifact/DeploymentDesktop/DeploymentDesktop.pier.html You can also build a Linux executable but there are no documentation about it. If you want documentation about it complain everyday on this mailing list for missing documentation, by the end of the month people will have written it to have you stop complaining :-). The image should be around 15Mb. > 2) How do I get the virtual image on the customer's machine. Keep in > mind the customer is someone somewhere > on the Internet who probably knows little about how to install > Smalltalk or anything else. I am assuming here that > installing the game and installing the VM are two different tasks. > Is there a way to make this a single task? > The executable you can generate from the doc I pointed to you on question 1 makes installing the VM and the image a single task. Ask the users to download the windows, Mac or Linux executable. Else, as you can see for DrGeo, propose the application as an Android app / iPhone app on Google play / the Apple store. Note that you may prefer to deploy on the web to avoid needing to port the application to all platforms. > > 3) So far I am assuming the target machine is Linux/Windows/Mac on a > Desktop/Laptop. > But can Smalltalk be run on any of the IPad/Notebook/etc out there? > These machines represent a larger game market I believe. > As far as I know, There are deployed Pharo applications on Mac OS X, Linux, Windows, iOS, Android, RISC OS. In theory, if you need an additional specific platform, the guys on the vm-dev mailing list could help you compiling the VM for your additional platform. However this may take a few weeks of work depending on the target platform and your skills. > > 4) Assuming I can arrange for my computer game (if I write it) to be > installed are there memory/cpu usage issues > that I need to worry about (the game itself will use a minimal of > memory/cpu except for graphics which also > is pretty reasonable). I am thinking here of IPads etc. For > Desktops/Laptops there should be no problem. > Download time and subsequent storage space is also a concern; > remember the device is probably used for > lots of other things so the amount of space allocated for games may > be small compared to the space on the > machine? > Nothing to worry about. Usually a Pharo application have at runtime a memory footprint of less than 30Mb. And now even small embedded devices have at least 256Mb of RAM. Cpu usage is also OK. Now note that on ARM devices (typically, Android, iOS and RISC OS), the VM is 2-10x slower. Therefore you may need to profile and optimize a bit your application before deploying on ARM devices. We have a profiler in Pharo that you can easily use to do that. For the download part, you can shrink your Pharo executable by removing unused important packages in the image and the source file. > > 5) Sorry for the redundancy if these questions have been asked before > (which I am sure they have). > Yeah well this mailing list is Pharo-dev it is usually a bit more oriented towards the development of Pharo itself. If you want to make professional application you may (or may not) want to discuss it on Pharo-business mailing list. > > Thanks for any feedback; I am sure others are interested in this question > too. > Definitely. What framework are you using for your graphics ? Because if plan to use Athens (our vector graphics framework), graphics will for sure go faster, but you should know that it relies on Cairo, and Cairo is not stable on every OS (for example it is not stable at all on iOS, so no iPad/iPhone and bye bye cross platform application). Else the graphics are bit based and these may be a bit slow if you're doing heavy graphics computation. Btw, you may want to discuss with J.F. Rick, he has already implemented and deployed educational computer game (desktop app) with Pharo and touch screens. You may also want to try to ask question to the guy that deployed DrGeo (I think he's named Hilaire Fernandez), it's an app to teach geometry to kids AFAIK, it has quite some graphics, and it's deployed on Apple store/Google play. I guess he's the guy to ask on how to deploy on iPhone/Android. > > > Ralph Boland >
