Jump to content
  • Advertisement
    1. Past hour
    2. Those two points are pretty inconsequential and don't really impact you. If this is your first time with outsourcing, you should be worried about how you can actually get the results that you want. How much detail needs to go into work briefs? How specific do conventions need to be? What are the criteria for acceptance / rejection? What's the payment / milestone structure? Is there a producer and/or art director on their end? On your end? What are the communication channels? What is the process for asset development? Do you have to approve WIP assets at different stages before they continue? Is there concepting involved as well as production? Is there a clause for re-work on assets even if they do meet the acceptance criteria, but you have a change of mind? What happens if they don't meet the time constraints of a milestone? What happens if you don't pay for a milestone? What happens if they say they need more time or money to finish?
    3. Samuel Wahlberg

      Moving circle to Aabb collision

      Thanks for the response. I will look at the litterature you recomended as well as checking out conservative advancement. C. Ericsons book is really good! The other ones will be interresting to check out.
    4. I'm following the http://rastertek.com/dx11tut48.html(Directional Shadowmap Tutorial). You can see the problem in the image attached. Shadows are not opposite to the sun. How can I solve this problem? float4 PSMAIN(VS_OUTPUT Input) : SV_Target { float4 textureColor = txCUTex.Sample(SSCU, Input.TextureCoords); float bias, depthValue, lightDepthValue; float2 projectTexCoord; float3 FinalColor = 0; float LCL; float3 SunDir = normalize(vSunDir); bias = 0.00001f; // Calculate the projected texture coordinates. projectTexCoord.x = Input.LightVP.x / Input.LightVP.w / 2.0f + 0.5f; projectTexCoord.y = -Input.LightVP.y / Input.LightVP.w / 2.0f + 0.5f; // Determine if the projected coordinates are in the 0 to 1 range. If so then this pixel is in the view of the light. if((saturate(projectTexCoord.x) == projectTexCoord.x) && (saturate(projectTexCoord.y) == projectTexCoord.y)) { // Sample the shadow map depth value from the depth texture using the sampler at the projected texture coordinate location. depthValue = txCUSMTex.Sample(SSSM, projectTexCoord).r; // Calculate the depth of the light. lightDepthValue = Input.LightVP.z / Input.LightVP.w; // Subtract the bias from the lightDepthValue. lightDepthValue = lightDepthValue - bias; // Compare the depth of the shadow map value and the depth of the light to determine whether to shadow or to light this pixel. // If the light is in front of the object then light the pixel, if not then shadow this pixel since an object (occluder) is casting a shadow on it. if(lightDepthValue < depthValue) { LCL = saturate(dot(Input.LSNormal.xyz, SunDir)); if (LCL>0) { FinalColor = Input.Atte*LCL;//input.atte comes from sky shader (attenuation) FinalColor = saturate(FinalColor); FinalColor = textureColor.rgb*FinalColor; } } } return float4(FinalColor.rgb, 1); } ...... tDelta = 0; QueryPerformanceCounter((LARGE_INTEGER*)&PrevCount); float Theta =XM_PI*(float)tElapsed/50; float Phi = XM_PIDIV2; pImmediateContext->RSSetViewports(1, &SMVP); // Set null render target because we are only going to draw // to depth buffer. Setting a null render target will disable // color writes. pImmediateContext->OMSetRenderTargets(1, &NULLRTV, pSMDSV); pImmediateContext->ClearDepthStencilView(pSMDSV, D3D11_CLEAR_DEPTH, 1.0f, 0); XMMATRIX mgLightProjection = XMMatrixOrthographicLH(SM_SIZE, SM_SIZE, 0.01f, 200000); XMVECTOR Sun = XMVector4Normalize(XMVectorSet(cos(Theta)*cos(Phi), sin(Theta), cos(Theta)*sin(Phi), 0)); XMMATRIX mgLightView = XMMatrixLookAtLH(150000*Sun, XMVectorSet( -5000, /*550*/0, 0, 0.0f ), XMVectorSet(0,1,0,0)); // rendering sm cricket stuffs //rendering sm pitch pImmediateContext->IASetInputLayout(pVtxCULayout); uiStride = sizeof(TERVTX); pImmediateContext->IASetVertexBuffers(2, 1, &pVtxPitchBuffer, &uiStride, &uiOffset); pImmediateContext->IASetIndexBuffer(pIndxPitchBuffer, DXGI_FORMAT_R32_UINT, 0); pImmediateContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); pImmediateContext->VSSetShader(pVtxSMShader, NULL, 0); ..............
    5. In some cases I'm pretty sure he gets paid 2 million to have his name in the credits as a selling point (as much as the music itself) ... As with the others, I'd take it as a given that people who contribute will expect to be credited, HOWEVER I would always ask if possible, and ask how people want to be credited.
    6. davejones

      Keep object in camera view

      I am looking into keeping the panning within a bounded area so that the camera can't be panned out of sight of the object. Effectively use collisions. So when the camera is being panned it can only move so far until it is blocked. private void LateUpdate() { if (VisibleArea == null) { return; } Bounds b = VisibleArea.bounds; Vector3 world1 = _camera.ViewportToWorldPoint(Vector3.zero); Vector3 world2 = _camera.ViewportToWorldPoint(Vector3.one); Vector3 pos = transform.position; // move the camera so that the visible area is visible, if necessary // x axis if (world1.x > b.max.x) { pos.x -= (world1.x - b.max.x); } else if (world2.x < b.min.x) { pos.x += (b.min.x - world2.x); } // y axis if (world1.y > b.max.y) { pos.y -= (world1.y - b.max.y); } else if (world2.y < b.min.y) { pos.y += (b.min.y - world2.y); } transform.position = pos + (velocity * Time.deltaTime); velocity *= Dampening; } Looking at implementing the code above.
    7. Depending on what you have in your contract will determine if you fully own the graphics, or you have a "license" to use them, ect... If you buy ownership of the intellectual property then you don't have to say anything in terms of credits, and the artist would require permission from you to use the art in any capacity. If you're only buying the rights to use the art then your conditions will be based on what is agreed upon. Bottom line, get everything in writing and signed off. If you're planning on using the art in a commercial project then you need to have everything in order regarding usage or ownership of said graphics, and it needs to be very clearly defined. If your game makes a lot of money the last thing you need is a dispute of usage rights. I've seen commercial games get pulled just for expired or disputed licenses. You also don't want to get a lawsuit from the other party claiming you owe them. I would suggest you have a lawyer who handles intellectual property law draft up agreements for you.
    8. mr_tawan

      Football Manager Databass

      At first I was going to say 'Fifa's '..... Personally I'd used flat file instead of databases in this scenario. I don't think it's worth headaches in many area (version control, query management, database driver, etc etc.). I'd use databases in the system that would frequently updates and need to handle multiple transaction concurrently (like MMO game server for instance). Anyway I think for embeded database, nothing beats Sqlite.
    9. Today
    10. lawnjelly

      Optimizing multiple field encoding

      It sounds like you are already using some fairly sensible compression methods. If you want to squeeze out the last bits this will totally depend on the data, and it will be very hard for anyone to do anything but throw random compression methods at you, without knowing what that data is. We don't even know what type of game it is. You haven't even confirmed whether this is for packets over the interwebs. I suspect at this stage you may be better off concentrating your effort on optimizing when and what you do send, and interpolating what you don't have, rather than trying to compress the data more. This could offer orders of magnitude improvements, whereas from what you have said you may only see small improvements by working on the compression itself.
    11. To be frank: There is no reason to not credit someone unless they say they don't want to be, no matter how much you're paying them. It takes no effort to credit them; it's basically taking credit for everything, including work you didn't do. To each his/her own, but if you aren't in the credits for the work you've done, you've been screwed. Hans Zimmer gets paid around 2 million per picture and still gets in the credits.
    12. I know some one who would quote 10x the budget for not giving him a credit (no name in the credit + no portfolio). And yes it depends on the contract you have with them. Not giving someone credit for their work is kinda immoral IMO. And I think, if you want to do that, paying them more for not having their credits is quite fair.
    13. Well, why wouldn't they be in the credits? Anyone who works on the game, film, etc. should be credited. Without being in the credits, how can they prove they worked on your project? Especially given the fact that they are supplying a core element of the game! I doubt most any creative professional would agree to contribute if they could not use at least some of the assets for portfolio purpose. I would personally never agree to a deal that did not include me in the credits (esp. if it's a low-paying project) nor allow me to use some of my creations for demonstration purposes.
    14. JoeJ

      Back-projection soft shadows

      Maybe you have missed one of these: http://casual-effects.com/research/Heitz2018Shadow/index.html https://www.gamedev.net/forums/topic/697251-contact-hardening-soft-shadows-made-fast/?tab=comments#comment-5381464 I would be interested in the idea to use regular shadow mapping but jitter the light position over frames, and using temporal reprojection / screenspace blur etc. accepting temporal lag. But that's lot's of effort to get working i guess. Have you tried this already? Might be good if you use AO to darken the shadow near contact. But if you would support emmisive voxels, would you still need an additional aera light technique at all?
    15. What's about going for DirectX 12 ? I think Frank's book on DirectX 12 is also available.
    16. Hi everybody, i'm ready to announce that Xilvan Design build 3D games since 2004: Lights of Dreams IV v8.37. Candy World II v8.47. Candy Racing Cup v2.75. Candy World Adventures v5.57. Candy to the Rescue IV v6.17. Candy's Space Adventures v16.17. Candy's Space Mysteries II v6.57. More than 4 new updates since last edit: - Enhanced the Space, Missions & Sceneries in Candy's Space Adventures & Candy's Space Mysteries II. - Verified bonus, options, maps & more tricks in all of our actual & old games. - We are planning Lights of Dreams V: There will be Space travel. - Just debugued Candy World Adventures V. - We are actually releasing our games. They are available for download on my website: - Xilvan Design Websites - Plenty of games wait you HERE, Hope you'll appreciate! If you want to watch the videos of our games: - My Youtube Channel - Please, Subscribe to my channel for more infos about our new releases. Friendly, Xylvan, Xilvan Design.
    17. Gnollrunner

      Custom size_t

      I don't what to get in a technical discussion but alignof() aligns, however it doesn't necessarily help you pack. Having fields of a specific size is still often useful if you are tying to optimize stuff. Also alignof is C++ 11 and I don't know when this was originally written. In any case I'm just commenting on why they might be using their own instead of the system std::size_t. I'm not recommending anything really.
    18. snacktime

      Optimizing multiple field encoding

      Ya I should have said the reason to skip fields is default values. It's really more of an experiment. Since I had to revisit this code anyways it seemed like a good time to re evaluate optimization of the value per field approach. We use the protobuf packed approach for high frequency stuff. Flatten the data into array per type. In our case we are pretty much always on the edge, so even less frequent messaging I'll go further to optimize then most games, although there are limits. High frequency messaging a couple bytes is a big deal. Lower frequency stuff some of it in burst it can be a big deal. So if I can find a good way to keep fairly normalized messaging and have it almost as good as packed, that would be ideal.
    19. It seems to be the wrong section of the forum, texture samplers hang around https://www.gamedev.net/forums/forum/5-graphics-and-gpu-programming/
    20. LorenzoGatti

      Custom size_t

      For custom byte sizes and object counts you should simply use the appropriate unsigned type with appropriate automatic conversions to and from size_t and related types; you might put in some form of compile-time assertion that your size type isn't larger than size_t, but in practice you can just try. If you care about platform-dependent alignment of size_t struct fields you gain nothing by using wrong types, as shorter types are incorrect and longer types waste space and have a chance of masking bugs; realistically the struct is going to be completely different on 32 bit and 64 bit platforms, so you should write it accordingly with preprocessor macros, alignof() etc. instead of trying to be clever.
    21. Hi, we are planning to contract a 3rd party art provider to work on our games, we have already secured the funding and budget, however since this is our first rodeo ride with 3rd party doing assets for us, can you guys give advice on how to handle such things? 1. Will they take credits to the game as well or not? maybe arrange special discount that they will be included in the credits for a certain discount or something? 2. can they use their art as portfolio to their company as well or not? I know that most of the answer will be "depends on your contract or agreement" but what would be the best scenario/contract/agreement for this. Any professional advice is a great help! Thanks!
    22. lawnjelly

      Optimizing multiple field encoding

      You are asking us about compression of some data, without telling us specifically what the data is (or at least some kind of idea). There are 2 aspects to this: Encoding what fields are in the stream (packet?) Encoding the data within the field By far the biggest 'win' is usually from (2), and given that you are already using bitfields for (1), the question arises what is the data and how are you compressing it? The best way of compressing something is tightly linked with what that data is, and what it statistically is most likely to be.
    23. Pluck It is a playful experience about plucking hairs and experiencing emotions. In Pluck It, player plucks hairs which embody different kinds of emotion: angry hair, procrastinating hair, heart broken hair, etc. Players will need to deal with these hairs in various ways to pluck them. Pluck it is made with the purpose of promoting self awareness and emotional awareness of people's everyday life in the information age. In this busy digital era which all kinds of things try to attract our attention, sometimes we have little or no time to understand and take care of our emotions and mental health. Pluck It brings this topic to you in a fun way. Pluck It also attempts to inspire players to develop empathy and to resolve emotional conflicts. App Store: https://itunes.apple.com/app/pluck-it-hairs-and-emotions/id1377729521 Google Play: https://play.google.com/store/apps/details?id=com.feelinggame.hair
    24. Nypyren

      Optimizing multiple field encoding

      Protobuf lets you completely omit fields if you don't want to deserialize them. Do you mean something else? Are you trying to eliminate the field+wiretype bytes completely? Did I misunderstand and you're NOT using protobuf anymore? If you have regular patterns that you're sending, the ultimate technique is memoization of the entire packet.
    25. Wait... is the coroutineHost null this time? Check to see when/how GameManager.monoBehaviour might be getting destroyed. Or make sure it's actually getting assigned properly. You'll need that to be an active, non-destroyed monobehavior to use it as a coroutine host.
    26. Gnollrunner

      Switching from Java OpenGL to C++ DirectX 3D

      Ok Well first off I'll point you here: https://www.3dgep.com/introduction-to-directx-11/ It's very basic but at least it compiles and runs with the latest Visual Studio and it's also up to date. Second I should warn you that Microsoft made a bunch of changes to Direct X and so a lot of the stuff in old DX11 programming books is out of date and won't compile or run without going through a couple hoops. However since you said UWP you probably want to use the new stuff anyway. You can read something about the changes to Direct X here. https://blogs.msdn.microsoft.com/chuckw/2013/08/20/living-without-d3dx/ Frank Luna's books used to be excellent. Unfortunately his DX11 book is now out of date like the rest. It might be worth picking it up anyway and using it in conjunction with other sources. That's what I'm doing (mainly because I already had the book) but I'll say it's a bit iffy. Unfortunately I can't find a really good up to date Direct X11 book. I'm not sure one exists. As for C++ the main difference you will have to deal with is the lack of a garbage collector, so you need to understand memory management. I strongly recommend using smart pointers (i.e. reference counting). That being said you shouldn't use them willy nilly. I tend to only use them where an object references another in a manner that implies ownership. In functions I typically just expand things to normal pointers to avoid the overhead. Also if you have something like a back pointer, say a child object that points back to a parent, you typically want to use a straight pointer for that too, otherwise you get a nasty loop. It's kind of a zen thing you have to get used to. The standard library gives your smart pointers in the form of the std::shared_ptr template and the like. You can read about it here https://msdn.microsoft.com/en-us/library/hh279674.aspx I typically roll my own by having a smart object base class with a reference count in it, but people tend to yell at you a lot for not using the standard library. Do what works for you. The other thing about memory allocation is that when you get more advanced you tend to build your own allocators. Of course new and delete work fine, but for performance reasons people often build slab allocators and stuff like that. I literally have a memory allocation library that I've built up over the years with all sorts of allocators. You can read about "placement new" if you are curious. The name is a bit deceptive. It's just a facility that lets you implement custom heaps. Well I guess that's it for now. If you have any other questions I'll try and see if I can answer them. Dude, What does that even mean? LOL!
    27. jlandersadam@hotmail.com

      Switching from Java OpenGL to C++ DirectX 3D

      ive worked with it learn c++ and java ive had worked with directx before it can be a little tricky the libraries have to be in a certain order
  • Advertisement

Important Information

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

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!