why do some games only work on windows?

740 views

why do some games only work on windows?

In: Technology

7 Answers

Anonymous 0 Comments

Some games, like tick tack toe, are easy to play on windows, especially when there’s condensation.

Some games like darts are best played on doors or walls.

Anonymous 0 Comments

For the purposes of this question, Windows is just a way of letting Software and Hardware talk to one another. The software knows how to talk to Windows, and it lets Windows tell the hardware what to do. If you know most of the people that want to play your game are on Windows, it’s easier to make your game like this.

Games that work on multiple platforms have an extra layer. They talk to a middleman, and the middleman knows how to talk to whatever system the software is trying to run on. If you want to make it work on a new system, you only need to retrain the middleman, not the whole game. Unity is a popular example of a middleman here. It’s often a bit slower, but that can be worth it if you’re trying to reach a bigger audience.

Anonymous 0 Comments

Because the people who write the games implement them by calling functions that are built into windows. If your PS-4, or whatever, doesn’t implement those functions, the game can’t work.

Anonymous 0 Comments

Games are rarely made completely from scratch, instead they’re built using existing tools and frameworks which are known as APIs, or application programming interfaces.

An API is a list of documented functions and the parameters they take that perform a known action when called, an example of an API to draw a circle might be:

drawCircle(int x, int y, int radius);

You don’t need to know how it works internally, only that so long as you use the API as documented it should give you the outcome you expect.

Those APIs themselves may be built on other APIs, which may be built on other APIs. In many cases you’ll eventually hit upon an API which is part of the operating system itself.

In gaming, the big one is called DirectX and is the Microsoft API for, amongst other things, game programming. It’s an abstraction layer built around other APIs such as graphics card drivers that presents a unified interface for development on Windows machines (and the XBox consoles).

If you’re writing an application and part of the API hierarchy depends on APIs that are only available on Windows, then the application can only run on Windows.

Now there are two ways around this:

1. Certain APIs are designed to be completely independent of the operating system they run on. Often times these APIs have a general way of doing things, but can be re-compiled using special flags that will utilise specific operating-system specific APIs for the sake of performance, but the key thing is that their actual API (the functions exposed) don’t change between hardware or operating system type.

2. The reverse of 1, people take platform specific APIs and emulate them by creating a substitute version on a platform that was not intended to run them. This is how the popular Linux application ‘Wine’ works.

Anonymous 0 Comments

The machine and the software need to speak the same language.

If the machine only understands French, an English program won’t work.

You can rewrite the program for a specific machine, like translating it to French. However, it isn’t always easy, you might have to rework whole parts because of major differences, for example, French has genders, adjectives are placed after nouns etc. That is what is happening when a game is released for PC, Ps4 and Xbox etc. The developers adapt the game to each machine. But this is huge work and therefore developers will only do it when they are confident they will get a return on the investment.

You can also do the translation on the fly, realtime, that’s what emulators do, when you play a nintendo game on your pc or when you play a PC game in Wine on Linux.

These hurdles are the one of the reasons game engines like Unity and Unreal engine are popular choices, because they reduce most of the work required to release a game on multiple platforms.

Anonymous 0 Comments

Imagine a bolt and a nut that fits onto that bolt. You can fasten or loosen the bolt into that nut without a problem. Actually, if your friends have similar nuts with the same threading you can share the bolt with them and it would work for them too. Unfortunately, if one of your friends has a nut with different threading, it won’t be able to use the bolt unless there’s an adapter available.

It’s the same with games or any other applications in general. Imagine bolt is your game and nut is an operating system (Windows, Linux, MacOS, etc). Bolt expects a certain threading to work with a nut, same as applications expect certain API in the operating system to properly run. Similar to bolts/nuts analogy, adapters might exist that will allow you to run Windows applications on Linux-based OSes (WineHQ and derivatives) and vice versa.

Anonymous 0 Comments

Computers use software to know what they are doing and to perform tasks. Think of software as Lego bricks. You have a base layer to start everything from which is your Operating System (Windows), then you build upon it with more layers to achieve your goal, like building a skyscraper.

In this case, you want to play a video game. There are many layers of bricks that need to be laid down before you can do that. The video game itself could be considered the top of the skyscraper, but you need everything in between or else the top won’t connect properly.

Since Lego is the most popular brick to build with, the developers of your video game may only make building plans and blueprints that use Lego.

Some larger projects, or generous developers make plans that use Mega Bloks (Mac OS) as as well, or maybe even Sluban (Linux). This isn’t always the case, however.

If you’ve built your base and middle layers of your project out of Mega Bloks, the Lego at the top isn’t going to fit properly and work.