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

Can someone mentor me?

12 posts in this topic

I have never programmed before and chose C++ as my first language to start with.  So I'm learning to program and C++ at the same time. I chose C++ as my first language because I want to use it the most out of any programming  language and even though I know it's harder to do this, I felt that this was the right path for me. 

 

I was wondering if someone would mentor me. I am currently reading C++ Primer and some things I understand how to do, but not necessarily what the use for them are. I am about 100 pages in, It's starting to touch on vectors and iterators and arrays and pointers and even if I learn how to use them, I don't understand what they are used for. 

 

I'm basically looking for someone who will be able to explain to me the bigger picture of certain things (as it pertains to game making/programming in general). I've heard it's good to surround yourself with people (or a person) that is more experienced or an expert because you'll gradually get better just by being around them and talking to them.

 

Please don't recommend me learning a different higher-level language because I don't plan on changing to anything else.

0

Share this post


Link to post
Share on other sites

As a bit of a side note, C++ is one of if not the most complex languages in the programming field.  I just wanted to comment on the statement that you'r not quite sure where things would actually fit in practical application yet.  From my experience and through watching associates who have learned (or attempted to learn) the language 100 pages is no where near enough to start making these conclusions yet.

 

Since C++ is so vast and open it leads to there being dozens if not hundreds of different ways that you can get to the same solution.  As such it normally requires an entire book (or two) just to get your feet wet and get started with the language.  However you should be starting to have some ideas as to what's what by now assuming that you have actually been working the tutorials and "assignments" of the book you are reading.  That is to say that most of the books I've read will teach you something, then demonstrate how to use it with code examples and ask you to code along.  Are you doing these code examples or are you just browsing through them and moving on?

 

I don't want to jump to conclusions but it sounds partially like maybe you are moving faster than you should be.  If your confusion is on things prior to where you are in your book (eg you didn't completely understand something but moved on anyway) your on a suicide path.  Go back, rework all of the examples, do the "suggested assignment's" if they offer them.  If your still confused meet Google and look up more reading information.

 

If you are partially through a section and it does not make sense just yet it may not be that bad just yet.  Some things such as dynamic collections (vector's, deques and so on) are pretty difficult to wrap your head around and can take a good 100 pages themselves to learn.  The key on these things is just to remember it is a collection of values.  The core things you should understand completely before attempting to learn these is variables, data types and arrays.  If you are not familiar with these go back and study until you are, when you come back it will make more sense.

 

To address the sudo question I noticed in your post (what is a vector used for).  It's used to store a collection of values where in you do not have a limited number of said values.  It is basically used interchangeably with array's.  Where you might use an array to store a list of product id's, you would use a vector to store a list of product id's that can grow and shrink as needed.  Example, you are making a simple catalog for 100 products and you will never ever add or remove products from this catalog.  You would use an array of integers.  In real life when you make a catalog you know that you may be adding or removing products as time goes on.  Instead of making a huge array and trying to manage all 1 million pieces of this array every time you add or remove a product you would choose a vector which can automatically increase it's number or elements as you add more to it (and "plug holes" as it where when you remove items).

 

To relate this to game development application get's a bit trickier (and I hope you have an understanding of classes and objects already to understand this answer).  A vector is commonly used in game development to hold a collection of the NPC objects of a level.  This is so when you create a level class and have it load a file, you can have it also load a collection of NPC's for that level.  If level 1 has 3 NPC's your Vector will have 3 elements.  If level 10 has 100 NPC's your vector would have 100 elements.  Using a standard array you would have to create it to be at least 100 elements to support level 10, in level 1 you are wasting 97 sections of memory on unused reservations for those NPC's that don't even exist.

 

(P.S. an array isn't the best way to describe a vector but I'm assuming that you did not learn about linked lists and I'm simply trying to relate to knowledge that I assume you already have, if you HAVE learned linked lists then that is actually what the vector is.  A linked list of elements that contain the variables as defined by the template type cast of the vector <thing here>.)

Edited by Dan Mayor
0

Share this post


Link to post
Share on other sites

Yeah, I've been doing the code questions. I guess the question I had about vectors didn't really make sense. I know how(the syntax) to make vectors and what they are by definition, but I didn't understand the use for them.You've cleared that up for me a bit, thanks. I think the book is just touching on these things and then it'll go deeper into it later on. Thanks for answering all my questions, everyone. [|:^D

0

Share this post


Link to post
Share on other sites

Have you been writing lots of programs while reading the book? Programming is a practical skill, the only way to get good at it is to practise.

1

Share this post


Link to post
Share on other sites

Dont waste too much time understanding strings if game development is your objective. Just jump in along with a good 2d c++ game engine. With visual representation of code its easier to learn c++

0

Share this post


Link to post
Share on other sites

I wish I could get a mentor. I'm new to this too and if you find someone to teach you game programming I wouldn't mind joining in for some three way action...haha. I also wanted to suggest that you not act so stubborn in sticking only with C++ as a programming language. Sure you could do just about everything with it, but other languages might be able to tackle a specific problem better. Programming concepts remain basically the same no matter what language you use. But I feel you, when you say that you understand concepts but don't understand how to use them in a practical situation. I'm sick of watching tutorial after tutorial on the web just to have learned the syntax of some language as the end result. If you want to partner up on some n00b projects  I'd be enthusiastic to work with you.   

0

Share this post


Link to post
Share on other sites

I am not really at any kind of level to collaborate at this point but possibly in the (hopefully) near future biggrin.png. I didn't mean only C++ forever, just that I want to learn C++ and learn programming using that language and didn't want people to recommend an easier language for me to try instead. Also to answer your question Rip-Off I've started programming a lot more to really get down the syntax and how things work better. I'm taking it slower and programming a lot more.

Edited by tiresandplanes
0

Share this post


Link to post
Share on other sites
I made my first game which was tic-tac-toe in C, when I knew only if-else and loop. So its about doing something with what you learn. I am no expert but C++ is not all of game programming, you need to learn some graphics stuff to get the idea about what to do with what. If you know how to draw a rectangle in a certain position of the screen, and you know array, you can make a game like tetris, no OOP or vector required for this aid. Doing graphics stuff is pretty easy because there are libraries like SDL or SFML. I myself is a C++ programmer and learner so I would tell you to stick with it. Though its pain in the butt even to do simple stuffs with it. Edited by solewalker
0

Share this post


Link to post
Share on other sites

I've only been programming for about 2 weeks so I am really at an early stage in my programming development. I do plan on learning SDL later on but I want to really grasp the C++ language before I get into learning libraries. I know C++ isn't all of game programming but that's the place I've chosen to start and plan to stick with it until I really understand the concepts so I can be a useful programmer when it comes to the more complicated stuff. I'd like to thank everyone for answering my questions and helping me out.

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