An Elysian Tail

A forum for the gamers among us. Which is probably all of us.

Re: An Elysian Tail

Postby neoTatewaki » Wed Aug 12, 2009 6:30 am

XNA makes programming tolerable. You don't have to fight to create sprite classes, you can do most things very easily, and 3D collisions aren't too hard to accomplish. Of course, you could *find* a copy of TorqueX 2D/3D Builder and further simplify the process (almost to a "Klik 'n Play" level). My programming instructor (just finished a Game Design/Dev BFA, woot) started hyping it when it first emerged, and having dealt with all the revisions (and spending the first semester coding in pure C# while bitching about not learning any C++), I can say that it's come a long way and looks to go even further.
(of course, by saying that, I've now jinxed everything; they'll drop support after 3.1 or some craziness... :evil: )

Yet, and here's the funny thing, if you listen to most developers (indie or otherwise), you should only concentrate on C++ and NOTHING ELSE, GODDAMMIT. C# and XNA are worthless, and you need to familiarize yourself with the Unreal Engine as well.

... so, basically, if you want a job at a good company, just ignore the wonderful things going on at creators.xna.com; it's a flash in the pan and will die as soon as the X360/PC/Zune is no longer a viable platform.


So, yeah. C#/XNA till I die. It's made me love programming again. :kiss:
neoTatewaki
Welcome, New User!

  Offline
 
Posts: 6
Joined: Wed Mar 19, 2008 7:19 pm

Re: An Elysian Tail

Postby Coda » Wed Aug 12, 2009 7:10 am

The reason they say to focus on C++ (and learn the Unreal engine) is because it actually works on things besides the X360 and Windows. .NET says it's supposed to be this brilliant virtual-machine solution that isn't bound to any particular platform... BS. I have yet to run an app written for .NET that actually WORKS on Mono for Linux or Mono for Mac. I haven't owned a Windows machine in over five years and every application I encounter that I can't run (directly, via recompilation, or via WINE/CrossOver) simply infuriates me more. For that reason alone C# is, in my opinion, nearly worthless. (Don't get me started on D. *shudder*) Ironically, I don't hold the same opinion of DirectX and think that there should be more work put into making non-Windows implementations of DirectX (and not just OpenGL wrappers, either, though that's a good place to start).

That said, Python is making a name for itself in the game development world, not for engine development, but for high-level logic. Python's easy to extend, easy to embed, and really IS a portable VM. Blender and Unity3D both use it, for instance.
User avatar
Coda
Magickal Melon 666

  Offline
 
Posts: 762
Joined: Sun Apr 05, 2009 12:19 pm
Location: Holy crap, Coda set an avatar

Re: An Elysian Tail

Postby Monthenor » Wed Aug 12, 2009 4:54 pm

I already use C# at work, and it would be but a moment to get the XNA tools I need from MSDN. But I have so many great games to consume that I don't have time to create.

Collisions and sprite classes are two of the bits I suck at, though. Throw a universal gravity vector in there and I could really get behind this XNA thang. Oh, and input. Three-simultaneous-key limits bite me every time.
User avatar
Monthenor
Apple Class

  Offline
 
Posts: 316
Joined: Mon Jan 21, 2008 5:33 pm
Location: Right where I need to be

Re: An Elysian Tail

Postby Coda » Wed Aug 12, 2009 7:40 pm

Three simultaneous keys is generally a hardware problem; I try to buy keyboards that don't suffer from that issue.

I've been learning Box2D for physics. Very convenient to have that solution canned up; I understand the theory behind it but I don't even WANT to think about how long it'd take me to come up with something so effective.
User avatar
Coda
Magickal Melon 666

  Offline
 
Posts: 762
Joined: Sun Apr 05, 2009 12:19 pm
Location: Holy crap, Coda set an avatar

Re: An Elysian Tail

Postby Plasman » Thu Aug 13, 2009 4:37 am

Monthenor wrote:I will say that trying to create an engine from the ground up sucks donkey sack. And I never got it quite right, ever. I really need to look into the XNA libraries, because I need to make the finest unlicensed Avatar game that ever came out of my head.

FAN GAME!!! AAHHH!!! 8O

At least with a custom-built engine, you're only limited to your programming skill; you can make it do just about anything you need, once you know what to do and how to make it happen.
With pre-fab engines, you're often forced to come up with convoluted ways of making it do what you want, in order to work around existing issues, such as
Mitsukara wrote:trying to make my own platformer engine instead of using the crappy built in one

Bleh. :doubtful: You either have to lump for what they give you, or build your own method from scratch, thus defeating the whole point of the "game maker" program in the first place...

Long live the programmers!
If this last post seems ridiculous, please disregard it. Thank you. ;)
________
By the way I made two level packs for Boppin' in case anyone is interested... :oops:
User avatar
Plasman
1000 Post Forum Master!

  Offline
 
Posts: 1143
Joined: Tue May 20, 2008 8:23 am
Location: Australia

Re: An Elysian Tail

Postby draque » Thu Aug 13, 2009 11:03 am

Coda wrote:The reason they say to focus on C++ (and learn the Unreal engine) is because it actually works on things besides the X360 and Windows. .NET says it's supposed to be this brilliant virtual-machine solution that isn't bound to any particular platform... BS. I have yet to run an app written for .NET that actually WORKS on Mono for Linux or Mono for Mac. I haven't owned a Windows machine in over five years and every application I encounter that I can't run (directly, via recompilation, or via WINE/CrossOver) simply infuriates me more. For that reason alone C# is, in my opinion, nearly worthless. (Don't get me started on D. *shudder*) Ironically, I don't hold the same opinion of DirectX and think that there should be more work put into making non-Windows implementations of DirectX (and not just OpenGL wrappers, either, though that's a good place to start).


I agree with learning C++, but for reasons that are very different. Going from C++ to other, higher level languages is much easier than going from the higher level languages to C++. It teaches the logic and the work that the computer is doing for you in a way that you wouldn't otherwise learn. Also, pointers are tres important, even if you don't deal with them in day to day programming nine times out of ten. That having been said... I believe 100% that the future of programming lies in additional layers of abstraction. I really like C# in that it can be used to create workflows that allow you to do things like orchistrating your program's flow with XML documents. It's that kind of abstraction that allows you to quickly program, reprogram and refactor very powerful things that would take much more time otherwise.
User avatar
draque
Watermelon Graduate

  Offline
 
Posts: 907
Joined: Mon Jan 21, 2008 11:57 am
Location: <=CLEVER-LOCATION=>

Re: An Elysian Tail

Postby Coda » Thu Aug 13, 2009 12:17 pm

I'm not talking about LEARNING; I'm talking about real-world development. That said, I think Java and C# are terrible "learning" languages. (cite)

See, you'll never convince me that the language level is the right place to implement that stuff for engine-level development. You see, I'm a C++ programmer, but I use Qt. I have automatic memory management with a wonderfully intuitive, leak-proof reference management scheme. I have high-performance but developer-friendly tools to deal with everything from pushing pixels on surfaces to plug-and-play components. And best of all, I don't have to wedge in some sort of foreign-function extension system when I need to build something that it doesn't provide directly -- I'm ALREADY writing C++ code so I can just go straight down to the metal if I want to. (In fact, I'm one of the lead developers of a collection of tools that are built like this.) In other words, a well-designed toolkit means that almost all of the common criticisms of C++ stop being problems.

On the flip side, it's acceptable for logic-level development where you're not dealing with things that need to run fast and efficiently. At that level, the nuances of "should I reference this object or copy it?" and "how should I allocate memory for this?" are generally unimportant, and the work is all about controlling things rather than constructing things or calculating things. When this also allows "build once, run anywhere" deployment (FOR REAL, not the BS that .NET claims it can do -- Java, you fail; Python, you're really close to winning) that's an even bigger bonus. That's why I'm glad to see Python making its way into the industry.
User avatar
Coda
Magickal Melon 666

  Offline
 
Posts: 762
Joined: Sun Apr 05, 2009 12:19 pm
Location: Holy crap, Coda set an avatar

Re: An Elysian Tail

Postby draque » Thu Aug 13, 2009 1:26 pm

Take a step back for a moment and consider, Coda. There are a lot of languages out there other than C++ (and potentially Python at some point in the future, you grudgingly admitted) that are good for different things. If you're looking to rapid prototype a game engine that will later be developed with a small team of programmers and you need something to show potential investors, the XNA framework is very nice to deal with. What you say about the value of ground up development of reusable code that goes into a toolbox for later use is a good perspective, but it's not one that applies universally to every situation. I've programmed in tons of different languages, and while I have definite preferences (and even those that I out and out despise developing in), I recognize that they tend to be useful in different situations.

You need something quick and dirty that you can run on multiple different OSes with reasonable reliability and without recompiling? Java's virtual machine can do that. You need something coded for a very small, very cheap piece of hardware that has supremely limited memory? That sounds like a job for C. Need something graphically impressive, but don't have relevant toolboxes available or a lot of time? That might be a role for Microsoft's game development kits. I know you personally dislike the style of programming, but it's not entirely without worth. Without it, we wouldn't have games like Braid and SplosionMan that would otherwise have been much more costly in terms of both money and time to produce.

Just making the argument of the right tool for the right job.
User avatar
draque
Watermelon Graduate

  Offline
 
Posts: 907
Joined: Mon Jan 21, 2008 11:57 am
Location: <=CLEVER-LOCATION=>

Re: An Elysian Tail

Postby Wic » Thu Aug 13, 2009 3:21 pm

Sounds complicated. I better stay with my PHP, MySQL, Apache, Joomla!, HTML, CSS, Javascript and maybe study XML and ASP and... Wait.

Seriously, you 'real' programmers get it easy. Five kazillion different tools and languages to program webpages and all it does is to print text and graphics.
It's that my homunculus inside my head doesn't even try to understand the outside world. He thinks it's a video game and smashes the buttons at random to find the key where you shoot the lasers.
User avatar
Wic
Apple Class

  Offline
 
Posts: 392
Joined: Wed Jan 23, 2008 1:04 pm

Re: An Elysian Tail

Postby Monthenor » Thu Aug 13, 2009 5:38 pm

Now that Braid's been mentioned, I would love to know how he implemented the well-nigh-infinite rewind. That just astounds me, that it can record over two hours of an entire level. Definitely something I wouldn't want to attempt in C#.
User avatar
Monthenor
Apple Class

  Offline
 
Posts: 316
Joined: Mon Jan 21, 2008 5:33 pm
Location: Right where I need to be

Re: An Elysian Tail

Postby Coda » Fri Aug 14, 2009 3:41 pm

My acceptance of Python isn't begrudging at all, and I fully accept that there are tasks for which certain languages are particularly well-suited. I'm quite proficient in Python and rather enjoy working in it, but I'd never consider it a language suitable for EVERYTHING. I also quite enjoy LISP and Scheme, which are very nice when it comes to dealing in hard science and artificial intelligence.

That said, I also know several dialects of BASIC, HTML/CSS, PHP, Javascript (really a very nice language that's saddled with a terrible runtime environment), Perl, various shell scripting dialects, SQL, Z80 assembler, and LOLCODE, in various levels of proficiency, and I used to know Pascal, 6502 assembler, and VBScript but haven't used them in... well, at least a decade, probably more.

Rapid prototyping is NOT proper development and I would absolutely NOT want to see something done as a rapid prototype shipped as a "real" product.

Java's only advantage is its prevalence. Its VM? Sucks. Its syntax? Sucks. Its object-oriented design support? Sucks. In fact, it's not even as platform-independent as Sun would have you believe -- every vendor's implementation of the JVM is just different enough to cause problems for large projects. (The reason it works so well on mobile devices is because J2ME is a very well-defined set of functionality -- and unlike for desktop computing, Java is *NOT* free for mobile!)

My primary complaint with Microsoft's tools is that they're bound to Microsoft's platforms, and I haven't run Windows in years and don't own an XBox. There are other tools that can do the job as well or almost as well that DON'T require vendor lock.

You can implement rewind like that in pretty much any language. I know how I'd do it.
User avatar
Coda
Magickal Melon 666

  Offline
 
Posts: 762
Joined: Sun Apr 05, 2009 12:19 pm
Location: Holy crap, Coda set an avatar

Re: An Elysian Tail

Postby Wic » Mon Aug 17, 2009 4:13 pm

So if I start studying Python again, it might pay off when it makes it's breakthrough after the recession is over and there's a screaming need of python programmers?

I really like Python. It just makes more sense to me. No headaches.
It's that my homunculus inside my head doesn't even try to understand the outside world. He thinks it's a video game and smashes the buttons at random to find the key where you shoot the lasers.
User avatar
Wic
Apple Class

  Offline
 
Posts: 392
Joined: Wed Jan 23, 2008 1:04 pm

Re: An Elysian Tail

Postby Coda » Mon Aug 17, 2009 4:30 pm

Wic wrote:So if I start studying Python again, it might pay off when it makes it's breakthrough after the recession is over and there's a screaming need of python programmers?

I really like Python. It just makes more sense to me. No headaches.


There's a really good chance of that, I think. Blender and Unity3D both use it already.
User avatar
Coda
Magickal Melon 666

  Offline
 
Posts: 762
Joined: Sun Apr 05, 2009 12:19 pm
Location: Holy crap, Coda set an avatar

Re: An Elysian Tail

Postby Relee » Tue Aug 18, 2009 6:54 am

I gave Python a try, but I didn't like it. It tries to do things 'behind the scenes' that I like to have complete control over. Drives me a little nuts. ^.^;;

C++ is a lot easier, at least for me. Most people find the opposite to be true, but I don't really get how.
-- Relee the Squirrel --
User avatar
Relee
Watermelon Graduate

  Offline
 
Posts: 904
Joined: Mon Jan 21, 2008 2:25 am
Location: Sarnia, Ontario, Canada, North America, Earth, Sol, Milky Way, Universe 2

Re: An Elysian Tail

Postby Coda » Tue Aug 18, 2009 11:17 am

Relee wrote:I gave Python a try, but I didn't like it. It tries to do things 'behind the scenes' that I like to have complete control over. Drives me a little nuts. ^.^;;

C++ is a lot easier, at least for me. Most people find the opposite to be true, but I don't really get how.


No, no, I understand where you're coming from. There's a reason I said I don't think Python (and other very-high-level languages) are appropriate for some things.

One of the things I like about Python is that it's a higher-ORDER language: you can treat functions as objects, including putting them in variables, passing them to functions, putting them in arrays, etc. This makes some things REALLY elegant. I made an IVR phone system that boils down to a dictionary of { phone button => function }. VERY nice.
User avatar
Coda
Magickal Melon 666

  Offline
 
Posts: 762
Joined: Sun Apr 05, 2009 12:19 pm
Location: Holy crap, Coda set an avatar

Re: An Elysian Tail

Postby neoTatewaki » Tue Aug 18, 2009 2:42 pm

I've heard the "rapid prototyping" thing mentioned in regards to C# and XNA before. It is true, for the most part; you can churn out good code with no issues whatsoever, and it doesn't take forever to do so. I argue, and remember, I'm a convert to the C# camp (though, admittedly, I had a hate-hate-necessary evil relationship with C++ previously, so the conversion process was..."rapid"), that though you could slap something together to show to investors to get funding, you could also continue further and put out something amazing.

...hell, people wrote cool stuff in BASIC back in the day. XNA is leaps and bounds beyond that.

As for the platform, well... sorry, and not to sound fanboyish or like an asshole, but I've always viewed PC users as my target demo. To be honest, the X360 deployment capability is a cool afterthought and second to PC development, IMO (though I'm already learning that coding for console isn't as forgiving, and it's a good lesson to learn :P). If one can find a way to execute anything I develop under MacOS or Linux, so much the better... but those users aren't factoring into my design process. As such, I have no hesitation in abandoning C++ for C#/XNA. I know; the market for Linux gaming exists (Lokigames, anyone?), but it's best left to someone else.
neoTatewaki
Welcome, New User!

  Offline
 
Posts: 6
Joined: Wed Mar 19, 2008 7:19 pm

Re: An Elysian Tail

Postby Coda » Tue Aug 18, 2009 6:06 pm

neoTatewaki wrote:As for the platform, well... sorry, and not to sound fanboyish or like an asshole, but I've always viewed PC users as my target demo. To be honest, the X360 deployment capability is a cool afterthought and second to PC development, IMO (though I'm already learning that coding for console isn't as forgiving, and it's a good lesson to learn :P). If one can find a way to execute anything I develop under MacOS or Linux, so much the better... but those users aren't factoring into my design process. As such, I have no hesitation in abandoning C++ for C#/XNA. I know; the market for Linux gaming exists (Lokigames, anyone?), but it's best left to someone else.


I'm primarily a Mac user and developers who make that choice frankly piss me off. It's NOT hard to develop cross-platform software.
User avatar
Coda
Magickal Melon 666

  Offline
 
Posts: 762
Joined: Sun Apr 05, 2009 12:19 pm
Location: Holy crap, Coda set an avatar

Re: An Elysian Tail

Postby Relee » Wed Aug 19, 2009 7:38 am

Coda wrote:
Relee wrote:I gave Python a try, but I didn't like it. It tries to do things 'behind the scenes' that I like to have complete control over. Drives me a little nuts. ^.^;;

C++ is a lot easier, at least for me. Most people find the opposite to be true, but I don't really get how.


No, no, I understand where you're coming from. There's a reason I said I don't think Python (and other very-high-level languages) are appropriate for some things.

One of the things I like about Python is that it's a higher-ORDER language: you can treat functions as objects, including putting them in variables, passing them to functions, putting them in arrays, etc. This makes some things REALLY elegant. I made an IVR phone system that boils down to a dictionary of { phone button => function }. VERY nice.



You can do that with C++ too, you can have a pointer to a function and pass the pointer around as a variable, and still use the pointer as a function. That way you can select which function to use from a variety of them, at any given time.
-- Relee the Squirrel --
User avatar
Relee
Watermelon Graduate

  Offline
 
Posts: 904
Joined: Mon Jan 21, 2008 2:25 am
Location: Sarnia, Ontario, Canada, North America, Earth, Sol, Milky Way, Universe 2

Re: An Elysian Tail

Postby draque » Wed Aug 19, 2009 8:24 am

Coda wrote:I'm primarily a Mac user and developers who make that choice frankly piss me off. It's NOT hard to develop cross-platform software.


You're more hawkish about this than you've been in any religious discussion that we've had here. ^^()
User avatar
draque
Watermelon Graduate

  Offline
 
Posts: 907
Joined: Mon Jan 21, 2008 11:57 am
Location: <=CLEVER-LOCATION=>

Re: An Elysian Tail

Postby Coda » Wed Aug 19, 2009 9:04 am

@draque: XD What can I say? When it comes to religion and politics I'm perfectly happy to discuss and debate comparative merits without getting offended (unless someone's TRYING to offend me, of course). The same is true when it comes to technology, but technology is made of objectively-defined facts, and it's a field that I'm immediately involved in. The fact of the matter is that Windows has fallen behind the curve compared to its competitors and primarily survives due to vendor lock. It's a comparatively-inferior operating system that has the biggest propaganda machine in the industry behind it. Now, feel free to debate the relative merits of the desktop environment, or the system experience as a whole, but Windows lags WAY behind UNIX (including Mac OS X) in terms of performance and security. When developers and publishers fall victim to the vendor lock, especially when they're producing a product I'm actually interested in... well, it pisses me off, because I'm not about to saddle my home network with the vulnerability that is a Windows machine just for a few games and tools.

@Relee: Just because you CAN doesn't mean it's PLEASANT. Function pointers aren't nearly as elegant as function objects, and C++'s support for member function pointers isn't transparent to regular function pointers. Write the code to do that in C++ (especially if you don't have Boost or Qt at your disposal) and then write the same code in Python and tell me which one's more elegant.

Like I said, Python and its ilk are suitable for high-level design and control flow.
User avatar
Coda
Magickal Melon 666

  Offline
 
Posts: 762
Joined: Sun Apr 05, 2009 12:19 pm
Location: Holy crap, Coda set an avatar

PreviousNext

Return to Games and Gaming

Who is online

Users browsing this forum: No registered users and 2 guests

cron