Lunar Lander Simulator Developer Interview
For the better part of 2006, a novel little title thatís half game and half simulator has taken the Palm software world by storm. This cult favorite is none other than SimToGo developer Mohamed Bennoufís ďLunar Lander SimulatorĒ (formerly ďLEM SimĒ).
While the first version of LLS was a bit rough around the edges, Mo has made remarkable improvements to the gameís user-friendliness and taken great measures to ease its learning curve for the casual user. Read on for PICís first developer exclusive interview as we talk shop about all things lunar and all things Palm!
Background & Inspiration:
Kris Keilhack: 1. Letís start with an obvious question--What inspired you to create this title?
Mohamed Bennouf: My love of space flight! I was really inspired by the Moon landing and wanted a way to do that without the need of a real Lunar Lander(or a simulation on a PC)! That's what gave birth to Lunar Lander Simulator on a Palm/Treo/Zodiac. I was also hoping that people would be interested in having something different to try on their Palm.
2. Do you have a background in the fields aerospace or physics or are you just a space buff?
No, just a space buff with a desire to learn how it was done at the time. I am an electronic engineer that writes software to relax!
3. What sort of feedback have you gotten? Have any NASA types congratulated you on a realistic simulation?
The feedback has been tremendous, at least for my first app and me. This is niche application but it still has been downloaded 10000 times since January 2006! Actually I was very proud that an actual NASA employee (as seen on her email address) bought the game a few months ago!
4. Is LEM Sim your first mobile application? Give us some information on your programming past and/or earlier projects!
Yes, Lunar Lander Simulator (new name!) is my first mobile application. Ages ago, I played around with Basic on Commodore 64 and Zenith Z89, I believe. Also I programmed some crude Lunar Lander-type games. Of course current Palm devicesí capabilities in terms of graphics, speed, and sound are light years away from those days!
5. Sorry! Iíll make a note of the name change. To the best of your knowledge, is LLS the ONLY simulation of its kind on Palm OS?
Yes, Lunar Lander Simulator is the only realistic lunar lander game available on Palm OS. Past lunar lander games on Palm have been arcade-style titles. Lunar Lander is the only simulator on a mobile device that Neil Armstrong would feel at home with! I really tried to recreate the information overload that those guys had to endure. That's the reason the real LM Pilot was giving vocal information of the landerís status (altitude, speed) to the LM Commander. It would have been very difficult to land in solo. I have tried to not only recreate the information overload situation (especially during lander failures) but also provide the same type of co-piloting by making vocal announcements of the flight situation during the descent (altitude, speed and fuel level).
Specific LLS Topics:
1. I noticed huge improvements in audio-visuals, game depth, and nearly every other aspect from verion 1 to version 2. Was this planned? I loved the addition of the nifty lunar surface terrain graphic!
Yes. Version 2 came about because I was able to add fast bitmap rotation to the application. That allowed me to add a cockpit view that actually rotates. Without fast bitmap rotation capability, doing a cockpit view of the Moonís surface on version 1.0 would not have been possible (because of graphics speed). My hope is to make the Moon surface even more realistic in future version.
2. When you sat down to begin working on version 1 did you have any idea the response and feedback would be so positive?
No! I knew that they were a lot of space buffs out there BUT they also had to have a Palm/Treo device! That's of course the definition of a niche market! Nevertheless I was very surprise that many people worldwide have tried and, in many cases, bought my little app.
3. When I reviewed the game, I had a rather difficult time acclimating myself to the controls. I knew what I HAD to do (land) but I had no idea how to do it-for example, braking prior to touchdown. How do you feel the inclusion of the "self running demo" tutorial in version 2.1 will aid the novice player?
Actually, one person reported to me that it land successfully only after looking at the "flight demo" a couple times. He was not able to land (like many) before because nothing in the documentation gave any info about timing of things. Like when do you start tilting the lander forward to land upward? The demo is a first step in explaining the procedure. Rewriting the manual and separating the quick guide from the rest of the manual would be helpful. I realize that people do not have time to read a 37 pages document before playing a game! I will also include the user guide in isilo format so people can access the user guide directly from their device and not have to have a print the 37 pages or have a PC handy.
I think working on improving the documentation so that people would not find the game overwhelming at first is critical. There isnít much fun in crashing flight after flight! Once people land successfully the first time then the game becomes much more fun. Then they can experience all the other features like Commander level, lander failures and landing on other planets. Landing successfully is critical to the gameís acceptance. Well, at least that's what people are telling me.
4. Any ideas on what's in store for LLS past verion 2.1?
Past 2.1, I am hoping to add the following features:
- Set "forbidden" areas where you cannot land.. They will basically representing boulders of different height that you will have to avoid in the final landing phase. So for instance, once you reach 100 feet, a radar view would show "forbidden area" in red. You will need to jump over them to make a safe landing. Each dot will represent boulder areas of different height.
- One issue with the current cockpit view is that it does not give you a good sense where the landing site is. At this time, you need to constantly watch the Moon map which is a pain when you are close to landing. The idea is to add a "landing site indicator" to the cockpit view. It will probably be a vertical line pointing to the landing site. At first the line will be a small, but once you get closer to the landing site, the line will be longer. I will also add direction arrows to show which way is the landing site when you are still far.
- Iíd like to improve on the Moonís (and other planetsí) surface view, making it more 3D-like.
- In addition to the flag, it might be fun to periodically display strange stuff thru the cockpit like a McDonalds restaurant, the face of Neil Armstrong or the monolith from 2001: A Space Odyssey!
Does the "landscape" Zodiac version run on Palm devices such as the T3, T5, LD, and TX in 480*320 mode?
Actually the good news is that the Zodiac version works fine on other large screen Palm devices (tested Ok on LifeDrive Palm). All I need to do now is find some beta testers with T3,T5 or TX to double check that.
1. What developer tools do you use to code for Palm OS?
Lunar Lander Simulator was almost exclusively coded with HandheldBasic, also known as HB++. It is a fast compiler and amazingly simple to use. The rotation routine is an ARM for very fast display of the Moon surface rotation through the cockpit (provided to me by a very kind HB++ programmer from France: Eric Quagliozzi )
2. Any particular technical hurdles you've encountered while programming LLS? Are there any particular Palm OS devices that have proven to be "buggier" or more troublesome than others (low heap memory etc)?
A huge amount of (fun) time was spent researching NASA documents to make sure the two missions, approach and final landing, were realistic. One of the main issues was the engine thrust control. Most arcade lunar lander games simply simulate a manual control of the engine thrust (manually increase/decrease thrust). In the real lunar lander, the astronauts did not (unless of a accident) control the engine thrust directly but via an on-board computer. They were asking the computer "please make the lander descend at 5 feet/sec." In return the computer would control the engine thrust to make it happen. This involved a control loop. That's what I tried to simulate with the ROD routine.
Low heap memory is an issue on some devices such as the Tungsten E but they seems to be causing only harmless soft resets and then only very occasionally.
Really the main issue is the sheer number of the Palm-based devices out there (SONY!) so it is hard to find the time and people to test the application on all those devices. Even so, and thanks to my wonderful beta testers over the past months, I was able to test the game with many different Palm devices. Still, I offer a 7 day full version trial so people can check it for themselves and see if the game runs OK before they purchase the application.
3. Are there any specific Zodiac API calls or is the different control scheme the only difference in code you've made for Tapwave devices?
No, but I would love to use the "rumble" feature on the Zodiac! That would make the simulation even more realistic!
4. What devices do you personally own and use as your "testbed" for LLS?
I have a Treo 650 and a Tungsten C. I use those two devices and a Palm/Zodiac simulator on the PC. But the best test grounds are the people who kindly help me test the beta versions.
5. Development costs & marketability aside, do you think it'd be fun to do a Nintendo DS game?
I have to admit, I am not really familiar with the Nintendo DS but I seem to recall that it has two LCD screens, right? That could be a very cool way to be able to display a lot of info. For instance, in the case of the Treo, the screen is so small that it is hard to display all the informations needed for the lander. I had to make some compromises here and there of course.
Palm OS Market & General Thoughts
1.Have you been approached by any "major" Palm software publishers to make your program a fully polished commercial release?
No at this time! I would of course love for that to happen!
2. Who are/what is another other Palm developer you admire? Any publishing houses you hold in high regard?
I basically admire all Palm developers! It is a lot fun but so easy to program for small devices. It is also not easy to create original apps since so many apps are available on the Palm platform! Astraware is an amazing house. They seem to publish an incredible number of apps that appeal to people. I have to admit that I love their Warfare Incorporated game. Itís amazingly done!
3. Where do you see the Palm OS market heading past 2006? Do you intend on being along for the ride for ACCESS' ALP OS and/or whatever Palm has in store in 2007?
I think it will make less and less sense to sell "unconnected" Palmmachines: ďstand-aloneĒ devices, basically. I also do not anticipate good news for application sales. I guess fewer and fewer people are downloading apps to their PCs and then Hostyncing them to their Palms. Devices like the Treo do not really depend on PC's to function like the old Palm devices.
Finally, Palm devellopers may have less competition and maybe more sales develloping applications for the Treo 700w and the like. People with those Palm Windows devices have fewer choices of apps and would probably be more eager to buy your app than Palm OS owners. Of course I will be watching what's next with ACCESS.
To commemorate the release of the new version of LLS and PICís interview series, weíre giving away a free registration code for this app! Just post a question for Mo. to answer below by September 30th. Whoever asks the best question will receive a code to register LLS. Good luck!