Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

11000 Excellent

About rip-off

  • Rank

Personal Information

  • Role
  • Interests

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. rip-off

    C# variable name creates error

    One reason for this is to prevent ambiguities. Numeric literals can have a suffix to indicate their type, e.g 42l. Without a rule saying that identifiers don't start with a number, it may not be clear if such tokens were identifiers or literals.
  2. One way to think about it is that honest negative feedback from a stranger could be better for your game than a friend saying "that's nice", when they don't really like it but rather because they know how much work you put in. Not that this makes it any easier to hear, especially when not phrased constructively! When you release your game in the wild, people will make a split second decision as to whether they might like it, and unfortunately the looks can be an important factor. That said, do think about whether improving the graphics is the most important thing for your game right now. How sure are you that the gameplay is solid? Have you play tested it? Is there an interesting progression system? You might spend time polishing some graphics that might end up needing tweaking (or cutting) once you've honed the core game. Don't let a throwaway comment derail your priorities!
  3. rip-off

    Who's your intellectual idol?

    Not yet! It is on my list, but I normally wait until I trip over such books in a bookshop, and Hofstadter isn't the easiest to find (G.E.B. aside). Likewise, I shall keep an eye out for David Chalmers. He touched on the same topic in I am a Strange Loop. It is an interesting question. Perhaps this was discussed in the other books you've mentioned, but one "counterargument" is that we regularly lose and regain consciousness, every night and morning, and this discontinuity doesn't trouble us much, most people don't think "<yawn>, I'm sleepy, I guess I should go to my deathbed and end my life". However, perhaps we just a succession of clones that get to live consciously for a single day, like mayflies with generational memory? Pity the clones whose sole taste of consciousness is to groggily guide us to the toilet and back to bed during the middle of the night!
  4. First, is there a reason you're not using std::vector? One problem might be that clear() does not set "start" to nullptr, where other member functions like add() inspect "start". Another problem is that add(...) calls T::operator=(...) on the element to be constructed, but that element will not be initialised. You should use placement new. Something I find a bit confusing is that the "size" appears to count elements, whereas "capacity" appears to be in bytes. I think using elements for both would be simpler to reason about, and then you can convert to bytes when calling malloc(...). I also find the name "start" a little confusing, something like "elements" might be clearer. Obviously it depends on what you've defined the member function to mean, but most containers have separate resize(...) and reserve(...) member functions, with the former potentially destructive (it could reduce the number of elements in the container) and the latter will only ensure the capacity is sufficient, it will never result in the container having less elements. Something that will simplify your program is to avoid a null check before calling free(...), free() is null safe. Another thing to think about is exception safety. For example, in your operator=(...), should there be an exception when the elements are being copied, your List becomes corrupted. Exception safety in general is very difficult in C++, to be fully exception safe and avoid a memory leak you'd also need to destroy the partially constructed elements during the copy, but memory corruption could open you up to security issues, particularly if your game interacts with untrusted data (e.g. multiplayer, or even just downloading custom maps / mods).
  5. rip-off

    Market Confussion, Video Game Industry?

    Unfortunately, the (mostly) capitalistic system doesn't guarantee any industry a viable option for small entrants. In many industries, a handful of massive, dominant companies is the norm. You can only meet the market as you find it, and adapt to it as it changes. This may include not writing games for what you have determined to be a crowded market.
  6. rip-off

    Card game AI help

    That helps, but I'm still not really sure about your game. It isn't clear to me what a player's turn consists of. Can they play more than one card? You mentioned something about "3 cards after that", is that per turn or how does that work? Is there a "hand limit" as to how many cards they can hold at a time? Remember you have a lot of knowledge of your game, but we start with none. You need to think about writing a "rule book" that can quickly explain the game to a new player, with minimal ambiguity. For inspiration, look at the rule books you have for other physical board games and see how well (or in some cases, how poorly) the rules are communicated. Some of the best I have read would include an example of a round to help illustrate the rules. In any case, you didn't answer my question: have you played your own game, ideally with other people? You should be able to prototype it, and that will help you iterate on the rules (if necessary) and understand what strategies work. Doing so will also help you refine how you communicate the rules to new players.
  7. Do you have a goal? I'd recommend sticking with one language, ideally one your already familiar with, unless you have a compelling reason to switch. As for the windowing libraries you mention, none of them seem particularly "game" oriented, if that is a concern for you?
  8. rip-off

    Card game AI help

    I'm not getting a clear picture of the game from your description, so it is hard to give a concrete answer. Do you understand how to win the game yourself? When you are playing, do you hold out for a quadruple or do you immediately "cash in" pairs as soon as you get them. What about for a triplet? If you haven't already, this sounds like the kind of game you could quickly prototype with a regular deck of cards and start playing with your family and friends.
  9. Learning how to refactor to reduce the mess is a key skill. I hope it goes without saying, but two important tools to enable confident refactoring is to use version control and to have a fast unit test suite. Of course, the hard part is knowing what to do that will reduce the mess! I find that books are a difficult medium through which to learn this, as most of the challenges come from larger codebases than most books are willing to address, and structural problems that are hard to really explain without working knowledge of the code in question. Personally, one of the places I learned the most was right here on gamedev.net. When I was getting started I found there were several members who introduced me to new ways of thinking about programming. I don't know if a new person today would have the same experience, as the world of programming Q&A is likely irrevocably different now that forums like here compete with Stack Overflow. Exposure to different ways of writing code will be good for you. However, there is a danger here. If you read the source for frameworks, game engines and some libraries, you might see all sorts of abstraction and generic code and you might think that this is good design. When I was starting out, I was in awe of all the complex code you could write and I strove to replicate that in a codebase that didn't need any of it. Since then, in my experience, I've found that good library design is quite different from good application design. Each abstraction you introduce must deliver a big benefit, as done poorly they can make the code much less clear. Another challenge is how much to design up front. My approach is to write small programs that work and grow them into larger programs, rather than think too much about the design up front. This requires occasional mass refactorings once the program reaches a critical level of complexity where the current overall design starts to feel like it is getting in the way. If you've not done this many times, it can seem scary, but with version control and a battery of tests there is little to worry about. This will allow you try out alternative designs and see if they help. Writing tests can help influence the design of the real code (you may wish to read about "Test Driven Development" for details). Even if you don't go as far as TDD, writing unit tests for your code will force to you interact with your code in small pieces, which should highlight problematic dependencies. Code that has lots of dependencies is almost universally considered to be more difficult to work with than code that has few or no such dependencies. An ideal to aim for is to have independent "modules" that have minimal knowledge of one another. For example, one game idea that I have takes place with ships moving between planets in a solar system. Assuming there is no existing library that covers my needs, I could start by writing a gravity based physics simulation module that supports massive objects (stars, planets, moons) and negligible objects (space ships, missiles, space stations, etc) and that will handle the movement and prediction of these objects. The main thing to remember is that this is a practical skill, you'll get better with experience. Don't compare yourself with people who have likely been programming for a long time, they weren't so good when they were starting out! Rather take inspiration from where they got to, and try use that to motivate yourself to hone your craft. Good luck!
  10. rip-off

    The Battlefield V "Historical Accuracy" Controversy

    I don't know the statistics, but I imagine if you were dropped into a random battle you'd probably be surrounded by white men, at least in some theaters. However, we tell stories about those that stand out. I want to hear more about the women who fought on the front line, I've certainly heard plenty about the others. That said, I do think that the game developers here are pandering to changes in the market. This is par for the course, they were equally pandering to the original market. VHS was a standard too. Don't take it personally. Sure you can - you can hang a sign "No Girlz Allowed" on your tree house if you so wish. However, don't expect international multi-million dollar companies to support you in this endeavour.
  11. rip-off

    Communism 2.0

    NikiTo (and others), this thread is about Slayemin's ideas for "Communism 2.0". I understand you have some strong ideas about capitalism from your personal experience, and that is a fair point to make, but at this point you are derailing the original discussion. I'd advise you talk over these issues with your friends and family, or find a group online who discuss such issues. Further digressions in this direction will be removed.
  12. rip-off

    Who's your intellectual idol?

    The most recurring individual is probably Douglas Hofstadter. At some tender adolescent age I found my Dad's copy of "Metamagical Themas" on the bookshelf, which among other things expanded my mind on programming - something I had just started to dabble in. The sheer breath of interesting but wildly different topics and the playful and earnest way he wrote touched my youthful mind. This was later followed by several attempts to grapple with "Gödel, Escher, Bach" - with limited success in my earliest attempt but with each successive try (a few years in between) my growing intellectual capacity allowed my to take more away from it. After a year or two, I would felt the need to return - each time struggling yet feeling like I was circling closer to understanding something of the nature of consciousness, creativity and other such fascinating yet near indescribable phenomena. It was only in the last couple of years, after a prolonged gap, I bought my own copy and finally read it through and felt I followed more or less the whole thing. In fact, just today I finished reading another of his books," I am a Strange Loop", that I happened across on a recent trip to Amsterdam. I'm sure that without his influence, I would be a different person today...
  13. I believe std::list must be a doubly linked list, with pointers to the head and tail, in order to meet the algorithmic complexity requirements in the language specification. As for speed, linked lists involve extra allocations and are not cache friendly so whether using the standard one vs a hand rolled one, both would often be worse than using a dynamic array such as std::vector - though that really depends on your usage patterns. This assumes that there are no higher level algorithmic options that would be better still.
  14. rip-off

    Lost Art Studios

    Your ego is the biggest obstacle standing in your way.
  15. rip-off

    initialize std::thread

    It might work at the moment, but as soon as your thread does something interesting, it will likely need to communicate with other parts of your program. Depending on how that is implemented, you could re-introduce the crashes.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!