• Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

125 Neutral

About storm33229

  • Rank
  1. Procedural Level Generation

    [quote name='Blind Radish' timestamp='1356348165' post='5013914'] O.P., if you have any more questions, feel free to ask.  I dumped A LOT of information on you, so I expect /something/. Also, I know that looks scary but it's really not that complex.  Make rooms, place them using method, check for errors.  Easy. [/quote]   Thank you so much for your help (+1 for sure). I am working on creating shape files that contain meta data about my 3D pre-canned structures. This way I can have an artist create cool art, and then I can randomly place it. For instance:   XXXXX X000X D000D   where non-zeroes are cross checked with the map, and the d's specify doors. 
  2. Procedural Level Generation

    Thank you for your patience with me. This is the gist of my algorithm so far: pseudo code: while rooms.count < number_of_rooms_to_create set room = new room set room.sizeW = random() set room.sizeH = random() set room.posX = random() set room.posY = random() if room fits rooms.add(room) end while start_room = random(rooms) foreach room in rooms if room is not start_room create_path(start_room, room) end foreach This works just fine for square tile based 2D maps. This falls apart when trying to create maps that contain rooms of arbitrary shape and size. The first problem is how to check if the room will fit. The second is how to link the rooms together at their respective door/entry-way points. In my original post, this was easy to do since the rooms were all quadrilateral shapes and the walls and floors were individual tiles. Now I want to use whole 3D and 2D chunks instead.   I've attached an image that is derived from the tile set in my original post.    
  3. Procedural Level Generation

    While helpful in a general sense, your reply is a little to high level and design oriented. I am asking for a more detailed technical discussion, so if you can expand on your implementation section that would be really helpful.
  4. I am working on creating a procedural dungeon generator. I'm off to a decent start, but it seems that AAA titles like Diablo 3 and Torchlight use some fairly complex systems to achieve their results. For where I am at now, this is very evident when I use my current algorithm in 3D instead of a simple 2D grid.   In the 2D example, the algorithm looks promising - this is deceiving; when viewed in 3D it is obvious that this algorithm will work only for throwback RPG's (think Might & Magic, Doom 98, or more recently Legend of Grimrock). There's nothing wrong with that, but it's not near the level of complexity I want to achieve.   I'm looking into this: http://www.uoguelph.ca/~jbrown16/Vvaltchanov_c3s2e12.pdf   Any suggestions, articles, papers, etc. are greatly appreciated.
  5. How do I keep enemies from walking over each other? If I look at games like Torchlight, Diablo, etc. where there is clear view of the surrounding monsters, I notice that the enemies never walk over each other. I have just implemented the Simple Path scripts in my Unity3D game, but I want to make it so that my enemies do not ever occupy the same space. I cannot simply enable physics collisions; this would result in enemies potentially getting stuck. What is the most common way of achieving enemy/obstacle avoidance while correctly path finding?
  6. OpenGL Custom Vertex structure

    Thank you both for those examples. I about choked on what I was drinking when I read fatso and nipples. [img]http://public.gamedev.net/public/style_emoticons/default/laugh.gif[/img]
  7. I am using OpenGL and C to create a 2D rendering engine. I am learning about VBOs and how to use them for non-immediate mode rendering. I have been reading from: http://www.opengl.org/wiki/Vertex_Buffer_Object The tutorial suggests the following: struct MyVertex { float x, y, z; //Vertex float nx, ny, nz; //Normal float s0, t0; //Texcoord0 float s1, t1; //Texcoord1 float s2, t2; //Texcoord2 float padding[4]; }; I do not need the Normal values, and I am unsure how or why there are three texture coordinates for a single vertex. I think all I should need is Vertex (XYZ), and one Texcoord (s0, t0 <-- still do not know what those mean).
  8. Thank you for the help. I am slowly starting to understand VBOs and how they are to be used.
  9. (I specified 2.1 because my laptop won't go past that version. I would have probably done this anyway since 3.x and on introduces shaders as mandatory?). Thanks to Wikipedia: [url="http://en.wikipedia.org/wiki/Vertex_Buffer_Object"]http://en.wikipedia.org/wiki/Vertex_Buffer_Object[/url] I am starting to grasp how simple it can be to use VBO's (I am still not positive about IBO's?). What I have understood so far is the primary reason to use them is a performance boost gained due to the fact that data is now stored in video memory. What I would like to know is how I am supposed to use them in a practical context. For instance, all of what I have seen has been setting up one Vertex Buffer Object and drawing one triangle or one cube, etc. What if I want to draw 2 or more? Do I set up a new VBO for each entity that I want to draw? Or do I magically append to some static VBO that I setup early on?
  10. OpenGL 2D Animation in OpenGL

    Awesome, thank you for your help. Now I am on to learning how to NOT use Immediate mode. [img]http://public.gamedev.net/public/style_emoticons/default/rolleyes.gif[/img]
  11. I've done a little searching on the forums here, but couldn't quite find any one post that outlined how to animate 2d sprites in OpenGL. I have figured out how to clip a part of a texture and assign it to a quad. This would give me a single frame of a spritesheet, and obviously knowing how to do this would make it rather simple to make sprites animate. The trouble is that because I am using TexCoords I do not know how to select certain pixel rects of a sprite sheet to draw. For example: [font="Consolas"][size="2"]glClear(GL_COLOR_BUFFER_BIT);[/size][/font] glLoadIdentity(); glBindTexture(GL_TEXTURE_2D, tex); glBegin(GL_QUADS); glTexCoord2f(0.5, 0.5); glVertex3f(0.25, 0.25, 0.0); glTexCoord2f(1.0, 0.5); glVertex3f(0.5, 0.25, 0.0); glTexCoord2f(1.0, 1.0); glVertex3f(0.5, 0.5, 0.0); glTexCoord2f(0.5, 1.0); glVertex3f(0.25, 0.5, 0.0); [font="Consolas"][size="2"] [/size][/font] [font="Consolas"][size="2"]glEnd();[/size][/font] This code will draw a texture that starts halfway through and displays the other half so: OOOO OOOO OOXX OOXX (or at least that is how I imagine it) Anyway using TexCoords like this does not seem to be a good way to select which part of a sprite sheet i would like to draw. Are there better ways of doing this?
  • Advertisement