• 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
Brandon Hawkinson

Intimidated, not sure where to start.

14 posts in this topic

After hours upon hours of searching throughout the internet for information on game design and development, I've finally come down to a last resort of asking other people for help. After searching other websites, GameDev.net seemed like the forum of choice, after purchasing a membership, i'm now here with my story and questions.

I am very intrigued by video games, they havnt always just been mindless products that major game companies produced. I quickly fell in love with RPG's, most notably mass effect, i quickly saw it as art. I currently play EVE online as well, you can probably see my prefered genre, sci-fi, sandboxed styled games. The openess of these games empowers me to create in a way i've never been compelled before, and I'd like to channel that into developing my own video games.

However I am absolutely clueless on where to begin, i'm intimidated by the process, hesitant to start. My friend described it as having to cross a raging river, without knowing how to swim. I have absolutely little to no knowledge of programming languages. However, I know some basics about the industry, that knowledge only extends to the fact that the industry tends to use C++/Java. Although, no one answers the question, why? I am a type of person who needs to understand something before I can do it, as simply doing it feels empty and unsatisfactory. So why do developers use C++/Java over HTML, or even visual basic? Is there an easier way to learn these languages instead of mindlessly jumping into them?

What is the visual process? What exactly is a sprite sheet, and how does it meld with 3d or even 2d design? This is the part of the industry that I love, but have no idea how to go about it. I currently own a membership to the student version of adobe creative cloud service, I have extensive skills in illustrator and photoshop. I've been using those to make websites with muse (staying away from that intimidating code! [img]http://public.gamedev.net//public/style_emoticons/default/ph34r.png[/img]). The drawing ability is there, and the ability to put it on the computer is there also. However I am not familiar with 3d design, map design, sprites and animating. What are the steps to creating the visual bits and pieces? And if applicable, why is it that way (aside from common sense)?

And now the game engines, I understand that they are used to put everything together, but where do they start to come into play? I'm very confused about the process with the engine. What can be done inside the engine, and what needs to be done outside of the engine? It all comes down to the question "Why?" with the game engine.

Most importantly, I think I may just need a nudge in the right direction. I've been slowly and steadily understand the adobe products and the workflow, how they can interact together. And this is what I want to learn with game developement. As I said before I am very intimidated by programming, and the production workflow of video game design, I'm clueless, every tutorial i've found just says "Program, deisgn, game engine". Its not simply that easy, or else everyone would be doing it. Thanks for reading, I hope I can learn a lot by being part of the community, and hopefully giving back the hospitality and the vision the folks here will bring me.



Coming from the EVE-Online community, this is considered a wall of text, so here's the TL;DR(Too long didn't read summary) of my questions:
1) Why do developers use C++/Java over HTML, or even visual basic?
2) Is there an easier way to learn programming languages instead of mindlessly jumping into them?
3) What exactly is a sprite sheet, and how does it meld with 3d or even 2d design?
4) What are the steps to creating the visual bits and pieces? And if applicable, why is it that way (aside from common sense)?
5) When does the Game Engine start to come into play?
6) What can be done inside the engine, and what needs to be done outside of the engine?
0

Share this post


Link to post
Share on other sites
To answer q2, there is no other way to learn a programming language without actually programming in it. If you wanted to learn to play the piano, would you try and do it without actually playing the piano?

If you want to learn, start with a language like Python, which is a powerful language but is a lot easier to understand for a beginner. Then once you feel confident in that, move on to a language like C#, combined with XNA, to build yourself some more powerful games (that you can run on your 360 if you have one). After a while you might want to move over to C++, but it's not recommended for a beginner, in much the same way that learning Mozart straight away is not the best way to learn the piano.
1

Share this post


Link to post
Share on other sites
[quote name='sednihp' timestamp='1355699158' post='5011393']
To answer q2, there is no other way to learn a programming language without actually programming in it. If you wanted to learn to play the piano, would you try and do it without actually playing the piano?

If you want to learn, start with a language like Python, which is a powerful language but is a lot easier to understand for a beginner. Then once you feel confident in that, move on to a language like C#, combined with XNA, to build yourself some more powerful games (that you can run on your 360 if you have one). After a while you might want to move over to C++, but it's not recommended for a beginner, in much the same way that learning Mozart straight away is not the best way to learn the piano.
[/quote]

How closely related are the languages? For example say Python was english, would C++ be chinese? Or are the two more closely related?
0

Share this post


Link to post
Share on other sites
[quote name='bhawk245' timestamp='1355699307' post='5011395']
How closely related are the languages? For example say Python was english, would C++ be chinese? Or are the two more closely related?
[/quote]
There's actually multiple parts when it comes to programming. There's A) the syntax, which is the actual symbols/letters you use to write the code and how that's structured, and then B) there's the standard support libraries, and then C) there are algorithms and data structures.

For A: Python and C++ have pretty different syntax. Other languages, like C, C++, C#, and Java all have somewhat similar syntax, because they all took some of their syntactical rules from C. Learning the syntax isn't the hard part, though. You can usually pick up on it pretty quickly (when going from one language to another, even if their syntaxes are quite different).

For B: Each language comes with its own standard library. These standard libraries can allow you to do things like reading/writing files, networking, threading, getting input/output from the user, etc. Some languages have support for more things in their standard library, and other languages have less support. C++ offers pretty little in its standard library when compared to Java, C#, and Python. However, if a standard library doesn't support or have something you want, you can always write it yourself in the language you're using. But the more your language's standard library supports, the less time you have to spend reinventing the wheel.

For C: Algorithms and data structures are things that you can transfer from one language to another pretty easily. For example, let's say you have a list of numbers you want to sort. There are lots of algorithms you can use to sort these numbers, some of them being faster or requiring less memory than others. However, the sorting algorithm itself doesn't depend on the language you're using. So once you learn a good sorting algorithm, and you write it in language X, you can transfer that same knowledge to language Y should you ever be working in language Y.
1

Share this post


Link to post
Share on other sites
[quote name='Cornstalks' timestamp='1355700513' post='5011410']
[quote name='bhawk245' timestamp='1355699307' post='5011395']
How closely related are the languages? For example say Python was english, would C++ be chinese? Or are the two more closely related?
[/quote]
There's actually multiple parts when it comes to programming. There's A) the syntax, which is the actual symbols/letters you use to write the code and how that's structured, and then B) there's the standard support libraries, and then C) there are algorithms and data structures.

For A: Python and C++ have pretty different syntax. Other languages, like C, C++, C#, and Java all have somewhat similar syntax, because they all took some of their syntactical rules from C. Learning the syntax isn't the hard part, though. You can usually pick up on it pretty quickly (when going from one language to another, even if their syntaxes are quite different).

For B: Each language comes with its own standard library. These standard libraries can allow you to do things like reading/writing files, networking, threading, getting input/output from the user, etc. Some languages have support for more things in their standard library, and other languages have less support. C++ offers pretty little in its standard library when compared to Java, C#, and Python. However, if a standard library doesn't support or have something you want, you can always write it yourself in the language you're using. But the more your language's standard library supports, the less time you have to spend reinventing the wheel.

For C: Algorithms and data structures are things that you can transfer from one language to another pretty easily. For example, let's say you have a list of numbers you want to sort. There are lots of algorithms you can use to sort these numbers, some of them being faster or requiring less memory than others. However, the sorting algorithm itself doesn't depend on the language you're using. So once you learn a good sorting algorithm, and you write it in language X, you can transfer that same knowledge to language Y should you ever be working in language Y.
[/quote]

The intimidation has been broken into multiple little peices, thank you for explaining that to me, and for your other response as well. I'm looking forward into at least breaking the ice into a few of these languages before I choose a major. Just the idea of programming seems like a bugged giant from skyrim, one hit and im suddenly on the moon, or a dragon that consistantly circles mindlessly in the sky. What would you suggest to break the ice to programming? Python seems to be the language of choice for a beginner like me, any more friendly nudges in the right direction? How someone should go about learning a language, what to expect? Edited by bhawk245
0

Share this post


Link to post
Share on other sites
[quote name='bhawk245' timestamp='1355700989' post='5011412']
The intimidation has been broken into multiple little peices, thank you for explaining that to me, and for your other response as well. I'm looking forward into at least breaking the ice into a few of these languages before I choose a major. Just the idea of programming seems like a bugged giant from skyrim, one hit and im suddenly on the moon, or a dragon that consistantly circles mindlessly in the sky. What would you suggest to break the ice to programming? Python seems to be the language of choice for a beginner like me, any more friendly nudges in the right direction? How someone should go about learning a language, what to expect?
[/quote]
Python seems like a decent choice to start with. Honestly, people will come in and say "Learn language X first!" and "No, learn language Y first!" Honestly, it's not that big of a deal. Programmers learn more than one language over their lifetime. Starting with X doesn't mean you can't learn Y. Some will say X is harder than Y because it's easier to shoot yourself in the foot, and they might be correct, but honestly, if you sit here and debate between language X and Y, you're just losing valuable time that would be better spent learning either one of them. Okay, now that I have that out of the way, all I can really suggest is two things: 1) Google like crazy (you'll find tons of resources on the Internet), and 2) Experiment like crazy. There's lots of tutorials you can follow, and after going through a tutorial, I'd recommend tinkering with things and trying things out, seeing what you can make with the knew knowledge you gained. Experiment all the time. Your first (many) programs will be simple, but as you progress they'll become more and more useful, until you're able to actually make a decent (yet simple) game. And then you just keep on learning.

So yeah, google and experiment.
2

Share this post


Link to post
Share on other sites
[quote name='Cornstalks' timestamp='1355701652' post='5011419']
[quote name='bhawk245' timestamp='1355700989' post='5011412']
The intimidation has been broken into multiple little peices, thank you for explaining that to me, and for your other response as well. I'm looking forward into at least breaking the ice into a few of these languages before I choose a major. Just the idea of programming seems like a bugged giant from skyrim, one hit and im suddenly on the moon, or a dragon that consistantly circles mindlessly in the sky. What would you suggest to break the ice to programming? Python seems to be the language of choice for a beginner like me, any more friendly nudges in the right direction? How someone should go about learning a language, what to expect?
[/quote]
Python seems like a decent choice to start with. Honestly, people will come in and say "Learn language X first!" and "No, learn language Y first!" Honestly, it's not that big of a deal. Programmers learn more than one language over their lifetime. Starting with X doesn't mean you can't learn Y. Some will say X is harder than Y because it's easier to shoot yourself in the foot, and they might be correct, but honestly, if you sit here and debate between language X and Y, you're just losing valuable time that would be better spent learning either one of them. Okay, now that I have that out of the way, all I can really suggest is two things: 1) Google like crazy (you'll find tons of resources on the Internet), and 2) Experiment like crazy. There's lots of tutorials you can follow, and after going through a tutorial, I'd recommend tinkering with things and trying things out, seeing what you can make with the knew knowledge you gained. Experiment all the time. Your first (many) programs will be simple, but as you progress they'll become more and more useful, until you're able to actually make a decent (yet simple) game. And then you just keep on learning.

So yeah, google and experiment.
[/quote]

Again thank you very much for your responses. I will do that and get started on that. I would also like to learn more about the visual side of things, and how they are incorperated with programming. How does one work with the other? And how are massive worlds created? Can you create these worlds without code? What are the limitations to development without using a programming language?

Im trying to gauge what side of the process I want to specialize in and be on.
0

Share this post


Link to post
Share on other sites
[quote name='bhawk245' timestamp='1355702065' post='5011424']
How does one work with the other?
[/quote]
There are varying degrees of "magic" involved. The simplest would just be loading the asset in your code and drawing it, which means you or your artist just make the asset (using Photoshop, 3DSMax, Maya, etc.) and you just load it in. Other times, the asset is way to big to reasonably load into memory (think of these games that require two or three DVDs to install), in which case you have to break the assets into chunks and work with chunks in your code. There really isn't a great answer to this. You'll see how the work together as you carry on.

[quote name='bhawk245' timestamp='1355702065' post='5011424']
And how are massive worlds created?
[/quote]
Depends on the game. Some worlds are created procedurally from a math algorithm (try googling fractal landscapes for some examples). Other words are created by artists (though this requires a bigger budget, because you have to pay them). Sometimes it's a blend of the two, where you have a set of assets created by an artists that are placed and organized procedurally to make it into a massive world.

[quote name='bhawk245' timestamp='1355702065' post='5011424']
Can you create these worlds without code?
[/quote]
Sure, artists do it all the time.

[quote name='bhawk245' timestamp='1355702065' post='5011424']
What are the limitations to development without using a programming language?
[/quote]
If there's no programming, nothing will happen. You'll just have a pretty world with people in it, and everything is just sitting there static. Anything you want to actually [i]do[/i], or anything you want to [i]happen[/i], you have to program.

Think of your physical body as the "art"/"world", and your brain as the "programming". An artist can sculpt a human figure, but without a brain, it's just a static sculpture. Edited by Cornstalks
1

Share this post


Link to post
Share on other sites
This is much easier to understand than what I had expected. I guess i just need to dabble into both to see which one I like better. If someone could answer my 4th question, i'll be on my way. Thank you again for all of your help Cornstalks, I hope I can pass on the information when the time is right.
0

Share this post


Link to post
Share on other sites
I came from EVE (bitter vet, ex troll), and happily quit :D Mainly because programming was far more fun (and because 0.0 became shit)

The best way to think of programming / game programming in terms of EVE is you are doing the skill queue in real time, instead of spending days / weeks for a lvl 5 etc you are doing it, and same as it is in EVE you are NEVER not learning something. Much like EVE you dont fly a ship with terrible skills despite being able to fly it, you fly it when you have skills, my point is you need to learn Programming before Game Programming, but time flies so fast while programming that honestly you will be creating games in no time.

[quote name='bhawk245' timestamp='1355698679' post='5011391']
4) What are the steps to creating the visual bits and pieces? And if applicable, why is it that way (aside from common sense)?
[/quote]

The reason this cant really be answered is, its because one would have to explain how to graphics program, a very easy way to think of it is, you provide data (vectors, points etc) to the GPU and ask it to draw and discard it as efficient and fast as possible. Result being the user see's 'visual bits and pieces'.

What was your ingame name, corp, alliance?
1

Share this post


Link to post
Share on other sites
[quote name='bhawk245' timestamp='1355698679' post='5011391']
4) What are the steps to creating the visual bits and pieces? And if applicable, why is it that way (aside from common sense)?
[/quote]
In more simple games, you usually need not even worry about the GPU, but focus more on the graphics API built into the class structure of many languages. When displaying something on screen, you can render it in real time by drawing simple shapes based on perhaps a calculation that you made earlier, or you can draw pre-drawn images to the screen. The first option involves more code, the latter involves better drawing/3D modeling skills. Many times you will have a healty mix of both methods. As many have said before, it is most important to get the basics down for one language starting with console apps, then windows and finally games. (I personally spent way too much time making twext based console games but found that without haveing to worry about graphics I learned quite a bit about programming in general)
0

Share this post


Link to post
Share on other sites
[quote name='Dynamo_Maestro' timestamp='1355706133' post='5011447']
What was your ingame name, corp, alliance?
[/quote]

Right now im flying under the character NFain in the drone region coalition X) Im working towards wormhole sustainabilty (The only fun part left in eve).

[quote name='minibutmany' timestamp='1355709287' post='5011461']
[quote name='bhawk245' timestamp='1355698679' post='5011391']
4) What are the steps to creating the visual bits and pieces? And if applicable, why is it that way (aside from common sense)?
[/quote]
In more simple games, you usually need not even worry about the GPU, but focus more on the graphics API built into the class structure of many languages. When displaying something on screen, you can render it in real time by drawing simple shapes based on perhaps a calculation that you made earlier, or you can draw pre-drawn images to the screen. The first option involves more code, the latter involves better drawing/3D modeling skills. Many times you will have a healty mix of both methods. As many have said before, it is most important to get the basics down for one language starting with console apps, then windows and finally games. (I personally spent way too much time making twext based console games but found that without haveing to worry about graphics I learned quite a bit about programming in general)
[/quote]

Console im guessing is the basic computer console, I never knew apps could be developed in there #noob. What type of code does it use, also would running a virtual linux box be a better approach to learning programming?
0

Share this post


Link to post
Share on other sites
[quote name='bhawk245' timestamp='1355716928' post='5011509']
Console im guessing is the basic computer console, I never knew apps could be developed in there #noob. What type of code does it use, also would running a virtual linux box be a better approach to learning programming?
[/quote]
You don't actually develop apps [i]in[/i] the console. Rather, the most basic apps [i]run[/i] in the console. To get a proper window (like every normal application you use), you have to do extra work (a very beginner shouldn't be messing around with proper windowed apps for awhile). Without this extra work, apps are "window-less" and, when run, open a console to show their text input/output.
0

Share this post


Link to post
Share on other sites
Thank you Cornstalks for clearing that up. Just write programs without graphics, windows etc. To send output to the console use:
cout << "hello world";
in c++
System.out.println("hello world");
in Java

If you are still running an Apple 2 or ms-dos then you would be developing your applications in a "console" type of way with BASIC.
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