Advertisement

A new beginning, some questions for pointers for a stranger to coding

Started by January 18, 2015 01:11 PM
7 comments, last by Kalashj 9 years, 11 months ago

Hey everyone,

I'm completely new to game development & coding, as most are in this section. Have already been reading a lot about coding etc. I have a couple of questions, or would like to ask you all for some pointers.

On this forum I found a link (http://www.gamedev.net/page/resources/_/technical/game-programming/how-do-i-make-games-a-path-to-game-development-r892), which basically said: start with tetris, then breakout, pacman, mario brothers. So you gradually learn all the basics of what it takes to create something and keep advancing in coding. Ofcourse I won't just copy what they did, but will try to give my own twist to it as I think purely copying a game is just mehh ;).

What I want to do

- Basically I just want to create the games mentioned above and steadily learn and expand my knowledge before building any games of my own (I have tons of ideas, which are ofcourse unreal and simply more than amazing, though I quickly found that to build those ideas is just impossible for me at this point and I should start with the basics).

- I'm not really sure whether I want to create games for just PC or mobile devices, preferably on both at first.

My questions

My friend is starting with C++ and however it would be amazing to create something together I feel that this would be aiming to high for myself as he's just a level smarter than I am and C++ would probably be to difficult, at least for now. After doing some research I think JAVA and C# will be more suited for me, however I don't really know much about C# and will ofcourse do some more research on both. So to start my questions/problems:

- What language would be best to develop a simple game (mentioned above) that can both be played on the pc and mobile devices (preferably playable on all devices, but if I have to chose then it will be android as I have an android phone myself. Would be pretty hard to test it out on a mobile device otherwise). Also if it's not possible to create a game that's both playable on PC and MD, I'd choose MD to begin with. In the end I'll most likely end up for PC games, dont ask my why cause I don't really know. It's just a feeling.

- What program should I use? Have searched the web for this answer and there are so many choices that I find it hard to choose. Have used Eclipse for the beginning guide with kilobolt, though I got the idea that this platform was somewhat outdated and has been surpassed by others. It was pretty easy to use and accesible imo though. Have also downloaded Android Studios and am currently looking into this. Personally I really want to learn to code while making my games and not just constantly copy some library file with everything in it, I'd like to know what I'm doing. Also probably noteworthy: I can't draw, which brings me to the following question:

- Graphics, some people use paint, others use other programs. What program would you recommend for the type of programs I could be using? For my first games I don't really care much for the graphics as they're beginning steps, but ofcourse it would be nice to create something that actually looks nice and sharp in the end. This question is more out of my own curiosity instead of being really important though.

- Do you have any tips or maybe pointers for beginning tutorials for me in regard to the games I want to learn to create first and for the platform I should use? I know it's a bit based on your own preference and the games you want to create, though I'd really appreciate some pointers on these things.

Hopefully I don't come across a lazy person who doesn't research anything and just asks "Hey guuyyz what do I need to use, please gimme knowledge!!!". I have done research, but I'd really appreciate some pointers as I'm always a bit doubtfull when starting on something I have never done before and keep doubting what would be best to start with. Finally I would like to thank the ones who read this and were kind enough to help me out/comment on this thread in advance, the smallest tips and pointers will be very much appreciated.

Kalashj

(Before you read anything, just remember that i am learning programming so my advice could be wrong)


My friend is starting with C++ and however it would be amazing to create something together I feel that this would be aiming to high for myself as he's just a level smarter than I am and C++ would probably be to difficult, at least for now. After doing some research I think JAVA and C# will be more suited for me, however I don't really know much about C# and will ofcourse do some more research on both. So to start my questions/problems:

If you want to do C# or JAVA there are pro's and cons, if you wanna create something with your friend, do C#, and after you learn that do C++ and it will be TONS easier, but in my experience, java is a lot easier to learn in any variation (At least for me)


- What language would be best to develop a simple game (mentioned above) that can both be played on the pc and mobile devices (preferably playable on all devices, but if I have to chose then it will be android as I have an android phone myself. Would be pretty hard to test it out on a mobile device otherwise). Also if it's not possible to create a game that's both playable on PC and MD, I'd choose MD to begin with. In the end I'll most likely end up for PC games, dont ask my why cause I don't really know. It's just a feeling.

I believe that JAVA is for both MD and PC but i'm not sure, so you might wanna check it out, and C# is slightly better then JAVA for simple games. For example, i heard that this one C# book teaches you to make a simple game within the first (50 page give or take) chapter...


- What program should I use? Have searched the web for this answer and there are so many choices that I find it hard to choose. Have used Eclipse for the beginning guide with kilobolt, though I got the idea that this platform was somewhat outdated and has been surpassed by others. It was pretty easy to use and accesible imo though. Have also downloaded Android Studios and am currently looking into this. Personally I really want to learn to code while making my games and not just constantly copy some library file with everything in it, I'd like to know what I'm doing. Also probably noteworthy: I can't draw, which brings me to the following question:

Since you're not going to publish games on PC or MD anytime soon, i recommend visual studios, its hard to transfer it to anything, but then again its not going to be pubished on anything, and its takes all types of languages, including C# and JAVA

I hope this was helpful! Please tell me if anything in this is wrong.

Advertisement

If your friend likes to share code, go with the C++, you learn simpler together by dividing tasks and helping eachother.

S T O P C R I M E !

Visual Pro 2005 C++ DX9 Cubase VST 3.70 Working on : LevelContainer class & LevelEditor


- What language would be best... [?]

It doesn't really matter. I think Java is a major language to use with Android, so that coupled with Java's gentle early learning curve might make that a good choice for you if you're really focused on mobile development. C# is also popular and easy to get into. I don't recommend C++ because it can be fussy and it's very easy to make mistakes, particularly when you are inexperienced. Learning to program games is a special subset of programming in general and so you would be better served if you focus on developing programming skills now rather than zeroing in on the exact type of product you want to make and how you plan to deploy it.

I don't think that your friend's language choice should be much of a factor for you. You've no guarantee that he will be successful in learning it well or at a pace that will suit your own, and a huge amount of the benefit of having other people to learn with will be about things like code structure and design. These are less language-specific than particular syntax requirements and other linguistic details.


- What program should I use? ...

I can't help you with specific recommendations for Java, but the compiler or IDE you use is not too critical a decision. You can always switch to a different one, and the language you program in doesn't change from one to another.


What program would you recommend for the type of programs I could be using?

It's not very important. You can use MS Paint all the way up to professional versions of Photoshop and Illustrator. The term "programmer art" is used for exactly what you're describing-- low-quality art used in development, and it's frequently replaced with better art later. The program doesn't really change in this process as long as the type of picture (like a 2D image or a 3D mesh) doesn't change either. It will just look better with the better art.


Do you have any tips or maybe pointers for beginning tutorials for me in regard to the games I want to learn to create first ... [?]

My main advice is that if you're just starting, even Tetris is ambitious. Learn the basics of your chosen language first, like the syntax rules, and make very very small projects. The list you linked to may start with Tetris, but a standard first "game" project is Guess the Number. Bigger projects have different challenges than smaller ones and deal with problems that are addressed with design choices. It's easier to make good design choices once you have a stronger grasp of the language, which you can develop most easily in projects small enough that design is less critical.

Other advice includes avoiding tutorials for the most part. There are thousands of them and you will not be able to judge their quality for a while, which can lead to bad habits which will make it harder, not easier, for you to make what you want. Tutorials also lend themselves to copy-and-paste approaches. Even if you aren't actually hitting ctrl+c and ctrl+v, it's hard for the tutorial format to teach the problem solving aspect of programming. And unfortunately, that aspect is the major piece of programming.

-------R.I.P.-------

Selective Quote

~Too Late - Too Soon~


It doesn't really matter. I think Java is a major language to use with Android, so that coupled with Java's gentle early learning curve might make that a good choice for you if you're really focused on mobile development. C# is also popular and easy to get into. I don't recommend C++ because it can be fussy and it's very easy to make mistakes, particularly when you are inexperienced. Learning to program games is a special subset of programming in general and so you would be better served if you focus on developing programming skills now rather than zeroing in on the exact type of product you want to make and how you plan to deploy it.

I don't think that your friend's language choice should be much of a factor for you. You've no guarantee that he will be successful in learning it well or at a pace that will suit your own, and a huge amount of the benefit of having other people to learn with will be about things like code structure and design. These are less language-specific than particular syntax requirements and other linguistic details.

What you say makes a lot of sense. I've decided to focus on learning JAVA, have already started a bit with that and it felt pretty good and accesible to use. Moreover it's widely used as a platform for android games as I understand. Though I'm not really sure if a game created with JAVA is also accesible on a PC when writing for a mobile device.


I can't help you with specific recommendations for Java, but the compiler or IDE you use is not too critical a decision. You can always switch to a different one, and the language you program in doesn't change from one to another.

On various forums and google links I've read that Unity 3d is a pretty decent platform to work with, also for 2D games (which I'll be focussing on first, since I assume they're easier to build, feel free to correct me if I'm wrong here). Also read that Android Studio 1.0 has now been released and seems pretty good. Visual studio also has my attention, though when there are so many good platforms to use, I don't really think that it matters much on what you use as all will have pro's and cons, as I understand it there's nothing that really stands out from one another. I guess I should just try them out and see which one suits me best. As I understand it's rather easy or at least possible to change to another platform with JAVA coding am I right?


It's not very important. You can use MS Paint all the way up to professional versions of Photoshop and Illustrator. The term "programmer art" is used for exactly what you're describing-- low-quality art used in development, and it's frequently replaced with better art later. The program doesn't really change in this process as long as the type of picture (like a 2D image or a 3D mesh) doesn't change either. It will just look better with the better art.

So basically you're saying that it doesn't really matter how the game looks, when you write the code the code stands for itself. You can always upgrade/update the graphics with better images, without it changing the underlying written code?


My main advice is that if you're just starting, even Tetris is ambitious. Learn the basics of your chosen language first, like the syntax rules, and make very very small projects. The list you linked to may start with Tetris, but a standard first "game" project is Guess the Number. Bigger projects have different challenges than smaller ones and deal with problems that are addressed with design choices. It's easier to make good design choices once you have a stronger grasp of the language, which you can develop most easily in projects small enough that design is less critical.

Other advice includes avoiding tutorials for the most part. There are thousands of them and you will not be able to judge their quality for a while, which can lead to bad habits which will make it harder, not easier, for you to make what you want. Tutorials also lend themselves to copy-and-paste approaches. Even if you aren't actually hitting ctrl+c and ctrl+v, it's hard for the tutorial format to teach the problem solving aspect of programming. And unfortunately, that aspect is the major piece of programming.

I understand that even Tetris is ambitious at first, though I believe it's good to have at least a starters goal ;). Ofcourse I'll focus on understanding the syntax rules first before I try to create anything at all. You're making a very good point on the tutorials so I guess I'll just start writing after getting to understand the JAVA basics and look up things I don't understand or know.

Thank you for your time, really appreciate it. I know a bit better about what direction I'm going with this game development. Honchkrow also thanks for your reaction, haven't quoted you as my reaction will be way too long otherwise, but it was helpfull and gave me some extra insights.

I am now going to self-proclaim myself as an expert. So, in addition to reading my expert advice, please read the forum's beginners guide for further references.


As I understand it's rather easy or at least possible to change to another platform with JAVA coding am I right?

That's what they say, but usually when you are coding an app, be it for mobiles or PC or server-side, you will eventually use the platform-specific libraries. That promise only holds true when you write a Hello World, or a very simple program.

The list that says you first need to start with tetris, then breakout, then pacman isn't authoritative. You don't have to have that exact sequence. What you need is lots of experience. Lots of programming experience dealing with lots of different things. That sounds a lot, because well it is.

Programming is a tricky skill. No one can tell you exactly how to become a good programmer. Unlike, let's say carpentry, in which you may have some blueprints of a design, along with its measurements, programming doesn't have that luxury. There are sample codes, but part of the fun of programming isn't making someone else's games, it is to make your games. To make your own game, you just have to do it with trials and errors.

The good news is that you don't need all of those just to create a game. Creating a game counts toward that experience, and you don't even have to start with tetris. Make some lame game where you get to drag this...camel, collecting stranded adventurers in desert, or something like that. Create a game with ridiculously simple mechanic that takes a 2-year-old no longer than 10 seconds to master, like Flappy Bird.

Don't be discouraged by its simplicity, nor feeling like a loser for making such a ridiculous simple game. If your friends make fun of you for making ugly simple games, instead of shiny 3d graphics with unity, then dump them and make new friends.

Don't worry about the nitty gritty details like whether to use Paint or Photoshop, or which IDE, or what PC with what video cards. All of those are irrelevant. Just pick one, and start coding..

Advertisement

I am now going to self-proclaim myself as an expert. So, in addition to reading my expert advice, please read the forum's beginners guide for further references.


As I understand it's rather easy or at least possible to change to another platform with JAVA coding am I right?

That's what they say, but usually when you are coding an app, be it for mobiles or PC or server-side, you will eventually use the platform-specific libraries. That promise only holds true when you write a Hello World, or a very simple program.

The list that says you first need to start with tetris, then breakout, then pacman isn't authoritative. You don't have to have that exact sequence. What you need is lots of experience. Lots of programming experience dealing with lots of different things. That sounds a lot, because well it is.

Programming is a tricky skill. No one can tell you exactly how to become a good programmer. Unlike, let's say carpentry, in which you may have some blueprints of a design, along with its measurements, programming doesn't have that luxury. There are sample codes, but part of the fun of programming isn't making someone else's games, it is to make your games. To make your own game, you just have to do it with trials and errors.

The good news is that you don't need all of those just to create a game. Creating a game counts toward that experience, and you don't even have to start with tetris. Make some lame game where you get to drag this...camel, collecting stranded adventurers in desert, or something like that. Create a game with ridiculously simple mechanic that takes a 2-year-old no longer than 10 seconds to master, like Flappy Bird.

Don't be discouraged by its simplicity, nor feeling like a loser for making such a ridiculous simple game. If your friends make fun of you for making ugly simple games, instead of shiny 3d graphics with unity, then dump them and make new friends.

Don't worry about the nitty gritty details like whether to use Paint or Photoshop, or which IDE, or what PC with what video cards. All of those are irrelevant. Just pick one, and start coding..

I understand you don't need that exact order or to do anything like that at all, though it gives some direction and the games have always been fun in my eyes.

Well said and guess I'll just pick JAVA and some platform and start somewhere, where is still the question but that'll become clear when you just start searching for everything. Thanks a lot for your response! Paint etc will ofcourse come at a later stage, for the first couple games the graphics don't matter. Was just being curious about that one ;). At least I'm still very excited to begin!

I would advice you to pick the PC as your platform to start with, because for managed langauges it is still the best platform. On the mobile ones you will run into issues you might not yet be able to deal with, remember the phones have a whole lot of less power.

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion

I would advice you to pick the PC as your platform to start with, because for managed langauges it is still the best platform. On the mobile ones you will run into issues you might not yet be able to deal with, remember the phones have a whole lot of less power.

Might be a smart idea, though I'd like to write in JAVA as I've done a little bit of that already and that went pretty well. Though I was writing this on Eclipse and that seems to be outdated/surpassed by other programs. Think I'm going to write with Android Studio. Does anyone have any experience concerning this program and is this a good choice for a beginner writing in JAVA code? Can't really find if Android Studios is also good for publishing on PC. Yes I know it'll take a long while to "publish" anything, probably a simplistic game but it's not for the masses, just for me and my friends ;). I just don't have that much free time and having to learn a completely different language or program after I've already learned one will just take to much time for the time being. Eventually ofcourse I'd like to expand my horizon.

So basically, I'd like to "publish" on both PC and Android (writing my code in JAVA), is this possible with a certain program? Android studio or is there a program more suited for this?

This topic is closed to new replies.

Advertisement