Đối với hầu hết các nền tảng, bạn có thể viết các hệ thống con tách biệt với các API cụ thể được sử dụng để gọi ra và lấy lại thông tin từ nền tảng bạn đang chạy. API IO thường dễ trừu tượng nhất - tất cả các hệ thống tệp hoạt động trên một số giả định khá cơ bản về mở, đóng và đọc từ các tệp, ngay cả khi bạn tính đến việc gọi không đồng bộ. Sau đó, bạn có các hệ thống cốt lõi của mình như đọc đầu vào của bộ điều khiển, truy vấn thời gian, truy cập vào bộ nhớ và các luồng gốc, hầu hết đều hoạt động theo cùng một cách.
Ngay cả đồ họa có thể được trừu tượng hóa ở một mức độ lớn, và thực sự trong hầu hết các công cụ tốt. Nhưng bạn phải đóng gói những thứ 'có thể kết xuất' vào các hộp đen nơi bạn không được phép biết những gì đang diễn ra bên trong chúng. Bạn biết rằng bạn có một "thứ" mà bạn kết xuất ở một vị trí cụ thể trên thế giới. Bạn không biết nó được kết xuất như thế nào, chỉ có vậy thôi. Và lớp trừu tượng đồ họa sẽ chăm sóc tất cả các chi tiết của việc đưa nó lên màn hình. Các đường ống xây dựng cụ thể của nền tảng đóng gói dữ liệu đồ họa theo cách mà nó có thể được tham chiếu từ động cơ mà không thực sự biết nó được thể hiện như thế nào trong nội bộ.
Mặc dù vậy, tất cả những gì đã nói, khi nói đến việc thực sự vận chuyển một trò chơi, có một số phần nhất định mà bạn không thể trừu tượng hóa. Sẽ thật nực cười khi nghĩ rằng bạn có thể gửi cùng một mã trên iPhone như trên 360 hoặc PS3, vì các cơ chế đầu vào, cách vận hành cơ bản và khả năng của nền tảng là quá khác nhau. Bạn có thể tạo một tiêu đề có kích thước iPhone trên 360, nhưng nó sẽ phải giới hạn các cơ chế đầu vào của nó chỉ ở những cơ chế mà 360 có thể hỗ trợ. Vì vậy, một con trỏ ảo trên màn hình mô phỏng ngón tay và có thể sử dụng cần điều khiển nơi sử dụng đầu vào gia tốc kế 3D.
Một cách hợp lý hơn, các phần của trò chơi có thể được viết theo cách có thể sử dụng lại và các mô-đun mã riêng lẻ có thể được chuyển giữa các nền tảng, mặc dù phần lớn tiêu đề là khác nhau. Ví dụ: nếu bạn có một máy trạng thái AI, điều đó không thực sự quan tâm đến việc nó chạy trên 360, PC hay iPhone. Trò chơi của bạn sẽ sử dụng nhiều thành phần như vậy và miễn là chúng được thiết kế tốt để chúng có đầu vào và đầu ra được xác định rõ, thì phần còn lại của trò chơi có thể được bọc xung quanh chúng, bất kể nền tảng và tránh phải viết lại chúng các thành phần.
Khả năng sử dụng lại đó là chìa khóa cho sự phát triển đa nền tảng, không tìm kiếm một công cụ phù hợp với một kích thước hoạt động trên tất cả các nền tảng. Ngay cả khi một thứ như vậy tồn tại, nó sẽ bị tê liệt do phải làm việc với mẫu số chung thấp nhất, nó sẽ không được sử dụng nhiều để tạo ra các trò chơi.