Sign in to follow this  

XNA - The Future

This topic is 3410 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
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
Quote:
Original post by Roger Gerald
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.
I'm not trying to convey cynicism. I'm trying to get you to explore the practical ramifications of your idea. It's all well and good to say "robots should write my game for me", but the important part is in the details.

Quote:
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?
That's not a syntax error. Read the sentence after that one.

Quote:
seriously, i recognise the limitations of my idea : just expected an easier ride 20 years on!
The ride is easier. It's just not trivial, for good reasons that people have shown above.

Share this post


Link to post
Share on other sites
XNA Game Studio is an IDE and the XNA Framework is just that, a framework. It's not meant to be a complete "click a couple of buttons and you're done" type thing. If you don't want to do programming, suggestions have been made. You're not going to get something totally original from that though. That requires programming. TANSTAAFL (or not quite, at least [grin]).

Share this post


Link to post
Share on other sites
Quote:
Original post by Machaira
XNA Game Studio is an IDE and the XNA Framework is just that, a framework. It's not meant to be a complete "click a couple of buttons and you're done" type thing. If you don't want to do programming, suggestions have been made. You're not going to get something totally original from that though. That requires programming. TANSTAAFL (or not quite, at least [grin]).

Yeah it sound like you are looking for something that can be picked up in a day is no-hassle and lets you make simple games. As has been mentioned gamemaker comes to mind. The closest thing I've seen from Microsoft is not XNA but--
Welcome to the Popfly™ Game Creator!
The Popfly™ Game Creator allows you to quickly and easily create casual games that will run in your web browser, on Facebook, embedded in your blog or even as a Windows Vista sidebar gadget as well as many other options.

Unlike XNA you can actually make a fully functional space shooter without writing a single line of code pretty fast. Now that I think about it XNA actually provides it's own templates you can download that provide a fully functional game so in theory you don't have to write a single line of code for XNA either-LOL!
RPG starter kit for example.
They also provide templates for the majority of the popular game genres like side-scroller,space shooter,car racing,etc.
I"d say it's a far cry from when you couldn't even start making any games until you shelled out for a C compiler since they weren't any free ones 20 years ago and they were all text based!
So, as you can see the tools are actually there now you just have to decide what works for you.
For example, if you used C and ASM to make your games 20 years ago using Visual Studio with the DX SDK it like light years easier. Then if you decided to start using XNA/C# you'll see that it's alot easier. If you've only used gamemaker, popfly game creator or something like flash moving to XNA/C# will seem like alot more work!
Then again you will have more control in the creation and types of games you can create!
As they say with more power comes more responsibility or something like that...

[Edited by - daviangel on August 15, 2008 1:49:23 AM]

Share this post


Link to post
Share on other sites
Just wanted to thank everyone for their helpful replies.

I realise the "shortcomings" of my ideas.. to me, it was an experiment to see how times have changed in programming in the last 20 years. Obviously, things HAVE changed a lot but to the amateur, it still looks the same : i guess that was the point.
A lot of people have pointed me in the direction of more suitable areas but I wanted to try out XNA for the simple reason that its modern and its free (my version anyway). And when you haven't programmed for 20 years then I guess you have all these crazy ideas about how much easier everything will be.

Share this post


Link to post
Share on other sites
Quote:
Original post by Roger Gerald
Just wanted to thank everyone for their helpful replies.

I realise the "shortcomings" of my ideas.. to me, it was an experiment to see how times have changed in programming in the last 20 years. Obviously, things HAVE changed a lot but to the amateur, it still looks the same : i guess that was the point.
A lot of people have pointed me in the direction of more suitable areas but I wanted to try out XNA for the simple reason that its modern and its free (my version anyway). And when you haven't programmed for 20 years then I guess you have all these crazy ideas about how much easier everything will be.


Yeah, I see your points.

The problem is just that 3D (realtime) rendering is a rather complicated field which requires a lot of maths and understanding of how a GPU/pipeline works. This kind of knowledge can hardly be hidden from the programmer (unless you use a complete engine like Ogre and others).

The XNA framework is just a nice and clean managed wrapper around DirectX (and a bit more, like the content pipeline). No more pointer hassle, a garbage collector which takes care of your memory (you still gotta be careful, though) and a well designed, object oriented API.
XNA does neither provide the tools to create games without much basic 3D math understandings (this is the job of some engines or "game creators"), nor does it free you from doing much of the low-level stuff like caring about your render states, render targets etc.

But compared to the DX7&C++ times, XNA is a huge step forwards in terms of ease of development.

Share this post


Link to post
Share on other sites

This topic is 3410 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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this