View Full Version : ALT: The Perfect Game Programming Enviroment
henryj
2002.11.27, 04:24 PM
The recent discussion about buying a BASIC ide and the never ending debate about what's the best language to learn leads to the question...
"If you could create the perfect game development environment, what would it be?"
Would you have a compiled language like c or interpreted like perl?
Would you want low level access to graphics api (sdl, opengl) or a built in scenegraph?
Would it be a visual system like Real Basic or lower level like Project Builder?
Would it even be code based? Would it be more like Blender.
skyhawk
2002.11.27, 09:45 PM
Definitely a compiled langauge that way you could get as much speed as possible from it.
The enviroment should have lots of high level VERY easy to use libraries that allow people easy ways to do thing, but should also keep everything open up to allow for customization. Such as a sprite drawing library that has simple drawing routines and everything, but also allows you to access the data itself so you can make changes to the actual data.
And Project Builder has lots of graphical ways to put things together combined with IB. But the IDE would include tools to do things. Such as if it had a sprite creator, then it would AT LEAST include a simple sprite editor so that all those who don't have Photoshop could still create things.
And it would have to have code. All could languages and IDEs to create games and such have to have code. At least scripting code. And the code should be very C like, because, I believe the BASIC languages leave too much room for non good stuff( bad programming!) in. Not that I'm sayign you can't program bad in C, I would just not like people to just throw variables all over the place and other stuff...
In conclusion, yeup :)
Cocoa + PB + IB work just peachy for me :p
skyhawk
2002.11.27, 11:55 PM
Originally posted by jabber
Cocoa + PB + IB work just peachy for me :p
but what about for people with no skill?
geezusfreeek
2002.11.28, 01:07 AM
In order to most effectively use a higher-level environment, one must know how it works at a low-level anyway. A bad programmer will always be a bad programmer until he gets better.;)
Originally posted by skyhawk
but what about for people with no skill? That's the wonderful thing about Cocoa, you don't have to have skill. Just control-drag and type a few lines of code and you have a custom word processor!
kelvin
2002.11.28, 05:30 PM
Cocoa is great. However, I do find that features in Cocoa are not always complete or useable. Much of the API is still being developed and stands to be vastly improved. e.g. if you want to use Quicktime, you still have to fall back on some carbon calls for nitty gritty, even though there's a NSView subclass for quicktime. I'm happy with the pace at which it's advancing though. I use Cocoa for everything I do now. Haven't touched Macromedia Director in a while...
I prefer METAL and Photoshop now, but I am starting to learn C so that will probably change to PB and IB in a year or so
henryj
2002.11.28, 08:27 PM
I prefer METAL and Photoshop now, but I am starting to learn C so that will probably change to PB and IB in a year or so
Why would you change. What is wrong with Metal and Photoshop that will be better with C, PB, IB?
Why did you choose Metal in the first place.
Originally posted by henryj
Why would you change. What is wrong with Metal and Photoshop that will be better with C, PB, IB?I can see for one of two reasons: 1) better speed, 2) if you want to be hired as a programmer, they will probably want you to know C/C++.
henryj
2002.11.29, 12:55 AM
1) better speed,
Define speed. I was surprised at the number of games in udev that were written in Basic. For the most part they weren't slower than the c games (one of the fastest, smiley tag was written in an interpreted scripting language!) and they were more 'finished' than the others. So the advantage is you get the game done faster, against little or no performance drop.
What would happen if you could write your game in a language simpler to use than basic, that offered the performance of c.
2) if you want to be hired as a programmer, they will probably want you to know C/C++.
Very good point, one that I use often in the c++ vs obj-c debate. I'm a professional c++ programmer, I write games for relaxation(?). Do other's here write games for the games sake or for your CV?
Damian
2002.11.29, 06:45 AM
I use METAL rather than PB/ObjC for 2D games, because I haven't much time and BASIC is faster for quick and dirty development. Because METAL's graphics statements are only wrappers around QuickDraw functions, the games run at about the same speed. The bottlenecks in QuickDraw 2D games are the system bus and memory. Since the 'centre of the loop' is the same whether a C program or a BASIC one is 'copybits'ing, use the quickest to develop. I find METAL/GraphicConverter/ResEdit a lethal combination.
Originally posted by henryj
Define speed. I was surprised at the number of games in udev that were written in Basic. For the most part they weren't slower than the c games (one of the fastest, smiley tag was written in an interpreted scripting language!) and they were more 'finished' than the others.Good point. What I was thinking was basically this: in TNT or Metal Basic, all of the calls are wrappers around Carbon/QT functions. Obviously that will slow things down some, but Cocoa is the same way (I believe). Advantage to Cocoa being that you can bypass those wrappers or use OpenGL if speed becomes a problem. Compare that to the two Basics where you use the wrappers always, for better or worse.
Having said all of that, I wish TNT or Metal Basic had been around when I first began programming games. I think I would be farther along that I currently am :o
AJ Infinity
2002.11.29, 12:58 PM
An environment like Flash or RealBasic would do well. In Flash, people get started with simple interactive UI scripting easily, then they move on to drag-and-drop Components (like plugins in RealBasic), forms, and quizzes, and then their scripts get more complex as they do different things such as navigation tracking with variables, objects, and arrays. Finally they start working on the server communication, XML, strings, making of games, and chat rooms. Sounds like RB, right. I've worked with RB before and I don't like it because I don't like Basic. I had bad experiences with Basic on TI-86/TI-89 calculators :(. ObjC I'm not too fond of it although I'll use it over C++/C if I had no other choice :rollyes:. But my experience lies mostly with JavaScript, ActionScript, AppleScript, and now Java and ObjC (Or I could have just said Cocoa :cool:).
I began programming games in C, and since then I've despised that languages. I worked with GLUT and OpenGL, and I would write the code (and the makefile) in pico, and compile the code with that cc command. I did this all out of the Terminal because I didn't have the Developer Tools. For some strange reason, they didn't come with my Mac. I have them now, though, but I'm still using the Dec. 2001 DevTools.
After C, I realized there had to be something easier. I checked Flash 5 but ditched it. I picked Coccoa/ObjC and started building Cocoa apps. Why I'm not to fond of ObjC is because those [action receiver] and NSString *myStringName things are weird :). Well, I' use them though :D. Then I realized there was something else...Java. Then I got a Flash MX demo and went crazy exploring Flash gamedev. My demo ended after 30 days and my father (giver of money, supplier of Macs) ordered it from Creation Engine. Yeah, nice father, huh? He's like that when my most of my money goes to expensive books (Inside LightWave 7.5, Flash MX Game Design Demystified, Physics for Game Developers, AI Game Programming Gems) and software (LightWave 3D), and games:).
Zachary
2002.11.29, 01:21 PM
METAL basic is fine for me. It'll be a hell of a long time before I make a game that needs to be faster than what METAL can provide.
skyhawk
2002.11.29, 05:46 PM
can metal get 60 fps on a relatively good looking game that has lots of moving parts?
Originally posted by skyhawk
can metal get 60 fps on a relatively good looking game that has lots of moving parts?
Most likely, tell me what resolution and what all you need in the program. METALs week point is its slow copyrect and dblit speed (copying screens and sprites), but for all I know there just as fast (or slow) as C copying
Feanor
2002.11.29, 07:46 PM
The thought that I'd have a consistent interface to library functions is one thing that is attractive about a Basic implementation, but I don't think I could give up the C family of languages. What I would like is a more helpful IDE. While Project Builder is OK, and CodeWarrior seemed fine when I used it, I'd love something that gave me a lot more feedback.
I should be able to drag-and-drop function prototypes into my code right from a documentation palette, and have them turn into function calls. I should be able to create a variable and have it declared immediately in the correct place. I should be able to drag those variable names right into function calls. Symbol auto-complete would rock -- then you could use nice self-documenting variable names without worrying about typing them wrong half the time (or just the pain of having to type them over and over). Or misspellings of symbols should be high-lighted.
I did find a little utility to help with method prototypes, but it's not really there yet -- and I forgot the command key combo(DOH).
I would like a text engine that could draw as fast as OpenGL -- at least one that seemed to. Maybe I should turn off anti-aliasing :).
Think of any no-brainer manual labour involved in writing code, and there should be a way to automate it, or at least speed it up.
Otherwise, if I could write everything in Objective-C and not have to worry about optimising everything, I'd be really happy. Compared to Java and Straight C, it's so wonderful. Unfortunately when you design your own classes you still have to mess around with malloc sometimes, and I'd hate to have no control over pointers, like in Java, but I'm sick to death of looking up stuff in the man pages. I have NO memory for function prototypes. It's a curse.
skyhawk
2002.11.29, 07:47 PM
metal can do opengl (fastest to screen copying I know)? and the thing would be 640x480 with 32x32 tile sprites with variable units tiles. and how about special effects such as causing the full screen to wave/shimmy?
I do not know everything metal can do.
and why does every metal program I use stop the program and "break", in my opinion, when I press Escape? That's stupid. bleh.
and does metal have any limits on numbers? number of sprites? number of objects? can metal do linked list? stacks? queues? sparse matrices? Does it have pointers? how good is it's floating point values?
OneSadCookie
2002.11.30, 01:53 AM
Symbol auto-complete would rock
Project Builder completes symbols that have occurred in the current file using F5 (which is the standard completion key for Mac OS X, and works in places like the path field of open dialogs).
vBulletin® v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.