Jump to content
  • Advertisement
    1. Past hour
    2. Diluting the value of items because the same effects are spread over more items in more slots could be a good thing: item quality can have low variance and power level increases can be much more gradual than with few, possibly overpowered items. For example, suppose the character party is stuck at a certain combat encounter that regularly ends in retreat because the enemies can kill our heroes faster than the party can kill the enemies. They have low attack bonus, i.e. they collectively lack items that provide good attack bonuses, relative to their progress in the game; let's assume the traditional D&D scale in which +1 to hit means hitting x+1 times rather x times out of 20. At this point if they find their first enchanted sword and it is +4 (at least 25% more hits; the sword would be very valuable and possibly famous) the fighter equipped by it would be overpowered and the encounter would become easy, while if they find a +1 or +2 sword it would become winnable but remain challenging. And later they could find enchanted rings, bracers, underwear, etc. with small bonuses (usually +1, with +2 progressively less rare to provide an upgrade after saturating all slots with +1 items).
    3. Thanks for the input! Good stuff. Im going for a middle of the road when it comes to complexity. My planned damage types are: Physical Arcane ("magic") Fire (both natural and magical) And (not stricly damage types but) still possible for mobs to be immune/weak to: Poison Bleed Phychology Im not sure if I will classify loot in tiers (common, rare etc). Maybe just give them some modifiers and let the player decide their value. Although I still need some way of calculating "sell value" for each item, with it's modifiers taken into account. Any good way to do this? I did find this: http://diablo3values.pixels.li/
    4. Well C++ does work with intellisense, It may not work as well as with C#. I can't speak to that because I haven't programmed in C# much. I find the main trick to using intellisense with C++ is to keep your code in a pretty good state. That means compile often to at least get rid of syntax errors, especially where templates are involved. I don't really have a problem with C# or Java, but they do have some major performance hits, and put some big constraints on how you can do things.
    5. Amen to that. This is one of the areas where C# shines, since it doesn't just store compiled code in assemblies (DLLs and EXEs and stuff) but also extensive meta-information about the classes and methods then it makes code completion almost trivial. All the editor has to know is what you're trying to complete, look it up in the assembly and you're done. Plus there are things like OmniSharp that abstract this, so almost any editor can have good, reliable code completion. VS Code has never let me down in this respect, thought ironically completion in MonoDevelop has broken on me many times over the years due to it being a buggy mess. That's hardly C#'s fault though. But it really changes how you code. When coding without code completion I'll have a vocabulary of API functions that I almost never stray from. If I have a problem I can't solve, I'll go look up another function and try to add it to my vocabulary. But often I'll find out later that there are API functions that do things I've been doing on my own, but that I could have discovered through code completion easily. Often times I won't know which function I really need so I just browse through the completion list and see if anything looks appropriate. It seems like such a tiny thing, but it's a pretty big deal.
    6. Added another tutorial - Data Streaming. This tutorial shows dynamic buffer mapping strategy using MAP_FLAG_DISCARD and MAP_FLAG_DO_NOT_SYNCHRONIZE flags to efficiently stream varying amounts of data to GPU and render dynamic polygons.
    7. Today
    8. This is your problem, not Godot's. I don't want to sound mean but if you're having trouble with Godot's scripting language then you aren't going to have a fun time with any engine. One of the great things with unity (when you use it with Visual Studio) is the great intellisense support. I rarely have to lookup an API on the internet. It's usually all there when I press "Ctrl + Space". This is one of the reasons I prefer C# (Unity) to other scripting languages (C++ [unreal] or custom languages ). C# is great for IDE functions, and therefore easier to learn (While I am a good C# programmer, I don't necessarily remember all of Unity's specific API funtions) This is an example of a "good" language property of C# and Java compared to other languages: They are much more "well defined" and thus easier for an IDE to parse. Therefore, you can get the IDE to analyse your code for you, and even write code for you (automatic method creation and extraction). They will always win in this regard compared to Javascript/Python/C++ . The number of times I have to open a browser and google something when I work with Unreal is much larger, because C++ is harder for the IDE to parse.
    9. If you're trying to show a concise example of Unity then you're not doing a very good job of it. A few things in your code are needlessly verbose. [SerializeField] float speed = 100f; void Move(float x, float y) { transform.position += new Vector3(x, y, 0) * speed * Time.deltaTime; } void Update() { Move(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical")); } That's it. There are no tricks or crazy syntax here. And you're really all over the place with your naming (MoveObject has a redundant word in it, TempVec is a terrible name), the code is not DRY, it's incorrect and/or overly verbose ("this" is redundant, and position is a property, not a method).
    10. JadeRapbit

      PC Love Me

      I'm new to this forum and this is my first time posting here so my apologies if this is the wrong thread just recently a "game developer" who I used to support turned out to be somewhat of a fraud and there was a whole discussion about him when someone in the comments mentioned how they'd like someone to take this idea and make something better out of it that's when I got the idea in my head. So I posted about it and it suprisingly sparked some interests so I'm reposting it here. Please bear in mind this story is stilly very fresh in my mind so a lot is subject to change. The story is about a boy and his group of friends his life while nothing all to intersting has captured the heart of someone but what started out as a simple crush has turned into a twisted obseesion from friends being attacked on their way home to his sister being sent death threats. He begins to worry until he is reminded that his class is taking a trip and that he shuoldn't worry for a short while but things go awry and he soon finds himself trapped with his friends they get in contact with the police but must wait xx days before they can be rescued while waiting they soon realize somethings not right the boy notices some of his belongings go missing, people close to him are hurt His stalker is trapped with them its your job to find the stalker and protect your friends at all cost to the cops arrive. (maybe mutiple endings that sort of thing) what do you think? would it be game material?
    11. Oh, sorry. I didn't want to be rude. No, just like I said there are still 20% which tackle the problem. @Zakwayda you've made some good points mentioning the error. I didn't had that in mind. I stumbled upon this reddit post as well, but it was very early in my developing stages. @fastcall22 thanks for the explanation. I will get more into the math regarding the links you've posted. Actually linear algebra isn't the problem but 3Blue1Brown is still a pretty good youtube channel. Watched all of his DL videos [/offtopic]
    12. Hodgman

      CBVs in Descriptor Heap?

      Yeah I use both tables-of-cbvs and root-cbvs. Root CBVs are useful when they change every draw, as changing a root param is much easier than creating a new table. As you mentioned this also means you don't need actual CBV descriptors at all, however, you do take on a lot of responsibility here. A Root CBV (with just a pointer - no full descriptor) is not bounds checked by the hardware. If your pointer is incorrect, or if the shader reads past the end of your buffer allocation (e.g. You allocate 256B but the shader tries to read a 1KB structure) then you can crash the GPU. Tables of CBVs are useful if many draws are going to share the same CB bindings, as they can reuse the same table and just set a single root param. As above, there's also bounds checking safety where if the shader tries to read past the end of the buffer it just gets 0's instead of crashing.
    13. Today I wanted to offer something a little bit different. I wanted to give you guys a vote on which of the mini-games you would like to see produced first. Vote Here: https://www.strawpoll.me/16131047 I believe it is important to deliver a game you guys want, rather than just throwing out my random ideas and believing it is what everyone else wants, cause that is what I want.
    14. a light breeze

      Advanced gear in the wilderness? (fantasy rpg)

      Depends on where you're traveling. If it's just a small dungeon in the wilderness, then there probably aren't many shopping opportunities, but you could just go back to town to sell your loot and buy new equipment. If you're traveling for long distances overland, then you might come across other cities. Even if these cities are largely hostile places (e.g. an orcish kingdom), you might still find some traders. If you're traveling to a huge mega-dungeon filled with hundreds of fellow adventurers, then some of these other adventurers might be willing to trade with you.
    15. If you just read the code, there it is, but you know better what code does, without reading it?
    16. AntonioPark

      #1 - Welcome!

      Hey, this is really great work that you have done.
    17. SoldierOfLight

      CBVs in Descriptor Heap?

      Positive. A root parameter of type CBV is a root CBV. A root parameter of type descriptor table contains ranges, which may include CBVs in those ranges.
    18. ChuckNovice

      CBVs in Descriptor Heap?

      With my previous version of the code which gets this error my root parameter 0 is in fact a DescriptorRange of CBV and not a root descriptor. Are you 100% sure that it is what the error means? The error only mention a "parameter" which still could be anything between a root descriptor and a descriptor table since both of them allow specifying that it's for a CBV. I will definitely investigate this further meanwhile in case a brain fart made me not notice it.
    19. a light breeze

      How much equipment is too much for a group-RPG?

      The longer I keep using an item, the more useful it feels to me. If I find an item for slot A and five minutes later find a better item for slot A, then there wasn't much point in picking up the first item. If I pick up an item for slot A and five minutes later find an item for slot B, then I can keep using the first item and it doesn't feel so pointless. Having too many slots also dilutes the value of items, but to a lesser degree, in my entirely subjective experience.
    20. SoldierOfLight

      CBVs in Descriptor Heap?

      That says that you made root parameter 0 a root CBV, not a descriptor table of CBVs.
    21. Does this data look good? Input: D3DXVECTOR3(0,0,0); D3DXVECTOR3(0,1,0); D3DXVECTOR3(1,1,0); D3DXVECTOR3(1,0,1); Results: Vertex 0 Pos: 0 0 0 Vertex 1 Pos: 0 1 0 Vertex 2 Pos: 0 1 0 Vertex 3 Pos: 0 0 0 Vertex 4 Pos: 0 0 0 Vertex 5 Pos: 0 1 0 Vertex 6 Pos: 0 1 0 Vertex 7 Pos: 1 1 0 Vertex 8 Pos: 1 1 0 Vertex 9 Pos: 0 1 0 Vertex 10 Pos: 0 1 0 Vertex 11 Pos: 1 1 0 Vertex 12 Pos: 1 1 0 Vertex 13 Pos: 1 0 1 Vertex 14 Pos: 1 0 1 Vertex 15 Pos: 1 1 0 Vertex 16 Pos: 1 1 0 Vertex 17 Pos: 1 0 1 Vertex 18 Pos: 1 0 1 Vertex 19 Pos: 0 0 0 Vertex 20 Pos: 0 0 0 Vertex 21 Pos: 1 0 1 Vertex 22 Pos: 1 0 1 Vertex 23 Pos: 0 0 0
    22. I finally started tackling a proper management of the views in my DX12 project. So far I implemented a ring buffer to manage a big offline and online descriptor heap to which I copy descriptors in a contiguous way as required by my resource binding (I already have plan to improve on the ring buffer idea to manage fragmentation a little better as I don't want to copy descriptors on every draw call if they are already copied contiguously from a previous call). This concept has been well explained by @Hodgman in this comment : For SRV / UAV I have no problem so far, everything work just as I understood the concept. For CBV I apparently cannot reference them with a descriptor table in the root signature. The debug layer report an error saying that a descriptor table is invalid for a CBV root signature parameter even if my root signature was indeed created as a CBV descriptor table at this location so until this question is clear to me I moved all my CBV directly in a root descriptor which seem to be the only option left. The reported error is this one : D3D12 ERROR: CGraphicsCommandList::SetGraphicsRootDescriptorTable: The currently set root signature declares parameter [0] with type CBV, so it is invalid to set a descriptor table here. [ EXECUTION ERROR #708: SET_DESCRIPTOR_TABLE_INVALID] Now as I noticed, binding a CBV as root descriptor don't even require the CBV to be in a descriptor heap and you don't even need to call ID3D12Device::CreateConstantBufferView at all. You simply pass the GPU virtual address of the resource to ID3D12GraphicsCommandList::SetGraphicsRootConstantBufferView and it all work without complaining. I'm a bit confused because from how I understand it so far a descriptor heap should only be used when you are going to work with descriptor tables. Why would the type D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV even exist and allow CBVs in it if CBVs can only be referenced as a root descriptor? I'm also wondering why the ID3D12Device::CreateConstantBufferView call exists at all in that case. There's obviously few details that I didn't catch. Could someone enlighten me on this. Thanks
    23. jbadams

      #1 - Welcome!

    24. JessGame90

      Jess Cantrell

      Drawings using Corel Painter
    25. What options do I have for a cheap/low-scale address space for a Tomcat/glassfish server. Alternatively, is it easy to implement a system where any pc can host the server? If this is too ambiguous let me know, I'm pretty bad at asking technical questions as a distributed systems developer. I'm developing a 2 player turn based card game. Thanks, CE
    26. Game_Passion_Itself

      Want to Improve your Portfolio?

      You are a 3D artist, concept artist or sound designer. You have experience at what you do, but you would love to work on a team and finish a few projects to show what you are capable of. You know it will greatly increase the chances of getting hired by a good company in the future, but you can't do that by entering projects of unrealistic scope that will most likely never be finished. I am a game designer / programmer who has lots of game mechanics needing to get out of pre production and get funded by a publisher. How can we help one another? By working together on Vertical Slices, which are small parts of a game. They are finished and polished, and their purpose is to: · Show what the final project will look like; · Prove that a team has the right skills to make a great game. See? Working on vertical slices will both add a lot to your portfolio in little time and, as we are working as a group, it will also improve your teamwork / communication skills. You can receive part of the revenue as well. Sounds good? Let’s have a talk. Here’s my Discord: Berzerkker #7783.
  • 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!