• 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.

FippyDarkpaw

Members
  • Content count

    165
  • Joined

  • Last visited

Community Reputation

154 Neutral

About FippyDarkpaw

  • Rank
    Member
  1. Actually you can use the DirectX math lib for both: D3DXVECTOR3 works fine, as is, with OpenGL calls that accept array[3]. D3DXVECTOR3 v1(0.0f, 0.0f, 0.0f); D3DXVECTOR3 v2(1.0f, 1.0f, 1.0f); glBegin(GL_LINES); glVertex3fv(v1); glVertex3fv(v2); glEnd(); Not sure how/why, but D3DXVECTOR3 look exactly like float[3] when passed to OpenGL functions (same with D3DXVECTOR2, D3DXVECTOR4. etc.). Of course, that only works on a system with both DirextX and OpenGL installed, which makes a separate OpenGL renderer somewhat pointless. =)
  2. Yeah ample space would help. Also, in one game I worked on we solved a similar issue by giving each collidible object 2 collision radii - a hard collision radius and a soft collision radius. The hard collision radius is true collision. The soft collision radius is where any nearby objects would steer around. We were using a somewhat modified BOIDs algorithm.
  3. Quote:Original post by Thunder0ne I am trying both grid and octree using them in order to avoid all of the agents to check terrain proximity (the number of agent's neighbours is cut down just checking their relative squared distance) and I am not noticing differences in performance (I am measuring the whole AI update method which updates all of the agents AI). I was trying and use space partitioning also to find each agent neighbours but this was more expensive than just checking their squared distance as mentioned above. Hmm sounds like you are doing the grid partitioning scheme incorrectly. In a proper grid partitioning or spatial hashing scheme you need never do squared distance check to find neighbors. Neighbors are simply objects in the same grid cells or neighboring cells. So, finding neighbors within X grid squares is essentially O(1). Implemented correctly it should be incredibly faster than N^2 distance checks between all objects.
  4. These games use NN controlled AI: - Creatures - Black_&_White - Colin_McRae_Rally_2 - NERO - Forza_Motorsport Source: http://wiki.aigamedev.com/FAQ/Which_Games_Use_Neural_Networks
  5. If your camera is looking down on a relatively 2D scene like an RTS, then a grid that breaks the scene into sectors is the way to go imho. You can optimize nearly everything with the grid. If you want to have 100s of units you will need to optimize them all: - culling: only draw objects in a grid radius around the camera - collision: only collide objects in the same grid squares - picking: find the picked sector, collide with objects in that sector - AI: define a sector radius for AI sensors, then only consider objects within that radius (this can be a huge bottleneck, possibly more so than collision) - sound: only play sounds within a certain sector radius of the player Not sure if you can do all that with a tree based solution, mainly due to grid having built in adjacency of sectors. Is it possible to tell if objects in different leaves of a tree are adjacent without actually computing distance?
  6. You don't have to manually track the number of objects in the vector. So you gained something.
  7. That's weird. I use 1024*1024 sky box textures (space nebulas actually) and they look great even at 1680*1050 resolution. In fact, they seem to look better at slightly lower texture resolution because it gives them a slight blur, as if very distant. Using XNA, default texture filtering, and additive blending. BTW, what exactly is sky box texture? As in, stars, clouds, whatever? I've found individual don't look good as a sky box texture (not sure if you are) and tend to look stretched and pixellated. Make stars a random mix of colored vertex points and either point sprites or billboarded star textures.
  8. I found it was pretty easy to make some nice and functional buttons in XNA. I made a simple button class with the following: - Button(): has parameters posX and posY (the center of the button on screen), scale (on hover the button gets slightly larger), LeftClickSound, RightClickSound, HoverSound, Delegate LeftClickAction, Delegate RightClickAction (delegates that fire when you click the button), and finally, a Texture. - Make some custom constructors such as Button(int x, int y, Delegate onLeftClick, Delegate onRightClick), which would give you a button at position X,Y that fires different functions depending on left or right click. You also need the following functions: - MouseIsOver(): check if mouse X,Y is within the button texture - IsRightClicked(): mouse is over and right button down - IsLeftClicked(): mouse is over and left button down - BeginHover(): this is true the first frame the mouse hovers over the button, to play the HoverSound - Update(): checks for the above items every frame - Draw(): render the button by position and texture. I use a simple Sprite Batch. I can post my functions if you like. Its mostly just mouse position comparison cases.
  9. Edit: oops misundertood the question
  10. Seems the majority of opinions are that scaling difficulty is bad. I agree. Oblivion's scaling was especially terrible. I was the "Arena Champion" at level 2. Fallout 3 is a bit better, but the game is way too easy still, even on hard. Difficulty sliders are still better than any scaling system. Mainly because everyone has the same experience which is a good thing. I can say "I beat God of War in God Mode" or "I beat 7 enemies in Gal Civ 2 on Max Difficulty" and everyone who has can acknowledge that those are are pretty tough. Diablo's Normal, Nightmare, and Hell modes were a nice way to do it as well. All games should offer optional ridiculously hard mode for those that would like to try it.
  11. Personally, I call sound effects in the logic code for whatever event triggers the effect. For example, if you have a Gun which is fired in Gun.Fire(), then somewhere Gun.Fire() I'd call Audio.PlayWeaponFire(). Obviously it will be more complex than that, different sounds, or no sounds, would be triggered if the Gun cooldown is not complete, if it is out of ammo, if it is jammed, etc. Audio is definitely a unique architecture challenge because calls to it will be interspersed in a variety of completely un-related classes. Guns, doors, UI buttons, background music, triggered sound effects, local ambient noises, etc.
  12. Get a CS degree. If the games thing doesn't work out, or you don't like it, you can go get a nicely paid business/gov't programming job.
  13. XNA is ideal to make tools. Check the XNA / WinForms tutorials. You can have any number of DirectX windows in windows app and WinForms is very easy to use. http://creators.xna.com/en-US/education/catalog/
  14. I've used spatial hashing in several projects nearly the way Nohup describes above. Except: - In one I used a C++ vector, not a linked list, in each grid square. - In another I used a standard C# array the size of the max number of objects. If you only have a few hundred objects it isn't much memory really. In both cases, all grid squares have an "object count" variable, so you never examine them if they are empty. I used the methods described in this paper: http://www.cs.ucf.edu/~hastings/papers/hashing-sim.zip The illustrations in the paper are decent, and will give you a good idea of how to apply grid-based spatial hashing. The simulation in the paper does object-object, object-terrain, frustum culling and a simple AI routine on 10,000 mobile objects at 60+ FPS on 4 year old hardware.
  15. For both performance and realism I split my game levels into simple sectors, and sounds have a sector radius. Only players in a sector radius will hear the sound. Its faster than doing a distance check to every object for every sound. As for the rest of your question, altering sounds based on environment is pretty complex and game-dependent. A good starting place is zone-based sound settings. Most level editors like UT, HL, Quake, that split levels into zones allow you to alter sound settings in each zone. A good way to do underwater, outdoor echoes, tunnels, etc..