Sign in to follow this  
PrincessDaisy

Great Graphics Engine - Who Cares?

Recommended Posts

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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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!

Share this post


Link to post
Share on other sites
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!

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
Thanks for all the opinions. As always, its takes someone else to say what youare thinking before you mind is put at rest.

Quote:
Original post by Anonymous Poster
Despite what people around here think, most people are casual gamers. Graphics is a cheap thrill...


And what most people on here say to the contrary, is they prefer great gameplay over eye candy. But look at most of the comments by registered posters, and graphics nearly always come top (regardless of what they would like to believe). Thats one of the things that has effected me I think.

Quote:
Original post by Wudan
How marketable is a self-taught programmer, or a hobbyist?


How marketable is a degree? Only as marketable as the person being marketted _too_ wants to belive. I have a good degree, from one of the best universities in the country, but all of my game programming skills are self taught.

Quote:
Original post by nuvem
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.


This to be honest is what I assumed would be the case. I am not interested in graphics, I don't know why, maybe because I never had the artist talent to make stuff look good. I more of an 'everything else' kind of person.

Quote:
Original post by nuvem
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.


Quote:
Original post by stimarco
Thing is, this is the _games_ industry and what this industry needs is _games_. Graphics engines are mere tools


Quote:
Original post by Jason Z
If a company is worth working for, then they should be looking at your programming techniques, language usage and so on.


This is what I was thinking to be the case, but just wanted other people to back me up. My demo work clearly shows I can work through long term projects (3 years on an engine, and a year on each game must stand for something), without getting bored.

I just need to make that obvious I think!

Quote:
Original post by dbzprogrammerNow 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!


I may do. But it really will be something I will do when everything, and I mean everything, else is done. Mind, you, I will probably sit down and look into the latest shader technology and realise absolutly love it! It's happened before.

But thanks for the pointers guys, its made me feel a bit more confident about my years of work. I will look into shaders, but only when I have a job in the industry, and working on things in my spare time becomes nothing more than pure investigations and random attempts ;)

Daisy

Share this post


Link to post
Share on other sites
speaking as someone who only has a techdemo on the image of the day :)
a completed game is worth more than the most advanced graphical tech demo. im sure (sane) employers take this into consideration.
reading your post again
Quote:
Now my engine is not a graphics engine. Its a well structure, plug-able game engine

ah so its only an engine ie non-playable, then its worth is also not much.
complete a simple game (even a clone of tetris,pacman) this is what hirers want to see

Share this post


Link to post
Share on other sites
Quote:
Original post by PrincessDaisy
Thanks for all the opinions. As always, its takes someone else to say what youare thinking before you mind is put at rest.

Quote:
Original post by Anonymous Poster
Despite what people around here think, most people are casual gamers. Graphics is a cheap thrill...


And what most people on here say to the contrary, is they prefer great gameplay over eye candy. But look at most of the comments by registered posters, and graphics nearly always come top (regardless of what they would like to believe). Thats one of the things that has effected me I think.


Ah, but you need to consider the context. This is a website aimed at game developers, so there is a very high level of technical knowledge. It's the difference between showing a car off to a bunch of drivers and showing it off to a room full of _engineers_.

Those posts are the inevitable result of paying attention to your Inner Nerd.

Quote:


How marketable is a degree? Only as marketable as the person being marketted _too_ wants to belive. I have a good degree, from one of the best universities in the country, but all of my game programming skills are self taught.


I worked for around 15 years in this industry and never went to uni; I'm entirely self-taught when it comes to programming, graphic design/art, animation, audio engineering and music composition.

On the other hand, I've worked side-by-side with people who have Ph.D.s in Really Hard Maths, folks who have doctorates in psychology and even philosophy.

It makes little difference to an employer HOW you learned something. What is more important is WHAT you know and how good you are at APPLYING it.

Quote:


This to be honest is what I assumed would be the case. I am not interested in graphics, I don't know why, maybe because I never had the artist talent to make stuff look good. I more of an 'everything else' kind of person.


This is actually a good route to take if you intend to have a long career within this industry. If you have a thorough grasp of _all_ the relevant fields involved in creating a game, it makes you a much better candidate for future promotion to a Lead or Producer role.

Specialists will always be necessary, but they have to be *amazingly* good as the market for their skills shrinks -- as it inevitably will.


Quote:

This is what I was thinking to be the case, but just wanted other people to back me up. My demo work clearly shows I can work through long term projects (3 years on an engine, and a year on each game must stand for something), without getting bored.


Absolutely. You know how they always seem to ask for "experience", right? Well, you've got some right there.

Incidentally, don't forget the casual and indie games markets. Both are very good choices if you're a good all-rounder and can put together some good, solid games. The money can be pretty good if you don't mind going that extra mile and studying some basic business skills. I know of a few shareware developers who've made far more out of their home-grown games than they could have made as a programmer in some big, corporate codeshop.

This route can also help you get around the "X Years' Industry Experience" requirement many jobs within the mainstream industry have today. Write and release a couple of fun little games in the indie market and you'll always be able to include games as part of your experience. If those games make you a decent profit, this can also be a path to a Producer role in the mainstream industry too. (Note that you don't need to host the games on your own website; there are a fair few outlets now for downloadable games.)

Share this post


Link to post
Share on other sites
You'll have some companies that are pretty dumb. You'll tell them you've done similar thing and that you can learn the skill on the job pretty quickly because you know you can(as you've done it thousand times before whenever a new tech buzz word comes along) and they still won't hire you. It's best to avoid idiots like these and instead find another company that know what the hell is going on.

I suggest you finish your game with the tech. you have now and avoid pulling Duke Nukem Forever. They changed so often that they were left with pieces that together did nothing. Not very impressive at all, imo. There was a guy on these forums that did an old school iso rpg demo and got hired. There was a guy on cgtalk forums that modeled/textured nice char and Blizzard hired him on the spot from forums. Things like these happen because I've seen it personally, you just have to believe in yourself and have enough skill to pull it off.

Share this post


Link to post
Share on other sites
I for one think that graphics is important.

But wait! I don't mean super-fancy hyper-shaded walls with real-time photon mapped lighting, I mean animation. This one is often neglected, even when it is actually more important. Static beautiful meshes won't get you far. Good example: Freespace 2. The graphics isn't all that hot by today's standards, but man, see that game in action! The sight of two incredibly huge battleships cutting each other to shreds with deadly energy beams ten times as thick as your tiny fighter is just awesome, and has absolutely nothing to do with fancy shaders.

An example where better graphics could really benefit the game: an elite 3 remake. Now, it doesnt have to use stuff that rivals Unreal 3; just enough to help immersion. Like, a black background :), some better lighting, better colors etc. Not too fancy, but helps a lot.

In fact, space sims is a genre where normal mapping is most useful, since lighting in space is often hard and the smooth fixed-function shading a very bad choice for simulating it.

Share this post


Link to post
Share on other sites
Quote:
Original post by Jason Z
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.


Ahh, kindred soul... I hope we get there (wherever that is) some day!

Share this post


Link to post
Share on other sites
Quote:
Original post by owlAhh, kindred soul... I hope we get there (wherever that is) some day!
Its nice to know that I'm not alone [grin]

Share this post


Link to post
Share on other sites
I would add a broad interface for shaders right at the beginning

and implement the functionality later on.

Why? you artists need to be able to apply shaders here and there, and its really a hassel to rework a whole set of maps to apply shaders ... and save them to a new format

just add them as dummies so you spare the work involved to get them working later on

Share this post


Link to post
Share on other sites
Far too many demo reels consist of a 3DS loader, an octree, and some shaders. These things are ten a penny, and whilst they are to some extent expected (ie, if you are applying for a games job and *cant* demonstrate that you know how to load a model file, you have problems), these things will often be overlooked by professional games programmers because they are very easy to do given the vast amount of information on the web.

It's often better to consider tackling a much harder and original problem, one that demonstrates you can handle writing code for difficult problems on which there are limited resources and tutorials to follow. (ie, skinned nurbs, rag doll physics, animation blending, linear velocity extraction, a decent AI system, networked gameplay, localisation, scripting engine with debugger/profiler, plugins for Maya/Max/Xsi, etc).

A working, well written game engine should be enough to demonstrate your talents, but be sure to demonstrate the full capabilites of the engine in any demo you send to games companies. It's no good saying that your engine supports 'feature X' if you can't demo it. I noticed that you mention ingame profilers, if by that you mean you are able to profile & debug game scripts from within the engine, then you could probably get a job now ;)

FYI: I've never had a single shader demo on my show reel. Any graphics rendering is Fixed function simply because it is there to demonstrate that the tools and stand alone libs i've written, work well - I'm normally turning a few jobs down every month, some of them have been jobs to write shaders.... ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this