• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.


  • Content count

  • Joined

  • Last visited

Community Reputation

415 Neutral

About streamer

  • Rank
    Advanced Member
  1. This code is deeply broken. You're returning a pointer to memory that is freed when the function exits (because the temporary wstring will be destructed). It may seem to work, but that's the horrifying reality of undefined behavior - it often seems to work until it bites you viciously.   You are right! :)   +1 for noticing it.
  2. Here is one nice small snippet.  const wchar_t* to_wide( const std::string& strToConvert ) { return std::wstring( strToConvert.begin(), strToConvert.end() ).c_str(); }     Notice: not working, skip it. I just leave it as is, to be here as warning how NOT to do some things.
  3. Do you want to use 2D representation or real 3D isometric view? Both of approaches use different kind of programming.
  4. I am not familiar with geometry shaders but here are few thoughts: - you are using two triangles with unappropriated culling, switch culling off if there is a second triangle shown (easy to debug) - you are try to render triangles with triangle fan method, and output is expected to be two triangles. Add two more vertices, or render with triangle fan Anyway 3d APIs usually work with triangles not quads. However, OpenGL have GL_QUADS rendering method, but that is not geometry shader.
  5. I don't think there is any restriction about it (not 100% sure), probably the memory is the limit. However if I remember well, I have read somewhere that 3th dimension on texture also should be power of 2. So it is wise to have 1,2,4,8,16 etc layers.
  6. I am not familiar with SharpDX, but you are probably not using 3D textures out of box. 3D textures are made like bunch of 2d texture "slices", so if you have for example 10 pcs of 1024x1024 textures, you can make 1 3D textures with 10 layers of 1024x1024 textures. Then you make 1 SetTexture call and use 3 coordinates for mapping, instead of u and v coordinate for "ordinary" 2D textures.
  7. [quote name='addy914' timestamp='1341939612' post='4957660'] Thanks d k h, that story is really comforting to know. It tells me that spritesheets are the way to go for sure. I am wanting to support older graphic cards, so I am trying to pick a relatively low texture size that a lot of graphic cards will support. From what mhagain says, I should be safe with 1024x1024, which sounds good. Even if I were to use 4096x4096 or whatever texture size, I am wanting to answer the question "What if I exceed that size with my textures?" I am trying to think on a bigger scale(which in the game I'm making, I will certainly exceed 1024x1024 a few times). I could make another textures to hold this data but whenever I am in the rendering layer, I would most likely end up switching textures from the first page to the second page. As I slowly add on more and more "pages" of textures, the more I have to switch textures between them. Any ideas? [/quote] As I stated before 3D textures are way to go, if you are concerned about switching textures. If you feel any problem with 3D textures (yes they may not work on really old hardware) then your only way to go is to determine maximum texture size available on computer through caps, then dynamically create bigger texture sheet. Say you have 4 textures with 1024x1024 size and maximum available texture size on computer is 4096x4096, then you during loading process putt all 4 textures on one bigger. Of course you will need to have special class for handling UV of dynamically created textures but that is another story. But as mhagain stated probably you will not have too much problems with texture switching, biggest bottleneck you will probably have is a number of draw calls. Just try to make 4000 BeginSprite/DrawSprite/EndSprite calls then make same with 1 BeginSprite, 4000 DrawSprite and 1 EndSprite call,l and you will understand the problem.
  8. There is one "extended" version of using sprite sheets, and that is using of 3D textures. On programming side you have one texture call, with defining one more texture coordinate beside u and v. Probably this will be the fastes way.
  9. I recommend Cinama4d, it is really easy to use. Even I as programmer could made some basic stuff after 1-2 hours. As indie developer don't forget to check the price of modelling software. Cinema4D is pretty affordable if you are going to commercial software. And off course there is always a Blender - for free.
  10. First of all you're probably drawing every charachter/number in between lot BeginSpprite/EndSprite calls. Use it only once. Second you can use DrawText. Check here. But the best thing you should use are Bitmap Fonts
  11. temp_rect.left = i_x; temp_rect.top = i_y; you're missing right and bottom values [smile]
  12. Thank you for reply [smile]
  13. Hello all, Say I have 300MB of texture loaded, and binded properly, so I have id for all textures. But my system have VRAM of 32MB, and I'm using 300MB textures. The quetsion is, what is happening in this scenario? Does OpenGL API constantly destroying old textures and moving new textures from system ram to VRAM as soon as new texture doesn't fit in VRAM? How does this affect system performance? And what if I use 1GB of textures on system that have only 768MB of system RAM? I didn't find any texture destroy functions in OpenGL [smile] is there any similar function? thanks in advance
  14. Quote:Original post by Brad789 If the textures is showing up upside down it is probably because in DirectX the coordinate 0,0 is at the top left of the image and in OpenGL the coordinate 0,0 is at the bottom left of the image. I haven't used DevIL since they were known as OpenIL so I can't help you much on the rest. If you can't find answers here you can also try the DevIL Help forum, they have a link to their forums on the DevIL home page on the right side. Thanks for your reply. I just flipped UV coordinates so it is not so big problem.
  15. Hi all, after some time I decided to move to OpenGL from DirectX, found DevIL for image manipulations, but seems that I cannot find some answers on net. These questions may seem trivial, but I'm a pretty new to OpenGL. First of all, if I load texture with DevIL and draw one rectangle, the UV coordinates seems tumbled up, like mirrored image. Probably I'm missing some parameter flag, because if I load it normally, the image is shown properly. What I'm missing? Also is this enough to load image? : ilInit(); ilutInit(); ilutRenderer( ILUT_OPENGL ); tex_id = ilutGLLoadImage( "cp.jpg" ); the texture is shown properly, but do I need: ILuint handle = ilGenImage(); ilBindImage( handle ); because is working without it. And last one, when I load texture with: ilLoadDataL( pData, lDataSize, width, height,16,16 ); how can I make OpenGL texture from it? thanks in advance