Advertisement

Where'd'ja get yer brains?

Started by July 14, 2001 11:15 AM
5 comments, last by 23yrold3yrold 23 years, 7 months ago
''ello. I''ve been programming games for about a year now, and looking back I''ve learned a great deal working on my own. 3D basics, 2D techniques, C++ tricks ... but every now and then I run across an article or something by someone who really knows his shit (the new article here on Cel-Shading comes to mind). So the question I''ll ask and hope for as many answers as possible, is: Where do you gurus get your smarts? Do you do it cheap; ask lots of questions on forums and work it all out yourself? Do you spend when you need to; buying reference book after reference book and have the latest tools? Or go all out; take courses in 3D maths and computer science? Or any other way? And if it''s the third way, let''s hear what you took. I''m very serious about game programming, and I want to learn as much as possible. Thanks for your time. Chris Barry

Jesus saves ... the rest of you take 2d4 fire damage.

well, I think all is about working on it, just keep reading the forums, if you can take a look at others code try to understand it and LEARN from it, read articles about game programming, and so on... not big deal.

If you dont''t know the computer science basis, well... I really recommend you to start from there... and you''ll see that many codes are not that alien-like..


jakovo
"lots of shoulddas, coulddas, woulddas in the air, thinking about things they shouldda couldda wouldda donne, however all those shoulddas coulddas woulddas ran away when they saw the little did to come"
Advertisement
Read books! Lots and lots of books!

~~~~~~~~~~
Martee
ReactOS - an Open-source operating system compatible with Windows NT apps and drivers
Sears is pretty good for brains, but I prefer Kmart. Almost as good and a lot cheaper.

It''s really just applying the basics to form a more complex things.

Cel Shading...havn''t read the article but if I were to create the algo myself I''d start with gray scale.

Tans book uses a fixed RGB ratio which most people do but I don''t think it''s right. It''s a quick way of doing it but many pictures don''t look right I think.

To get the actual brightness of any given pixel

      total = red + blue + green        If total <> 0 Then        tRed = (red * 100) / total        tBlue = (blue * 100) / total        tGreen = (green * 100) / total    End If        p = red * tRed / 100 + blue * tBlue / 100 + green * tGreen / 100  


which is basically the percentage of each RGB value to get one overall percentage of 255.

Once you have that you mod by X and you have X shades.

Apply that percentage to the orginal amounts and you get toon shading. final pixel value = (p mod X)/X * R, (p mod X)/X * G, (p mod X)/X * B

For the Virtual Boy Dev Kit, I convert the gray to 4 shades of red.

It''s really just a matter of breaking the problem down into small steps. Once it works, you then optimize it. The version I designed isn''t even close to real time. But then it''s VB using basic Windows stuff.

It''s all logic.

Ben
http://therabbithole.redback.inficad.com
- Experimentation. Try bizarre ideas out - learn from your findings. Challenge yourself - I learnt a lot from writing demos for the Amiga, challenging myself to write things like demos which would fit into 1Kb floppy disk bootblocks etc.

- Read docs from software and SDKs fully - if you''re ever bored, look in MSDN - plenty of things you never knew existed in Windows, plenty of better ways of achieving stuff. Get to know how things work. Experiment with what you read about. Same with the DirectX SDK docs, same with the Max SDK, etc

- Buy useful reference books so you don''t have to re-invent the wheel: algorithms & data structure books (Algrithms, Design Patterns, Sorting & Searching etc), graphics, maths and physics books (Realtime Rendering, Advanced Animation & Rendering etc), OS and hardware books (Advanced Windows, Amiga Hardware Reference Manual etc).

- Buy books by others with novel ideas in your field: Code Complete, The GDC conference proceedings, Game Programming Gems etc

- Find your local library (if you''re in a large city you''ll probably also have a central technical library you can use too) - borrow books which cover stuff even remotely interesting - theres plenty of books which don''t contain enough of interest to make them worth buying, but do contain a chapter or two which you find relevent. (An example would be books on robotics - if you''re looking into inverse kinematics you''ll find some interesting stuff).

- Learn how to REALLY use a search engine like Google - approximately 70% of the questions I see here have already been answered in detail elsewhere - knowing how to find the answers and complete research is a big help.

- Find which universities are currently researching areas you''re interested in. Same with research departments of large companies (Microsoft, AT&T, IBM, NEC etc), pop along to their websites look at everything (including their FTP sites). Theyre usually well funded and have access to more resources than you do - take their theoretical ideas and modify them for your real world needs.

- Discuss ideas with likeminded people: GameDev, FlipCode, CodeProject, GDAlgorithms, DirectXDev, SIGGRAPH, IEEE etc - don''t be too secretive and protective of you''re ideas, chances are someone out there has already done your idea and is already several steps ahead of you - they''ll be able to give you useful hindsight of what problems you''ll have down the line

- Go to conferences & seminars: CGDC, EGDC, Meltdown, SIGGRAPH, EuroGraphics, nVidia Kitchens, PSX DevCon, Discreet Developer Conference etc etc - as well as talks from knowledgable people, you get to discuss ideas one-on-one and usually end up coming back to the office with tons of cool ideas.

- Develop complete products, finish what you start. The more products you complete, particularly commercial, the bigger your bag of tricks will be, the more you''ll be aware of what design & implementation paths do and don''t work, the better you''ll be at scheduling and planning.

- Look at other peoples products, if you see something cool, work out how they''ve done it, use tools like SoftICE, IPEAK and VTune to see how they''ve done stuff and how well. Look at products you think are good, profile them etc, compare them to products you think are bad. Hex dump their .exe, see how they store resources etc <br><br>- Look at real life, films, TV, cartoons etc. I sometimes look at real life as if its been generated in a computer, then I analyse how I''d do it if I had to implement it "The refraction in that raindrop is nice, I wonder if I could do it with a palette", "I wonder how God did that skydome"…<br><br>Use as many resources (including your own mind) as possible… A lot of what I learnt was from the days before home dialup ISPs were about (the nearest thing were local BBSs) - There was nowhere to go to ask "GIVE ME 3D ENGINE TO MAKE GAME WITH" or "HOW DO I PROGRAM GAME" - you had to talk to local people, read books & magazines and research for yourself <br><br>–<br>Simon O''''Connor<br>Creative Asylum Ltd<br><A HREF="http://www.creative-asylum.com">www.creative-asylum.com</A>

Simon O'Connor | Technical Director (Newcastle) Lockwood Publishing | LinkedIn | Personal site

Advertisement
I see the Anonymous Poster is a Calvin and Hobbes fan ...

Jesus saves ... the rest of you take 2d4 fire damage.

This topic is closed to new replies.

Advertisement