• 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
Astralking

Moving into the real world....

11 posts in this topic

Hi all.

Just finished uni and managed to land a job in .Net, mainly C# and SQL, but for as long as I can remember I've wanted to make games. For my final year project I made a 2D platformer in XNA + the farseer physics engine which went pretty well but because I wanted some sort of final product to show so alot of my time was spent gathering sounds and graphics etc.

Now I want to start branching into C++. Slightly later than I would have liked but the software development on my course was mainly Java/C# so didn't get much chance. The game for my final year project had a tile based system where different letters represent different tiles (X was ground, x was ground with no friction etc etc).

My questions are, do you think my knowledge of C# would be enough for me to jump straight into some form of simple C++ games development (I do know some aspects of C++), or should I start from scratch reading a C++ book. I know which one I'd prefer but thought I'd ask :P

I also wouldn't mind some one to give me some opinions on Unity? I don't know too much about it. Is it worth learning from a job perspective/hobby perspective? As worst comes to worst, i'll be making games as a hobby as opposed to a full time job.
0

Share this post


Link to post
Share on other sites
I don't think you should jump straight in to c++. You should read books on the language first. C# and Java are a bit similar to c++ but there are lots of concepts and new things which are a bit confusing if you've been programming in Java or C# for a long time.
I wanted to start programming 3D with directX so I decided to learn C++. I thought I would get it straight away and I kind of did because I spent the whole night trying to learn the new concepts the rest is practically the same as any other language. It's more of becoming comfortable and confident with the language's techniques. I for one decided not to program games in C++ just because the new concepts seemed more of a pain in the ass. Decided to use OpenGL in Java instead. No idea why people say Java is bad for game programming. It's just as good as any other language.
Although, if you are thinking of going to professional game programming then you should learn C++ and directX just because it's industry standard. I'm going to learn C++ and DirectX at some point but at the moment I just can't be arsed.
0

Share this post


Link to post
Share on other sites
[quote name='Astralking' timestamp='1345561399' post='4971846']
My questions are, do you think my knowledge of C# would be enough for me to jump straight into some form of simple C++ games development
[/quote]

No.

Focus on one thing at a time. Learn C++ syntax, then standard library, then how program design differs due to language details, then library X, then Y and so on.
0

Share this post


Link to post
Share on other sites
It's probably better to start from scratch. You might go through all the stuff a little faster as you will probably understand the basic principles of shared similarities of C# and C++, but you might break you head over stuff you are used to in C# that isn't in C++ (and vice versa) and as Telastyn suggested, just take one step at a time.

As for unity. You have C# knowledge which is a good start as that is one of the three scripting languages Unity uses. Unity is pretty easy in my opinion, it has this great simplicity in it, but this can also be your downfall when you tend to do more complex stuff. It is than you notice that the simplicity can halt your progress, but so far I always managed to find workarounds (although my problems weren't all that difficult). It's a fun engine to work with, just try it out sometime.
0

Share this post


Link to post
Share on other sites
What are your current programming skills Astralking?

I'm no programmer, but I used to study it at university. I've never heard anybody agree with me on this, so take this with a grain of salt, but I found it very difficult to start at one university teaching C++ to another teaching Java. I just couldn't unlearn the habits I'd picked up with C++.

Not sure if that means you should just start with C++ and learn it in its entirity, or means you should learn other (easier) languages first then get to C++ eventually.
0

Share this post


Link to post
Share on other sites
A lot of people on internet who have experience have a tendency to advice to "do things in order".
but frankly, I didn't do things in order, of course it resulted in early projects being BADLY written. but they worked.
How the man will learn without going for it ?
Will you really learn C++ doing some academical stupid exercise with no purpose ?
"make a class car that Client that heritates from Person..." come on ! everybody hates that. it is no way to learn.
My advice is the opposite: you want to make a game in C++ but you don't know the language too good ? what the hell... just go for it damnit :)
it WILL make you learn it the hard way, and that is NOT a problem !

there, I said it :)
0

Share this post


Link to post
Share on other sites
[quote name='Lightness1024' timestamp='1345583949' post='4971985']
Will you really learn C++ doing some academical stupid exercise with no purpose ?
[/quote]

Just because you're focusing on one item means you only work on boring stuff. But yeah, you should maybe make a chat server/client before making a multiplayer game. You maybe should make a flocking screensaver before designing a scripted particle system.

[quote]
it WILL make you learn it the hard way, and that is NOT a problem !
[/quote]

That depends on if you think that it is not a problem to waste your time doing things the hard way for a while until you realize that those 'lot of people on the internet' were right and go back to focused learning.

'Practice does not make perfect. Perfect practice makes perfect.'
0

Share this post


Link to post
Share on other sites
[quote name='Lightness1024' timestamp='1345583949' post='4971985']
"make a class car that Client that heritates from Person..."
[/quote]

I've written object oriented programs before and now I've been working in my new job with a huge piece of software and many modules for the past two months my general programming knowledge is loads better.

[quote name='CryoGenesis' timestamp='1345568318' post='4971888']
Decided to use OpenGL in Java instead. No idea why people say Java is bad for game programming. It's just as good as any other language.
Although, if you are thinking of going to professional game programming then you should learn C++ and directX just because it's industry standard. I'm going to learn C++ and DirectX at some point but at the moment I just can't be arsed.
[/quote]

I think this may be the way I'm gonna go. For general concepts, is OpenGL similar to directx? I have virtually no knowledge of either! I think I will start learning the concepts in C++ from a none gaming perspective as well as starting on OpenGL in Java. My knowledge is mainly in C# but Java and C# are so similar that I don't think that should be an issue as I have done some Java before.

I realise this is probably in other places but while i'm here I may as well ask! Wheres the best place to start OpenGL i.e. book/online tutorial? and any reccomendations on C++ books for people who have a good grasp of normal object oriented programming concepts?
0

Share this post


Link to post
Share on other sites
[quote name='Telastyn' timestamp='1345603705' post='4972054']
[quote name='Lightness1024' timestamp='1345583949' post='4971985']
Will you really learn C++ doing some academical stupid exercise with no purpose ?
[/quote]

Just because you're focusing on one item means you only work on boring stuff. But yeah, you should maybe make a chat server/client before making a multiplayer game. You maybe should make a flocking screensaver before designing a scripted particle system.

[quote]
it WILL make you learn it the hard way, and that is NOT a problem !
[/quote]

That depends on if you think that it is not a problem to waste your time doing things the hard way for a while until you realize that those 'lot of people on the internet' were right and go back to focused learning.
[/quote]

IMHO, from personal experience trying to learn serious programming, you are both correct. That is,

1. Doing academic exercises with no purpose is not the way to learn programming.

2. Still, focused learning with small objectives is the best way to go. I highly recommend figuring out the game you'll like to make, and what kind of features does it consist of. Then make tech demos related to those features.

E.g. I wanted to make a multiplayer HTML5 RPG. Parts: web chat, web server to receive/send data, client for browser, log-in system. So, I started by making small "tech demos" or applications for each of those parts, using various technology/languages because I haven't decided on a framework.

After that, I decided on javascript as the language I want to use. So I start over, making a single application with the capabilities of those parts. Because I went through the "tech demo" process, I have old codes to reuse, and knowledge of how to make each part. And I am motivated to do all these because I know everything will add up in the end to become the game I want to make.

P.S.
My programming experience is limited to "soft languages": scientific computing with python, server + client-side javascript (html5 games etc), and flash actionscript. So I could be wrong when it comes to the various incarnation of C.
0

Share this post


Link to post
Share on other sites
Ah, C++, still my favorite programming language.

It's pretty easy to learn if you're willing to devote the time to learning it. I would try C++/CLI first, since it will be more familiar to you.
Probably the hardest part of going to C++, from a higher-level language like Java/C#/VB/etc, is memory management. Once you get it down pretty well, you'll feel like an idiot for ever having struggled with it, but you're going to struggle with it. Edited by nfries88
0

Share this post


Link to post
Share on other sites
Telastyn: I think you recalled only a part of what I said, because while I agree with your answer, I think it is not a correct answer for what I was saying.
I only meant to say: "practice doing something interesting, don't wait to have finished reading 3 books from A to Z before starting".
It is not lost time to make a screensaver that has shitty code because you jumped in too fast. But at least your are learning how to improve your style for the next project.
We definitely all agree on that thread: "practice makes better' (I just deviated from your more complicated quote, which is true but only relevent in an advanced state of knowledge)
0

Share this post


Link to post
Share on other sites
Unity is a great tool for hobbyists, if for no other reason than it saves you from having to build the framework for your projects, and lets you start making the game itself. I'm picky in that I want to have only and specifically what I think my game needs to be part of the framework, (and I wanted to learn DX11) so I've been working from the ground up, and I can guarantee someone working in Unity would have a lot more to show for their time compared to where I'm at.

As for C++: you've already made the biggest step (learning how to program) and have flexed those skills to great effect in your final project. I think you're in a prime position to use one of the "learn C++ through game programming" books, maybe keep "Accelerated C++" handy so you have a second opinion on how to handle certain things (since C++ has a lot of leftovers from original C, there are better and worse ways to do the same thing, like the ol' char* vs std::string problem). I wouldn't recommend trying to program games in C++ to a complete novice, but since you have several years experience with programming, it's really just going to be an issue of learning syntax and memory management. Having a few small games as testbeds for the language would be a great motivator for continuing to learn. I've made a lot more progress understanding C# while trying to make my framework do something specific compared to the sterile academic examples that books cook up for you.

As a side note: if you want to learn C++ because you want to learn it, by all means go for it. If you think it's what you need to learn to be a "real" game programmer...I'd suggest continuing on with the language you already have a couple years' experience with and look [url="http://code.google.com/p/bulletsharp/"]into[/url] [url="http://code.google.com/p/lidgren-network-gen3/"]some[/url] [url="http://slimdx.org/"]additional[/url] [url="http://sharpdx.org/"]libraries[/url] if you want to add on to current projects. There's a .NET wrapper around almost anything these days.
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