• Content count

  • Joined

  • Last visited

Community Reputation

335 Neutral

About FelixK15

  • Rank

Personal Information

  1. Having a render command buffer (or render queue as you called them) for each thread that potentially submits render commands is the right thing to do.   Maybe I didn't fully understand your command buffer execution but when *exactly* are you going to process the individual command buffers? When the paint funciton is getting called? Where are you going to submit the OpenGL calls? Keep in mind that each OpenGL Context is bound to the thread where the context got created.    You also have to keep rendering order in mind.   Ideally you'd want to have a designated render thread whose only purpose is to process command buffers that have been submitted.   To ensure that the order in which the command buffers is the same order in which the command buffers are getting processed by the render thread you could implement some kind of command buffer dispatcher who receives command buffers to process in a defined order. Once all command buffers from all threads have been dispatched you can kick off the render thread which will immediately start to get the command buffers from the command buffer dispatcher.   To improve performance you could also double buffer the command buffers and the command buffer dispatcher so that you can start adding new render commands while the render thread is still busy processing the render commands that have been submitted in the previous frame.
  2. I guess Ubuntu is the way to go right now.  Together with QtCreator I've been able to get productive pretty quick, being a Linux Noob myself.   Maybe you also want to take a look at Bruce Dawson excellent presentation about Debuggung/Programming using Ubuntu and QtCreator  https://www.youtube.com/watch?v=xTmAknUbpB0
  3. Hey guys,   I just asked myself the question why some games (especially the older ones like quake and half life) gave the user the option whether to use raw mouse input or not (probably WM_INPUT vs WM_MOUSEMOVE).   I wondered why they would even give the user the option instead of using raw mouse input by default?   This may be a trivial question but I'm really wondering.
  4. memory leak dectector for vs 2013

    The VC++ CRT memory leak detection is easy to implement. 
  5. engine/editor interaction

    You *could* get the Qt sources from http://qt-project.org/wiki/Get_The_Source If I recall correctly there should be (at least) a VS2010 project coming with the Qt code - You could just use Visual Studios project converter to convert the VS2010 project to a VS2013 project.    However bear in mind that compiling Qt from source will most likely take some time.   Apart of that I highly recommend you to compile your engine as a dynamic library instead of a static library.   Think of a scenario where you would need to patch your game. If your engine is statically linked to the game executable, you'll always end up patching both, the game and the engine - regardless of where you fixed the bug (game or engine codebase). If you'd have a game executable AND a engine library you'd only need to patch one of them - depending on where you fixed the bug. (And that's just one example of why you should compile your engine as a dynamic library)
  6. Renderer too slow

    I'm not too sure on this, but isn't allegro using software rendering? (Like GDI or something)   To use hardware accellerated rendering, you should use AllegroGL.
  7. Will this perform better?

    They'll be equally fast with case A using 32/64 (if x86 or x64) additional bit for the data pointer variable. (both, 'data' and 'membervariablepointer' are pointing to the same memory address so there's IMO not much sense in using case A.)
  8. Thanks for your hint!   The problem are in fact the RenderTargets.   I removed all RenderTargets from the GameWorldLoader and voila...it works.   Now I gotta find a workaround for that...gheez
  9. Actually that is not *quite* the same problem as I'm having.   If I minimize the game I can still see my player sprite and some of the other dynamic objects. However my problem is that nothing gets drawn after a specific amount of frames (like in the video I posted).   The RenderTarget2D.ContentLost is also not getting called when my sprites stop getting drawn, however if I minimize/restore the window AFTER the sprites disappear the sprites of the player and dynamic objects are getting drawn again.
  10. Here you go  https://bitbucket.org/FelixK15/rpg-xna-project/get/f7432d3121e6.zip
  11. $git clone https://FelixK15@bitbucket.org/FelixK15/rpg-xna-project.git      works perfectly for me
  12. It seems to be a problem with the driver from my ATI graphicscard. A friend of mine has the same card, but had old drivers. The game worked fine on his machine using the old drivers. However, as soon as he updated his driver so that our driver versions match, he had the exact same error as I.
  13. @Andy474 I checked everything you said, but it seemed ok. What do you mean with    @adt7 I read once that you should Dispose() all XNA resources that have not being loaded by the ContentManager.   The code would be too long to post it here, so here's the link to my repository: https://FelixK15@bitbucket.org/FelixK15/rpg-xna-project.git   Thanks for looking through my code. I hardly suspect the GameWorldLoader class to be the source of the problem. If anything is unclear or you got questions, either send me a PM or add me on Skype (you can find my username in my profile)   ---   I also recorded the behavior because it is pretty complicated to describe it. http://www.youtube.com/watch?v=72cpRbrfv7U (The video is a bit messed up at the beginning, but it gets better after a few seconds)   During recording I also realized that some of the tiles are not getting rendered (the violet squares), however after I restart the program during the stream some of the previously not rendered tiles are getting rendered and others are not. You can see the behavior in the video as I restarted the program 3 times in the video.
  14. A good 'exercise' would also be to write an importer for *.obj files.