Why should I ever program a game again?

Started by
16 comments, last by alnite 8 years, 8 months ago

This sort of thinking has been said for as long as I have been at the code face.... since 1981 :)

Ages ago it was that 4GL languages would remove the need for programmers. Even stuff like VB6 was meant to mean that anyone could just connect stuff up but as soon as you wanted to step outside the basics you were into code. In VB you even had to connect windows hooks to control the minimum size of a form.

There are a few game engines out there that say you can build a game without any code, what they don't say is that unless you want your game to fall within tight constraints then code is required.

The trouble with code created by "non developers" is you end up with a rats nest of garbage and the "developer" has no idea why it breaks because it was copy pasted from web snippets.

Good code that works requires a good knowledge of code and always will. Worst case is what happens now, the dull mechanical stuff is offloaded to a framework so the developer is freed up to create :)

Advertisement

Every big AAA game that uses Unreal/Cry/Unity will still have their own internal engine programming team, staffed with tech programmers who's job is to modify the engine to suit the needs of the game.
They'll also have at least a dozen talented gameplay programmers, plus specialists like effects programmers, network programmers, audio programmers, etc...
All that buying one of these engines does for them is save them *time*. Instead of their engine team spending a year making their own engine from scratch before the game's production begins, they can start almost right away.

Let's say i start my own first-person-shooter company.
Either:
A) I hire half a dozen programmers and a tech-artist and we spend a year writing our engine. Then I hire half a dozen more programmers plus a dozen artists and we spend another year making our game.
B) I hire half a dozen programmers and a tech-artis and we spend a few months modifying an existing engine. Then I hire half a dozen more programmers plus a dozen artists and we spend a year making our game.

Same staff required. Same outcome. Only difference is time (which in business, means money).

since the invention of the PC, games have evolved from text mode graphics and pc speaker sounds to multimedia 3D graphics apps with 3D/surround sound, voiceovers, music, etc.

as such, the talents required have grown from just coding, to coding, artwork, sound work, writing, motion capture acting, etc.

so while coding was the only skill originally required to make a state of the art text mode game in the early 80's, nowdays its just one of the basic skills: design (aesthetics, dynamics, mechanics, level design), coding (engine,special effects, AI) artwork (meshes, textures, animations), sound (voice, music, sfx), writing( quests, dialog, backstory), etc.

so coding is no longer the only skill required, but its still required.

once you have an engine or library (3rd party or inhouse), it looks like coding becomes a smaller percentage of the overall work compared to things like creating graphics assets. at least that's what i'm discovering.

coding will never go away because tools to make games without code can only do what they're designed to do. if you want anything else, you have to code. so if you want to go above and beyond what everyone else is doing with the same tool, you have to code.

FYI: as a coder first, i too somewhat lament the fact that other skills are also required - unless you're cloning dwarf fortress or something. But at the end of the day, i'm a gamedev. coding is just a means to an end. so nowadays i spend most of my time using blender.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

It's also worth noting that as an indie developer, your idea is the critical landmark! Have a good enough idea and

everything else will follow :D

Just because a game can be created with all these glorious graphical enhancements, doesn't mean it's good. All

the Crysis games have amazing graphics and scope, but pitch that against Terraria, Tetris, Mario, Megaman, or whatever,

and I'd pick the classics any day :D

I'd also imagine that no matter how incredibly well designed an engine is, there will ALWAYS (99.99%) of the time, be something

that was overlooked that will need manually putting in. It's practically impossible to design something perfectly from the offset.


since the invention of the PC, games have evolved from text mode graphics and pc speaker sounds
And the only thing that prevented people from playing games on punch-card machines was the tangible, measurable, physical cost of performing I/O. :D
RIP GameDev.net: launched 2 unusably-broken forum engines in as many years, and now has ceased operating as a forum at all, happy to remain naught but an advertising platform with an attached social media presense, headed by a staff who by their own admission have no idea what their userbase wants or expects.Here's to the good times; shame they exist in the past.

And the only thing that prevented people from playing games on punch-card machines was the tangible, measurable, physical cost of performing I/O.

in 1978 as a sophomore in high school, i wrote a turn based version of the arcade machine game "lunar lander" in basic for the ibm 360 mainframe. we had 3 dumb terminals and a line printer terminal running at 1200 baud over 4 dedicated copper phone lines to the county's mainframe. like many simple text mode turn based games, it used the trick of drawing a whole screen of text at once to refresh the scene. so you'd enter your move, then it would draw a whole screen and prompt for your next move. i played it on the line printer one day and generated a printout over 50 feet long, one page per screen.

CavernCommanderLunar1.gif

1332512-lunarlander_cab.jpg

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

Software is a profession of leverage. Programmers always have the best leverage working at the top of the stack. Programmers will be needed there until the invention of machine intelligence (AI).

We started with punchcards and machine code. We moved on to macro assemblers, then algol-like compilers, including C. Now we use C++, C#, Java as higher level languages. At the same time, we leverage domain specific libraries (and hardware).

If you want to write a game today, would you dust off an old mainframe and write machine code? No. You write at the top of the stack. The latest hardware, the latest languages, the latest libraries, the latest engines - whatever makes you most efficient.

At the same time, all libraries and middleware have assumptions and limitations because of what they try to generalize. Knowing when to innovate by rethinkibg assumptions is critical.

For example, Minecraft was written without an engine because at the time there was no available voxel game engine. He innovated by breaking the "rules" of existing middleware.

As someone else said, "it takes a village". Find something you like to do, and find others to fill in the missing pieces.

If you want to be a one man team, then set your expectations properly, and leverage everything you can to succeed.

There are points in the development of almost every industry, game industry included, where you will notice some shift in the technology used. This signifies maturity of the industry.

I'll pick civil engineering, just as an example that has nothing to do with games. Do you think civil engineers are out there calculating Newtonian physics everyday? No. Most of the solutions are already done. Want to build stairs? Guess what, you just pull out a template for stairs, with the measurement already done for you. If you go to Home Depot, if you are in the USA, or some local hardware stores, you will notice hardware materials are already cut the certain sizes. These sizes are not random. They satisfy local building code, and also make things easier and faster to build things, because it's been calculated dozens of times. Why repeat the work?

Let's go back to game industry. 30 years ago, game developers have to tinker with video memory just to put sprites on the screen. They came up with clever hacks and tricks to push more pixels and colors. Then there is an advent of graphics API such as DirectDraw, OpenGL, Direct3D, that take care of this for you since the video memory technology had matured enough that you can create a solid API on top of it. So people then program their games using the graphics API. No longer hacking in the video memory.

So right now, we are just seeing another maturity progression in industry. The folks over at Unreal have been honing their engine building tools for years, and people at Unity are also catching up to speed. You now don't have to code the graphics/sound API anymore, you can skip through all that and just focus on your game.

This does not mean that you can't code at the lower level anymore. Just like there are some people in architecture who continue to tinker with different building shapes, you too can still code in Direct3D/VRAM so you can get those voxel or whatever graphic theories fancy you. Software engineering will not die anytime soo, but expect things to move higher in the stack.

Edit:

If lower level programming interests you more, holographic projection is a thing now.

Now imagine coding a holographic game.

This topic is closed to new replies.

Advertisement