• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
ndrul

C++ or another language

51 posts in this topic

Hello again.

Several days ago I was on these forums, determined to make my first game, a text based rpg. I got the help I needed then continued with my project. I read an article about how C++ is a bad beginner language and you should start with a simpler language. That's when I realized that I had been working on a text-based game for a week and hadn't even done the hard stuff.


Should I continue with C++? I have been learning it for almost 2 months, so I am rluctant to give up. But C#,C, or maybe even python/java, are supposed to be more productive and beginner friendly.

So what do you recommend? I want to be productive and I also want to be able to create a halfway decent 3D game. In your answer, could you list your experience?
0

Share this post


Link to post
Share on other sites
C# is very similar to C++, with exception to memory management. it has a Garbage Collector, so no need to worry about freeing the memory.

C# + XNA will be a quicker path to making your game.
0

Share this post


Link to post
Share on other sites
In recently working with C++ again for the first time in ages, the tools are as big a barrier of entry as the syntax. Not only do you have to learn about the linker, binary formats, preprocessor and a bunch of other crap before your code works.

In C#, you download it and start writing code, at worse you need to add a reference.

This alone makes c# more beginner friendly.
1

Share this post


Link to post
Share on other sites
When you look at your Text based RPG, never, ever expect it to be good looking the first week, it's your first game. Not only that, but you've chosen an extremely complicated Game genre 'RPG', you have to have many different variables etc. I think you should just make a text based fighting game, like for example:

Your turn...
1. Punch ( Attack 4) - > whereas Attack can be blocked more likely
2. Kick ( Attack 3) - > Kick has less likely hood of being blocked
3. Heal ( 3 left) - > you can only heal a certain amount of times

This type of game is mostly on luck.

To create an attack system, read up on the rand() function, and use it to pick between a max number
Example:

rand() % 100
~~~
rand() % 5

And simply check whether or not the number is a specific number or greater/less than a specific number
Using 100 is obviously going to be a number to big for attacking
5 is probably the better choice.

I think your more of a 'I just wanna see gameplay' type of game developer, If that's the case, you should be using game maker to make, the actual game-play rather than programming. Because a programmer knows how difficult programming can be and won't tell himself, I'm not getting *squat* done. You'll only discourage yourself, instead look at every little thing you add to the game, and tell yourself that you've reached a new milestone. It's your first game, relax, it may take a while to actually get something playable. But when you do, be sure to post a link to download, because I wanna try it out.
1

Share this post


Link to post
Share on other sites
[quote name='lukeymoo' timestamp='1313262418' post='4848709']
When you look at your Text based RPG, never, ever expect it to be good looking the first week...
I think your more of a 'I just wanna see gameplay' type of game developer, If that's the case, you should be using game maker to make, the actual game-play rather than programming. Because a programmer knows how difficult programming can be and won't tell himself, I'm not getting *squat* done...
But when you do, be sure to post a link to download, because I wanna try it out.
[/quote]


I'm not a programmer that is just looking for results. It just that I had heard that a working tetria game can be made in a week so I was worried.

I already use the rand() func for fighting in the rpg. and I will post it when I finish.

But I am still questioning whether I should switch to c#.
0

Share this post


Link to post
Share on other sites
Two months o.o; Depends on how many hours, but I'm guessing you're quite familiar with most of the functions so stick with C++. That being said if you haven't put that many hours into it consider switching. Personally I want to broaden my horizons a tad so I want to recode what i've done in c, into python. Might be a good choice for you as well.
0

Share this post


Link to post
Share on other sites
I'm a fellow new programmer, so keep in mind my advice is coming from another person navigating the same sea of choices and challenges you are but...

Two years ago I thought I'd go full force and teach myself C++ to break into game programming despite all the nay-sayers. After about 3 months, my greatest accomplishment was a text based version of Blackjack and I hit a wall, giving up soon afterwards.

Being the stubborn person I was, I picked up programming again about a month or so ago, but this time I decided to try something easier with Python. I learned everything I had learned from C++ in Python in about 3 days, and after 2 weeks of diving into Python I had created my first game, a simple top down shooter. This is also learning the language between a job and taking care of my daughter, so it's not like I had tons of time to devote to it. While Python does have a few limitations I took for granted while learning C++, I'm proud of my choice.

What I would suggest for you is to take a moment, step back, and look at your progress. If you're still making progress, no matter how slow, keep at it. C++ is a very useful language to know no matter how frustrating it is to learn. If you ever find yourself hitting a wall, don't give up. Learn C# if that's what interests you. Learn another language. Learn, learn, learn, and you will be surprised at what you are able to do and the skills you have acquired. I do one day plan to go back to C++, but not until I can competently and reliably program in Python.
1

Share this post


Link to post
Share on other sites
[quote name='ndrul' timestamp='1313252550' post='4848670']
Hello again.

Several days ago I was on these forums, determined to make my first game, a text based rpg. I got the help I needed then continued with my project. I read an article about how C++ is a bad beginner language and you should start with a simpler language. That's when I realized that I had been working on a text-based game for a week and hadn't even done the hard stuff.


Should I continue with C++? I have been learning it for almost 2 months, so I am rluctant to give up. But C#,C, or maybe even python/java, are supposed to be more productive and beginner friendly.

So what do you recommend? I want to be productive and I also want to be able to create a halfway decent 3D game. In your answer, could you list your experience?
[/quote]
If you are a beginner certainly learn C++ until you are comfortable with it first then maybe move on to learning to write a game.

C# (with or without the XNA combo) uses the .NET Framework and is Microsoft-specific. It has great tools to aid game development as far as I'm aware, so if you're happy taking that route to only write games for Windows then at least have a look at it.

I certainly wouldn't recommend learning C++ and writing a game at the same time (even though I saw a book on doing just that today!). [img]http://public.gamedev.net/public/style_emoticons/default/ohmy.gif[/img]


0

Share this post


Link to post
Share on other sites
Well, I'm currently learning x86 assembly, C++(4 years and still learning), and I plan on learning C# to make games available for Xbox Live Arcade. When I get to a point where I can churn out 2D games like nothing, Then I'll move to DirectX or Maybe OpenGL (it's industry standard I believe) and begin making 3D games.
0

Share this post


Link to post
Share on other sites
I recommend C# for pretty much anyone looking to program who has a remotely modern windows machine.

But pretty much anything but C++ will do.
0

Share this post


Link to post
Share on other sites
Well When I jumped into C++ I was so confused, But I stuck with it, and now I pretty good with it. If I were you I'd just stick with it, because eventually you'll want to switch back.
1

Share this post


Link to post
Share on other sites
If you think you can tackle C++, then go for it, since you know what it's like you can be the judge. If you switch languages, it may help you, but learning C++ is like learning Latin. When you learn it you'll recognize a lot in other languages. C# is fairly similar and fairly easier. You will produce games faster in XNA but if you want to get serious you will eventually have to learn C++. So it's up to you. If you feel to stressed then switch. If you feel you can handle it then keep it.

Don't switch just because someone says: "You should start with another language".
Switch because you feel, yourself, that it is too hard at the moment.
0

Share this post


Link to post
Share on other sites
[quote name='doombunny3' timestamp='1313277209' post='4848794']
Don't switch just because someone says: "You should start with another language".
Switch because you feel, yourself, that it is too hard at the moment.
[/quote]

Or y'know... switch if you care about getting anything done anytime soon.
2

Share this post


Link to post
Share on other sites
[quote name='Telastyn' timestamp='1313280041' post='4848810']
[quote name='doombunny3' timestamp='1313277209' post='4848794']
Don't switch just because someone says: "You should start with another language".
Switch because you feel, yourself, that it is too hard at the moment.
[/quote]

Or y'know... switch if you care about getting anything done anytime soon.
[/quote]

Your going to switch back to C++ eventually, so if you learn it know you can get stuff done later :).

It's not like he has deadlines to meet or anything. It's a good language, even if it is tough, but again totally personal choice if you want to stick it through or switch.


0

Share this post


Link to post
Share on other sites
[quote name='ButchDean' timestamp='1313273694' post='4848770']
If you are a beginner certainly learn C++ until you are comfortable with it first then maybe move on to learning to write a game.

C# (with or without the XNA combo) uses the .NET Framework and is Microsoft-specific. It has great tools to aid game development as far as I'm aware, so if you're happy taking that route to only write games for Windows then at least have a look at it.
[/quote]

C# is not platform specific per-say, have you ever heard of [url="http://www.mono-project.com/Main_Page"]Mono[/url] ?
it will enable your .Net app to run on Linux and Mac, with exception to a few features( there is a page telling what is supported, but a lot of it is, and all of the .Net 2 is )
0

Share this post


Link to post
Share on other sites
If you really care about producing something, and ignoring other factors, C++ is a bad choice IMO. This goes for beginner and non-beginner alike.

I have used many languages over the years, and I can honestly say that I would never willingly choose to go back to C++ unless I had to. There are some potential reasons why I would have to program in C++ (existing code maintenance, interfacing with a particular library, etc.), but as I am mostly a hobby programmer, I have been able to limit these situations to nearly zero over the last few years.

That said, learning multiple languages is important to becoming a competent programmer. However, if you feel you are getting nowhere with a particular language, try learning a different one - you can always come back to it later if you want learn it.

Of course, my opinion only etc.

p.s. Often in these types of threads, which occur periodically, someone with claim that "only real game programmers use C++" or "C++ is faster/more powerful". I would advise ignoring these anti-wisdoms if they crop up, since they are completely meaningless.
1

Share this post


Link to post
Share on other sites
I've personally been learning C++ myself as well. Right now I'm also in the crossroads wondering if I should switch now to C# for development.

After reading so much it seems like it's wise to use C# for its RAD and simplified properties. However what if development time really isn't critical at the moment? Would delving deeper into C++ instead be more worthwhile to learn proper memory management and other "inner workings"?

I don't think what I'm looking for as seeking for the faster or more powerful tool. With all the language choices out there it's pretty much a pain to find out what each one's extent or limitation is.

While eventually learning both and other languages is a possible in the future, for myself it's more of a matter of whether or not we can use C# as our primary (preferred?) tool of choice for games and other possible applications for years to come. If not, it seems to me it may be better to just use a much more trusted general tool instead.

Sorry I'm just a ball of confusion :)
0

Share this post


Link to post
Share on other sites
[quote name='brickets' timestamp='1313357972' post='4849120']
I've personally been learning C++ myself as well. Right now I'm also in the crossroads wondering if I should switch now to C# for development.

After reading so much it seems like it's wise to use C# for its RAD and simplified properties. However what if development time really isn't critical at the moment? Would delving deeper into C++ instead be more worthwhile to learn proper memory management and other "inner workings"?

I don't think what I'm looking for as seeking for the faster or more powerful tool. With all the language choices out there it's pretty much a pain to find out what each one's extent or limitation is.

While eventually learning both and other languages is a possible in the future, for myself it's more of a matter of whether or not we can use C# as our primary (preferred?) tool of choice for games and other possible applications for years to come. If not, it seems to me it may be better to just use a much more trusted general tool instead.

Sorry I'm just a ball of confusion :)
[/quote]

Frankly I think a C# programmer that switched to C++ will be a better C++ programmer than someone who learned C++ as their first language.

Less bad habits to unlearn.

That said, moving to C++ from C# once you've learned the in's and out's of C# would be my definition of pain. Many people make the move one way, very few people make the move the other way unless forced.
0

Share this post


Link to post
Share on other sites
As someone who tried to learn C++ through a college course twice, and failed miserably, but has found it relatively easy (still not easy) to learn C# with little to no outside help I would recommend learning C#. Not only is C# easier to understand, it has a bright future ahead of it. Right now if you wanted to be part of a team creating a full $60 console game you most likely would need to know C++ that is only a relatively small portion of the market, and with tools like Unity using C# is slowly changing. On most other platforms it is more likely you will be using a language more like C# than C++, such as Java, Python, etc.
0

Share this post


Link to post
Share on other sites
[quote name='Serapth' timestamp='1313358889' post='4849128']
[quote name='Hannesnisula' timestamp='1313358661' post='4849126']
No point in not continuing with C++ as it's a very powerful and straight-forward language.
[/quote]

LOL, anyone that calls C++ straight forward, doesn't know C++ that well. :)
[/quote]

I'm sorry you have trouble with C++ but that doesn't mean everyone have any trouble with it. I'm kind of curious about what's not straight forward, mind giving me some examples?
0

Share this post


Link to post
Share on other sites
[quote name='Hannesnisula' timestamp='1313501761' post='4849837']
[quote name='Serapth' timestamp='1313358889' post='4849128']
[quote name='Hannesnisula' timestamp='1313358661' post='4849126']
No point in not continuing with C++ as it's a very powerful and straight-forward language.
[/quote]

LOL, anyone that calls C++ straight forward, doesn't know C++ that well. :)
[/quote]

I'm sorry you have trouble with C++ but that doesn't mean everyone have any trouble with it. I'm kind of curious about what's not straight forward, mind giving me some examples?
[/quote]



I don't have trouble with C++, it is simply not an intuitive nor clean language. All it takes is about 8 seconds looking at the STL libraries to see the inherit complexity in C++.

One easier way is to look at the language spec sizes. The initial language spec was 3 times the size of the C language spec and on top of that WAS a super set of C. This is completely ignoring the ongoing iterations of the language up to C++0x which is a horrifically byzantine language ( the working draft you can [url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf"]read here[/url] ).

Even among C++ developers, I do not think there is a [i]good [/i]C++ developer alive that wouldn't in fact agree that the language is anything BUT straight forward.

Also, you do yourself a disservice assuming making assumptions about my ability with a language. Simply because something is complicated does not mean people can't master it. I learned the English language extremely well, but after encountering their/there/they're I don't think many people alive would call it a straight forward language.
1

Share this post


Link to post
Share on other sites
[quote name='Serapth' timestamp='1313505360' post='4849870']
[quote name='Hannesnisula' timestamp='1313501761' post='4849837']
[quote name='Serapth' timestamp='1313358889' post='4849128']
[quote name='Hannesnisula' timestamp='1313358661' post='4849126']
No point in not continuing with C++ as it's a very powerful and straight-forward language.
[/quote]

LOL, anyone that calls C++ straight forward, doesn't know C++ that well. :)
[/quote]

I'm sorry you have trouble with C++ but that doesn't mean everyone have any trouble with it. I'm kind of curious about what's not straight forward, mind giving me some examples?
[/quote]



I don't have trouble with C++, it is simply not an intuitive nor clean language. All it takes is about 8 seconds looking at the STL libraries to see the inherit complexity in C++.

One easier way is to look at the language spec sizes. The initial language spec was 3 times the size of the C language spec and on top of that WAS a super set of C. This is completely ignoring the ongoing iterations of the language up to C++0x which is a horrifically byzantine language ( the working draft you can [url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf"]read here[/url] ).

Even among C++ developers, I do not think there is a [i]good [/i]C++ developer alive that wouldn't in fact agree that the language is anything BUT straight forward.

Also, you do yourself a disservice assuming making assumptions about my ability with a language. Simply because something is complicated does not mean people can't master it. I learned the English language extremely well, but after encountering their/there/they're I don't think many people alive would call it a straight forward language.
[/quote]

I never said you didn't master it, but you find it complicated. I don't, and I also find it very intuitive. The problem here is that you have decided the language is universally complex and unintuitive, though apparently not everyone agrees. Personally I think all managed languages are crap and I dislike them all, because of the fact that they're managed languages. Note that I'm not saying that everyone who likes them are bad programmers.

"Also, you do yourself a disservice assuming making assumptions about my ability with a language." Says the guy who just said I'm don't know C++ that well. You even assume people that say they find it intuitive are just liars, stupid or incompetent in C++. The irony is hilarious.

Good luck whatever language(s) you use and I'll go back to use the one I find easy to use (despite what you say).
1

Share this post


Link to post
Share on other sites
[quote name='Hannesnisula' timestamp='1313512649' post='4849909']
I never said you didn't master it, but you find it complicated. I don't, and I also find it very intuitive.
[/quote]

[quote name='[font="Arial"]Tom Cargill--C++ Journal[/font]']
If you think C++ is not overly complicated, just what is a protected abstract virtual base pure virtual private destructor, and when was the last time you needed one?[/quote]
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

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

Create an account

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


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0