   porting between OSs and consoles are same?
  Are porting a game between an OS to another and between a console to another same things? I wonder about which is harder, and what is the differences..ps. sorry for my english..   
  Various consumer OSes typically run on fairly similar hardware. Xbox360 and especially PS3 hardware are dramatically different from desktop or server machines. Porting over isn't much different, but your port will probably run very poorly. Porting it well can be very challenging.   ;  Similar concepts.  In both cases, you will likely have to deal with different software APIs.  You may also have to deal with differing hardware.  With consoles, it's pretty much a guarantee you'll have to deal with hardware differences.   ;  So, which parts are same for different OSs and/or consoles?Is it true that porting between consoles is more related with hardware and OSs is API's and other software related stuff?   ;  Depending on the type of application you make, porting between OS's is going to involve different things.* Graphical application - you are most likely going to have to re-write your low level rendering stuff to support the OS's 3d library(ies).  IE porting from windows to linux, if you are using DirectX in windows, you will have to switch to OpenGL for linux.  This kind of thing can be mitigated a little by abstracting your graphics properly, or by using something such as SDL, and/or using OpenGL since it's a pretty cross platform friendly graphics API.* UI application - you are going to have to re-write all your UI stuff to be platform native.  This can be mitigated by using something like wxWidgets where they take care of the platform specific code and give you a higher level layer to work with (BTW wxWidgets FTW!)* General application - going between OS's, fopen, fread, fwrite is still going to work (for the most part!), so you are ok there.  Most standard C++ stuff will work cross platform without change (:* Endian-ness - different CPUs have different byte endianness (ie a 4 byte integer will have it's bytes in different order on different CPUs which make saving and loading data a pain... you have to take it into account)Porting from pc to console or from console to console has a different set of challenges:* Graphical Application - Most consoles have their own graphics library API that you have to learn.  Most are like DirectX and OpenGL, but they can be vastly different in some ways.  Some also have special memory that you use for normal things (such as player data), and another special memory bank that you are supposed to use for graphics, sound, and other multimedia stuff.  If you mis-use the memory it makes for slow execution.* UI Application - you'll have to roll your own from the ground up!* General application - consoles often have their own APIs for doing what are usualy standard things, such as reading and writing files.  Getting input, etc.* Other - Consoles often have a strict set of rules your program must follow such as "your game can not be unresponsive for more than 5 seconds", which means if you have a screen with long loading times, you need to put an animation up to show the player that it is still working.  Also, porting to a console, you'll need a development kit which costs lots of money (like 2-10 thousand dollars each) and youll have to go through a process to become a certified developer for the console.Of course, you could stick to PC and 360 only by making your game in XNA.All the cross platform stuff pretty much is handled for you via XNA which makes it so popular.   ;  As a suggestion, use a multi-platform language like Java or Mono (.Net) and/or multi-platform libraries so you don't have to worry about that - If you pick good ones, your code will Just Work (TM).Edit: Oh, right, consoles....Call Cthulhu. That might solve it.   