Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 26 Feb 2007
Offline Last Active Jul 22 2016 05:42 PM

Posts I've Made

In Topic: What Makes A Game Look Realistic?

21 July 2016 - 06:06 PM

Agreed -- Lighting.


Tim Sweeney of Epic Games and a graphs wiz every bit as good as Carmack--if not better--roughly lumps generational lines of rendering advancements as to how many bounces of light they simulate. In raycasters like Doom, light bounced just once off of a surface of the world directly to a pixel on your screen and nothing intervened in it -- light didn't come from anywhere in the world, it was just an ambient value, ever-present, constant, radiating in all directions evenly. In the first generation of polygon games like Quake or Unreal, light "bounced" twice -- light affecting a particular surface had a single origin in the world and each origin could have different properties, an ambient lighting factor continued to stand in for all the indirect bounces; pre-baked light-maps helped color-in the illusion of localized lighting and occlusion. For a long time, lighting advances came by increasing the number of lights in a scene, not increasing the number of bounces -- Even through Doom 3 was more lights, not more bounces. Modern games of today simulate ~3 bounces -- IIRC, the ambient light factor bounces off of one surface, picking up its properties, propagates that to a nearby surface, and finally the sum of this and the localized, two-bounce lighting to your eye. The coming generation--maybe today's bleeding edge--should make a good run at subsurface scattering.


Adaptive animation is another of the current frontiers that builds on realism. After that, probably AI/Behavior that results in more than a simple choice between pre-canned responses that are blended at best -- something more natural than that will be needed to cross the uncanny valley once we reach realistic-appearing humans in real-time..


A parallel advancement has been Physically-based lighting, which gives materials a logical consistency like you see in the real world. In the past, materials were often bespoke and could have their knobs tuned to wildly different values to achieve an appearance consistent with the scene as a whole.

In Topic: Is It Really That Nonsensically Impossible To Have A Successful First Game Pr...

20 July 2016 - 07:44 PM

Its not that its impossible given the right research, team, and discipline -- its that only rarely do those big dreamers have any of those things. And even when they do, its still not a sure bet. If you manage to have all of those things, you still need to develop the right kind of connections, gain the right kind of attention, and bring it all to bear at the right kind of time in the market. Success doesn't follow a formula, you can do everything right and still fail for no apparent reason, or you can mess up some things and be wildly successful for reasons mostly beyond your doing or understanding.


The best you can really hope for is to do your best to stack the deck in favor of your success. Doing that means being on your game all the time, always being in position to take advantage of favorable winds. And your team needs to maintain that despite what life throws at them, and--without funding--for an uncertain and uncompensated future, all while doing whatever it is they do to feed themselves or their families. Its a lot to ask for, and only a very small chance of a worthwhile payday in return.


By all means reach for success and do everything you can to tip the field in favor of achieving it, but don't place real or emotional stakes that you can't afford on success alone, especially a big success. Small successes in service of an eventual bigger success are often more achievable and even failures in service of that goal are often more palatable than betting all your hopes and dreams on one singular push.

In Topic: Trump Is The Republican Candidate - Now What?

20 July 2016 - 07:22 PM

IMO, the trump candidacy is the culmination of tea-party politics running away with the republican party. I don't count him among them, but he took the discontent they seeded and capitalized on it in ways their own members didn't.


Among the proletariat, sentiment such as "I like that he speaks his mind" is a code-phrase for "He says the things I think, but know better than to say myself." Beyond that, he doesn't say things that true, he says things that are what his supporters want to hear. They don't wan't change for the better because its new and uncertain, they want things to go back to the way things were -- the way in which they themselves were comfortable.


The man himself has zero substance as a presidential candidate. No qualifications. No Ideas worth having. No indications that he's done anything other than pander.



On the other side of the red-blue divide, the DNC and their media buddies pressed their thumbs on Hillary's scale -- its been the plan since Bill left office to install her and no scandal and no popular movement was going to derail that once their mind was made up that the time is now to go for it. No strong Democratic nominee was fielded against her from within the party -- Bernie was an outsider running on the DNC ticket only because it was the only practical way to gain the necessary access to debates, polls, and voter booths to mount a campaign that stood a chance. He couldn't have run in another party, no one but the Green's have access to all 50 states, and the greens are too far left to not split the more-progressive base.


Bernie's endorsement of Hillary is so far just a strategic delay, though I'm certain he'll continue his endorsement if he can't make a real run at it himself as an independent. Given the DNC's track record so far, there's no way the super-delegates will swing. If he decides not to run independent for whatever reason, he won't pull his endorsement and he'll continue to push the party to the left on more issues.


So far, this election cycle is firming up to be a capsule-review of everything that's wrong with how this two-party system works. Assuming the next president serves two terms, I have the great fortune of looking forward to being at least 40 years old before having the opportunity to vote for a worthwhile president, or the impetus to vote for one at all. If Hillary wins, I'll remember 5 presidencies under only 3 families with the Bush's and Clinton's claiming lordship of 28 of my then-forty years. If I could make any change to our political procedure it would be 1) term limits for congress and 2) a provision to prevent any single family from occupying the presidency again in any fewer than 8 terms (and frankly, I'd like it to skip a generation) -- presidential dynasties are harmful, and you can't tell me there's no better qualified candidate anywhere among the ~200 million citizens of a suitable age to seek the office.


I'm among those who hope for a Sanders' independent run, so long as he can get ballot access. I don't think its the case that if he ran it would guarantee a Trump win (though he'd become the scapegoat if Trump did win a 3-way race). I don't think that there's that much overlap between Bernie supporters and reluctant Hillary supporters, and the record turn-outs support that. The fact that by the numbers he lost by such a small margin, despite every advantage given Hillary, speaks volumes.

In Topic: Copying An Existing Idea

18 July 2016 - 02:21 PM

So, assume there is a game. Also assume that the law stuff would allow you to copy it, share it, use it etc. Now assume you take this, port it to another plattform, aybe tweak it a bit and then release it as a commercial product.


Being granted a license to use/share/distribute a software product freely (as in freeware or shareware) doesn't grant you any license to make derivative works of said product. Some kinds of freely-available software, such as "open source" software give you all of these rights, but usually on a conditional basis. For example, the GNU license, among other things, says that you can modify the software and distribute your modifications or modified versions, but you must not close your source code, you must not remove or modify the license, and you must contribute your modifications back to the original project so they can be integrated there (though they might not be); Also, you give up your copyright on the code you've added. Other licenses, give you different rights and require different things of you in return. Also, be aware that the license governing the source code may not be the same license governing other program assets like graphics or sound -- even if the source code may be modified and distributed, it does not imply that the same is true of other program assets.


As for where the legal and ethical lines lie its less concrete. Legally speaking, copyright laws do not protect ideas but do protect a particular expression of an idea; which is necessarily subjective matter in ways that other kinds of torts are not. Recent court rulings have resulted in damages being awarded in cases where clone products were effectively identical in all but aesthetic differences. Read up on the Tripple Town / Yeti Town lawsuite as an example. Basically, the judge ruled for damages because Yeti Town was a direct clone, down to the rules, item function, and general progression of play. Still, this is not cut-and-dried, because there's no clear consensus on how much sharing of rules, item function, or progression constitutes a clone.


Also, copyright law is absolutely clear that you cannot create derivative works which steal characters, settings, specific premises or other established elements of a creative work for your own; so don't do that in any case.


Ethically, I'd say you're best steering clear of clones and near-clones, even if you change up the artistic elements, characters, etc. Take inspiration, pay homage -- hell, even satirize -- but don't copy. For me, and what I've always advised, is that if your work doesn't stand on its own merits, then its not really your own, and furthermore don't do anything you'd be upset by if the shoe were on the other foot (also, trying to imagine that on this other foot, the product being cloned might be feeding someone's family). If you avoid those things, you don't have an ethical duty to even ask -- it can be a nice gesture, but be aware that if you get a polite "Thanks for asking, but no.", and you then cloned or heavily borrowed from them anyways, you've given them great ammunition to go after you with in court, if they decided to -- and they could tell you no and later go after you even if they don't have solid legal grounds to stand on. If you ask, you need to abide by the terms you're given.

In Topic: Compilers

18 July 2016 - 01:49 PM

- better C++ language standard compliance

Non of there are advantages of non-MSVS nor they are disadvantages of MSVS, as they are easily achievable with the Microsoft compiler. 



Microsoft's compiler still lags a bit behind on conformance issues, not much now, but some. There are some language features that can't be fully supported (or at all) until their compiler rejuvenation project is complete. They've written about it on their blog, but the basic problem is that for historical reasons the compiler took things from source to final representation as quickly as possible, so unlike most other compilers there's no intermediate form representation of the entire translation unit, and this makes a few of the new language features very difficult to achieve. Good progress is being made on the rejuvenation though, they announced their SSA optimizer recently, which is a first step in resolving the legacy problem. There is an interim sort of work around, though, that I'll speak to in a bit.




First, we need to settle on some terms -- A Compiler is the program that transforms your source code to machine code in an object file; notable examples are GCC, Clang, and Cl (Microsoft's compiler). An IDE is the tool many people use to write their source code, manage their projects, debug, and do other things; notable examples (for C++) are DevC++, XCode, and Visual Studio. You don't need an IDE to write code -- you can use any text editor you like, or other IDE-lite offerings -- as long as you're comfortable doing your compiling and linking from the command-line, and with debugging with stand-along tools like WinDBG or GDB. For running your builds, things like MAKE and MSBuild exist -- those allow you to build your program for various targets easily, from the command-line.


For an IDE, Visual Studio Community is probably your best bet right now -- As long as you select the C++ tools during install, everything should be set up. Other IDE options, IDE-lites, and text-editor-based workflows usually require a bit of extra setup.


For the compiler, there are a few things to address -- I'd wager that DevC++ in your instance is pointing to a GCC compiler, or possibly to Clang. Either of these have different command-line options and language support than Microsoft's compiler. If its the case that you'll need to use a compatible compiler for you course-work, you'll need to set them up. Possibly, one option is Microsoft's Clang/C2 compiler -- basically this is the Clang front-end, strapped to Microsoft's Code Generator; this gives you a GNU-style compiler (command-line options) that has Clang's level of language support, and creates object files, libraries, and DLLs that are compatible with programs written with Microsoft's normal toolchain. It might be enough for you to do your coursework with. I've used it myself to write code using Boost::Spirit::V3 (a template library that doesn't compile with Microsoft's toolchain).


If your school is a linux house, another good option around the corner is Bash on Ubuntu on Windows -- This is basically the entire Ubuntu user-land running on top of windows, and gives you a full Ubuntu command-line environment right out of the box -- its not "like" Ubuntu, it is Ubuntu -- You can run any Ubuntu binaries you get right from Apt, or you can compile and build from source, just the same as any Ubuntu machine. I believe that's being released to the public with the Windows Anniversary update on August 2nd (based on Ubuntu 16.04), but I'm not 100% certain; you can get it on the fast-ring now though (based on Ubuntu 14.04).



In any event, you'll always want to ensure that your program compiles and runs correctly using whatever environment your work is graded against. Even if you think your code should work and be portable, you don't want to start racking up zeros because you didn't test it.