I will be starting on a cross-platforms game project soon using unity3d. Would like appreciate any tips/advice on how best should I start my development work. Should I focus on one platform first and at the end of it figure how to port to a new platform. Or should I develop with my all my targeted platforms right from the beginning?
well, as long as you don’t utilize additional disk activity, like savegames etc… or external libs, because of path locations (e.g. “/dir/file” vs “\dir\file” type of dirrences per OS) and purely use unity able scripting in javascript, C# or boo (or a combination), it doesn’t really matter (as i’ve experienced with deploy testing with mac and windows)
For mobile support, i would test more often, compared to desktop (for optimization sake). Since it has more limits compared to desktop OS’es.
Depends on how much time you have before you need to ship at least one version really.
If you plan to target an iOS/Andriod market AND a PC/Mac market with a single title - I would definitely suggest starting with the iOS/Android platforms and scaling up to the PC/Mac platforms afterwards (or, if you have the time and resources - do both simultaneously). It is significantly easier to scale up than down, and you’ll be able to check performance on your more performance-critical platforms right from the beginning.
You would need to use the right compression for textures for the appropriate platform. Use override functionality based on platform in the texture properties window…
By the way, for the art assets, do I have to prepare two sets, a higher resolution for PC version and low resolution version for mobile? Can I do everything within a single project file?
It depends on your game quallity. If you have trully next gen graphic with 10.000 polygons on character and heavy shader data, it whould be hard. If your game is using lower ress characters and textures it would be possible to use only asset file for both versions, but you would still have to use LODs.