What should I do?

Started by
6 comments, last by Rorakin 11 years ago

I am a junior in college, acing every Computer Science course but I'm not sure what I should focus on for the kind of Game Programming I want to do. I'd like to create games with fighting, adventure rpg with fighters, mage casters etc and I'd like to be able to program things like how high a character jumps, how far a characters weapon reaches, and those kind of game mechanics. I do not want to figure out how to do rendering.

Is this considered game engine programming or something higher level (not so backend)?

Help is greatly appreciated so I know which direction to add for my future, thanks!

Advertisement

Sounds like you are interested in the actual game mechanics. I don't think it directly deals with engine programming. I feel like engine programming deals much more with the field of software architecture. Game mechanics like the ones you've mentioned deal more with algorithms.

There are countless aspects to game programming that deal with computer science.

Just thinking of the different specializations offered at my school, here are the ones I can think of:

- Software architecture

- Computer graphics

- Computer vision

- User interface programming

- Algorithms

- Sound engineering

- AI / Machine learning

Sounds like you are interested in the actual game mechanics. I don't think it directly deals with engine programming. I feel like engine programming deals much more with the field of software architecture. Game mechanics like the ones you've mentioned deal more with algorithms.

I agree with this to some extent. Most game engines have those algorithms integrated. I think engine programming might be a goal to reach for (it requires alot more than just making a one-off game). I think, however, you would be interested in being a backend physics programmer

I develop to expand the universe. "Live long and code strong!" - Delta_Echo (dream.in.code)

A backend physics programmer definitely sounds like what I'd want work in as this has a large effect on game mechanics. I'm almost taking an AI class and we're about to cover Machine learning so maybe if that's interesting I may experiment with that.

What kind of projects could I do with a backend physics programmer as a goal though? I imagine I'd also have to create games from scratch to test out the physics I make so where would I start in getting experience with this?

Physics programming is not related to your goal at all. Game mechanics, such as how high characters jump or how far their weapons reach, are completely unrelated to physics.

These kinds of game mechanics are high-level, often script-based.

What kind of education do you need for this? Virtually none. It is just plugging numbers into scripts. You need only the most basic programming skills to work with scripts, and it sounds as though all you want to do will be done with scripts.

Even for fighting games, it would be set up so that the engine already knows that once you get hit you should go into “Unprotected” mode. Your job would be to tell the engine how long that mode lasts if no hits follow. How long does it take to recover from X attack (how long is your guard down after missing)? How much damage does it do? Which moves can be chained after it to form a combo?

The game designer tells you these numbers and you plug them into a script.

Not very fulfilling, very low pay, not a very bright future there.

Certainly being a physics programmer would be more fulfilling and provide a worthwhile salary, but nothing you have said indicates that that is what you want to do, except the part where you misunderstood its relationship to game mechanics.

The way Mario jumps, for example, is a gameplay mechanic, not physics. How far your character reaches is a mechanic, not physics. Nothing in a fighting game or standard RPG is physics. Any falling or bouncing there is hard-coded gameplay mechanics that can be driven by scripts.

If, after realizing the difference between physics-driven gameplay such as in Half-Life 2 and hard-coded scripted faux physics (or fauxsics as I like to say) found in Mario, fighters, RPG’s, and the types of games you described, you still want to do back-end physics programming, then it should be fairly clear how to proceed.

Get an engine such as Unity 3D, override its physics support, and start writing scripts to make balls bounce off each other with your own scripted physics. Still high-level but directly applicable to the low-level beck-end things you would want to do later.

Just be warned that there is virtually no demand for physics programmers today. I was originally an AI programmer and physics programmer (in fact, L. Spiro Engine started as just a physics engine, only becoming a full engine when I decided I need graphics to draw the objects in my scenes) and another of my coworkers majored in physics at his University.

Neither of us have ever had a chance to do physics programming professionally except for some very basic and short-term (a few days) things. Companies use Bullet or PhysX to meet their physics needs, so getting a job as just a physics programmer is extremely unlikely.

L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

Yeah for what you want just go download a game making kit like rpg maker or something

I would say just work on a game mechanic for a game that you feel most interested in doing out of all of them.

Hello, most programmers use existing engines / APIs, you should focus on actually programming with something that already exists. Most engines should already handle rendering, so you won't need to worry about that. Just test your general programming skills by programming some games from "scratch" using some of the free 2d / 3d engines out there. Most companies look for well-rounded programmers / experienced programmers. For example, if you go to a game job site and just look at the job descriptions for "game programmer" you'll find most postings look exactly like this (I just pulled this off gamasutra):

Key Skills

• Strong working knowledge of C++ and/or C#
• Linux/Unix environment operating systems and multiplatform development
• Scripting languages
• Team oriented attitude
• Strong knowledge of tools to test software applications/systems
• Advanced debugging skills
• Strong math skills
• Working knowledge of art development/modeling tools
• Self-starter with strong multi-tasking skills
• Excellent communication and organizational skills.

Pluses

• A passion for games
• Unity development experience
• Experience with developing software within a video game environment
• 3D graphics programming
• Experience writing and debugging shaders

This topic is closed to new replies.

Advertisement