Jump to content
  • Advertisement
Sign in to follow this  
Roger Gerald

XNA - The Future

This topic is 3627 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I recently downloaded XNA and started writing my own programs for the xbox 360. Its been almost 20 years since I was programming in C (even Pascal!) and so obviously a lot of things have changed since then but i found myself being disappointed that things were no easier now than they were back then. There were loads of tutorials and videos to help me on my way, but ultimately it was still too complex. I kind of wished for a simpler set up where the application works out all the hard stuff and simply asked questions as to where you wanted to go with the program. Dont get me wrong, i wasnt expecting the program to guess what sort of program I wanted and then write it for me but i did expect it to be a lot easier and user friendly to the amateur. I am not a programmer of course, but was just interested in how profesional programmers feel about this : is it possible to simplify these applications? Will programmers one day be extinct as programs work out how to program?

Share this post


Link to post
Share on other sites
Advertisement
Quote:
Original post by TheGreatDane
A program like the ones we can develop today can't learn to program. That was proved in 1936 by Alan Turing.

...what the heck does the Church-Turing thesis have to do with Roger's question?

Roger, I understand that programming looks much the same to you as it ever did. Everything's just a wall of text. There's no interaction, just the same old series of arcane incantations. What you have to understand, though, is that to a programmer it is very different, and very, very much simpler. What you think of as "the hard stuff" has indeed been abstracted away by XNA and similar frameworks. What "hard stuff" remains is hard because it needs to be hard, because expressiveness is impossible without some degree of complexity. Think of a word processor that worked by simply asking questions. "Should this sentence be interrogative?" "Click below to start the Prepositional Phrase Builder Wizard". Just as letting the writer just directly type in letters turns out to be the simplest possible way to maintain full expressiveness, so is the wall of text the best way we've found (and we've been looking pretty hard) to describe programs.

Share this post


Link to post
Share on other sites
If you're looking for "easier" and "friendlier" you're probably better off starting your search in the applications development arena - technologies there tend to get refined, especially because there is so much money riding on them.

With a game you're generally looking at math that most folks don't use on a day to day basis, the latest or nearly latest in hardware, and you've added in the complexity of developing for a different platform than what you're developing on along with a slew of verbiage that can make some folks run shrieking in terror. All of these combine to make the subject esoteric, and probably more difficult than it needs to be. (One difficulty factor that I personally find annoying is the evolution of software and hardware; when searching the Internet for information on a topic it's not uncommon to find advice which is now not only out of date, but plain wrong. Linux especially suffers from this.)

With that said, I greatly enjoy working in C# and the .NET Framework and believe they represent the evolution you're looking for. .NET relieves me of the tedium of memory management, uses a full object oriented hierarchy, and requires me to know only as much as I need or want to (e.g., what objects sit in what namespaces and/or assemblies, etc.). Compared to my early days of C, C++, and Pascal it's a dream and allows me to get things done *much faster*.

Share this post


Link to post
Share on other sites
Quote:
Original post by Roger Gerald
I recently downloaded XNA and started writing my own programs for the xbox 360. Its been almost 20 years since I was programming in C (even Pascal!) and so obviously a lot of things have changed since then but i found myself being disappointed that things were no easier now than they were back then.


Trust me, things are a lot easier than what it was back then. Programming in itself is basically the same but with a different level of abstraction because of APIs that were developed over the years and some newer language features. Back then you didn't have the nice 3D APIs we have now. Things like XNA allows you to work in 3D in a even higher level and forget about most of the hard stuff (like the initialization of the API that has been abstracted). Languages like C# pushes a bit further with features like garbage collection (and others) that can make the life of programmers a lot easier. So libraries and the evolution of languages are what changed a lot on the programming side. Maintenance on big projects is also a lot easier now with the "new" languages (when they have been designed correctly).

Quote:
Original post by Roger Gerald
There were loads of tutorials and videos to help me on my way, but ultimately it was still too complex. I kind of wished for a simpler set up where the application works out all the hard stuff and simply asked questions as to where you wanted to go with the program.


If you wanted a game generated for you, programming is probably not your best choice. There are programs that are made to generate games for you (but you are limited by them).

Quote:
Original post by Roger Gerald
I am not a programmer of course, but was just interested in how profesional programmers feel about this : is it possible to simplify these applications?


It is always possible to simplify the work required to do something. The only problem is that with each abstraction layer you lose freedom because you limit possibilities offered to you.

i.e. You want to make a RTS and you choose an engine made for RTS where you define everything your RTS needs (units, buildings and the associated art) and then it makes the game for you. This works, you have a new game but you can't add anything new, you are just building the same game over and over with new assets. You can't add any features that the engine wasn't designed for... unless you edit the engine's code but you lose the abstraction and go back to the point where everything is not as simple. And don't try to build another type of game with this engine as you will most likely fail since it wasn't designed for this.

JFF

Share this post


Link to post
Share on other sites
Thank for your insights :

let me give you a few examples of what I mean : (though bear in mind i am not a programmer!)

(1) the syntax problem is still with us today : one typing mistake, one wrong number etc means trouble when you compile it : sure, nowadays, you can pinpoint better where the error comes from but, in some cases, a mistake can actually pass the compiling test simply because it reads right.

(2) data input : if you are putting integers into an array, and you mess up then its back to the start, isnt it? would it not be better for a compiler to "understand" the relevance of the array and self correct it? or is that not possible?

(3) imagine you are an amateur programmer like me, upon starting my program i could be asked :
a. what sort of program am I making (tick the options)
b. a design interface where i pick my "game objects" needed for the game
c. what sort of interaction will i have with my objects? ie shoot them, talk to them : tick options

i could continue but i am sure you get the idea : upon finishing my questionnaire, the program could then write a basic program for me, filling in all the array,variables,constants and if statements ?

(4) the program could have some sort of custom design options? like exmaples used in the past? tick the ones you want again.

I know this sound simplistic but you get my drift i hope! telling the program what you want and the program writing the skeleton code.


Share this post


Link to post
Share on other sites
"You want to make a RTS and you choose an engine made for RTS where you define everything your RTS needs (units, buildings and the associated art) and then it makes the game for you. This works, you have a new game but you can't add anything new, you are just building the same game over and over with new assets. You can't add any features that the engine wasn't designed for... unless you edit the engine's code but you lose the abstraction and go back to the point where everything is not as simple. And don't try to build another type of game with this engine as you will most likely fail since it wasn't designed for this."

sorry RFF, had not read your post as i wrote my last message. I understand the point you make here : especially losing the abstaction part.
I just though it might be possible for the engine to be a bit more versatile so that , after I had finished my RTS game for example,, i could then use the same engine to make a completely different type of program.

Share this post


Link to post
Share on other sites
Quote:
Original post by Roger Gerald
(1) the syntax problem is still with us today : one typing mistake, one wrong number etc means trouble when you compile it : sure, nowadays, you can pinpoint better where the error comes from but, in some cases, a mistake can actually pass the compiling test simply because it reads right.
Syntax errors are actually a good problem to have. Most syntax errors are trivial to find and correct: the compiler tells you where the error is and what it is. As you allude to, much worse than a buggy program failing to compile is a buggy program that compiles. Language design factors in heavily here: It's very easy to make a C program that compiles despite typos, and it's surprisingly difficult to write a Haskell program that compiles but doesn't do what you expect. This is one of those things that's gotten better, particularly as language designers have gotten a better understanding of type theory.

Quote:
(2) data input : if you are putting integers into an array, and you mess up then its back to the start, isnt it?

I have absolutely no idea what you're trying to say here.

Quote:
(3) imagine you are an amateur programmer like me, upon starting my program i could be asked :
a. what sort of program am I making (tick the options)

What's the list of options?
Quote:
b. a design interface where i pick my "game objects" needed for the game
What do you mean by "pick your game objects"? Is there a checkbox for goblins?
Quote:
c. what sort of interaction will i have with my objects? ie shoot them, talk to them : tick options
What if I want to play pinochle with them? Do I have to wait for the next version of the program?

Share this post


Link to post
Share on other sites
Quote:
Original post by Sneftel
What do you mean by "pick your game objects"? Is there a checkbox for goblins?

Of coarse there is- its if you scroll down for about 20 min and its in between "goblet cell" and "goby"

sorry for the sarcasm, but I have to concur with what Sneftel was getting at. That a program like Roger is discussing will simply be so un- expressive as to be near useless.

But for roger- perhaps modding would be a good place to start. Pick a game that you like that has an editor and play around with it. Both "never winter nights" and "warcraft 3" have deep and powerful editors to let you change the game quite a bit. Or perhaps something closer to the genre your thinking of working towards.

There do exist programs like what your talking about, but they really do make the same game over and over; look at "RPG creator" if your interested.

-vs

Share this post


Link to post
Share on other sites
Hi sneftel, i understand your cynicism . I must make it clear i am talking about xna here and not the AAA size /unreal engine type of programing. Arcade games of a certain size, thats why i delved into xna.

you said "the compiler tells you where the error is and what it is" : this is not always the case eg if you enter the wrong number or wrote the code correctly but with the wrong criteria?

you were asking "what if i want goblins?" : if you want goblins then the program will search the internet database etc or you could redesign the nearest equivalent, the point is that the program is saving time by ensuring you dont have to design your goblin from scratch..this used to be very time consuming in the old days anyway

seriously, i recognise the limitations of my idea : just expected an easier ride 20 years on!

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!