Great Graphics Engine - Who Cares?

Started by
17 comments, last by RobTheBloke 18 years, 4 months ago
I'm not a novice programmer by any strech of the imagination (though sometimes I wonder...), but I want your opinions on what constitutes a good 'engine' as it were. The Image of the Day has some damn nice looking games on there, often using some state of the art shaders, with some beautiful art work. The My Announcments page is often filled with people announcing their new engines, shortly followed by some very nice shader powered screen shots. But does this matter? I do hope, one day, to enter the games industry (hopefully in about a years time). For the past 3 years, I have, in my own free time (of which I do have little), been working on my own game engine. I also have a pretty nice, and in-depth, game to go along with it, that I have been working on for about a year. What often gets me down, is when people say "This was done on my new engine, which has been in development for about 9 months...", and their 'engine' is producing some beautiful images. Now my engine is not a graphics engine. Its a well structure, plug-able game engine, with support for various sound and graphics API, structured to be cross platform and contains various components (GUI, on-screen profilers, resources viewers etc.), plus various tools. But the graphics technology is pre-shader (ie 100% fixed function). This means that even after 3 years of development it looks, compared to todays standards, pretty lame. Should I care? Graphics programming is not the only field in the games industry, through it is the one that gets the most kudos. My graphics component can render various model types - though no bone animation is implemented, textures, has render state control, various font controls, but as I mentioned, tends to look pretty 1990's. Shaders dont really float my boat. I investigated them, and used them briefly, about 3 years ago (PS 1.0), but have never used vertex shaders. I'm pretty sure I could pick them up, but dont really have the inclination to (or the hardware really). Do you think this will hamper my chances of getting employed as a games programmer? Will the interviewer assume I can't keep up with the latest technology just because I havn't implemented a shader based pipeline? I just want peoples opinions on this, before I worry myself to an early grave. I have a year to go, I could implement shaders into my engine, but I actually wanted to try my hand at another game for my portfolio, one very different to my current project. Will showing am ability to program a (rather techno-phobe) engine, various games types and tools be better than have yet another beautiflly rendered screen shot? Daisy
________________________
Pretty In Pink
Advertisement
Hi Deisy!
I'm wondering to see your work.
Really , do you write a whole game engine by your own? great! a few people take risks.
You're right! graphics aren't most important.
I think that the most important thing on a game engine it its flexiblity and the manner how it manages all machine and media resources.
I'm still working on a game engine too, and honestly I'm lazy about graphics at this time. Currently I'm FOCUSED on providing good methods for manage a large scenary with objects that have a physics behavior. After that, I can put on it all the newest techiques for graphics: just copy and paste from some tutorial .

So, I suggest you to FOCUS on the most competitive feature of your engine. (May the well structure, plug-able game engine). A good engine can have all effects that you want, only takes time and pasion.
"Technocracy Rules With Supremacy" visit: http://gimpact.sourceforge.net
I am not actually in the games industry, but thought I would share my story as well. I have also been developing on my own game engine for about 2 years and a sample game along with it. It seems that I only get about 1 hour per weekday to work on it (lunchtime only!), and at times it can be extremely frustrating to waste my daily hour chasing a silly bug.

The realization that I came to about 2 months ago is that no matter how clever my solutions are to the current problems that I am solving in my engine, it will not be as good as a commercial engine, and it may not be as good as someone else who is working on it nearly full time - even if it is a shorter development period. The parts that I devote the most time to may end up being better, but there is ALWAYS more work to be done somewhere else.

So my advice is to stick with it. If you want to develop your own shader pipeline (which isn't that difficult and we can discuss further if you like) then do it - if not then don't. If a company is worth working for, then they should be looking at your programming techniques, language usage and so on. But again, I am not in the games industry so take my opinion for what it's worth.

Good luck with the engine!
One of the reasons that these beautiful pictures and images of shaders come up, is because it's easy to implement. You'll need 2000 lines of code inside your program tops if you encapsulate it in a class. Shaders themselves are about 50 lines long max total. You don't have to care, you can make physics, AI, networking, etc... your major field, but a well rounded programmer whose done everything is going to be the most attractive. Now that you have a great engine that works like a charm and does everything you want pretty much, throw in shaders and see how great it can get!
We should do this the Microsoft way: "WAHOOOO!!! IT COMPILES! SHIP IT!"
Quote:Original post by PrincessDaisy
I just want peoples opinions on this, before I worry myself to an early grave. I have a year to go, I could implement shaders into my engine, but I actually wanted to try my hand at another game for my portfolio, one very different to my current project.

Will showing am ability to program a (rather techno-phobe) engine, various games types and tools be better than have yet another beautiflly rendered screen shot?

Daisy


It's good to see you've decided to look for a more fulfilling job than "Full-Time Victim". If I can convince you ditch that vicious, turtle-hating, head-butting, mushroom-eating bastard of a plumber -- I mean, _look_ at him! He looks like a character from an early '80s videogame for f*ck's sake! What kind of a prince would he make? -- I'll consider my life to be complete.

Anyway, to the point:

Graphics engines are ten-a-penny. Seriously, there are plenty of free ones and lots of payware ones too. All of them are pretty good and, let's face it, being able to reinvent the wheel isn't particularly original or all that taxing if you can understand the theory.

Thing is, this is the _games_ industry and what this industry needs is _games_. Graphics engines are mere tools. Useful tools, sure, but as long as you can demonstrate an understanding of what 3D graphics rendering involves, you'll be fine. It means you'll be able to use graphics middleware without much trouble and that's the important thing: creating a graphics engine merely proves you can build a renderer. Creating a game is far, far more useful because it proves you can make an entire _game_.

The only thing I'd suggest is to try and make sure your game is memorable. Take a look at the games that are out there and try and come up with something that makes yours stand out from the herd of Tetris clones and wannabe MMORPGs.

Also, do try to make it look _finished_ too. This polishing is commonly overlooked, yet it proves you're both willing and able to run that extra mile and win the marathon, even if you're heartily sick of the game itself by then.

In summary: You're doing the right thing.

For those of you reading this who have only created a graphics engine, I'm not saying it's wrong, but it _is_ only a relatively small part of making a game. I'd be much more interested in the programmer who is enthusiastic at making _games_, rather than someone who is obsessed solely with technology. The former proves he or she is an all-rounder. The latter proves nothing of the kind.

Sean Timarco Baggaley (Est. 1971.)Warning: May contain bollocks.
I would ignore shaders for now and concentrate on making something playable; you can always add them later if you have time.

There's a big difference between tech demos and games. It's really not that hard to take some example shader code, some good assets, and throw it together into something pretty, that's why you see so many of them.

Turning that little tech demo into something that actually loads levels, has entities interacting, and is actually playable is something else entirely.

Remember, to make money in this industry, you have to ship something. It doesn't matter how pretty your graphics engine is if your company folds because it ran out of money to finish the game. Show potential employers that you can get things done.

Not to mention, unless you're particularly spectacular at graphics, you probably won't be coding that side of the game anyway, so I doubt they'd care if you haven't done shaders.
I'm in the same boat - an 'amateur', I picked up C and later C++ because I needed a program and no one would write it. So I picked a book and got to work, that was 3 years ago. I've got a great little animation tool, a great widget kit cooking up, I've dabbled in a great many subjects - AI, terrain implementation, deformable meshes, skeletal animation - all kinds of things.

Even though I am confident in my skills, I get discouraged looking around for jobs or seeing who's up for making an indie project. How marketable is a self-taught programmer, or a hobbyist?
Quote:Original post by PrincessDaisy
But does this matter?


Despite what people around here think, most people are casual gamers. Graphics is a cheap thrill, it's what sells the game but after playing for a while the effect wears off. Look at Doom3, what a let down. The graphics were stunning, but the game play was predictable and boring.

I am an amateur, too, so no professional experience from my side on this, but:
Most posts above state that graphics aren´t that important and I (idealistic as I am) love to agree. But when I take a look at the shelves of the local games store I start to doubt because 80% of the games on that shelves are hardly more than a tech-demo, showing off a nice graphics engine which contains the newest eye-candy you can get and putting the standard FPS-gameplay from the early 90s around it only to make it something that could be called a game...
Still I wouldn´t worry about shaders that much. How much of your engine´s code is actually doing things with the FFP directly? From my limited experience I´d take a guess and say it isn´t much. So, to integrate shaders into your engine you would have to change that part of your engine and perhaps provide some kind of shader interface for your engine. So I second dbzprogrammer´s post, that adding shaders afterwards isn´t that much of a pain. But I´d say you don´t have to do so if you don´t want to, as shaders might be a nice tool, but there isn´t _that_ much about them to learn (of course, there is loads to learn about effect techniques you can implement using shaders, but using shaders themselves isn´t _that_ complex), so I´d say you´re fine with your FFP engine.
I worked as a game developer for nine years (at a quite big and well respected company) and at times been resposible for recruting team members (internally and externally).

Graphics is as previous posters mentioned an overrated field of game making.
I'd typically hire a programmer that has completed a full game before anyone flashing with fancy demos or good grades.
The experience you get from going from a 95% complete game to a published title is invaluable.

A typical game at the studio I worked for took about 18 months to complete.
Me, myself beeing responsible for graphics rendering in a couple of projects would say that:
For the first six months, much of the focus is on building/testing graphical building blocks, this is the fun part.
The next six months is spent optimizing, refactoring, building tools, trying to find the bugs in your code when the artists throw 2000+ meshes and textures at you. Having 40+ artists stalling on their work because you isn't my idea of fun.
The final six months are spent on finding those last bugs, optimizing and as a last resort cut away alot of the cool features you came up with the first months, usually you're really fed up with the project at this time, but still has to work alot of overtime to handle all the "bugs".

Most of the graphical demos shown in forums like this corresponds to the first six months, developing a complete game IMO.
Thats why I always prefer to work with people who has been through the year of hard work, no innovations, overtime and alot of pain.
If a person has gone through that I know that he has the self discipline, the focus and strength to pull through when things get tough.

The game industry as I see it is six months of fun and 12 months of agony, then it starts all over again. Bad reviews of a previously released game can spoil many of the six months of fun as well :)
Me beeing to pesimistic about the industry? Nah! ;)
It's still fun at times....

Don't take this to litterally, I have a tendency to exaggerate a bit.
My serious advice is to complete a full game (even if small) so that you have the basic skills for every part of a game.

This topic is closed to new replies.

Advertisement