Advertisement Jump to content
  • Advertisement

Ryder052

Member
  • Content Count

    31
  • Joined

  • Last visited

Community Reputation

284 Neutral

About Ryder052

  • Rank
    Member
  1. Ryder052

    Support on Fermi

    I'm out of luck then. Looks like I have to make an upgrade a bit earlier than expected.    Thanks man.
  2. Hello,   Somewhere around September 2016 I worked with Vulkan on my NVIDIA GTX 570.   I somehow got it working, the problem was with vkEnumeratePhysicalDevices returning null.   Now I'm trying to continue my work and I run into the same problem. I've updated my drivers and double-checked everything.  Today I've read that Fermi is not supported by Vulkan. But I 100% had it working a couple months ago. I'm lost.   What's changed since then is, - I've moved to Visual Studio 2015 from 2013 and - probably (not sure here) to Win10 from Win7.    Does anyone have a clue how I could have done this before? Thanks.
  3. The bones should contain a local to-parent transformation matrix AND an offset matrix which is probably what you're looking for.
  4. The actual delta time should not impact the object speed at all. If the delta is higher, the game loop should be running slower and you should just get less updates per second. Check your framerate, it looks like it doesn't match your delta.
  5. Ryder052

    Design for a board/chess-like game.

    Agreed with phil_t. I wrote a checkers online game a couple of years ago, and I didn't have anything half as complicated as your graph.    Just make yourself a 2D array representing the board data, a few methods for different pieces movement, some basic game logic and voila. Add in the badass stuff like your fireball projectiles anywhere.
  6. Hey, congrats on getting to the alpha stage, many ideas don't make it to this point!   What I did was playtest my game myself, to the point, where everything seemed to work fine for me - that is when you need testers who can confirm that everything is indeed good (which is never true).    Then, I did what you are trying to do now - upload the installer to a random hosting website and throw links everywhere I could, which was a handful of friends with the minimum required hardware. When the hard deadline for the release was approaching and I still needed more tests, I ended up putting the download link on facebook. Suffice to say, I got the testing data I needed in time. In the end, who cares who gets a half-finished product from you? You don't have to manage all the testers, just those you want to. I hope that helps ;)
  7. I'd go with a slot mechanic using std::map or std::unordered_map (if you want hard optimization).   Define a ShipData structure: - all game data (stats, etc). - number of missing ships to build (at the production phase) - priority - priority counter (explained later)   Now the map should be something like: std::map<string, ShipData*> m_SlotsData;   During the production stage (when a player sets the sliders and proceeds), you compute the normalized priorities (you divide them all by the greatest priority). All priority counters are reset to 0. You run an infinite loop which adds normalized priority to the priority counter value. (example: you had a ship with priority=5 and another with priority=2; normalized priorities are then 1 and 0.4, respectively) Whenever any of priority counters reaches or exceeds 1 AND there are remaining funds, you build that ship, decrease the number of missing ships in that slot by 1 and decrease the priority counter by 1. If more than one slot reaches 1 during a single loop iteration, build the one with greatest value atm; in case of ties, use random(). When lowest cost of types_of_ships_to_build exceeds global funds or no more ships to build, BREAK.
  8. Ryder052

    save game system

    Serialize everything that matters. Game state, various variables, everything. Just save it all, in a way that you can load it back of course.
  9. Wow, I wrote a ton of crap looking code because I wasn't aware of that, thanks a lot!
  10. Yeah, sorry for not giving more detailed info, I was leaving for a break and quick posting here in hope to make some progress not actually digging through the stuff, you know, laziness. Fixed the issue, the cause was indeed the indices and weights not properly initialized. The model loading flow was the following:   LoadModel() {    LoadGeometry ( if(FLAG) then initialize bone w / ids to default values )    LoadTextures()     LoadAnimations( set FLAG ) }   As you can see, it was flawed. Thanks for all the input.   @Alundra: Using arrays in shader code is very suboptimal both computing- and memory-wise, as each array element eats at least 16 bytes no matter what type you actually put there and it screws your indexing HARD! It is much more economical to pack your data into float4's as I did with bone indices and weights (which I limit to 4/vertex tops).
  11. Nailed down the exact piece of code. It turned out to be the skinning update inside vertex shader (using Direct3D 11).    Here it is, the HLSL code: float4 newPos = { 0.0f, 0.0f, 0.0f, 1.0f }; float4 newNormal = { 0.0f, 0.0f, 0.0f, 1.0f }; // Perform the skinning update. if (i1 > -1) { newPos = newPos + mul(input.position, boneTransforms[i1]) * w1; newNormal = newNormal + mul(boneTransforms[i1], input.normal) * w1; } if (i2 > -1) { newPos = newPos + mul(input.position, boneTransforms[i2]) * w2; newNormal = newNormal + mul(boneTransforms[i2], input.normal) * w2; } if (i3 > -1) { newPos = newPos + mul(input.position, boneTransforms[i3]) * w3; newNormal = newNormal + mul(boneTransforms[i3], input.normal) * w3; } if (i4 > -1) { newPos = newPos + mul(input.position, boneTransforms[i4]) * w4; newNormal = newNormal + mul(boneTransforms[i4], input.normal) * w4; } newPos.w = 1.0f; newNormal.w = 1.0f; Any leads?
  12. Thank you, that was exactly the kind of hint I was looking for, I'll do my best.
  13. Hey, I'm trying to deploy a game application based on my own game engine.    Inside Visual Studio, the Release build works perfectly every time.   HOWEVER, when I run the application outside (I have an installer), ZERO, ONE or TWO animated models are simply NOT RENDERED. This behavior seems to be completely random, sometimes everything renders properly, sometimes only one model missing, and sometimes both are missing.    What may be the cause of this problem?
  14. Ryder052

    Texture DXGI_FORMAT problem

    Thanks guys, DXGI_FORMAT_R8G8B8A8_UNORM_SRGB worked. Now I'm left with pixel interleaving problem, but it should be easy to fix.
  15. Hello, I have a raw RGB 24bpp memory block (called 'image' in code). How do I create a ID3D11ShaderResourceView out of it? Here is my current code. frameSize = width * height * bytesPerPixel; [...] D3D11_TEXTURE2D_DESC desc; desc.Width = width; desc.Height = height; desc.MipLevels = 1; desc.ArraySize = 1; desc.Format = DXGI_FORMAT_R32G32B32_UINT; desc.SampleDesc.Count = 1; desc.SampleDesc.Quality = 0; desc.Usage = D3D11_USAGE_DEFAULT; desc.BindFlags = D3D11_BIND_SHADER_RESOURCE; desc.CPUAccessFlags = 0; desc.MiscFlags = 0; D3D11_SUBRESOURCE_DATA initData; initData.pSysMem = image; initData.SysMemPitch = static_cast<UINT>(width); initData.SysMemSlicePitch = static_cast<UINT>(frameSize); animtex = nullptr; hr = device->CreateTexture2D(&desc, &initData, &animtex); if (FAILED(hr)) { return false; } D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc; memset(&SRVDesc, 0, sizeof(SRVDesc)); SRVDesc.Format = DXGI_FORMAT_R32G32B32_UINT; SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; SRVDesc.Texture2D.MipLevels = 1; hr = device->CreateShaderResourceView(animtex, &SRVDesc, &m_textures[f]); if (FAILED(hr)) { return false; } Apparently it doesn't work. I get multiple rainbowish circles on black background instead of my texture. My bet is the format. Any help? Thanks.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!