Tag Info

Hot answers tagged

53

Microsoft has an FAQ about the use of their trademark. From that FAQ: Can I use a Microsoft logo to indicate that my product or service runs on or is compatible with a Microsoft technology or service? Yes, as long as you have a signed logo license agreement with Microsoft. Microsoft has many logo programs to indicate compatibility with ...


43

Hide anything platform-specific behind abstraction layers This means stuff like rendering, audio, user input, and file IO. One common trick to abstracting that without inducing a run-time performance penalty is platform-agnostic headers with platform-specific implementation files: // FileSystem.h class FileSystem { public: FileHandle OpenFile(const ...


35

There's always the old standby, SDL. It's fairly low level, but that simplicity is what allows it to be ported to bajillions of platforms (including windows, linux, mac, nintendo DS, wii, etc etc). There is an iPhone port, which I haven't used, but seems mature enough.


32

My Opinion (only for open source 3D engines): Irrlicht: Light 3D engine Clean C++ without dependencies and no STL. Not very well documented but there are good tutorials. Very small so you can customize it easily. No OpenGL 3.X driver, Direct X 10.X or 11.X available in the official SDK. Very good for mobile development; Good community Few extensions ...


25

Port your engine to each platform. There's nothing special about it. If you have some code that is Windows-only, then either add some #ifdef logic in the file or add a second file (so you'd have FooWindows.cpp and FooLinux.cpp or whatever) that implements that feature on the other OS(es) you care about. The one-click publish stuff that an engine like Unity ...


21

There really isn't any reason you can't use Unity3D to create "2D" games. You can use textured quads and an orthographic camera, and you have yourself a 2D game. There are even some unique solutions like using a skeletal animation system and putting sprites on top of different joints, or using a really tight perspective camera to get cheap parallaxing. ...


18

SFML is a nice modern, Object-Oriented, cross platform graphics engine. It is hardware accelerated (based on OpenGL), and has bindings for C++ C .Net (C#, VB.Net, C++/CLI, ...) Python D Ruby Ocaml


17

If you rely on your code in order to pay for food and shelter, and you need to support cross-platform on unknown future platforms (or reasonably might need to support cross-platform in the future), then designing your code to rely on a bunch of unknown compiler writers' correct adherence to bleeding edge language standards is dangerous (and I would argue, ...


15

First off, setting up a cross-platform Ogre and using a Git repository do not have any direct relationship. The Source Control Management (whether it's Git or not) is used to synchronize multiple computers no matter if all the team use the same OS or different OS’s. If you want to use Source Control Management with your friend, you will need a place to ...


14

Unity is actually using Mono in its back end. Though a lot of its scripting tutorials use JavaScript, you can actually program Unity completely in C# / Mono.


14

The Unity engine gets you a huge chunk of the way there. Write once and you've got Mac/Windows Standalone and webplayer based. Tweak your inputs, and mind your draw calls and you're on iOS/Android.


14

They utilized their proprietary Source engine. Many game engines and libraries are cross platform, it's nothing new. Portability is typically built into most contemporary engines. The simple answer: their engine supports all of those platforms. The gameplay code isn't rewritten for each. Only necessary platform-specific systems are re-written to an API ...


14

There's no magic bullet here. If you want your game to run on multiple platforms, you have to write code for multiple platforms (or leverage third-party libraries that already do this for you). The things you are asking for don't align: you say (emphasis mine) what I am looking for is resources to integrate something that will allow me run on ...


12

Python is pretty portable in itself (runs on many platforms), but you have to take into account the following: What are the limitations of the platform you're targeting? Do you want to sell through a mobile store? For instance, the WP7 marketplace only allows to sell apps written in managed code (.NET). The AppStore is pretty locked down too and only ...


11

SDL, Allegro, OpenGL SDL and Allegro are not only graphic libs, but whole game development libs. One down side of SDL is that it takes over your main() and redefines it, making it hard to combine it with other libraries. (QT in my experience) Another bad thing is that SDL only allows one window (this is stable version 1.2, the development version 1.3 does, ...


11

Write it in C/C++ -- this is the biggest thing you can do. Both platforms support C and C++, though in different ways. On Android, you'll be using the NDK. On the iPhone, it can be compiled along with the Objective-C code. You'll need to invest some time building the scaffolding around your C/C++ code for each platform. You should be able to be fairly ...


11

For a small indie developer, with limited funds/time (and maybe more of a focus on 'making something cool' than 'making something profitable'), trying to go cross-platform from the start could be counterproductive. It takes a lot of effort to engineer solid cross platform tools and tech (different graphics APIs, endianness, input devices, and more) - time ...


11

Unity is probably your best bet, it supports both iOS and Android, as well as Windows and Mac.


11

We have a thick C++ framework on top of a thin platform layer, also C++. Porting a game to a new platform is a matter of implementing a new platform layer, which because it's quite thin, it's quite fast to do. Also, all of our dependencies are open source and cross platform libs, such as SDL, Ogg, LibPNG, etc. For example, we have a Win32/DirectX platform, ...


11

You talk about "multithreading difficulties" but what difficulties are you actually talking about? In a way you're citing a phantom problem which may not even exist. The real challenge is one you make for yourself - if you are absolutely determined to get every last drop of power out of a piece of hardware, that does involve using the hardware to best ...


10

For commercial console game development, setting up a build system to target 360, PC, and PS3 simultaneously is irritating but is not particularly difficult. The 360 dev kit is simply a new a new target for Visual Studio + some tools and uses a very similar compiler to the standard windows MSVC++ compiler. The PS3 uses a GCC compiler back end but plugs ...


10

OpenTK has OpenGL and OpenGL ES bindings and works well with F# on .NET and Mono


10

Most production level game engines have what is known as a Hardware Abstraction Layer. This is a generic API that the game engine can use to talk with hardware with out having to know which hardware that is. They just call SoundManager.PlaySFX(SFX_ID) or the like. Underneath in the sound manager however it will know which hardware its actually working on and ...


9

Use an api like opengl/sdl which will give you minimum hassle when going from platform to platform. Make sure you know what platforms you want to support. Don't use opengl just because you think you might want to support multi platform in the future. Start as you mean to go on. Know what hardware limitations are on each of the platforms you want to support. ...


9

Given the broad range of APIs you wish to cover, the typical wrapping approach is likely to be inefficient and prone to difficulty in mapping API concepts across several other APIs which may or may not support particular functions to varying degrees. As a result, the most sensible approach would be to create a feature-centric API. While this approach ...


9

Small team must target "small but beautiful". Be sure of your target. Easy & broad supply is vital. The Game design should be very simple(no rpg but more like some tabletop games or oldies), The art should be minimalistic/2D (or using procedural tech) the tools must be high level: use a established game engine. the Language must be high level also ...


9

HTML5 and JavaScript are getting better every day. They may not have as developed toolchains as more existing platforms, but in six months or a year they look to be pretty strong. The main advantage is that you can code and test by making a browser accessible webpage and navigating to it from the mobile device. Additionally the platform specific differences ...


9

As A.A Grapsas (that's a tongue-twister) said, their underlying library/engine was created to be cross-platform. One of the reasons that things like the Unreal engine are so expensive is that they've (mostly) conquered the cross-platform challenge, allowing games based on it to run on the Xbox/PS3/Windows/etc. Since cross-platform means working with ...



Only top voted, non community-wiki answers of a minimum length are eligible