Podcast #128: We chat with Kent C Dodds about why he loves React and discuss what life was like in the dark days before Git. Listen now.

Hot answers tagged

61

EDIT: It's official, Microsoft has killed off XNA. I'm saddened by this but it was not unexpected, it's what I was predicting would happen, but hoping I was wrong. Everything below this point is my original post from early 2012. Something else to consider is that Microsoft is likely to release a new console in mid to late 2013. Will they continue with ...


58

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


47

MonoGame ( an OpenSource, OpenGL implementation of XNA ) v2.5 was released today with support for custom shaders across iOS, Android, MacOS and Linux. Our team has started work on adding PlayStation Suite SDK support and also Window8 Metro ( based on SharpDX I believe ). We already have a 3D branch, imaginatively named develop3d, which is where all of our ...


35

No, not really. Game developers have not traditionally been great at respecting the conventions established by an operating system. Although to be fair, lots of regular application developers don't either. The %AppData% and documents folders are for saving per-user data. The difference between them, for the purposes of this question, is primarily that %...


32

No, it's not. Sleep only guarantees a minimum time to sleep for, but it may actually sleep for any arbitrary amount of time over that. Your timer resolution (set via timeBeginPeriod) is also important for it, and even if you're using something else (like QueryPerformanceCounter) for your timer, you still need timeBeginPeriod to control Sleep. So in ...


29

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


28

You can't. At least, not as a game developer. As a gamer, you can purchase more expensive keyboards with "anti-ghosting" features, but otherwise the limitation is part of the hardware itself, so there's nothing you can do in software to solve it. Check out this demo page to see how keyboard ghosting works, plus a demo: http://www.microsoft.com/...


18

Looking at my disk, I have 1 game that saves savegames in %APPDATA% 1 game that saves savegames in %LOCALAPPDATA% 2 games that save "other stuff" in %APPDATA% 3 games that save "other stuff" in %LOCALAPPDATA% 2 games that save savegames in %UserProfile%\Saved Games 21 Games that save savegames and loads of other stuff in %UserProfile%\Documents, not ...


16

From what I understand about the situation it can go either of two ways. The API is either being deprecated or they are ramping up to create a XNA version based off DirectX 11. Here is an article about each perspective: Deprecated standpoint DirectX11 standpoint


16

Short answer: no, it is not. To have a fixed frame rate you have to call a certain callback function that forces a specific frame rate. Obviously, if you don't now how long a single iteration in a loop will take you cannot set a fix sleep time. GLUT provides glutTimerFunc(), which is, if you are programming in OpenGL, the right function you need. Take a ...


14

but XNA was never a real success lolwut? XNA is an amazing success. If you just look at this site as a measuring ground, you will notice that: XNA is the top recent tag (it stays up there quite a lot) XNA questions get quickly answered, often with multiple answers Difficult XNA problems are addressed This shows that there are a lot of people interested in,...


12

Yes, Windows 8 does support DirectX 9. For development, the old DirectX SDK is now deprecated, but you'll have all the libraries and headers you need within the new Windows 8 SDK, which comes included with Visual Studio 2012. You can go for the "old way" with no problem. If you need PIX for some debugging, or the high level D3DX library, you'll have to ...


12

As others have mentioned, on OS X (and Linux), OpenGL is the only game in town for hardware-accelerated graphics. So the question really comes down to: why do developers use Direct3D instead of OpenGL on Windows? One possible reason, as suggested in the comments, is that they started out as a Windows-only project and later decided to add OS X / Linux ...


11

Your question seems to confuse certain concepts, so let's take things from the top. This is the definition of the function glTexImage2D: void glTexImage2D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, void *data ); There are two things that you might call "texture formats". The ...


11

What is the future of XNA on Windows 8? XNA will only run on the Win8 desktop and there is almost no chance that Microsoft is working on a XNA compatible API running under Win8 Metro UI/DirectX11.1. If you really want to continue developing on a XNA like API on Windows 8 Metro, while still being able to use the content pipeline (one of the reasons why XNA ...


10

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


10

Couldn't find the right phrase for search but finally found it, "using corporation trademark". It seems you are allowed to freely use their logo's and trademarks as long as the product is really compatible with their software. For Apple Compatibility: If you are a developer, you may show an image of an Apple product in your promotional/advertising ...


9

I have not seen an else being used in this instance (the Rastertek tutorial you mentioned does not use an else). My guess would be if that you tried to resize your window the game rendering would freeze proving that the else part is never executed, as the resize message would be constantly sent. A common loop would have this structure. while (true) { ...


8

"Dedicated" in the configuration name refers to the game's dedicated multiplayer server. It's for sever operators exclusively, and runs an empty multiplayer server that exists solely to receive connections from other clients. You don't want that. Run a configuration that starts with "Debug" or "Release" instead of "Dedicated."


8

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


8

It is against the Apple and Mac OS terms of agreement to install Mac OS on anything aside from an Apple authorized machine. You are in breach of your user agreement by doing even that. So app-store stuff aside - you are in legal hot water. However! Pushing that aside, I'd like to note at least one game has been published with a similar method as the one you ...


8

I've found a workable approach. I grabbed the DS4Tool source and copied the bits I needed into my Unity project so I could read the reports from the device directly. (That's the NativeMethods class to interface with Kernel32.dll, the device enumeration from HidDevices, and reading the report from the HidDevice class. I cut out the rest to keep things as ...


7

Generally timeGetTime() is best for timing game logic - GetTickCount isn't quite high enough resolution, and QPC & RDTSC are a lot more trouble than they are worth for that purpose. For profiling on the other hand, either RDTSC or QPC can be quite worthwhile. I prefer RDTSC over QPC, though microsoft recommends QPC. The four common time functions ...


7

As described on the XNA Community Forum, you can get the host Form and listen to the FormClosing event, which allows you to cancel the event. The example code from the community form reads: protected override void LoadContent() { Form f = Form.FromHandle(Window.Handle) as Form; if (f != null) { f.FormClosing += f_FormClosing; } ...


7

This is called vsync (vertical sync), which traditionally means that your rendering rate is synchronized with the vertical refresh rate of your monitor to avoid tearing. Nowadays LCD screens don't have "vertical" refresh rates, just simple refresh rates, but it's the same thing. As others have said in the responses, your video card driver settings cause ...


7

I recommend loading your sprites using SOIL, and then rendering them by just drawing textured quads. If you do it without any deprecated functionality (use shaders) you will find it's very fast.


7

GDI (Graphics Device Interface) is the software renderer under Windows. Basically any language/runtime platform under Windows that is not GPU-accelerated is going to be using GDI under the hood at some level. While Java AWT might use GDI directly via the C code that the Java runtime is written in, something like Flash running in Chrome will OTOH be using GDI ...


7

Games like that are called screenmates or desktop pets. They are a type of digital pet that interacts with desktop windows. Positioning Desktop pets query the host operating system's windowing system for window positions. The windowing system is typically DWM on Windows and X11 on Linux. On Windows, you can include Windows.h and use EnumWindows to get a ...


6

Generally most hardware doesn't suport 3-component texture formats so in this specific example you can make a reasonably safe assumption that it's converted. A 3-component OpenGL texture is actually 4-component in hardware but with the alpha component ignored/set to 255/whatever. https://www.khronos.org/opengl/wiki/Common_Mistakes#...


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