Sunday, February 19

Unexpected

 /rant

You would think that with a course focusing on shaders, that shaders would be the biggest challenge one faces.  But I for some reason don't have much of a problem with them, its just the darn setup that goes along with it.

First of all there's not many resources for actual setup code for this stuff (that I can actually understand), and when there is its usually not quite what I'm looking for.  I'm not clever or intuitive enough with programming to know how to adapt such things, so I work largely based on trial and error.

For example I've been working through the code to morph 2 obj's with a shader.  The shader itself is fairly simple, it takes the source and destination vertices and perform's the lerp function between them at the specified intervals.  That's all fine and dandy, and it makes sense to me, but I can't figure out how to get an obj loader to load 2 obj's -.-

I've been working off the TA's code but its more meant to load in a single object and then draw it.  So I've been trying to figure out how to many an array or vector list to work with loading in several objects.  And of course this naturally involves stuff like pointers and etc, meaning I suck at it.  I still can't wrap my head around pointers, or why they are needed or what they really do (I get the theory behind it).

And then for the particle shader, I know the physics calculation and how to output the vertices based on the calculation, and the difference between uniform and varying, and how to use the TEXCOORD# semantic to get values for position, velocity etc.  But there is this function in the CG examples called glMultiTexCoord, which is undefined no matter what version of glut and opengl I use.  I know it can be used to pass in multiple values to the shader, but as it is I'm using glTexCoord and I'm fairly certain it just overwrites the value each time it is passed to the shader.

So on that front I'm stuck and looking for workaround solutions as well.  In both cases I get the shader and how it works, but I don't understand the connection between the base code and it very well.  So here's to more research and asking peers for help and whatnot, I know I'll get it sooner or later.

/endrant
 

Dumbing it Down



There's a couple things that really bug me about some game franchises; a main one being when a sequel is much simpler or 'dumbed down' compared to the original.  To this effect (ha) I will be looking at a couple examples: Mass Effect and Supreme Commander.

Lets start with the largely popular Mass Effect 1.  Right in the opening mission you are exposed to several different weapon types, and over the course of the game you get literally hundreds of different weapons of various types (lots of duplicate models but that's not so bad).  On top of this, each weapon can be customized with special properties such as extra fire or poison damage.  Additionally there are many different types of armour for your character which has its own customization options.
Mass Effect Equip Screen
Comparing weapon stats.
Altogether this equates to endless options for customization between Shepard and all the crew members you can bring along with you on missions.  Not only can you equip the right weapons for your play style, but you also have many different options when it comes to your character's abilities.  As you level up you can spend points in over a dozen different abilities which increase in power and add effects for each point you spend.

Moving onto ME2, I got my first assault rifle in the opening mission of the game.   I got the second somewhere half into the game, and that was about it.  I personally enjoy using assault rifles and there was maybe a max of 3 different kinds in the game.  To me this was a heart-breaker, as it took away one of my favourite aspects of the original.  I would spend tons of time tinkering around with weapons to get awesome combinations, and it was all taken away for the sequel.  Even the number of abilities was drastically reduced and it all felt a bit too simple.

There was no longer much choice involved, and being an RPG this was not good.  Any of the choices between weapons in ME2 were either obvious or meaningless, because there wasn't really many choices to make at all. Even the armour customization was made into a cosmetic feature, so it added nothing to the actual game play experience.  To be fair the game play and mechanics still held up well, but the whole experience felt a bit shallow in comparison to the endless possibilities in ME1.  From what I've seen in ME3 previews, people wanted back their customization enough for Bioware to take the original's route.  Hopefully they get it right!

How will I ever choose..?
 The second (and maybe even more saddening) example for me was the transition between Supreme Commander's 1 and 2.  When SupCom was released it set a whole new standard for RTS games.  The maps ranged from 5x5 to 81x81 kilometre maps, which you could fill (assuming a powerful computer for the time) with thousands upon thousands of units.  It took the RTS formula and supercharged it with a scale never seen before.  I thoroughly enjoyed both the economic and tier systems in the original, and both were sadly destroyed in SC2.


There were 2 resources in the original and you collected them like a usual RTS.  But the way building things worked was radical in that it wasn't a one-time affair; resources were fluid and your rates increased/decreased depending on how many things you were doing at once.  For example, building a shield generator with 20 engineering units at once would be much faster, but it would drain your energy and mass very quickly.  Once at 0 in a resource, your build speed was capped to your positive resource generation.  This made managing your resources very important and you had to make important decisions on what to build and when.
Note the +1 and +4 at the top; they are the net resource usages.

Apparently people thought this system was too punishing if you got into an economic rut, so the developers changed it back to the typical RTS style for the sequel.  This completely trivialized this aspect of the game, as it became a matter of 'do I have the resources or not?' and the presence of a choice was largely removed.  You either built the unit/building or you didn't.  Since every other RTS works this way, it took away the uniqueness of SupCom that I really enjoyed.


The second and more damaging aspect is the Tech system change between 1 and 2.  The original boasted 4 tech levels, and units in higher ones cost exponentially more.  This meant needing to upgrade your resource collection and unit-building structures.  The effect was that at higher tiers you could pump out low tech units/structures like it was nobody's business.  The game continually progresses over time until you hit tech 4 and began building the huge experimental units (Oh, I need to talk about these too!).
The potential for massive armies and bases in SC1 are limitless.

Back to SC2 and the whole Tech system is completely removed.  Instead of around 50+ units/structures for each faction, it gets dumbed down to a uniform tech system with possible upgrades.  The number of units was cut down to about for each faction and the variety suffered terribly.  You could now upgrade all your units but none of them felt very powerful or exceptional in any way.  By comparison, a Tech 3 Titan in the original could wipe out a whole army of Tech 1 walkers.


With all the units being equalized, none of them felt powerful anymore.  This combined with lower unit counts and smaller maps made SC2 a major disappointment.  Even the awesome experimental units were dumbed down in the sequel; they had 2-3min build times and could be taken out by a dozen normal tanks.  An experimental in SupCom took 5-30min to build and could annihilate everything in its path, and it accentuated the large-scale epic feel of the game.



This is the original SupCom trailer.  It tells you everything you need to know about the game.  I hope the developers take note of the community's outrage at SC2 and (hopefully) think twice before continuing to ruin what made the original amazing.  Complex games aren't for everyone, but when you make a game that tailors to these types of players, don't go back on everything for the sequel.  I played SC2 to the end and never touched it again...