Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

963 Good

About WoopsASword

  • Rank
  1. For 3D rendering you always take resolution into account, this is done by the projection matrix. You also account the viewport you are rendering into, for example in scissocring process.   For GUI the android sdk supports supports small,normal, large and xlarge layouts. You can also assign DPI (density).    Specifically for godot, please use their docs: http://docs.godotengine.org/en/stable/tutorials/engine/multiple_resolutions.html   I also learn the engine and they have good documentation. 
  2. WoopsASword

    Rendering map of the world

      First of all it's an "algorithm" and not a design. And what is your goal here? As I understand you want some sort of a minimap of your world.  Or is this just your render loop? If you are working with tiles then you'd better sort your render better. Multiple render calls may harm your performance even if you have about 10-20. Because it's not scalable. So if you ever want to make more, you'd have to make big changes. 
  3. WoopsASword

    Whats the added benefit of using hexadecimal?

    It's a convinient way to deal with binary values. In case you really need to access bits or pattern of bits in bytes then you'd use hex values instead of writing a decimal value or pure binary value. You could use binary value but hex looks cleaner and once you learn, it's easier to use.   In enums you use bits mostly for flagging purposes or big values when you have ton of enums (Like openGL) and you actually care for the value.
  4. Learn software architecture to tackle this issue. I think you are thinking too abstractly, you can find different approaches for different games because they have different ways to interact with the user.   I'd advise to read some open source engines if you really want to learn. To learn how to write code -> You need to read code. 
  5. WoopsASword

    Questions for Game Class Discussion

    Do companies still offer any kind of learn on the job or entry level positions for people learning to program? -Yes not always. There is always a time to learn in the beginning, especially when it comes to learn the environment and the system you will work on. However, companies are expecting you to know your technical details beforehand.   Is it good to try and learn multiple programming languages, or better to try and just focus on one? Multiple sounds good. The more you know the better.   Is there a good place to start, skills to learn, if choosing to use professional development? Usage of professional development? Being a professional software engineer is hard. It's part of designing architectures and choosing the right methodology. Basic scripting- that's the first step.   Do most companies do a lot of remote work, or do they use a physical office? Usually it's both.  Companies expect you to attend physical conferences or physically be at work. It's companies policies so I can't really make a general assumption. 
  6. WoopsASword

    How to create new games using Godot?

    Read the documentation. I can't state this enough. USE GOOGLE OR THE DOCUMENTATION BEFORE ASKING. Especially on "How to XXXX". This is by far the most annoying question newbies ask, even at work. ("How do I use GIT?" "Oh idk, there are literally TONS of guides out there!").    If you have a more meaningful question, please don't be shy to ask. 
  7. Games are a piece of art that includes many processes. As a product itself, it has the whole managment/sales pespetctives. (How to manage a team and product, and how to sell it). As a piece of art it has the design and meaning perspectives. As a software it has coding perspectives. Additionaly it has audio, gui, IO, if network is available than servers/p2p. (Maybe more I forgot)   In my point of view you should focus on code practices and devlopment, while learning bits of the other worlds. 3D modeling, 2D graphics, User experience (For GUI and IO) and graphical design, Audio editing and recording (for music and sound)   If you have any stupid question like "What does blender do". just google it or go to their site: https://www.blender.org/ Seriously it's not hard to do.   For a software recommendation, I'm not going to write a "to buy list". Just search these stuff using your favorite search engine. People already asked this question like million times. 
  8. WoopsASword

    Gameplay code architecture

      Design patterns are not your solution. These are not magic plasters to all architecture problems.   A good book I can recommend on this subject is Code Complete 2. It focuses on code in various subjects "professionaly".   Keep learning and use Google. Part of being a developer and espacially a "professional" one, is learning by yourself.  Focus on specific issues when trying to discuess issues or else you get ton of generic answers with "read X,Y,Z".
  9.   If you are dealing with C api or external libraries you must use the const ref variant. In design perspectives, it's usually better to pass a unique ptr, because this clerifies the usage of the pointer (which is the goal of smart pointers). I don't recommend passing regular pointers (or const *) when you clearly has a Unique_ptr. If you really have to share the memory (In terms of memory owners) then use a shared_ptr instead of passing the raw pointer. 
  10. MonoGame and XNA. Xna is a fine choice, the 2d api is really simple. Though the library is kind of dead.
  11. Depends on your goal. I see very little post increment usages just for the sake of the "post". So in my opionion it's because of conventions in writing. Loops are written with post incremeant, giving us an habit of writing it in that way (for i=0;i<10;i++). But when you do need to evaluate the value before incremeanting ( var x = i++) So you both save the previous value and incremeant it at the same time, then you use it.   From readablity perspective it's nonsense to use that. because the purpose of var x=i++ is to assign i to x, the i++ is a side effect although we've directly written it to do it. It's 2 logical operations inside 1 sentence, which is basicly a smelly code to write (like a function with 2 responsibilities).   What was shown above is compiler optimizations. If you provide constant values and do some math with them, it'll simply calculate in compile team. So (1+2+3+4+5) ++ becomes  16. It's true with many mathematical operations. The really interesting optimizations are inside the CPU where conditions have to be met. For example ++i > 5 , How does the cpu know which code to load? The one that ++i > 5 is true or the one that it's smaller?  if i is known as a const, it will produce the value of 6 , then 6>5 is always true. So it would never load the 'else' code. But if it's a runtime variable, it would sometimes guess wrong (small cases) and will load both code into the cache. 
  12. WoopsASword, I kind of disagree, man. And I will tell you why. My game will consist of maximum 30-40 components. This method may not be suitable for large-scale games, but saves a lot of developing time. And I'm doing a small game. In my opinion, there is no terrible code or pattern, there's just code that is not suited for the purpose.    If you still don't agree with me, you can post and tell me why I'm wrong. I'm open to criticism.  ^_^   See, you said it. :cool:     "there's just code that is not suited for the purpose. " This code is not suitabled for your purpose. There are more drawbacks than advantages in this code, You asked our opinion. That's my expert opinion. Do w/e you want with it. 
  13.   I personally prefer a "big fat tree" as long as it's properly designed. You can't run away from complexity, some code are so complex you have to sit monthes just to understand it. What can we as developers do? Simplify as much as we can!  Your understanding of what "composition" should consist of is not well. Composing objects should not interfer with your inheritance.   "100K components into "gameobject"" - This is not how it works. If not all derived "gameobject" need these 100k objects, than It's not the place for these objects. "readability for others is not an issue" - There's a special quote for that: "When I wrote that only me and god knew what it does. Now?  only god".   EDIT:     This is terrible.  
  14. You overcomplicate your problem. Nothing bad with inheritance as long as you don't redefine the rules.   The way I see designs is implementing an IRenderable interface which has 1 method of Render. This way you pass to your graphics component all IRenderable objects, which can be a player, a monster or even a gui component. Because it doesn't care about details- all it wants is something to render. However, you want something simple- abstractions are not simple, They become really heavy burden to maintain when you split your behaviors into many abstractions. So in terms of simplicity you can have an abstract class which defines basic methods for a game object (And the point here is to define what's a game object? An entity that is rendered into the game? Does it have physics? Does it store information? That's where your design skills is used). This way your higher level components (Render, Physics, Input, Game [Damaging, score, etc...]) know only of a GameObject.   As for your specific issue: There's a simple guideline to follow, abstract anything that is common. Anything else leave in the specific classes. These 4: Matrix transform; Model* model; Physics* physics; Renderer* renderer;   Are common. Then why don't you keep them in a base class?  Don't redefine, Re-use.   Good luck!
  15. WoopsASword

    How long will C++ be around?

    In some areas it's considered a standard. How long? When people see no advantage in the language at all.  It's like asking when hammers won't be used. As long as we keep prdoducing nails. 
  • 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!