Game Programming discussion thread

  • 103 results
  • 1
  • 2
  • 3
Avatar image for funexplosions
FunExplosions

5534

Forum Posts

-1

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

#51  Edited By FunExplosions
@Joru: @Shirogane: @Venom2112: Thanks for the feedback. And sorry, I should have explained my goals. I'm trying to create a game. A small game at first, obviously. I'd like to start with a 2d game, but from what Venom is saying it seems much smarter to just go-for-broke and tackle C++ instead of C#. I'm all about wanting my game to run perfectly smooth and incredibly efficient, and - had I known that scripting programs were such a bog on system resources - I wouldn't have even tried Game Maker. 
 
And actually, it seems that Microsoft has some really good tutorials set up for Visual Basic, C#, and C++. Not sure how advanced they get, but it's definitely enough to keep me busy for a couple weeks. Any tips on specific goals to try to achieve with my first project? Common beginner's blunders?
Avatar image for duderbattalion
duderbattalion

288

Forum Posts

42

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#52  Edited By duderbattalion
@FunExplosions: If you are starting with C++, my pro tip would be .. don't get frustrated if you see a bunch of pointer related errors, or errors that seem like the whole world's gonna end. The solutions are generally simple fixes (or not  :P) but once you get the initial concepts down, it gets much much easier. If you are just starting out with a 2D game though, I'd highly suggest checking out XNA's first tutorial on making a 2D game. It was somewhere on "http://creators.xna.com" but they seemed to have put up a new site, the tutorial must be somewhere around there. It's based in C# but I found the tutorial pretty lucid and easy to understand. So that might be a good starting point. You can also try out reimers.net too .. I have heard a few people talk highly of it. 
 
I am going to be updating the main page to include links to resources and tutorials. So maybe check back in 15 mins and it should be up on the first page.
Avatar image for iam3green
iam3green

14368

Forum Posts

350

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

#53  Edited By iam3green

i don't enjoy programming languages. i have made flash games. it's just alright for doing that. i made a simple batman quiz and a shooting target practice game. the target practice one took me a while to figure out how to make it. there were a lot of looking online for guides.

Avatar image for joru
Joru

314

Forum Posts

440

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

#54  Edited By Joru
@FunExplosions: I personally recommend not to learn C++ as a first language if your goal isn't programming in itself, but making a simple game. You be learning the language for a long time and not really getting anywhere, because there is no integrated way in C++ to do any graphics related stuff. Use C# and XNA or Java to make the game and learn C++ in parallel to improve your understanding and skills. 
 
As for the speed of scripts and so on, tons of games use Lua, Unreal uses UnrealScript and so on, simply because they are easy to use. Yes, they are way slower than C++, but it doesn't matter, because the speed difference on modern PC's is negligible in most cases. Engines are written in the quicker languages, because they are the part that needs to be fast, but you don't have to worry about all that if you aren't making one. Honestly, if your 2D game is slow, it isn't the fault of language - it's your bad design that's slowing it down. It's much better to learn to write neat code in an easy-to-understand language, rather than making a mess with a complicated one. This is why people don't use assembly languages for many things - only the ones that really need to be fast.
 
@Venom2112:
 Absolutely agree with this, you do need maths for 3d programming, but it isn't overly difficult if you really enjoy it. All programming is maths heavy in one way or another.
Avatar image for duderbattalion
duderbattalion

288

Forum Posts

42

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#55  Edited By duderbattalion

I updated the main page to show all the links that people have put up here, so it's easier to access all the information in this thread. I'll try and keep the links updated .. so if any of you have any other links to share, go right ahead. 
 
Also, for all the people trying out new stuff, if you get stuck, just give a shout out here and we'll try and get you out of your rut ! Happy coding people ..  
 
Thanks to everyone for contributing :)

Avatar image for deactivated-5bce12b22bc03
deactivated-5bce12b22bc03

132

Forum Posts

264

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

I don't know if this counts as a game programming query, rather more of a general programming one, but I'd really like to know how I should go about finding a loop invariant. I know what a loop invariant is, but I just have no idea how to spot one in the examples I've read or how to distinguish one in my own programs. Any enlightenment on it would be greatly appreciated :)

Avatar image for joru
Joru

314

Forum Posts

440

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

#57  Edited By Joru
@groin: Just out of curiosity, what kind of job did you end up doing? What are your responsibilities and is it satisfying to you? I'm just interested in the real world situation of a programmer, and it would be very interesting to hear your experiences.
Avatar image for funexplosions
FunExplosions

5534

Forum Posts

-1

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

#58  Edited By FunExplosions
@Joru: @Venom2112: Awesome. Thanks guys. You don't even realize how much this has actually helped. Now I won't be wasting my time. Kinda lucky, too, as I actually started watching some C# tutorials last night and already have C# 2010 Express installed. I'm going to start off on the XNA Development page and see how it goes. I'll be posting here with any questions I end up having. Or I might just post my sure-to-be-hilarious first game here, as well.
Avatar image for groin
groin

870

Forum Posts

34

Wiki Points

0

Followers

Reviews: 0

User Lists: 4

#59  Edited By groin
@Joru: I work for a company that makes acoustic telemetry. I have a private office (many programmers only get cubicles!), dual monitor setup, and we go on boat trips to test the equipment and software. I never have to work overtime, my hours are flexible, and there is no dress code. Most of my responsibilities involve writing PC software that communicates with the acoustic telemetry hardware via Bluetooth or RS232 (serial cable). I also occasionally write unit tests for other people's code. I work with C++, C#, and Python on a daily basis. 
 
I would rather have this job then slave during crunch development cycles for less money and boat trips are awesome.
Avatar image for joru
Joru

314

Forum Posts

440

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

#60  Edited By Joru
@Smallerz: I don't know the scientific way of going about it, but it shouldn't be that difficult to figure it out in most cases. What do you need this for and what examples are you having trouble with? Loop invariants can be useful to know in some situations, but they are mostly academic ones, it isn't necessary to understand if you are just learning.
Avatar image for fluxwavez
FluxWaveZ

19845

Forum Posts

19798

Wiki Points

0

Followers

Reviews: 0

User Lists: 6

#61  Edited By FluxWaveZ
@groin: Yeah, it seems that game development could be much more stressful than what you're doing now.  It sucks that what's potentially the coolest programming job has so many faults.
Avatar image for deactivated-5bce12b22bc03
deactivated-5bce12b22bc03

132

Forum Posts

264

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

@Joru:  Ahh, thanks for clearing that up for me. I'm still somewhat of a beginner in C++, and I was under the impression that I'd need an understanding of loop invariants to design more complicated loops in the future, but if I don't have to I won't concern myself with them for now. Thanks for the help.
Avatar image for joru
Joru

314

Forum Posts

440

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

#63  Edited By Joru
@groin: That sounds interesting and really, that's one of the good things about Computer Science - there's plenty of work to be done in all kinds of different companies that do completely different things. And I agree, in most companies game programming seems like a under appreciated job. I'm sure that's not the case everywhere, but those jobs are also much more difficult to get. 
 
I'm kind of worried that people who study CS subjects that have the word "games" in it  aren't actually interested in programming. If they just want to make games, they might be really disappointed when their done, especially as it's not easy to get a job in the games sector at all, let alone a good one. Also, they might find that it's not actually interesting to them. Not trying to put anyone off by saying this! I just think that if you want to be a games programmer you should be interested in programming in general.
Avatar image for shanedev
ShaneDev

1703

Forum Posts

7

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#64  Edited By ShaneDev
@delski: Yeah thats kinda why I want to learn C++, a lot of my lecturers for Java will always say "Oh but C++ is better than Java for this, that or whatever" or talk about how powerful a language it is and my friend in games development does both C++ and Java and makes me want to learn it.
Avatar image for lumley
lumley

1040

Forum Posts

1309

Wiki Points

0

Followers

Reviews: 0

User Lists: 23

#65  Edited By lumley

This thread will probably end up being rather helpful to me. 
Next year I'll be starting a Computer Science degree at a university in the UK. Between now and then I'm going to attempt some basic game programming to give me a head start :) 
 
I'm planning, and hoping, to eventually get a job in the industry, fingers crossed I will eventually.

Avatar image for delski
delski

20

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

#66  Edited By delski
@ShaneDev: I think Java is a great language for general programmers and theres nothing wrong with it. I mean Java is used within software development industry at many different places and for many many different functions. When i started my degree it always started with Java, this is mainly because of how Java applies OO (Object Orientation) into programming language. The thing with C++ is that it lies on the wierd plain for some programmers in that it is OO but it's much lower down the language chain. Obviously because it was derived from the C programming language it has to deal with the mass complications that language uses but also the control the language gives. 
Avatar image for nickydubz
NickyDubz

380

Forum Posts

8

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

#67  Edited By NickyDubz

I love the idea of this thread im in the same interests as you...id like to make a game someday but as i have 0 creative/art skills thats hard to do haha

Avatar image for nickydubz
NickyDubz

380

Forum Posts

8

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

#68  Edited By NickyDubz

I love the idea of this thread im in the same interests as you...id like to make a game someday but as i have 0 creative/art skills thats hard to do haha

Avatar image for duderbattalion
duderbattalion

288

Forum Posts

42

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#69  Edited By duderbattalion
@NickyDubz: It isn't hard to find an artist online. Lots of artists are actually looking forward to working on cool projects. I posted a link on the main page where people are talking about 3D models and stuff. You can always post a link there .. see what turns up :)
 
@Lumley: Before we starting talking, I demand to know which football club you swear your allegiance to ! If it's Chelsea, then I am afraid we will have to let our fists do the talking :P
Avatar image for duderbattalion
duderbattalion

288

Forum Posts

42

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#70  Edited By duderbattalion

Also, I was thinking, if any of you have any indie projects or anything at all you'd like to showcase, let me know and I'd put it up on the main page.

Avatar image for raginglion
RagingLion

1395

Forum Posts

6600

Wiki Points

0

Followers

Reviews: 0

User Lists: 9

#71  Edited By RagingLion

I'm intrigued by this thread just because there are people interested in making games here it seems.  I don't know how relevant my own context is but I'm currently working on creating a 3D first-person game (first time I've ever done anything like this), though I've been thinking that I would probably make it in Source since I want to avoid having to create as many art assets as possible and since so many people already have access to it and so can easily play mods created with it.  I'm only at the design stage of gradually constructing the design document after spending little bits of time on it for the past number of months and I'm guessing it could easily take the next 1-2 years to complete as long as I keep at it.
 
In case I run into issues later down the line which might require programming expertise that I don't have, I'll keep an eye on this thread or any similar ones that might spring up.  If there's any threads out there on modding or even specific stuff on Source within the GB forums then I'd be interested in knowing - not my intention to post in the wrong place.

Avatar image for duderbattalion
duderbattalion

288

Forum Posts

42

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#72  Edited By duderbattalion
@RagingLion: That sounds like a pretty cool project. Joru and I were also talking about trying out stuff on the Unreal engine. Right now, I haven't really messed around with any 3D engines at all .. but am planning to (only if I can find the god damn time away from my assignments !!!!).  
 
So what language does the source engine api support ? Are you working on C++ ? 
 
P.S: On a side note, what the hell happened to Half life 2: Episode 3 ?? Source was probably the coolest game engine of it's time .. but I had heard rumors they are working on a new one.
Avatar image for lumley
lumley

1040

Forum Posts

1309

Wiki Points

0

Followers

Reviews: 0

User Lists: 23

#73  Edited By lumley
@Venom2112:  Nope, not Chelsea, Middlesbrough's my club.. although I don't really care about them anymore. My favourite Premier League team is probably Man City.
Avatar image for duderbattalion
duderbattalion

288

Forum Posts

42

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#74  Edited By duderbattalion
@Lumley: You must have been pretty mad after the match with ManU then. Ran pretty close.
Avatar image for lumley
lumley

1040

Forum Posts

1309

Wiki Points

0

Followers

Reviews: 0

User Lists: 23

#75  Edited By lumley
@Venom2112: Well tbh, I'm not really bothered about their results, they're just my go to team when I'm playing Fifa :P
Avatar image for lind_l_taylor
Lind_L_Taylor

4125

Forum Posts

6

Wiki Points

0

Followers

Reviews: 1

User Lists: 5

#76  Edited By Lind_L_Taylor

I think C# is the way to go. It's the newer of the languages
& has already built on top of everything that has come before
it.  I think Java is dead & C++ is great but still has its roots
stuck in UNIX, which isn't a bad thing if you already know
UNIX (or maybe do some perl programming for example).
But even so, most programmers are gonna write games
for the PC (to start) & for Microsoft for the most part.
 
My only problem with writing code is I don't have time to
play games.  They're both very time consuming & the amount
of time, money & commitment to game writing is steep. I
remember coming back from summer break back in college
& seeing a fellow student had wrote a whole game of a 
helicopter flying around the planet attacking stuff.  He was an
Alpha Geek, however, highly intelligent over normal humans &
most of the rest of us in the same courses. What
I did in that same time frame was play Star Control 2 &
some other games & enjoy myself.  I don't think that guy
ever became a game's programmer, but I'm sure he found
some kind of boring programming job in the private sector.
It's highly competitive though. Everyone has Masters degrees
& the folks in India can do it all for 25% of your salary.  Except
outsourcing hasn't applied too strongly to games programming
yet.  Game programming is still a Western industry...so far.

Avatar image for onarum
onarum

3212

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

#77  Edited By onarum

 I can only program a little action script, yeah pathetic I know, flash is a pretty much a dying platform, I tried learning other stuff like c++, I actually programed a little using an open source engine called panda3D, which uses python, but didn't got too far on it, I guess it just isn't my thing, but I find programming specially in games(arguably one of the most complex kind of programing) fascinating.

Avatar image for groin
groin

870

Forum Posts

34

Wiki Points

0

Followers

Reviews: 0

User Lists: 4

#78  Edited By groin
@Lind_L_Taylor said:
" I think C# is the way to go. It's the newer of the languages & has already built on top of everything that has come before it.  I think Java is dead & C++ is great but still has its roots stuck in UNIX, which isn't a bad thing if you already know UNIX (or maybe do some perl programming for example). But even so, most programmers are gonna write games for the PC (to start) & for Microsoft for the most part. "
Do not listen to any of this.
Avatar image for lordandrew
LordAndrew

14609

Forum Posts

98305

Wiki Points

0

Followers

Reviews: 0

User Lists: 36

#79  Edited By LordAndrew

Game programming is something I've been wanting to do, but I really want to get better at legitimate programming first before getting involved in stuff like that.

Avatar image for lind_l_taylor
Lind_L_Taylor

4125

Forum Posts

6

Wiki Points

0

Followers

Reviews: 1

User Lists: 5

#80  Edited By Lind_L_Taylor
@groin said:
" @Lind_L_Taylor said:
" I think C# is the way to go. It's the newer of the languages & has already built on top of everything that has come before it.  I think Java is dead & C++ is great but still has its roots stuck in UNIX, which isn't a bad thing if you already know UNIX (or maybe do some perl programming for example). But even so, most programmers are gonna write games for the PC (to start) & for Microsoft for the most part. "
Do not listen to any of this. "
Fuck you!  The company I work for just ported their
entire Enterprise product to C# (millions of lines of 
code).  I think the industry could be moving away 
from C++, albeit the industry I'm talking about is 
not the gaming industry.
Avatar image for duderbattalion
duderbattalion

288

Forum Posts

42

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#81  Edited By duderbattalion
@Lind_L_Taylor: All right. Before things get outta hand, I hope you calm down a little. It''s an internet forum for pete's sake .. and it's OK if someone disagrees with your opinion. 
 
C# is a great language and is very useful in cases of rapid application development. But it has much of the same problems as very high level languages like Java have .. it gets slower the more complicated your computation becomes. This is not really a fault of the program .. it's just that such high level languages give you so many generalized tools and libraries that it gets more and more difficult to optimize as your code drives the hardware harder and harder (since most of the code is pre written in such languages).  
 
C++ is pretty hard at the start for this very specific reason .. lack of standardization, having to write a lot of code yourself (though with the inclusion of STL a lot of things have changed). In any case, as long as your code is well within your hardware configs, it is much easier to develop in C#, but most game companies try and push the console hardware to it's limits, and the only way they do it is by optimizing their code. Just think .. the PS3 and the Xbox hardwares haven't changed over all these years .. and yet games have been steadily getting better over the years. Why ? The only reason is tighter code, more tricks and hoops being run over .. in short .. optimization.  
 
Most of the industry would use C# to probably create toolkits which are extensions that are then used to integrate within the main code framework written in C++. So it definitely has an application to both. But saying that C++ is useless is a pretty bold statement. 
 
Having said that, as Beatrice Hall once said, I might not agree with what you say, but I will defend to death your right to say it ! :)
Avatar image for lind_l_taylor
Lind_L_Taylor

4125

Forum Posts

6

Wiki Points

0

Followers

Reviews: 1

User Lists: 5

#82  Edited By Lind_L_Taylor
@Venom2112 said:
" @Lind_L_Taylor: All right. Before things get outta hand, I hope you calm down a little. It''s an internet forum for pete's sake .. and it's OK if someone disagrees with your opinion.  C# is a great language and is very useful in cases of rapid application development. But it has much of the same problems as very high level languages like Java have .. it gets slower the more complicated your computation becomes. This is not really a fault of the program .. it's just that such high level languages give you so many generalized tools and libraries that it gets more and more difficult to optimize as your code drives the hardware harder and harder (since most of the code is pre written in such languages).   C++ is pretty hard at the start for this very specific reason .. lack of standardization, having to write a lot of code yourself (though with the inclusion of STL a lot of things have changed). In any case, as long as your code is well within your hardware configs, it is much easier to develop in C#, but most game companies try and push the console hardware to it's limits, and the only way they do it is by optimizing their code. Just think .. the PS3 and the Xbox hardwares haven't changed over all these years .. and yet games have been steadily getting better over the years. Why ? The only reason is tighter code, more tricks and hoops being run over .. in short .. optimization.   Most of the industry would use C# to probably create toolkits which are extensions that are then used to integrate within the main code framework written in C++. So it definitely has an application to both. But saying that C++ is useless is a pretty bold statement.  Having said that, as Beatrice Hall once said, I might not agree with what you say, but I will defend to death your right to say it ! :) "
 
Yeah..looks like I was talking out of my ass. I went & reread Chapter 1
of my C# O'Reilly book.  Although it claims C# is fast, I guess it doesn't
have the tweaks available.  Microsoft is betting the farm on it though,
according to the book.  Also, in most cases, if you want a faster experience
you just buy a bigger box.  Except in the case of consoles.  Perhaps 
consoles have reached their limit, as I can already see some glitchy
framerate showing up in Halo:Reach & perhaps other newer games
as well.

Though you can tweak code in C++ to make it faster, doesn't that
also make it more difficult to read/understand?  It'll get to the point
where only those that wrote it know what the hell is going on & new
comers will be looking at a mountain of confusion.  Why not just use
C instead of C++?  Seems that would be faster to rid yourself of the
OO overhead stuff.
Avatar image for x19
X19

2370

Forum Posts

39

Wiki Points

0

Followers

Reviews: 0

User Lists: 3

#83  Edited By X19
@Venom2112 said:

" Also, I was thinking, if any of you have any indie projects or anything at all you'd like to showcase, let me know and I'd put it up on the main page. "

Put this as a section on your front page so people know. 
 
If users post youtube clips of their work then I could make a blog linked to your site which archives them. 
 
Like this. 
 
Edit: That other thread I told you about was a bit  to ambitious so I have left it for now lol 
Avatar image for joru
Joru

314

Forum Posts

440

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

#84  Edited By Joru
@Lind_L_Taylor: OOP is good because it produces code that is easier to understand, more readable and easier to manage and design. Things like inheritance are very convenient to use when you're using a framework or something else that supports it. 
Code does have to be optimized, but it isn't necessary to write all of it in assembly. You need to balance readability, time and performance. 
 
Also, C# was developed by Microsoft, so even though there are ways to run it on other operating systems, it will always have an emphasis on Windows. This just doesn't cut it for most projects - you need the code to be platform independent. 
 
There is a new standart of C++ in development, currently called C++0x, but even though I am no expert, I think it won't solve the problems that are the reasons for people not wanting to use C++ in some cases. In most cases it adds even more features to the language, which will probably please the expert users that are making complex projects with C++ right now, but for newbies it might make the language even more intimidating, as it will get larger in scope.
Avatar image for duderbattalion
duderbattalion

288

Forum Posts

42

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#85  Edited By duderbattalion
@Lind_L_Taylor said:
 Why not just use C instead of C++?  Seems that would be faster to rid yourself of the OO overhead stuff. "
 
Correct me if I am wrong, but C is not really an Object oriented language. You don't have classes and objects in it and there is really no concept of data abstraction. And yes, you are right about the readability factor. Seeing a bunch of *myArray = (int*) what-the-hell-is-going-on; isn't exactly pretty, but once you get the hang of it, it's very very powerful. When you start working on more and more complicated projects, I am sure you'd be pleasantly surprised by how good tight code might run within a fraction of a second rather than say, ten of them. I just recently worked on some AI code that literally took 10 minutes to run, until I made changes in 4 lines of code, and now it completes within 10 seconds. Also, the C++ community has been working hard to make C++ more accesible. Things like smart pointers and more automatic error handling is being introduced in the new C++0x standar, so hopefully it makes it easier for newbies to start coding. (But to be honest, I don't think it's gonna be that much different that what it is right now .. unless you already know your stuff in C++). But anyways, bottomline is,  C++ .. terrible at the start, but it's kinda worth the pain. 
 
Coming back to C# though, if you really think about it, most of the functions can be overridden. So if you are a super geek who actually knows all the code that runs in the background, you can totally override most of the functions and write your own implementation. Except there are two roadblocks .. one, most people don't really program on that low a level. And two, I'm sure some of the code is final, as in, you can't override those sections of the source code. 
 
@Joru: Yeah, I'm pretty stoked about the new C++0x, especially since they say that a better implementation of hashing is on it's way (and high time I say !), but I'm not entirely sure what other features are being included. In any case, can't be more mindfuck than right now right ?  :P :P 
Avatar image for duderbattalion
duderbattalion

288

Forum Posts

42

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#86  Edited By duderbattalion
@X19: That's a great idea. I'll update the page so people know ..  
 
Edit: Done :D
Avatar image for x19
X19

2370

Forum Posts

39

Wiki Points

0

Followers

Reviews: 0

User Lists: 3

#87  Edited By X19
@Venom2112: I usually just copy everything in one go from the thread source page so if they can add youtube clips to their comment instead of just the link that would be great. Also best if they reply to you in the thread instead of PM you a message, mainly for the same reason as above.  
 
Will set up a blog when people start sending stuff in :) 
Avatar image for lind_l_taylor
Lind_L_Taylor

4125

Forum Posts

6

Wiki Points

0

Followers

Reviews: 1

User Lists: 5

#88  Edited By Lind_L_Taylor
@Venom2112 said:
" @Lind_L_Taylor said:
 Why not just use C instead of C++?  Seems that would be faster to rid yourself of the OO overhead stuff. "
 
Correct me if I am wrong, but C is not really an Object oriented language. You don't have classes and objects in it and there is really no concept of data abstraction. And yes, you are right about the readability factor. Seeing a bunch of *myArray = (int*) what-the-hell-is-going-on; isn't exactly pretty, but once you get the hang of it, it's very very powerful. When you start working on more and more complicated projects, I am sure you'd be pleasantly surprised by how good tight code might run within a fraction of a second rather than say, ten of them. I just recently worked on some AI code that literally took 10 minutes to run, until I made changes in 4 lines of code, and now it completes within 10 seconds. Also, the C++ community has been working hard to make C++ more accesible. Things like smart pointers and more automatic error handling is being introduced in the new C++0x standar, so hopefully it makes it easier for newbies to start coding. (But to be honest, I don't think it's gonna be that much different that what it is right now .. unless you already know your stuff in C++). But anyways, bottomline is,  C++ .. terrible at the start, but it's kinda worth the pain. 
 
Coming back to C# though, if you really think about it, most of the functions can be overridden. So if you are a super geek who actually knows all the code that runs in the background, you can totally override most of the functions and write your own implementation. Except there are two roadblocks .. one, most people don't really program on that low a level. And two, I'm sure some of the code is final, as in, you can't override those sections of the source code. 
 
@Joru: Yeah, I'm pretty stoked about the new C++0x, especially since they say that a better implementation of hashing is on it's way (and high time I say !), but I'm not entirely sure what other features are being included. In any case, can't be more mindfuck than right now right ?  :P :P  "
Right. C isn't an object oriented language, but that also means it
removes some overhead which increases speed (although it has
been a while maybe the OO stuff isn't as bad now).  I think I was looking
at some game programming books on books24x7 recently & they were 
stating something about still using C even though it was a C++
compiler. lol.  But anyway, I'm out of it.  I studied OOP in
College & C/C++, although I really preferred Pascal to C++.
I hear one of the founders of C# invented Pascal.  I'll probably
explore it, but I doubt I'll be writing anything complex.  I'm on a
Mac so I should probably read up on some Cocoa as well or 
"MonoMac" or just load up a w2k8 r2 vm with visual studio for
true c#.
Avatar image for funexplosions
FunExplosions

5534

Forum Posts

-1

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

#89  Edited By FunExplosions
@Venom2112: Thanks to the links you posted I've decided to start with some C++. I've been doing some tutorials in C# and I'm already seeing the limitations and the bulkiness. All the menus are just pissing me off and I feel like there's a lot more support out there for C++ developers, in terms of resources and tutorials. Maybe I'm assuming too much, but I'm just gonna re-start in C++ and see how it goes. 
 
And if you wanna see the sick progress I made during my tutorial-wandering in C#, check out my blog. (Note: I actually did a little more than that... but that's the only video I uploaded of my progress) 
 
Avatar image for duderbattalion
duderbattalion

288

Forum Posts

42

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#90  Edited By duderbattalion
@FunExplosions: Honestly, I am pretty new to C# too. But I totally see what you mean. C# is mostly used for building Windows apps, hence the extraneous code. In case you want just a simple program to run (like a console app), without all the other files that Visual studio throws at you, just click on File > Project and select Windows Console application. (Screenshot below). Though there could be nothing better than learning C++ .. it's a great language to learn !   
     
EDIT: Does anyone have any idea on how I can insert a image like the one below and continue wrapping my text around it ? Can't seem to figure out a way to do that .. 
No Caption Provided
Avatar image for underground
UnderGround

7

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

#91  Edited By UnderGround

Who's looking forward to Vanqusih?
Avatar image for delski
delski

20

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

#92  Edited By delski

At the end of the day choosing between the C languages all comes down to the match of simplicity v control. While all the C languages have some form of control, having more of it means you have a better gauge as pertaining to performance. Especially in games where performance is absolutely key, i'd say it's up there with the gameplay if not more important and lower level languages give you that control. I mean:

- C is the least simple but probably the most powerful. This is due to the almost zero percent OO nature of the code and the functionality of the memory management but to people coming in recently C is the most hard to read and understand so takes more effort.
- C++ is almost the same as C in terms of both categories but becomes slightly easier to read and understand for newcomers. There is also way more graphical API support for C++ so when creating graphical interfaces etc this imo is the best choice.
- C# is a much bigger jump to simple than C to C++ is. C# is the the C languages equivalent of Java in that it uses a 'garbage collector' to manage memory and get rid of unrefenced parts of the code etc, so lack of control affects performance. The most easiest to read and understand and probably the most supported for newcomers.
- The wierd one is objective C (the iPhone uses it) in that it's like C# but it's almost impossible to read the way variables and methods are declared is probably the most wierd i've seen and i would not recommend this to people wanting to learn the fundamentals of programming. But integration in objective C is pretty cool.

Avatar image for chaser324
chaser324

9462

Forum Posts

14945

Wiki Points

0

Followers

Reviews: 1

User Lists: 16

#93  Edited By chaser324  Moderator
@delski: 
Pretty nice summary. I totally agree with you about objective C. I've been programming for a pretty long time, and yet the first time I looked at it, I still was pretty confused. Unless a person really wants to develop for iPhone, they shouldn't go near it. Even if they do want to develop on the iPhone, they're still probably better off starting with C++ or C#.
Avatar image for delski
delski

20

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

#94  Edited By delski
@Chaser324:  Yeah i recently made a test app for the app store (kinda wanted to see what the process was) and at first it was totally confusing even somewhat in the basics as in where the main is (well the sort of main it is) etc. But creating interfaces with the interface builder is really slick and it's very easy to play about with making UI menus etc without having to play about with the code too much.
 
If anyone is interested in the iPhone i feel you must first play with the interface builder before going anywhere near the code. This is because the Interface builder can put the relevant parts you create into the code for you and you can create the links i.e what you want to happen when you press a button, into a simple event.
Avatar image for duderbattalion
duderbattalion

288

Forum Posts

42

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#95  Edited By duderbattalion
@UnderGround: That games looks hell awesome ! 
 
@delski: Do you have any idea how to develop for the iPhone from a windows machine ? I have heard something about this software called "Hackintosh" but never got around to using it. I have an iPod touch and was wondering if I could put stuff on it like I can on an Android. My Prof was telling me about how variables are acquired or released in Objective C, which is the most confusing part but it kinda bounced off the top of my head. Why does Apple have to be so closed out from everything else .. uhhh .. it drives me crazy sometimes !!!   
 
Also .. if you have any links to tutorials about Objective C .. or any pointers about iPhone development, leave a link here and I'll post it on the main page.
Avatar image for delski
delski

20

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

#96  Edited By delski
@Venom2112: I haven't looked at hackintosh but apple seems pretty specific on the fact that you need an Intel based Mac using Leopard or later to develop for the iPhone, which is why they made everything so closed off i think. There may be a round about way of doing it but i'd doubt you'd get the correct performance plus it would be kind of difficult to firstly preview a program, then to get it through the app store approval process. Plus theres almost always updating iOS for development at the moment so to keep up is probably hard.  
 
Also it's nowhere near as open as Android to even place apps that you created onto a touch/iPhone you need to pay the licence fee. This is not something where they want you to distribute apps at all without paying them.
 
This guys pretty good on the tutorial side, he runs all the way through from installing the programs needed to an app base (think theres about 30 tutorial vids from him): 
http://www.youtube.com/watch?v=abcMmyhKCno  
Theres seems to be loads on Youtube for developing simple applications for the iPhone.  
 
I'd also recommend checking this book out:   
http://www.amazon.co.uk/Yourself-iPhone-Application-Development-Yourself/dp/0672330849   
It's fully coloured and pictured for what you need to do and it even goes into multi view apps etc, it's a bit hard to read at first but you get used to it.
 
Also let me run through quick what software you need, what you need to spend to distribute on the app store etc: 
 
- XCODE development platform with a version of the iPhone SDK (You can get these by signing up free to the apple development program, The latest version of iOS is in beta so atm i'd recommend downloading iOS 4.1 SDK, which they tend to bundle with the version of XCODE that you need). 
- Obviously as i said MAC OS Leopard or later so basically every MAC from say 2006/2007 is okay for developing for the iPhone. 
- To distribute on the app store you need a licence, this costs 50 pounds a year, don't quote me but i think it's $90 for the year. This gives you access to placing any amount of apps onto the app store worldwide that go through the approval process.   
Avatar image for duderbattalion
duderbattalion

288

Forum Posts

42

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#97  Edited By duderbattalion
@delski: Awesome list delski ! I'll update the main page to include this section. Umm .. so quick question here. If I have an iPhone and a Mac to develop on, I still need to pay the 90 bones a year to put it on my own iPhone for testing purposes ? (just on my own iPhone .. not the app store or anything) 
 
Edit: Main page updated .. thanks man ! I appreciate the info ..
Avatar image for delski
delski

20

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

#98  Edited By delski
@Venom2112: No worries don't mind giving information, also feel free to ask more questions. To answer your question though Yes, at least that what i've found. I think you have to jailbreak the phone to be able to do it for free, i'm not exactly sure how you do it but i think it's possible with a jailbroken iPhone. 
 
Basically what happens is only after you pay do you get a 'code signature' (Mac uses wierd keychain access this is detailed in the book as well as one some tutorials) to use within XCODE that you can apply to your compiled program. Much like creating debug and release versions of a program you can create a device version of a program to place onto your device (I assume this is to prevent you from just gathering an amount of iPhones and placing them on there through XCODE). 
 
Then through your development portal you add devices that you can use for testing purposes, they call it 'Ad-Hoc' and you use the device ID for each device. You then have to recompile your program for this device ID so you can add it. It's really convoluted and closed off but this is Apple i guess.
Avatar image for von
Von

330

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

#99  Edited By Von

Apple themselves got a pretty comprehensive site regarding iPhone programming and Objective C. I haven't read the entire thread so I don't know if anyone else posted it but if you're interested it's over here:  http://developer.apple.com/devcenter/ios/index.action   
 
Also, if I'm remembering correctly, you can develop apps without paying 90 bucks, but you're limited to running them under the iPhone emulator. Haven't got that far myself in my forays of iPhone gaming programming though. Still working on the basics of Objective C.

Avatar image for joru
Joru

314

Forum Posts

440

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

#100  Edited By Joru
@FunExplosions:  What limitations of C# do you see? 
@Venom2112:
 You can probably use VM (Virtual Machine) software to run OSX in Windows and use that for iPhone development, but that propably has it's own limitations. 
 
Also, I honestly don't think there is any reason to go the hard way when you're learning and not go for something simple like C# or Java. The things you are going to be writing when you're starting out aren't going to be that complicated that the speed of the language really affects it. They may not be as fast as C++ or C, but they were written by professionals who know how to optimise code much better than beginners do and you're probably going to make a mess of it if you start out with a difficult language. 
 
For things with the console, exercises and so on, it's definitely worth learning C++ or the like. But if you want to make a game, never go over your head. If you're adamant about using C++, you should at least find a simple library to use. Also, regardless of what language you want to use, always read a lot about bad habits and things you shouldn't do in general. If you intend to write something fairly big (basically any game that isn't tictactoe or pong) you should know the kinks of the language, otherwise you'll write bad code that works slowly and begins to fall apart eventually.