• 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

2194 Excellent

About popsoftheyear

  • Rank
    Advanced Member
  1. Depending on what you want out of it, there are a number of possibilities here as well: https://github.com/nothings/stb/blob/master/docs/other_libs.md
  2. Earthworm Jim?   I can't find a description besides "can't see bullets" on-line, but it was designed for the D-pad controllers with 8 possible shooting directions, and if you held the "shoot" button and went from one direction to another, the engine would act like you shot bullets in a complete arc between two neighboring directions. Many complained it was hard to hit enemies with the "invisible" bullets, but this mechanic actually made it quite easy.
  3. Just to chime in to the already good answers. Here is a real-world example. Developing very interesting Domain Specific Language at work: Inheritance used for Abstract Syntax Tree Visitor pattern used for operations on the AST Simple, single or limited purpose classes with occasional functions for manipulating their data used here and there (such as symbol table or scope tracking) Procedural style constitutes the other 95% of code. Specifically, in many problem domains there is a struct which holds current "context" plus functions which read/write it. The final point above has actually been the most important design decision because other coding styles are usually much harder to refactor. As the project grows, ability to refactor even major portions quickly has allowed it to mature efficiently.
  4. Based on the example you showed, you will want to make an animated movie, and simply play the movie back using SFML. As for how to make the movie itself, that is not a programming issue. You'll use animation software for that.   There are other ways to make animated intro sequences, but you should start here for now.
  5.   Yes, and this takes those general ideas and applies them to a specific environment, which may help some whom may not yet have experienced them to conceptualize them better.
  6. If this is for a new game project, what are your criteria for choosing this instead of something else out there?
  7. Must disagree with that. If anything, there are more low level techniques being shared than ever, IMO.   Anyway, if tool dev is your thing, I guess you'll have to come up with something that hasn't been done yet, or at least something you could do better. Without knowing your experience, it sure would be nice to have a good dynamic music creation tool available, for instance. Point being, there are tons of niches that haven't been filled yet...
  8. The simplest type of synthesis is subtractive synthesis. There are others, but you should definitely start there (don't be fooled - subtractive synthesis will give a huge variety of sounds).   That link actually provides a fantastic yet simple explanation, so I would probably fall short in trying to go any further or summarize here. Cool project - have fun!
  9.   For instance - every time you have something like this    bufferRestOfFile[index + 2]   the code for std::vector in a debug build will typically check that the index given in the [] operator is a valid index into your vector. If it is not, it will assert or throw an exception, depending on implementation.   In release builds, this is generally not done, but in debug builds it is normal.   Side note: There are usually flags you can set at compile time to configure the depth of debugging done, depending on how much you need checked vs how much speed matters in your debug build.   Side side note: Some people will actually enable these debugging features in release builds for security purposes (and do other things such as reference the raw data pointer when this is a speed bottleneck and they have verified the safety of what they are about to do)
  10. Someone might see something, but nothing pops out at me as "the reason".   If this were my problem to solve, I would first factor out camera code - totally separate it from circle and world (canvas) logic. This separates the responsibility of each piece of code, and makes it far easier to debug, maintain, add on to, read, etc. Right now it's beginning to be spaghetti-y, and the potential is there to get much worse (thus harder to parse, use, fix, etc.).
  11. You may be interested in NanoVG. It's not exactly OpenVG, but it covers most if not all of what you are looking for in a rendering library.
  12.   Not quite.   For the first byte, you can just write the raw value. The equation is (curr - prev), and x < 0 is defined as 0. So filtering with the PNG subtraction filter would give 255 - 0, mod 256, which is still 255. So byte 1 would be "1" for sub filter, and byte 2 would be "255".
  13. [deleted]   Sorry - hold on. I made the wrong conclusion from some old code that didn't match with the spec (the result was correct but my explanation in this post was not). Fixed it in the below post (it was supposed to be another edit but I messed that up too).
  14.   The way Lehm2000 is reading the huffman codes is a pretty standard way to do it. So far it seems okay - the first byte marks the filter type for the current row of PNG data. In other words, the error does not appear to be the deflate implementation (at least not so far). The error appears to be the assumption that it should be 255, and not 1, because they forgot the need to reverse the PNG filter afterwards.