Archived

This topic is now archived and is closed to further replies.

Gammastrahler

how to keep up with progress of technologies?

Recommended Posts

Gammastrahler    150
hi, i was wondering how it is possible to keep up with today´s fast growing of new innovations of graphics cards etc. each new graphic card / directx version comes with so many new features, shaders, techniques, etc. so that as a non-professional single programmer you´re gonna get mad :droll: what is the best way? 1. only support the newest techologies or at least the most recent. 2. support the "basic technologies" (from Geforce 3 up to today´s cards). infact, the Geforce 3 is not very old.... 3. support all graphics cards downto... geforce 1?? riva tnt? many books about DirectX 8 are outdated now, since now there is DirectX 9. And soon there will DirectX 10.... you need to write many render paths, features which are not present at an older model needs to be simulated in software if it´s possible. this housekeeping is not very funny... what do you think? would be glad to hear some answers / suggestions greets Gammastrahler

Share this post


Link to post
Share on other sites
Oluseyi    2112
As a "non-professional single programmer" (I assume that doesn''t refer to marital status - I know, bad joke), build on the work of others! Let other people write engines that implement dot-shaded-bump-vector-cross-pollinated-map-quads or whatever, and you use those engines to write games. Because that''s what you wanted to write, isn''t it?

Share this post


Link to post
Share on other sites
Sander    1332
Other than the advice Oluseyi gave you, I can say only this: Stick to what you know. Learn the things you want to learn. As a "non-professional single programmer" you are probabely not going to write Doom 4 any time soon. Just because DX10 is coming out doesn''t mean you need to use all it''s new features. Heck, I program on a TNT2 card with basic extensions. You can still create great looking games on it, no sweat. If you are used to writing for GeForce 3/4 then stick to that.

Don''t try to learn every possible new technology. Learn what you like to use and stick to what you know. Only in a (semi) professional team enviroment is it viable to absorb every new technology that comes along.

Sander Maréchal
[Lone Wolves Game Development][RoboBlast][Articles][GD Emporium][Webdesign][E-mail]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
Even as a professional you don''t need to know everything. Specialize in those pieces you are interested in working on.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
I have a different strategy. I try and think of something that will only be possible in 2 or 3 years time. That way by the time I as a single hobbyist developer am likely to finish a project it will be up-to-date. I also am less likely to get put off and demoralised when I find out that someone else is doing something similar, because even if they ''beat me to it'' by having more resources, they can''t release the thing until the technology supports it.

Share this post


Link to post
Share on other sites
Prototype    2014
It is not about showing what''s possible with the hardware, you better leave that to Carmack. Instead focus on what you think your game needs and try to implement that. Nobody is waiting for a sucky game which use pixelshaders.

Share this post


Link to post
Share on other sites
joelmartinez    338
quote:
Original post by Anonymous Poster
Even as a professional you don''t need to know everything. Specialize in those pieces you are interested in working on.
I agree with this sentiment 100% ... you need to pick at least 1 thing to specialize in. For example, your "forte" could be in AI, or it could be in creating 3D engines, or it could be in UI design (you know, the "other" stuff no one else wants to do). It''s better to be regarded as a professional in one thing, than an average dev in all things.

That''s pretty much the approach I''ve taken in my career ... sadly I haven''t broken in to the gamedev industry yet, but I''m doing pretty ok for myself as a regular programmer. My strengths are in database programming ... everything else just follows suit.

Joel Martinez
http://www.codecube.net/

Share this post


Link to post
Share on other sites
Fidelio66    164
Actually directx 7 books were obsoleted by 8, because 8 was such a big change. It made a lot of things a lot simpler, phased out old techniques like directdraw and introduced many new ones.
DX9 is more modest, a few parameters are different here and there, and there are a few new things, like animation controllers. But generally speaking you can still use DX8 books or tutorials.

Your code could query the device''s capabilities and adapt to what is possible. For example define objects with multiple textures, then use either as many texture states as the hardware supports, or make multiple draw calls with texture blending.

Some things are really simple, like in the initialization query the D3Dcaps can be queried for hardwaretransformandlight, and in an if/else set the mode to either software_vertexprocessing or hardware_vertexprocessing. That has been possible since the geforce 1 from 2000. Yet I still see many demos and source just use software mode.

You could have eg. a wall with a texture and a height map, and use pixel shaders to get that nice displacement mapping effect that was posted here recently, or if your hardware doesn''t support it just draw the texture and get a flat wall.

It''s good to keep informed about the latest techniques and possibilities, read demo source code and if possible implement them. It''s not good to say to yourself ''oh I am just a beginner so I''ll just make a game with single-texture blocks, no meshes, no lighting, and have the game look worse than 1997 games.

Just use what you think will be good for your game. It''s not neccesary to start learning and using pixel shaders if you don''t know where in your game you can get better results.

Share this post


Link to post
Share on other sites
Extrarius    1412
I say don''t keep up. Work on making a good game instead of a pretty demo. Just about everybody has a pretty demo. All the professional companies are making pretty games. If you want to stand out, you need to do something different. I suggest that the thing you do different is placing your focus on the game instead of the graphics.
As long as your models are not just textured tetrahedrons(assuming you even go 3D; it isn''t required), it looks good enough. Get some skeletal animation in there and sphere mapping and dang it looks awesome =-P
I suggest using half-life as a benchmark. If your game looks about like that, its plenty good enough. If it looks better, you''re spending too much time on graphics and not enough on gameplay =-) If you want to make your game look awesome, finish it looking like half-life and then after you release it, you can release high-definition packs that replace the render dll and add larger textures and displacement maps etc.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
Use opengl instead of direct X. openGL books aren''t ever obsoleted.

Share this post


Link to post
Share on other sites
orbano    130
even professional game developers have to rewrite their graphics engines if the development process takes too much time (see Crashday, they are just rewriting their engine for dx9). with the right abstraction, you can make your game flexible enough to enhance it at any time without breaking its main structure. this is what im doing in my project. i choose some effects available today, implement them, and then focus on other things, that i think can race against professional ones (physics, ai, gameplay). im planning that my project will be ready in about 2 years. of course its very expensive, becouse you need to use high-end hardware. for example now i will ahve to invest in a Radeon9600XT, becouse i have decided that it will be the minimum requirement of my engine. I also have to upgrade my CPU and memory to be able to handle high detail physics calculations.
Gammastrahler, i think you should not try to keep up with these new features, it will just make you feel desperate.
and that half-life example was really good. look at counter-strike for example. its pretty outdated, but its still looks awesome becouse mapmakers do a great job (very very detailed maps, with high quality textures).
not even doom3''s success will be in its revolutuinal graphics. with a poor gameplay it will fail (i dont afraid of this after trying the alpha version). fancy graphics is only marketing. when playing a good game you rarely care about graphics

Share this post


Link to post
Share on other sites
Taulin    100
Bottom line: Just finish it.

A finished game with bad graphics is better than a incomplete game with awesome graphics. Even then, a finished game with bad graphics is better than a cool tech demo.

This is even more true if you are a solo developer doing it as a hobby or just starting out. Choose what you can do at the beginning (APIs, tech, design, etc) and just go with it.

Even if something better comes out in the mean time, by finishing your project, you will have learned more to apply it to the new tech, than stopping mid-stream and learning it all over again.

Recently that Truck game came out and UGN gave it a 1%. People laugh, but guess what? It is done, and on the shelf. Those programmers now have a title under their belt and more name value.






[edited by - taulin on January 24, 2004 3:41:09 AM]

Share this post


Link to post
Share on other sites
Cor    122
I''m with the others, you should write what you know and can do now, if you plan for 3 years out, whos to say what you write now won''t have to be re-written because of whatever changes take place? What if you guess wrong?

As someone writing stuff on my own, I write whatever I can figure out and get working and also whatever works on my machine right now. That works out ok because my machine is pretty low end at the moment, so it just runs better on modern machines.

It''s also pretty easy to add in scalability in one form or another just as part of the system.

For example if you have some sort of level of detail system or mesh simplification stuff, that''s stuff that can be exposed via a config file or options menu, so your game can scale with time.

A lot of ''professional'' developers get caught up in this chase for the latest and greatest features, and they end up not finishing, or finishing significantly later if they would have focused on finishing the game.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
quote:
Recently that Truck game came out and UGN gave it a 1%. People laugh, but guess what? It is done, and on the shelf. Those programmers now have a title under their belt and more name value.


you can''t seriously believe that a horribly broken, horribly presented game is better than nothing. It''s not, it''s much worse. They would have been much better canning that game because they obviously didn''t have the time / resources to finished it properly. You''ve got to have some pride in the kind of games you release !

Share this post


Link to post
Share on other sites
orbano    130
what kind of truck game are you talking about? (im just curious, i like racing games).
personally i never could imagine releasing a game that sux. ive seen so many horrible games, and i dont understand, why dont they have any self-criticism (maybe they are pushed by the publisher, i dont know). but i couldnt release a game that im not proud of...

Share this post


Link to post
Share on other sites
Prototype    2014
To be honest, since Wolfenstein 3D came out I have been struggling for some years to keep up with the big guys, effectively yielding 0 finsihed games. Before that I was far more productive doing my own thing.
Today I take pride in making a living out of relatively simple Shockwave games and I even returned to DirectDraw to finally finish this platformer I always wanted to make. In the mean time I am still working on 3D, but I dropped the thought of competing with the commercial stuff I see. In a way you could say that my ambition was set too high which badly influenced my career (maybe I will write an article about it one day: ''How not to become a game developer'' ).

If you want a job in the industry instead of working on your own you better focus on a single discipline and get really good at that, as said before.

Share this post


Link to post
Share on other sites
paul8262    122
This is the strategy i use now,i hope its usefull to someone.

I started off with my project using DX8.Actually,i was using Jim Adam''s rpg engine code at that time.

I tried Open GL for a while,ported some code,then went back to DirectX.

After my skills progressed,i started completely from scratch,(DX8.1 was long out by this time).

One tip i can give anyone(just trying to be helpful) is finding a good structure for your engine.

Very important,and i''ll tell you why.

When DirectX9 came around,i had a lot more knowldege,and started wanting other features.

I had to completely ''gut'' most of the code i had written.After 3 attempts at porting Jim''s code to DX9,i finally re-wrote all of the mesh handling code.Added skeletal animation,and added stencil shadow volumes for animated characters.

I wrote an exported for 3ds max 4.2,then 5 came out.I updated my code.

I had already written my own format for level geomitry/BSP,and this had to be updated also,to handle other things i wanted.

I rewote the stencil shadow code to make use of shaders.

To cut a long story short,after graphics coding,the gameplay is the hardest and where most of my time is spent.Seriously,this is the hardest part of all.

Anyone who play''s game''s all the time,will recognize when your own gameplay is bad or not good enough.After all its a game,not just a 3D walkthrough,which mine was.(though 3rd person).

Iv''e got a fairly decent engine together now,with its own level editor,scripting system,that''s quite up to date,except one major thing is missing.The gameplay.And so 90% of my time now is
focused on actual gameplay,and the other small ammount is updating or adding features.

At some point,i am going to try to port the whole lot,to c#.(after i learn c# well enough).
which may be more of a bigger task than just updating to a newer version of DX9.

So i''ll probably be posting here,asking all the c# gurus for advice with that

Hope this helps,

Paul.

Share this post


Link to post
Share on other sites
Omaha    100
My strategy with my project has been what alot of people here have said: Stick to your guns. If you flinch every time a new shading language comes out or the maximum texture size doubles, your programs are bound to get locked into Duke Nukemesque rewrite loops.

I have a Geforce 3, so I''m writing my game to take advantage of the features of a comparable card--vertex programs, for instance. Tame, but not lame. Meanwhile I''m glancing over specs for later OGL extensions and the like so that if for some reason I was forced to work with them I could get started, but I''m concentrating on stuff I can use right now, and then emulating those effects with older functions for older cards.

Share this post


Link to post
Share on other sites
WebsiteWill    134
My best advice is to write the game first. And then start putting together the technology. Decide on a genre (or mixture thereof), devise a good story line, make a list of MUST HAVE features in a game, make a list of DO THIS IF YOU HAVE TIME features and leave an open space for stuff you might be able to do when the new technology arrives.

As far as writing the games, if you look around you will find pretty much everything you need. Heck, I''d be willing to bet that some time searching here on GameDev would provide you with about 90% of the code for a solid graphics engine. Probably multiple ones in fact. The technology should be last when it comes to writing the game even though it does turn out to be one of the most important factors later on. Like was stated before, as a solitary programmer you will find yourself copying off stuff other people have done. Not really copying code but implementing features for which there are nicely done algorithms (and possibly code) floating around. You might even get lucky and add some feature noone else has though of. None of that will really matter if the game itself is fun.

Everquest 2 is coming out soon and MAN does it look good. However, my opinion is that if EQ2 was left to look even as good as EQ1 but the programmers spent more time reducing load times, lag and adding content and changing the style of play then the game would be a hit. Sure the graphics and other technologies are great but in the end, it''s the story or actual gameplay that''s going to make it a game to remember.

Webby

Share this post


Link to post
Share on other sites