• 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

819 Good

About petewood

  • Rank
  1. Quote:Original post by bubu LV I usually do this with #define macro: #define foundInMap(Map, Key) ((Map).find(Key)!=(Map).end()) How about... ? template<typename Map, typename Key> bool MapContainsKey(const Map& a_map, const Key& a_key) { return a_map.find(a_key) != a_map.end(); }
  2. Also see Generalizing Observer by Herb Sutter
  3. Put in two lines before the loops assert(m_pTileMap.size() == m_TileMapWidth); for (int i = 0; i < m_TileMapHeight; i++ ) { for (int j = 0; j < m_TileMapWidth; j++ ) { assert(m_pTileMap[j].size() == m_TileMapHeight); fin >> m_pTileMap[j][i]; } } In debug these will tell you if the assertions aren't true. They may indicate to you that i and j should be the other way around. If not, remove them again.
  4. look into pooling memory clicky
  5. See the Apache Portable Runtime. Here are some of their aims: Quote: The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementations. The primary goal is to provide an API to which software developers may code and be assured of predictable if not identical behaviour regardless of the platform on which their software is built, relieving them of the need to code special-case conditions to work around or take advantage of platform-specific deficiencies or features.
  6. This gets asked a lot. See Bjarne's FAQ: Quote:Is `int* p;` right or is `int *p;` right? Both are "right" in the sense that both are valid C and C++ and both have exactly the same meaning. As far as the language definitions and the compilers are concerned we could just as well say `int*p;` or `int * p;` The choice between `int* p;` and `int *p;` is not about right and wrong, but about style and emphasis. C emphasized expressions; declarations were often considered little more than a necessary evil. C++, on the other hand, has a heavy emphasis on types. A ``typical C programmer`` writes `int *p;` and explains it ``*p is what is the int`` emphasizing syntax, and may point to the C (and C++) declaration grammar to argue for the correctness of the style. Indeed, the * binds to the name p in the grammar. A ``typical C++ programmer`` writes `int* p;` and explains it ``p is a pointer to an int`` emphasizing type. Indeed the type of p is int*. I clearly prefer that emphasis and see it as important for using the more advanced parts of C++ well. The critical confusion comes (only) when people try to declare several pointers with a single declaration: int* p, p1; // probable error: p1 is not an int* Placing the * closer to the name does not make this kind of error significantly less likely. int *p, p1; // probable error? Declaring one name per declaration minimizes the problem - in particular when we initialize the variables. People are far less likely to write: int* p = &i; int p1 = p; // error: int initialized by int* And if they do, the compiler will complain.
  7. Quote:Original post by Agony A possible alternative would be a deque. It's very similar, has random access, but can handle inserting at the beginning just as well as at the end, I believe. Remember though that the data is not contiguous and cannot be used where a function expects a C style array.
  8. http://students.cs.tamu.edu/jwf4661/441/dx/
  9. Quote:Original post by Tera_Dragon How can I change the project settings to use ANSI with MSVS2005 beta? Make sure _UNICODE isn't defined. It's better to use _T() though as it'll work whether _UNICODE is defined or not. See this link for more info.
  10. you could overload it to mean something
  11. Unfortunately you shouldn't forward declare things from within the standard library. You'll have to #include <vector>. I find it best to put all library headers such as the standard library, boost, etc, into a precompiled header. It makes things much faster to compile. In related news, iostream is quite a heavy-weight header and the standard committee decided to include a forwarding header, iosfwd which is relatively lightweight.
  12. Have you thought about writing the whole game in Python? If you're worried about speed check out Psyco (for Python). It's cool. It profiles your program while it's running, works out what needs optimising and does it if possible.
  13. I don't like the background. It distracts me. I turned it off and the page looked sooo much better to my mind. Post a small amount whenever you can. The initial glow of excitement of having a blog can quickly lead to feeling you need to post something worthwhile every time and eventually to not posting at all. If a jobs worth doing, it's worth doing badly. If you've got writers block write about what it's like to be blocked and what you're afraid of. All the best. Pete
  14. Quote:Original post by AzCoder Josuttis See whether you can get a second hand copy if you're on a tight budget.... although there might not be many people wanting to sell.