Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

713 Good

About LoneDwarf

  • Rank

Personal Information

  • Role
    Technical Director
  • Interests

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1.   If you're using the NDK then I would strongly recommend you learn the JNI stuff. Some stuff is WAY easier to do in Java. Using JNI you get the best of both worlds. The original glue code Google code included was really just a sample IIRC. I made my own glue code using theirs as a guide. The code starts a native thread and puts an exception handler around it. When a C++ exception is caught, I re-throw it using JNI to the JVM. So it gets logged as a normal Java exception and I get a crash report on the Google Play Developer Console. I even log Java exceptions that happened when my C++ code called some Java code.   The other thing I have is a custom build I give out if I have a user that is willing to work with me. The app logs everything to a file and makes sure it's flushed after each entry. Next time the app starts, if it sees a file it blocks while it sends it to my website. Then it deletes the file.
  2. LoneDwarf

    Sony C#/.NET Component Set Analysis

    I thought ferrous was suggesting that the tool shouldn't have flagged it as an issue when clearly the tool got it right. As to what the code wants to do is hard to say for sure without seeing it all. It's likely not up to the tool to know what the coder wants...
  3. LoneDwarf

    Sony C#/.NET Component Set Analysis

      It's actually correct. If the status is Aborted then the first test will always be true anyways. So it's redundant. Really what I dislike about the code is that the reliance on order of operations instead of brackets.   Oh and it's great to see another full page Ad for PVS-Studio!
  4. There is also GL_OES_element_index_uint extension that allows u32 indices.   I still think you're making more work for yourself than needed. I would get it to run on ES 2.0 and then add and extensions or ES 3.0 as a bonus if time permits. It's pretty trivial to write and index buffer class that handles the breaking up for you as long as you're drawing the whole thing instead of ranges. If you're drawing ranges then you have already broken the index buffer up somehow.
  5. LoneDwarf

    Your development workflow

      That one is awesome but I have to say it's not thread safe. Are you telling me you only get tasks from one place!
  6. If you have managed to write support using ES 2.0 then why bother with 3.0? I'm still at ES 2.0 and won't change until I have no other choice or becomes the dominant version. Why limited your target audience?   What I do for this sort of thing is have abstract classes and then check extensions and make run-time choices. This is basically how I do my platform independence also.   The indices problem I solved off line by breaking the assets up as part of the asset pipeline. This rarely happens and I would somewhat question why you need that many indices on a mobile device. VertexArrayObject* OpenGLGraphicsDevice::createVertexArrayObject( VertexBuffer& vb, const VertexFormat& vf ) { if ( isOpenGlES3() == true ) return new OpenGLVertexArrayObject( vb, vf, vb.getTag() ); if ( hasOES_vertex_array_object() == true ) return new OpenGLVertexArrayObjectOES( vb, vf, vb.getTag() ); return new OpenGLVertexArrayObjectEmulated( vb, vf, vb.getTag() ); }
  7. Maybe I exposed that bad, it is not a shorthand at all. Differently from the "typical use" of creating short-hands, I'm here proposing a good(at least according to my opinion:P) use of "using directive".   There are no problems of include order etc. and there is no stuff like 2 different versions. Semantically is exactly equivalent to declaring a class with no side-included headers (go back and read sentence again).   I know it is a subtle difference and hard to notice at a first and at a second read.     I took a better look at what you are doing (waiting for a build to finish). While my initial comments are true they don't fit the scenario you are talking about, as you pointed out. Sorry. I made a poor assumption that you were trying to solve a different problem. Your solution is actually still looking for a problem and it pains me that someone would spend time on this.   I would strongly suggest reading what the master has to say about it in Large Scale C++ Software Design by Lakos. A dry piece of text but the guy knows exactly what he is talking about and I got a lot out of this book.   The issue is that your header should include everything it needs to compile itself and nothing more. Forward references whenever possible. If it doesn't I would pretty much say it's an error in waiting. Also the cpp that includes it should include it's header first to enforce this principle.   The insanity of having two header files with the same name makes me cringe. Anyone trying to read your code or yourself in 6 months is in for a world of hurt...
  8. LoneDwarf

    My Year as a Mobile Gamedev

    Well done! IMHO you have hit a home run.   I often counsel people to drop their 3D MMORPG and do a 2D pac man game. Why? Well it's because they don't know what they don't know. They don't realize that their 3D game isn't even a really small tech demo. It maybe 5% done at most and go no where. Small games like yours get finished and have allowed you to experience the WHOLE process. You have gained skills in all areas and are far more equipped to know what goes into a project and get it shipped. Again well done!
  9. Ouch, that's not the same at all. Something like "using namespace std" is really a mess and is potentially able to pollute namespace and causing very much problems, in my case I'm just exporting 1 name for header (or if it makes sense, just a bunch of names) wich is very different from importing a whole namespace.   namespace myPublic{ using K = myPrivate::K; // results in myPublic::K name => same as declaring K inside "myPublic" } Yes you're correct. I noticed this after I posted and thought it might make it under the radar :) I used to do this sort of thing to make short hands for stuff like the following but I stopped this practice. using dmath = dwarf::math; Still there is some truth here and it's really nitpicking but I still wouldn't do it. Headers get included in different orders all the time and having code that compiles two different ways based on include order can be hard to find. Namespaces are designed to prevent this sort of thing and making shorthand versions is really just circumventing the system.   Sure the compiler should point out ambiguity for you if there is a problem but it doesn't protect you from old C headers with macros. I would also say the code is harder to read now. Don't spend time on stuff like this as it only takes away from finishing a project.
  10. The problem is that you should never have a using declaration in a header. These should only be in cpp files. Use fully qualified namespace names in your headers. Looks bad at first but eventually it will be normal.
  11. LoneDwarf


    What about NDK these days? Is it well supported?
  12. LoneDwarf

    Mobile games with big file size

    I would work VERY hard to get this game to be much smaller. Yes there are bigger games but to think your game is so good that people will dump 250MB isn't realistic. It's not an insult or meant to pull you down, it's just reality. There is a reason apps can be sorted by size on your phone and you don't want to be in the top ten in that list. It is SO hard to get people to even try your game and that file size is a deterrent.   Have you looked into doing an expansion file on android? It does require work and is one more point of failure you have to deal with.   Perhaps I am wrong but I get the feeling this is a small 1-2 person team. If so realistically, I doubt you could have generated that much content. Spend sometime looking how you could reduce the size. Can you tell me what kind of resources are using the most space and perhaps I could offer some advice?  Textures, geometry, audio etc
  13. LoneDwarf

    Problems Found in Appleseed Source Code

    Well I still think it's code shaming as it's a one sided unsolicited code review. If they have in fact asked the authors if they could do this then I am very sorry but there is no mention of it in the article.   With that said, what is to say they are errors or issues in the first place? So many time people have come running with 'The Bug' that isn't a bug actually (myself included) because they didn't know the big picture or understand the code.   V670: this error could actually be fine if the constructor just wants a reference or address of the variable.   V668: if the project doesn't use exceptions and/or has a custom allocator then the test makes sense. Still not even an issue really.   V719: is there a compiler known to man that won't report this?   Half if not all of these so called issues could be caught with full warnings on and warnings set to errors, which you should do anyway. These aren't articles by the way. These are full screen ads that use the assets of reputable projects. Ads that they run for free...
  • 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!