• Advertisement

bglanzer

Member
  • Content count

    35
  • Joined

  • Last visited

Community Reputation

482 Neutral

About bglanzer

  • Rank
    Member
  1. New Tanuk Gameplay featured

    Here is a new screenshot and some concept art for another playable character in the game.    
  2. Tanuk

    Tanuk is a mobile game where you control a Tanuki firing barrel to barrel navigating various timing puzzles and physics hazards.
  3. Checkout the latest gameplay video and let me know what you think.   [media]http://www.youtube.com/watch?v=PoxmFja5cUM[/media]
  4. Tanuk

    TANUK     Tanuk is a game in development for mobile platforms in which you control a tanuki (Japanese racoon dog) by firing barrel to barrel while avoiding various obstacles. The game will feature 3 different environments with 10 levels each. Feature physics controlled objects to either avoid or aid in your journey through the level.     Scheduled release is Spring 2014!   [media]http://youtu.be/BM8_NIoY9dA[/media]
  5. why value is different?

    I think your not stepping the debugger through that line. Make sure your break point is set on the next instruction after float vc =dd[0].x; The debugger can reflect random values in variables that are not initialized. You can verify with float vc = 0.0f; vc = dd[0].x;; vc should be zero instead of a different number if you place the breakpoint at vc = dd[0].x;
  6. Infectedbrain to break down what ApochPiQ stated simply create a class called node that contains a pointer to a node, contains a defined space either 2d or 3d, and contains a container of collidable game objects. Set a max number of game objects allowed per node. Define a node in which its defined space covers the entire scene then begin checking the number of Objects within it. If the number exceeds the max then evenly split the space with two new nodes each with thier parent set as the original node it spawned from. Then repeat that process untill the number of collidable objects is less than the max allowed with the node and add those game objects to that nodes game object list. Then test which node your bullet is in and only check the collidable objects within that node. That is the basis of a quad tree. For an Oct tree split the nodes by 4 instead of 2. Here is a link utilizing quad trees for terrain rendering. Its pretty much the same concept just replace vertices with enemies. [url="http://www.rastertek.com/tertut05.html"]http://www.rastertek.com/tertut05.html[/url] The code is in c++ but you shouldn't have difficulties making the change to c#.
  7. Storing mesh data

    There are many different formats. Its best to look at different file formats and see how thier data is stored. If you look at milkshape (to me its one of the easier model formats to load from), if I remember right, first the vertex information for the entire model is stored. Then the index, or triangle data is stored for each mesh subset which includes normals. After which the material information is stored, and then finally bone and weight information. The link below offers the order of the data and I believe there is a link that breaks down milkshape structures. [url="http://content.gpwiki.org/index.php/MS3D"]http://content.gpwiki.org/index.php/MS3D[/url]
  8. Planning - What do you use?

    [quote name='L. Spiro' timestamp='1340482433' post='4952088'] I have never had to use any such system professionally nor on my hobby projects. I certainly don’t see any point on hobby projects, and if you have to do it for work then they will tell you what to use. I keep my plans in my head and only execute after all the plans come together and I see how the well oiled machine is going to work in its entirety. Note that this is not the same as documentation which is much much more important. I Doxygen all of my personal engine code religiously (important considering it is meant to be sold to and used by others). [/quote] I really like doxygen but I have never taken full advantage of it because of the additional comment formats. Though I do use it to make a documentation of my code. [quote name='speciesUnknown' timestamp='1340485321' post='4952105'] I use UML, but I don't bother to map out the entities' methods and attributes - it is the structural relationship between the elements that is important. A whiteboard is the best place to do this, especially when one is working in a team. Crucially, I don't try to keep and maintain the UML as a form of documentation. The problem with this form of documentation is that it quickly gets out of date. Things like UML are best used when working something out as a team, agreeing on responsibilities, etc. [/quote] I usually do the same. When trying to work out how each of my classes will inherit from each other I will create a diagram with the classes consisting of only names.
  9. I'm interested to see what other's use when planning a big project such as a game or game engine. I've used StarUML and find it somewhat cumbersome. Going through each class writing variable and method names all of which I will actually be doing when writing code. Often times I will decide to make changes while writing my code and have to go back into it to make changes to the diagram. I've heard some people recommend XMind which I have used as well but I find that as more of just a way to map ideas for a game and doesn't seem to help when planning the actual code structure and design of your game. My tried and true method though somewhat unorganized is a notebook. I usually buy a new notepad when I start a new project and just start drawing my classes with arrows write some method/variable names. I have arrows pointing everywhere and notes on the edges of my paper. Does anyone use any methods that are more organized than a notebook yet less cumbersome than an actual UML diagram?
  10. Structure of classes in good Game Engine?

    Wouldn't a free function require opening and closing of the log file? Would that cause any type of slowdown compared to a class which opens the file on creation and closes before destruction? It would make it alot easier to not have to pass the Log to each class that requires it.
  11. Structure of classes in good Game Engine?

    I often times see Sington's used within references. For loggers particularly. I think its used that way in the Hieroglyph Engine from the book Practical Rendering & Computation. They have thier place but like ApochPiQ said they really shouldn't be used. They have the same issues as global variables so you have to take the same precautions. The other way I've seen loggers done is passing a pointer to your logger on creation just like you are currently doing. I think that Method is used in 3d Game Engine Architecture. This is probably the method I would recommend.
  12. Structure of classes in good Game Engine?

    You can do something like this [CODE] class Log { public: static Log* Get() { if( !m_pInstance ) m_pInstance = this; return m_pInstance; } protected: Log* m_pInstance; }; Then use the log like this within your classes Log* pLog = Log::Get(); pLog->Write( "Me and the Cap't make it happen!" ); [/CODE]
  13. In the case of your sprite I think its pretty good. Here is simple quick example of a sprite class I did in the past, just to give you an example of animated sprites Hopefully the classes are understandable. Pretty much because animations can run at different speeds and a sprite can have many different animations you want to separate your sprite animations. Also it makes it easier to put things like positions and scale into class called Transform which is derived from a Component class. Then allow additional components to be added that hold things like velocity, speed, bounding box, etc. Currently what you have is good. But when you want to create more complex sprites below is a structure that worked for me. ****EDIT**** On second thought you might want Transform and Component under a GameObject class which Sprite is derived from. [CODE] class SpriteAnimation { public: //Set methods, Get methods, update method protected: int m_iCellWidth; int m_iCellHeight; int m_iFirstFrame; int m_iLastFrame; int m_iCurrentFrame; int m_iAnimationDirection; // 1 for forward -1 for backward bool m_bLoop; bool m_bAnimating; bool m_bCustomFrameList; float m_fFrameDelay; float m_fTimer; TArray<int> customFrameArray; }; class Sprite { public: //Constructors, Destructors, Setters, Getters bool AddAnimation( SpriteAnimation* animation ); bool AddComponent( Component* component); protected: Transform m_transform; //transform hold position, scale, ect TArray<Component *> m_components; //Holds any components TArray<SpriteAnimations *> m_animations; //holds all animations }; [/CODE]
  14. There are lots of ways to do things and one way is not always best. Some methods may have advantages over others though. In your case you want to think about mobility and reusability. What if you wanted to make another game? You would have to retype or cut and paste all of your windows and directx initiallization over again. It might be easier to wrap everything up in classes and built into a library that way you can reuse it and spend more time programming gameplay rather than typing code to access hardware.
  15. 2D game drawing

    Textured quad is probably the best method. If your looking for cross platform use OpenGL. I'm not sure how Direct2D works but it's probably the same method. I think the quads are also cached and drawn all at once rather than one at a time.
  • Advertisement