Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 29 Jul 2001
Offline Last Active Today, 03:24 PM

#5313851 Junior Dev Job Interview: Which shirt do you think would be best?

Posted by on 04 October 2016 - 06:34 AM

You want to be somewhere in the range of [forgettable, sharp dressed man]. Practically this usually means a nice collared shirt, dress pants or nice khakis (not cargos), and decent shoes. "Creative" choices are much more likely to hurt than help.

#5313158 Amd openGL driver crashes

Posted by on 28 September 2016 - 08:43 PM

Start by enabling GL debug messages: https://www.opengl.org/registry/specs/ARB/debug_output.txt

See if you get any useful information leading up to the crash. 

#5313157 What a game programmer should know about GPUs

Posted by on 28 September 2016 - 08:36 PM





See you next year!


But seriously, most of the paper specs for GPUs are useless except in a relative sense within a particular generation. They give you no useful information about how a given chip or card will actually perform. If you want to understand the terms a bit better, read AnandTech reviews and breakdowns of GPUs, especially when they talk about an all new generation. They go in considerable depth about what's up.


#5312534 Is OpenCL slowly dying?

Posted by on 25 September 2016 - 12:54 PM

Games have also downplayed compute because there's not really any spare GPU cycles on gamers' machines. Graphics uses every bit of GPU power, the integrated GPUs are usually disabled automatically when the discrete GPU is running on all but the newest chipsets, and using the integrated GPU will limit the CPU speed (thermal envelope constraints).


I don't think that's true at all. Many games and engines now are leaning heavily on compute, both as part of the graphics pipeline itself and for physics. A lot of the destruction physics stuff gets off-loaded to GPU nowadays. And the Battlefield/Frostbite slides lay out a very effective vision for how compute can be very beneficial to a graphics pipeline.

#5312362 Is OpenCL slowly dying?

Posted by on 24 September 2016 - 09:01 PM

I'm curious what leads you to believe that support for OpenCL is waning. From what I can figure, most graphics developers didn't care for CL much due to clumsy interop with GL, which is why compute was added directly to GL core in 4.5. It's much more useful to game/graphics developers in that format than CL is, and CL has moved to more scientific computing type uses. I don't think Vulkan plays in at all.

#5311981 13 Y/O That Is Interested In Learning How To Make Video Games

Posted by on 22 September 2016 - 03:42 PM

Have you read through all of this?

Do that, have lots of patience, and don't get frustrated if things don't move as quickly as you hoped. Keep an open mind. I started posting and reading here at just about the same age and at 20 years old I was working professionally. There are others here with similar stories. This can go as far as you want, if you're willing to commitment the time and effort.

#5311441 Why C# all of a sudden?

Posted by on 19 September 2016 - 10:29 AM

For 20 years C++ was the recommended standard language, especially in the gaming industry.

In 2001, the C vs C++ debate was still alive and well, albeit fading. In 2008, when I was working on AAA games, the console compilers still struggled with more sophisticated C++ idioms and standard library code (containers etc) were not necessarily bug-free. "C-with-classes" code was still quite common.



C# is basically a Java copy but with some changes to the base architecture like support for pointers, tuples, structs and more, extending the idea of Java.

Of course it's drastically easier to write graphics code with those changes to the base architecture. You're glossing over them but look at Java based GL code and tell me that's not awful.



However, in the last two/four years I noticed that in general and in this forum C# suddenly got a big popularity boost, including but not limited to gaming industry.

Game industry: Unity. On a slightly longer timeline, tools code has been moving towards C# for a long time. It's not much more complex than that.

Outside of games: You're late. C# has seen widespread use in client software development for a long time.


Apart from Unity code, there's relatively little C# game development happening to be honest. There's some adoption of it in the mobile realm, as it's a nice language for shipping across all of the major mobile and desktop platforms all at once. 

#5311129 Is fread considered a seek memory on disk operation?

Posted by on 16 September 2016 - 03:30 PM

Yep, memory mapping is the correct approach. Note that this still involves reading from the disk. It can still be beneficial to issue large memcpy operations with this approach, rather than bouncing around reading a bit at a time.


is fread a read from disk operation? If so isn't it pretty slow? How does (at least) windows do this?

What could it be other than a disk read operation? There is a disk cache in Windows, and there are some things you can do to help Windows do a better job. Same goes for the memory map setting, in fact. Games deal with the question in a particularly harsh setting when loading from optical media. Ordering of files matters in that case, to reduce seeking (which is really costly on optical) and improve cache behavior.

#5310768 Edge smoothing

Posted by on 14 September 2016 - 09:55 AM

Ideally, you'd soften the vertex normals at corners in the modeling package. Alternately, you could essentially paint softening into normal maps if you have them. Another approach would be to soften the actual equation for the diffuse response to wrap around corners. One example of this approach is seen in Valve's "half-lambert" lighting but you can use any number of functions that effectively let the N.L term roll around corners a bit by remapping negative values into positive space.

#5309679 How do I detect the available video memory?

Posted by on 06 September 2016 - 09:10 AM

Copied from this MS sample code:

IDXGIFactory * pFactory;
HRESULT hr = CreateDXGIFactory(__uuidof(IDXGIFactory), (void**)(&pFactory) );

void EnumerateUsingDXGI( IDXGIFactory* pDXGIFactory )
    assert( pDXGIFactory != 0 );

    for( UINT index = 0; ; ++index )
        IDXGIAdapter* pAdapter = nullptr;
        HRESULT hr = pDXGIFactory->EnumAdapters( index, &pAdapter );
        if( FAILED( hr ) ) // DXGIERR_NOT_FOUND is expected when the end of the list is hit

        DXGI_ADAPTER_DESC desc;
        memset( &desc, 0, sizeof( DXGI_ADAPTER_DESC ) );
        if( SUCCEEDED( pAdapter->GetDesc( &desc ) ) )
            wprintf( L"\nDXGI Adapter: %u\nDescription: %s\n", index, desc.Description );

            for( UINT iOutput = 0; ; ++iOutput )
                IDXGIOutput* pOutput = nullptr;
                hr = pAdapter->EnumOutputs( iOutput, &pOutput );
                if( FAILED( hr ) ) // DXGIERR_NOT_FOUND is expected when the end of the list is hit

                DXGI_OUTPUT_DESC outputDesc;
                memset( &outputDesc, 0, sizeof( DXGI_OUTPUT_DESC ) );
                if( SUCCEEDED( pOutput->GetDesc( &outputDesc ) ) )
                    wprintf( L"hMonitor: 0x%0.8Ix\n", ( DWORD_PTR )outputDesc.Monitor );
                    wprintf( L"hMonitor Device Name: %s\n", outputDesc.DeviceName );

                SAFE_RELEASE( pOutput );

                L"\tGetVideoMemoryViaDXGI\n\t\tDedicatedVideoMemory: %Iu MB (%Iu)\n\t\tDedicatedSystemMemory: %Iu MB (%Iu)\n\t\tSharedSystemMemory: %Iu MB (%Iu)\n",
                desc.DedicatedVideoMemory / 1024 / 1024, desc.DedicatedVideoMemory,
                desc.DedicatedSystemMemory / 1024 / 1024, desc.DedicatedSystemMemory,
                desc.SharedSystemMemory / 1024 / 1024, desc.SharedSystemMemory );

        SAFE_RELEASE( pAdapter );

#5309532 Hostility in the field

Posted by on 05 September 2016 - 10:31 AM

He may have no where else to go - his skills are specialized to the game industry (I imagine his passion is in play here); his knowledge of C++ might be transferable, but he has no other experience outside of the ten-odd years in the game development racket. What industry would be willing to accept him without the other skills (his web knowledge is weak, for example) he would need to be hired? Furthermore he is at a point in his life where ageism is a serious problem; I am fortunate enough to be in an industry where the wisdom and experience that comes with age is greatly valued; but even *I* - a babe in the woods, as far as programming is concerned - know that ageism is rampant in all tech industries, save maybe game development.

I'm not going to get into the weeds of the discussion here, as I feel you're making many claims and assertions that are tenuous at best (not just the quoted section). But to answer the practical problem at hand, there are many industries who need those skills. 3D graphics is huge in many, many fields - notably medical. Math and physics experience are in demand in many places. Even the people who do gameplay layer stuff are not useless, as the ability to understand and modify a single integrated multi-million line codebase with broad scale behavioral changes is not actually very common.


The tricky bit is that you have to sell yourself a bit when you're shifting between industries and careers. You need to lay out a case for WHY your old experience is relevant to the job you're applying for. This is not an unusual problem for people to face. As the adage goes, people change careers five times in their life. It's a mistake to believe that game development experience has no value elsewhere. But it will require some work to change over, and your friend is simply going to have to commit to fighting that fight.

#5309432 Hostility in the field

Posted by on 04 September 2016 - 03:26 PM

You mention you expect someone who is a game programmer, who commutes for hours each day AND stays late to make a deadline, to then whittle away even his last minutes developing "side projects" to acceptable in the industry. That hardly seems healthy - only the obsessed would dedicate such a percentage of his time to those pursuits.

I know plenty of people who do that, but they are a distinctly small minority of the industry people I know. They're probably significantly over-represented here, since this is an enthusiast community. Most of us got here because we were doing side projects first, and the job showed up later.

As for my acquaintance's talents: I agree that asking for desire, intelligence and speed of thought is reasonable; I believe the problem here is an irrational refusal to acknowledge those talents on display due to personal feeling rather than suitability for the job at hand. I now believe my acquaintance is being discriminated against, pure and simple.

Perhaps I'm misunderstanding the story of this thread, but you're under the impression that an entire industry is out to reject and abuse this 'acquaintance'? Seems more likely to me that the 'acquaintance' has some foundational personality problem that is on display to employers that he is not willing to acknowledge or address. Game development studios are, in my experience, fairly touchy about people "fitting in" and that can make it difficult for people who are capable but come across as unpleasant to work with.


In any case, it seems straightforward - if the industry doesn't want him, he should move on. 

#5307731 So, I want to become a game devolper...

Posted by on 24 August 2016 - 05:40 PM

I like C# a lot, you can grab Visual Studio community and immediately start building apps that run on Android, iOS, and Windows (phone/desktop/Xbox). Really can't ask for much more.

Unity3D is a solid choice for games, but it won't get you much in terms of building non-game applications.

#5305130 Chosing An Engine For A Heavy Physics-Based Game

Posted by on 10 August 2016 - 09:45 AM

We specialize in physics-based character animations, and I built our own engine to underpin everything. That was a choice made for a variety of reasons, but the big one for this discussion is that our physics is a customized version of Bullet. The stock library isn't sufficiently stable in solving certain types of problems (joints, soft body interactions) and so we went in and made the necessary changes ourselves. I don't think that's an ability any major engine gives you these days. Everyone assumes that oh, well we can just use the raw high level features in PhysX/Havok and that's enough to build what we need. It wasn't the case in doing physics animation, for us.


That said, I'd probably just roll with Unreal these days unless you have the experience and manpower to build from nothing.

#5304281 Cast your vote now!

Posted by on 05 August 2016 - 06:44 PM

I'm real concerned about why Notepad++ is in the list.