PDA

View Full Version : Where to start?


Next Generation Chocolate
2008.01.06, 07:13 AM
I'm new to the forum. Anyways, seeing how I'm extremely new at game design (no knowledge whatsoever), can someone please tell me, what would be the best way to learn, and actually make a greeat 3d game one day? BTW, what would be the best languages to learn, and what is the BEST way to start possible?

diordna
2008.01.06, 11:31 AM
Start by reading this post (http://idevgames.com/forum/showthread.php?t=14712) from a few days ago, then ask any other questions you may have. Let's try to keep the duplicate content to a minimum.

FreakSoftware
2008.01.06, 06:39 PM
That thread really sucked, though. Nothing informative at all IMO. :)

The way I started learning programming was (other than HyperCard) starting to use REALbasic ($100, academic version is less). The language is simple (no memory management) and there's a large really friendly community ready to help. I wrote mainly applications (and some games) until I got pretty darn good at it (if I may say so). I learned all about basic programming principles and object oriented programming, and then I started getting into the more advanced stuff.

To do this "advanced" stuff I need to work with "Declares" which are one way for REALbasic to talk to C-based APIs like Carbon (the older/traditional set of APIs for Mac development). Using declares required learning a bit of how to use C, so that's how I got my feet wet with C.

One major downside to REALbasic for game development is that there is no native set of classes that really scream "game development." There is an ancient 2D sprite surface which was cool in 1998, and there's the newer RB3DSpace which almost works fine for pretty good 2D stuff, but is wonky for 3D stuff, so generally, it's just not... ideal. Then tack on the other missing features like advanced audio and device input and it looses its appeal.

So for this reason, I learned C and started using SpriteWorld. SpriteWorld (an oldie but a goodie) is a 2D animation toolkit that provides a bunch of functions to make 2D games. With that I wrote (actually rewrote, since I had previously written it in REALbasic) Space Spuds (an asteroids game) which was not very difficult at all and very very helpful in learning stuff.

After I did that I moved on to dabble a bit in 3D. I bought OpenGL Game Programming which teaches the popular cross platform API for 3D graphics. (This is what big name games like Doom 3 use.) I did a few things there, but got sidetracked with other projects, so I put my game development on a hiatus.


That's the short version of how I learned things. I'm still not an expert in 3D/OpenGL stuff, but I know enough about things to understand what pieces there are and how everything fits together.

Naturally, I'd recommend doing the same thing I did, but if you're brave, resilient, and persistent enough I definitely think it's possible to just jump in and start with C. In itself it isn't a super hard language to understand if you take it bit by bit. (They taught it to complete morons at school, after all.) SpriteWorld, although old (and slowly being rewritten from the ground up to be much more modern) still works great and is fast. It's also really simple. I also have a decent enough "engine" that's commented well to get you up and running with it, handling all of the audio, display, and input stuff letting you focus on learning how to organize a game and use C.

As you can see by reading the other thread, every person has their own opinion as to what you should start with. TNT Basic, Future BASIC, Blitz, Processing (never heard of it before), HTML???, FreeBASIC, ObjectBasic, Ruby, Python, Lua, etc etc..... There's a billion options all to say "start with something simple." The problem I have with 90% of those suggestions are that they're either a) outright silly (IMHO), b) next to nobody uses them at all, or c) next to nobody uses them at all for games. The ones that are left over (Blitz, TNT Basic, and a few others) are nice and game focused so they're pretty good for starter stuff and even more advanced things, but I think it's worthwhile to at least consider taking something a little more meaty step by step.

igame3d
2008.01.06, 07:35 PM
Never heard of Processing? Living under a rock much?
Its been around long enough for five books to be written on it.
And its only at version 1.0 beta!
I'm guessing at least five years since I first saw it.

Lua's not used in games? What?
That rock must be a big one.

Homeworld 2, World of Warcraft, Freedom Force, Marathon: Aleph One...just to name a few.

Here's 93 game related pages (http://www.pspbrew.com/?search=game&Submit=Search&page=downloads) for Lua on Sony PSP

The OP has big plans for a great 3D game, but has not really started even looking into what they need to learn, else they'd have tried whats available and taken a look in the book store and picked up something.

Also note the specific reference to "game design" which is not exactly game programming. Not much point in souring their viewpoint with opinions on this or that language if what deep down they want to do is write great fiction that others can interact with.

The best advice for the OP is to dig around these forums, read lots threads that intrigue your curiosity, until you feel like a total nerd, and then you will be ready to choose your next move.

Ask questions, spill your brains on a few threads, and find an area of learning you feel you can follow through on.

Use the search function.

And in closing I will say, iGame3D with Lua is the best thing to learn, all other options are for the eternally damned. Its true.
;)

AnotherJake
2008.01.06, 07:38 PM
I did the old fashioned way by learning C, starting in like 1990 or so. I wouldn't recommend against it, but I personally think that nowadays there are two really fantastic solutions for heading straight into 3D:

1) If you have a Winderz PC (I dual boot into XP on my Mac for it) you should absolutely look into learning C# and programming XNA with it. That is hands down (in my opinion) THE best thing going on for independent game programmers nowadays, and C# is a really awesome language IMHO (not quite as good as Obj-C, but real close). And it's free on Windows. You can also move those games onto your XBox 360 if you have one, but it costs $100 a year to do so.

2) If you're on a Mac (only or even primarily, which you should be because this is a Mac forum) there is Unity, which is a great 3D game engine. Last I checked it can be "programmed" with either Javascript or C#. Highly recommended, but it costs a bit to do (I don't have a price because I haven't looked in a very long time, but I seem to recall like $250?).

FreakSoftware
2008.01.06, 08:57 PM
Never heard of Processing? Living under a rock much?
Its been around long enough for five books to be written on it.
And its only at version 1.0 beta!

Ok..... I was just saying I've never heard of it.


Lua's not used in games? What?
That rock must be a big one.

I never said it wasn't. I've played with it myself.

FreakSoftware
2008.01.06, 09:07 PM
2) If you're on a Mac (only or even primarily, which you should be because this is a Mac forum) there is Unity, which is a great 3D game engine. Last I checked it can be "programmed" with either Javascript or C#. Highly recommended, but it costs a bit to do (I don't have a price because I haven't looked in a very long time, but I seem to recall like $250?).

Yeah, this was another point I was going to make. Most suggestions are always for things that are free. (Probably because a) free is usually nice and b) most people asking are young and have no money).

Paying for things usually gets you some pretty spiffy stuff you won't find elsewhere, though. This is why I'm still a REALbasic fan for beginning programming; it's easy to pick up, scales pretty well, and has something of everything built-in, unlike most other solutions.

XNA & the different Torque engines are great on Windows, Dark Basic and some others look nice as well, though being a Mac development forum...

Unity's a great solution. Unity is definitely wonderful and more and more of the people on this site are using it. 2.0 w/ networking has finally gotten me on board. The only downside is buying it, finding out you don't like it or programming at all, and then wondering what else you could have spent the $200 on.

AnotherJake
2008.01.06, 09:27 PM
XNA & the different Torque engines are great on Windows, Dark Basic and some others look nice as well, though being a Mac development forum...

Yeah, that does seem a bit odd doesn't it? But consider this: I think of myself as 100% Mac and have no intention of ever selling a software product on any other platform, but I dual boot into XP just to fiddle around with XNA from time to time. It's *that* good! I don't use Windows for anything else at all. It is incredibly cool to make a little game and upload it to my living room Xbox 360 to play on the 40" HDTV in all its glory. If I were a Windows user wanting to start 3D game programming, I wouldn't consider any other alternative. If I were a Mac user wanting to start seriously getting into 3D game development, I would still consider it. In fact, if it were I who was starting off and didn't necessarily have an attachment to Mac and loved 3D games so much that I wanted to seriously get into them, I would most definitely drop the Mac and go Windows-only just for XNA. I can't believe I just said that, but dude, it's that cool! Not recommending against Mac, but just being honest about 3D game programming. Unity certainly fits the bill on the Mac IMHO, but for the price, if you have an Intel Mac, you could afford Windows and XNA too!

FreakSoftware
2008.01.06, 09:47 PM
Yeah, being able to upload to a console... super cool. I'm pretty sure I heard some things somewhere about Unity & Wii being worked with. That will be awesome if it ever happens.

They're now teaching XNA at my school, but I just graduated so I couldn't take the course. A one stop shop for Windows & Xbox development is pretty enticing. Wonderful experience for working in the industry too.

GarageGames has an interesting solution as well. The Mac side is still lacking (though not as much as before), but they now allow you to basically use the same code and deploy on Mac, Linux, Windows, Xbox 360, and the Wii. That's pretty awesome. There are still some parts that are playing catch-up, and there's some porting needed between different engines, but let it evolve for a few more years and that'd be a nice package. (A little pricey in indie terms, but far less than hundreds of thousands of dollars.) Pretty cool especially considering it costs $150 to get started. The other nice thing about it is that there are a few books on Torque and the community is huge.

AnotherJake
2008.01.06, 10:00 PM
The other nice thing about it is that there are a few books on Torque and the community is huge.

Yeah, I have one of the books: 3D Game Programming All in One. It's a pretty good comprehensive book on how to make games with Torque, but sadly, it is Windows-centric.

I'm still split on Torque. I didn't like it on the Mac and I'm still a little peeved at them on their Mac support (I assume my license is still valid but I haven't checked up on them in over a year), but it's a pretty good product on Windows, like you already said. They also have great tie-in products with XNA (as I've read, but not tried personally) and what appears to be a great relationship with Microsoft on that front.

Unity on Wii would actually be a HUGE plus on Unity's side. And Unity is cross-platform too, as I recall, if that's your thing, and you add some extra cash to your license. Don't know if that's changed recently though...

aarku
2008.01.06, 11:09 PM
Yeah, being able to upload to a console... super cool. I'm pretty sure I heard some things somewhere about Unity & Wii being worked with. That will be awesome if it ever happens.
http://unity3d.com/company/news.html#Unity-To-Enable-Nintendo-Wii-Games

You need a Nintendo dev kit, but you can contact Unity to get using it. Trick is the Nintendo dev kit. http://www.warioworld.com/apply/wii.html :)

In the mean time, someone made a plugin that lets you use the Wii remote+nunchuck in Unity on the Mac. I truly believe if some indie developer made a cool console grade Unity game that would work well on the Wii (By first developing for Mac/PC), it'd be very within the realm of possibility to make it happen. Just need some of that damn talent and ideas.

Unity's a great solution. Unity is definitely wonderful and more and more of the people on this site are using it. 2.0 w/ networking has finally gotten me on board. The only downside is buying it, finding out you don't like it or programming at all, and then wondering what else you could have spent the $200 on.
They do have that 30 day trial and they have a record of liberally extending trial licenses.

-Jon

aarku
2008.01.06, 11:16 PM
what is the BEST way to start possible?
http://unity3d.com/

More than worth every penny.

-Jon

Hairball183
2008.01.07, 12:11 AM
But what if you don't have any penny's?:p

igame3d
2008.01.07, 12:20 AM
Unity got three pages of coverage in this months Game Developer magazine.
The three reviewers were pretty much in love with it.

If the Windows version was available I don't think there would have been any complaint at all.

I've been reading the magazine for thirteen years, waiting for a Mac game development program to show up. This is a milestone.

The money I spent on Unity makes me feel like a proud uncle every time they make a move forward in the industry. Well thats about where I limit the religious awe that tries to take hold.

I hear a choir of angels calling...

aarku
2008.01.07, 12:23 AM
But what if you don't have any penny's?:p
Sell blood/plasma/other fluids for a month or two. :)

AnotherJake
2008.01.07, 12:42 AM
Sell blood/plasma/other fluids for a month or two. :)

I agree. Good quality stuff is worth bleeding for if you can't pay for it up front! :)

No seriously, the reality of the situation, especially on the Mac, is that you sometimes have to ... gulp ... pay for things if you want them.

If you want to get into something that takes up a serious amount of your time, like 3D game programming, it's gonna cost you a little investment to get to do it unless you really think you're smart enough to figure it all out on your own without other investments like books. From my own personal experience (many years of plinking around with this stuff), again, I can safely say that either Unity (Mac path) or XNA (Windows path) are two of the best choices one could make for jumping into 3D game development. A lesser path might be Torque (well established commercially) or iGame3D (indie Mac) or Dim3 (indie Mac), or something else I've overlooked. The hardest path (but achievable) is doing it yourself, which is what I've done but do not recommend for or against, except to say it is MUCH HARDER TO DO THAN YOU THINK.

igame3d
2008.01.07, 12:49 AM
I hadn't played with any processing demos in a while and went fooling around over there and found Video Pong (http://lux.vu/blog/?p=38)

It turns on your camera, and you move your arms to move the pong paddles on both sides of the video screen! In your browser!

I'm blown away...by pong!

More Processing demos (http://processing.org/exhibition/network_page_2.html)

ynda20
2008.01.07, 08:13 AM
Yeah, well I'm a newbie here. But I'm currently developing a 3D OpenGL game in futureBASIC. BASIC is the best option for anyone new to programming cf C or C++ etc. And FutureBASIC has just been released as freeware at www.stazsoftware.com. There's a 3D openGL demo in the pack which compiles into Universal binary.

Hairball183
2008.02.02, 12:11 AM
Yeah, that does seem a bit odd doesn't it? But consider this: I think of myself as 100% Mac and have no intention of ever selling a software product on any other platform, but I dual boot into XP just to fiddle around with XNA from time to time. It's *that* good! I don't use Windows for anything else at all. It is incredibly cool to make a little game and upload it to my living room Xbox 360 to play on the 40" HDTV in all its glory. If I were a Windows user wanting to start 3D game programming, I wouldn't consider any other alternative. If I were a Mac user wanting to start seriously getting into 3D game development, I would still consider it. In fact, if it were I who was starting off and didn't necessarily have an attachment to Mac and loved 3D games so much that I wanted to seriously get into them, I would most definitely drop the Mac and go Windows-only just for XNA. I can't believe I just said that, but dude, it's that cool! Not recommending against Mac, but just being honest about 3D game programming. Unity certainly fits the bill on the Mac IMHO, but for the price, if you have an Intel Mac, you could afford Windows and XNA too!

I thought you liked Obj-C better?

JustinFic
2008.02.02, 03:00 AM
If you want to get into something that takes up a serious amount of your time, like 3D game programming, it's gonna cost you a little investment to get to do it unless you really think you're smart enough to figure it all out on your own without other investments like books.

Seconding this. I started with the C++, OpenGL and SDL route, which as far as code goes is a pretty easy and powerful combination. BUT, when I look back, I've probably spent over $1000 just in books. Not to mention several years worth of building a code base.

It's a weird feeling to then grab the 30 day trial of Unity and be able to do everything I've done so far in C++ and OpenGL, times ten, after taking about 5-10 hours to work through their tutorials.

You factor all that in, and suddenly, Unity is actually the most affordable option.

AnotherJake
2008.02.02, 01:04 PM
I thought you liked Obj-C better?

I do! ... but honestly, C# is almost as good IMHO, and I would be more than happy to use it full time if the need was there. The only minor tick against it is that it runs through a virtual machine -- a fast VM, but a VM all the same.

But the language isn't really my point. Like JustinFic said, in the end, what you get with the right tools makes all the work and investment in other stuff look kind of silly in comparison. When I started out in this hobby there wasn't any Unity or XNA. If there were, I would most certainly have taken one of those routes. XNA is free if you have Windows (although admittedly, you do still have to do a substantial amount of work to use it). Unity's price is easily worth it when you consider the raw thousands of hours of study and work it takes just to get started on your own -- not to mention the cost of the books. Sure you can do the easy stuff right off the bat without much more than a few weeks of effort, but you will quickly discover that things can become somewhat complicated past a spinning cube. On your own you gotta figure out how to do texture loading, model loading, scene organization, culling, integrating physics, sounds, sprite drawing, particle generation, billboards, skyboxes, terrain, collision detection, picking and selection, basic windowing and input, and maybe even skeletal animation depending on what you want to do, and the list goes on and on and on... Thousands of hours... OR you can bite the bullet and actually pay for Unity and get all that and then some for a day's worth of reading tutorials. Your choice. I'm still doing it the hard way from scratch, but I don't recommend it is all I'm saying.

Hairball183
2008.02.02, 03:45 PM
Oh. Well, I know what software I'm buying next:D Although I will continue to learn Cocoa and Objective C…

AnotherJake
2008.02.02, 04:07 PM
Oh. Well, I know what software I'm buying next:D Although I will continue to learn Cocoa and Objective C…

That's a wise choice. ;)

I should also note that continuing to learn Cocoa and Objective-C is especially worthwhile for things other than games. And you're starting off at the right age too!