Tag Info

Hot answers tagged

31

What is wrong with the Linux/*nix family for games? 'Wrong' is a strong word, but I'll list a few things that hold games developers back from working on Linux. Culture - Linux people tend more to believe software should be free - this isn't conducive to making a profit off selling your software. This may change in the future with online games being ...


18

For game clients, it mostly has to do with culture, leading to difficult monetization strategies. Servers for multiplayer games, on the other hand, have gotten a lot of traction for linux/nix, it is a very attractive platform for developing server technology. There is hope that eventual release of Steam for Linux will help change that culture when it ...


18

GLFW is modern and has a very well defined scope. It's also under very active development. SDL on the other side is rock solid and has a lot features in different scopes but is somewhat lacking in all of them (for example: SDL can do audio, but you might prefer using OpenAL because its far superior in that matter). It might be notable that SDL was ported to ...


11

Linux accounts for roughly 1% of total end users accessing the internet (OS Marketshare). It's usage increases significantly when talking about servers, but it's just not a big consumer OS.


11

Sure you can, it's just not trivial to get it sounding "nice". I don't know how to do it in Linux, but if you can play a PCM buffer, all you have to do is fill it with whatever you want. So supposing your buffer is set to play in monaural, signed 16-bit samples, at 44100 samples per second, creating a pure (sinusoidal) A4 sound (440 Hz) is as simple as ...


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 ...


9

Personally, I'd recommend sticking to the programming language you know best, and checking out the graphic/audio libraries available to you. If you're familiar with Flash, there is a tutorial on how to make a basic escape the room game. Even if you don't know Flash, that tutorial should help give you an idea as to how such games are constructed.


8

There's nothing wrong with the Linux/*nix family of OSes for game development except for perceived audience. Most devs feel that the effort to create games for Linux won't translate into copies sold of their games, especially in the AAA communities. Even several companies that just ported even AAA games to linux (didn't even pay the upfront cost of ...


7

One of the most common ways to render into another application's GL or D3D rendering context is to hook the creation of the context or device objects in that application's process. This will let you gain access to the returned context or device pointer. You can then hook the actual rendering invocation methods (for example, Present() in D3D) and inject your ...


7

Try Shader Maker or Lumina.


7

A singleton for your main engine class is perfectly normal. It's even quite acceptable to have one singleton for each of your game's major systems, like graphics and input. I personally prefer a single Engine singleton with all systems as members of that object, but really there's very little difference. A singleton can just be a static global object, ...


6

If you are using glBegin()/glEnd() in your code, especially if setting textures and states redundantly between frames (i.e., draw with texture 1, then 2, then 1, then 2, as opposed to 1,1,2,2), you probably are incurring driver overhead. Especially this is the case if you are noticing that a slow processor is chugging while it still has a good card. Using ...


6

Though similar issues are often caused by clipping, the near plane is not the issue here. If it would be, the disappearance would be per pixel and not per triangle. In your animation the triangles exactly disappear at the moment all of its three vertices get outside of the screen. Your algorithm may be based on the false assumption that triangles are hidden ...


5

For an action game, you'll want a library that supports synchronization (keeps the players positions' in sync across all the clients and the server). Of course, you'll also want basic messaging features. With this in mind, here are a couple of Java libraries that might work for you. SpiderMonkey. It's part of jME3, and I'm guessing it's one of the more ...


5

My TexturePacker currently supports Ubuntu. What Linux would you need? The command line works too - and it has all the features you need.


5

The main problem with static and global objects in C++ is that they are created before the application's entry point (i.e. main), but their constructors are called in a completely unpredictable order. The same is true for their destructors, at the end of the application. This is clearly a problem because often we will have objects that depend on each other, ...


5

1) giving JS end-users direct access to your terminal is the scariest idea ever, in terms of security, and is 100% impossible without some interfacing server language/framework (php/perl/ruby/c#/python/java/c++/NodeJS), because it is so scary. 2) running exec() on user-input, directly, rather than building an interface in your server language is 100% as ...


5

Generally speaking, it depends on how the game is programmed. In the case of Source-engine games, they used a multi-tier software architecture, and moved everything platform-specific into /tier0 in their code. When they need to port something, at least by the original engine design, they just swap out /tier0 files for platform-specific ones, and reimplement ...


4

If you've never done game programming before, you should probably start with 2D. SDL is a pretty straightforward library with nice bindings for C++. You can use whatever editor / IDE you like, but I'm a big fan of code::blocks. There are finally some nice game engines for Java, (Java Monkey Engine) but Java kind of gets in the way sometimes. I like Java ...


4

Linux gaming is a largely untapped market, in my opinion, especially for indies. If you look at the numbers as reported by Hemisphere Games for Osmos and the numbers reported by Wolfire Games for the Humble Indie Bundle (especially the total revenue for each platform), you can see that Linux users can be pretty eager to support those who support Linux.


4

I'm not much of a Linux guy, but these are my recommendations based on research and experience: Programming Eclipse IDE for code editing and project management. Java. GCC. Python. OpenGL. Programming Libraries Java2D. SDL. PyGame. Allegro. Art The Gimp (bitmap). Inkscape (vector graphics). Blender (3D). Sound Audacity. LMMS (Linux Multimedia ...


4

Blender might be worth checking out, both for asset creation and for the game engine it offers.


4

Looking at the Quake 3 source code probably isn't going to help you at this stage, if you're new to AI development. There is a lot of code and it can be quite easy to get overwhelmed at the sheer size of it. First of all, if you want to create an AI bot for an existing game, then that's a little bit of a legal grey area and it's a lot more difficult since ...


4

You might need to bind your vertex attribute id's to your shader, look at glGetAttribLocation. In your 4.0.0 version you have the layout statement telling it what will be in what id's. The program needs to know that "in_Position" is for attribute 0. It's possible that your implementation will default to using the first attribute as vertex coordinates and the ...


4

This is a general post about why static classes cause you more trouble than they are worth. And this includes singleton classes which are just a fancy way of doing the same thing that avoids construction order problems. No advice fits all cases, so take it as advice, not as an instruction that it is always better to do it this way. In general code shouldn't ...


4

For chiptune sound effects, there's one definite answer: sfxr. It's a standalone application that you can use to generate samples, but the source code is also available should you want to integrate it to your code.


4

I'll share our experience of porting a certain game to Linux (and Mac). System-specific APIs - window creation, rendering, audio, networking, input, non-trivial filesystem access etc. The other answers go into details. I'll just say that portable libraries (SFML, SDL, but also things like boost) help a lot. Driver bugs - happen on Linux a bit more often ...


4

The OpenGL setup is rather straightforward under linux, in comparison to windows. If you link to -lGL you will dynamically link to whatever OpenGL library is installed and should be used, so under a X11-Environment with nvidia driver it will link to the NVidia specific libgl, with a ATI driver to the ATI specific libgl, the OpenGL libs of the different ...



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