• Advertisement

Stani R

  • Content count

  • Joined

  • Last visited

Everything posted by Stani R

  1. C# is kind of the more common thing for UWP. You can certainly code it in C++ as well but you'll have to rely on the MSDN and online tutorials as there are currently no books on it that I know of. Here is a tutorial specifically for UWP with DirectX and C++. If your goal is to write games that run on Windows as well as Windows Phone, have you considered Unity? You'd have to use C# but you can definitely make 3D games with it and get them to run on those (and a gazillion other) platforms. I think they even added DX12 support recently. If you want to write and sell games then that may be a good way forward, as with DX12 you'll have to basically write at least three separate rendering engines from scratch (one for AMD, one for NVidia, and one for whatever the GPU used in Windows Phones is).
  2. Getting back into C++

    I recommend that you pick up a copy of Stroustrup's "The C++ Programming Language" as for me it was a very nice introduction to C++11 (I had a background of some 10 years with Java and it was very easy to pick up C++ thanks to this book). I'd first focus on the core "modern" C++ first if I were you. Boost has some nice libraries as well but they're more situational. I quite like their File I/O so since you mention it you might want to take a look at Boost.Filesystem and Boost.ASIO. For SQL, it depends on your needs, but if you just want to get some configuration store going then sqlite is a nice package and in the public domain. If you want to connect to native databases you'll want to take a look at whatever driver they're offering, so for instance Connector/C++ for MySQL. Visual Studio 2017 Community now has Linux cross-compilation as a first-tier citizen (along with Android and Unity/Unreal support and many other useful things like ant and Git), but I haven't actually tried it yet so can't comment on the quality.
  3. I'm a bit late to the party but wanted to say that, based on my experience with startup lawyers, those prices are reasonable for USA. More, and you'll be getting ripped off. Less, and I'd be worried about how serious the counsel is. It may seem like a lot but the cost of mistakes down the road is higher. You should expect to pay more though if you're in the EU or elsewhere.  General advice: always negotiate, and always work out a flat fee or capped quote (which means hourly rate but capped at some pre-agreed amount). Lawyers default to hourly rates and as an indie you cannot afford to pay lawyers by the hour (which can cost anywhere from $100 to $500 per hour and adds up very fast since you'll be charged for every email, phone call, and even research time). Especially with stuff like setting up companies and contracts, those items are well understood and standardized and your counsel has the necessary template documents ready to go, so getting a good quote is not a problem. 
  4. Hiding Company Nationality

    I think most of us here, or anyone involved in gamedev for that matter, judge games solely based on their merits. But the world is generally not such a rosy place. So it's a legitimate marketing tactic to get around preconceived notions. It's also very easy and affordable to set up and run a US company without ever establishing a physical presence in the US, or in fact even without ever visiting the US.
  5. If you want to comply with the terms of the license, then yes, you do.   The point is to comply with the license and to attribute the parts of the code you used to the people who wrote it. Conversely, by not disclosing the use of the open source code, you are falsely claiming that you own the copyright to your entire code, and that does create confusion (and opens you up for potential litigation).   For mobile apps, where the file system is not normally freely accessible without using other third party apps, I would suggest something within your own app (like a credits page). Here are some ideas. These games may or may not be complying with the license terms of the open source software they may or may not be using. The important question is, do you want to comply yourself or do you accept the legal risk of non-compliance. That's a decision you have to weigh for yourself, but IMHO there is literally no reason not to comply. These people wrote great code that you make use of and the only thing they ask for is that you give them credit. It doesn't cost you anything and it's the morally correct thing to do, so why wouldn't you?   a) Your program should have its own license, ie for a game something like boilerplate EULA. b) Wherever you list the third party licenses, just indicate that "this program uses X library, here is the relevant license of X library..."
  6. In Qt, QListWidget and probably also QListView can be configured for similar functionality (rearranging list elements with drag&drop). But while it can be styled with CSS, I don't think you'll be able to make it look as pretty as jQuery.    Otherwise I would also consider embedding CEF or Awesonium, depending on how far you want to go with imitating javascript UI.
  7. Good Scripting Language for C

    That's a rather generic question and answers will vary a lot depending on what you want to do. But generally speaking Lua would be a safe bet for many use cases. I'd go with C++ rather than C for making games (or with a different language entirely, if your goal is not working in the industry), and I'd go with learning one language at a time in order to not get confused. For any game project you'll also have to learn a bunch of APIs, adding a scripting binding on top of that may just be overkill unless you have a specific reason for it (for example if you are working with non-technical artists and want them to create gameplay functionality).
  8. OpenGL Book for learning modern OpenGL?

    Also the OpenGL SuperBible, 6th edition.
  9. VS 2015 is here

    You mentioned DosBox but I can't think of many DOS-era games written in .NET :)   And you don't need .NET to program C++ applications in Visual Studio, it works fine without it.    Having to install fifty different versions of the MSVC Redistributable to play different games is a pain point though. Especially since none of them clean up their temporary files and just dump it into your partition root.
  10. Sounds like some sort of z-buffer trashing problem. Are you by any chance doing something like adding more and more objects at the exact same location without removing the old ones? Also, try drawing the layers at an offset to each other (ie object layer few units higher than tile layer on the z-axis).   As for the crash, sounds like you're running out of memory (which is why I suspect that your object generation is out of control). Try monitoring the memory consumption.
  11. VS 2015 is here

    I've always used visual assist x for intellisense, the c implementation has always been terrible compared to their c# in my experiance. I'd love to drop visual assist if 15's been signifigantly improved.     I've been using Visual Studio 2015 RC for a while now and while I have no experience with prior versions, coming from the Java world, the C++ Intellisense and refactoring capabilities of VS are extremely lackluster compared to what Eclipse and IntelliJ are capable of. To some extent it may be due to limitations of the language or runtime model, but I'd definitely recommend getting something like Visual Assist. It may not be free but it's quite cheap for what it offers (obviously check out the trial first, it may not click for you).
  12. You can do quite a lot in RenPy (see Sunrider for instance, notionally a VN game but also a tactical space combat sim) and VNs are not computationally complex so I would actually go with RenPy as first choice of engine if I were to write a VN. There are some other interesting tools available for VNs as well - TyranoBuilder, Twine, Novelty, Belle, I've even seen some VNs made in Unity (and they have a plugin called Visual Novel Toolkit now). Probably there are many more out there, especially in Japan.   As for rolling your own, when I tried using XML in my projects it always ended up as a convoluted verbose mess. I would consider JSON or Lua (or any other scripting language but Lua is indeed the first that comes to mind) as good formats. I've never done a VN but conceptually I think on the C++ side I would create some sort of command buffer (like a tree structure, or a linked list if your game does not have any branching) which is populated with nodes based on the JSON/Lua input. Then you can step through it back and forth (so you can support the common VN feature of log/history replay) and also keep track of your current state/flags and position (to support saving/loading).  
  13. I use a (physical) whiteboard as well, I set aside a wall of my home office for it a few years back and found it invaluable both for my day job and for game dev.   With all due respect to ModernToMe, I think he is solving a problem that doesn't really exist. If your GDD fails to be of use to you it will definitely not be because you forgot to include the company name or team size. And like braindigitalis said, you need to keep it flexible because the design can and will change.
  14. What's your favorite game in 2015?

    So far, Witcher 3 really blew everything I saw this year out of the water. They promised a lot, I had sky-high expectations having previously played the prequels, and they managed to deliver above and beyond those. That almost never happens.    But we've got half a year left. Looking forward to Tales of Zestria.    As for new and easy games that kind of went under the radar - try Life is Strange.
  15. Apart from MS Word?    You may want to employ a combination of Word, Excel (or Google Docs/Sheets) + some mind map software for brainstorming + wireframe software (Balsamiq, Pencil, etc) for sketching screens + diagram software (Visio, Dia, etc) for game flow + possibly some UML software for architecture design.   All of these can be part of a game design doc but I have not seen any software that combines all of this in one package (probably would not make much sense either).
  16. Financial projections of a startup are generally wildly inaccurate no matter how hard you model them. And you do not have stable positive cashflow to calculate EBITDA. Any sort of DCF or multiple method is basically useless until you are regularly generating hundreds of thousands of dollars.    The more fundamental mistake is that you want to offer a valuation to investors. Many startups fall into this trap. Do not do that. Ask them to offer their fair valuation instead, and compare what different investors offer you. Just how you should have the terms in mind but not offer a termsheet - wait for theirs. Otherwise, you run the real risk of ending up with worse terms than what they might have offered to begin with.   Of course, valuation is not the only criteria for selecting investors, and you may chose to go with an investor who offered you a lower valuation but brought more benefits (deeper domain expertise, better connected, better lead, etc). Same concept applies to liquidation preference, voting rights, etc.   Factors that affect your valuation at this early stage include your and your co-founders past track record, team composition, project stage, current traction, current sales, future expectations/projections (remember, they are looking for unicorns so if you project a 2-3x return for them you are out), ability to execute your idea, good chemistry, whether some similar project recently raised an obscene amount or showed great success (VCs love to jump on the bandwagon), mood of the VC, and alignment of the stars.   $2m is also an amount that could conceivably be raised from angels and/or via convertible notes. You would need a strong and well-connected lead investor for this though. And it's unlikely that you can raise so much on a capless note, so the discussion about pre-money valuation will just turn into an equivalent discussion about pre-money cap. 
  17. Non-Circumvention Agreement for Composer?

    It's a bit difficult to say without seeing the actual text, but the first rule of business contracts is that everything is negotiable. There are no "standard" or "market" terms, despite what many lawyers will try to tell you. But if they have significantly more negotiating power than you, it may be more difficult - for instance, if they use the same contract with 100 other composers then you may have more difficulty changing it, as they may want to use their cookie cutter contract without paying their counsel to change it on a case by case basis.    But normally, if the other side wants your product enough, they will work to reach consensus. Similarly, you should keep an open mind and be sensitive to the underlying causes / their needs. That clause is in their contract for a reason, whether it's to protect a legitimate business interest or because their lawyer copy-pasted it from a different contract. Once you get a grasp of the full picture, negotiations should go smoother.   So I would start by asking about this first. Don't go in with a negative "no no no" attitude, go in with a positive attitude, saying that this makes you uncomfortable because it excessively restricts your business and you want to find some way to accommodate their needs without hampering your future business.
  18. Is it so poor that it's worth making double posts about?
  19. You won't know what's slow until you profile your code.   That said, shared_ptr is threadsafe - it uses atomic variables for the reference count. That's an overhead you may not need.    The idea in the article you linked, as far as I can tell, is that you for example look up a Texture from a TextureCache using the handle and get back a raw pointer which is safe to use for that frame only. If you store or even worse delete the raw pointer then you will be in trouble eventually.
  20.   Great suggestion, but I recommend to put the weights in there explicitly (separate column) so that you can tinker with them (they tend to be subjective after all). 
  21. Like almost everyone else, big comments describing intended usage and caveats go above the code block so that the IDE can interpret them (supported almost universally) and smaller comments inline go either directly above or on the same line. I try to keep this to a minimum though as comments tend to go stale fast - as much as possible, I prefer to write self-commenting code and use descriptive class/function/variable names. "// TODO" stubs are my most frequent use of comments 
  22. How do I fake windows looking outdoors?

      Yeah that doesn't really look better either. Hmm. If you look at some reference images (click) you'll notice that the light beam kind of spreads out a bit so that the resulting "image" on the floor is wider than the window. Might be worth a try.     I knew there was some technical term for this. 
  23. Open World games?

    If you're dealing with a game world the size of the USA you better be prepared to handle positions relative to some nearby, local origin. Otherwise your physics and rendering will break down as soon as you get a few hundred km away from the origin, due to precision loss in your floats. As far as I can tell, this is possible to work around in Unity.   The other thing is asset streaming. You need to be able to continuously asynchronously load and unload assets as you move around the game world. From a cursory internet search it seems that Unity does not support this sort of streaming too well but that some changes to this are planned for Unity 5.   Edit: I didn't realize Unity 5 is already out. You might want to look into whether they added this support of not.
  24. Browsergame Combat System

    If I had a system with 200 stats and I needed to get rid of 190 I think I'd still keep HP at least. You can't get much simpler than HP for representing a very rough power level.    Your pairing mechanic sounds like the classical rock-paper-scissors approach to combat (ie swords beat spears, spears beat cavalry, cavalry beat swords). It's a very simple system but has been used to good effect in many games (think Total War for instance).
  • Advertisement