Unity3D architecture

Hello. I have a several questions about Unity3D. Your answers make me better)

  1. Where i can find information about unity3d architecture? (structure, internals)
  2. What rules i must folow to make a crossplatform(ios,macos,win,unix,xbox) my game?
  3. on what language unity3d is writed?(C++?) + what librarys?(boost,qt…or what?)
  4. What multiplayer engine is better?(Photon?)

Thanks for halp ^)

  1. What are you trying to learn? Ad whydoidoit says, the documentation is online.
  2. What whydoidoit said. So the rule is really to test the game on each platform often.
  3. C++, some assembler, some c#
  4. What car is better? Ferrari? Toyota Prius?

I think this is not a unity specific topic. Its true u have some nice extra features in unity but in my game (huge 2d tile-map, RTS) i use general patterns and practices. Unity is a nice editor but i u want to make your game fancy or keep the complexity in check while your code is growing u need 2 need some more info en tricks.

some nice architectural books : -Game Engine Architecture 1st Edition -Game Programming Patterns Paperback – November 2, 2014

some nice AI books easy to step in books -Programming Game AI By Example (Wordware Game Developers Library) 1st Edition -Behavioral Mathematics for Game AI (Applied Mathematics) Paperback – March 5, 2009

general coding -Clean coding robert c martin -Code Complete: A Practical Handbook of Software Construction, Second Edition 2nd Edition -search on google.com -YAGNI (learn some agile tricks about coding)

Some books are in C++ but u its possible to map those examples to c#/javascript

Further more learn about those nice performance tips from the unity guys.

I am fairly new to game programming (hobby) but i program more than 15 years on businesses applications and how to write those clean an maintainable. Game programming is different but can also benefit from general practices like clean coding, unit testing, managing complexity, Continuous integration… so these things are also a must to understand and be used in games.