Jump to content

  • Log In with Google      Sign In   
  • Create Account

Game development - where on Earth to start?


Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.


  • You cannot reply to this topic
14 replies to this topic

#1 GreatBlitz   Members   -  Reputation: 108

Like
0Likes
Like

Posted 24 August 2014 - 06:27 AM

Hi there!

    I'm GreatBlitz. From when I was little, I had a passion for creating things. I began programming in late 2011, starting with Python. Back then, Python felt like a huge achievement for a non-computerish guy, and I wanted to proceed further. The good librarian lent me the book Head First Java in March 2012, and I began Java from then. From calculators to currency converters, Java felt like my home (and still does!). I took a small break as I got busy with school, but in late 2013 I got back, making mods in Java for a game called Minecraft. Now, I want to make my own game. I'm quite confused, with such a variety of options available, anything seemed like a feasible option. But I wanted some opinion from more experienced people. Here are a few things about me:

 

1. Game Maker (and the like) is a clear no-no. I want to code, not drag and drop. 

2. I'm comfortable with Java, but at the same time I don't mind learning a new language. The learning experience of a new language is quite fun too.

3. I prefer books over videos.

 

So can you suggest a starting point in game programming for me? According to my research, C++ seems like a good language for game programming (correct me if I'm wrong). Should I begin learning C++? If yes, can you recommend a book for it? And if no, what do I program in?

 

Regards,

GreatBlitz.

 



#2 fireside7   Members   -  Reputation: 213

Like
1Likes
Like

Posted 24 August 2014 - 06:45 AM

Unity is kind of the big deal right now.  Myself, I think html5 is more interesing because there is no plugin needed. WebGl is supported by most browsers so you can get small engines like PIXI.js that are hardware accellerated.  I looked at Unity and found it hard to organize but it may have been me.  The editors are cool, but it seems to end up it's hard to create enough content so the games look generic and dull.  I guess the big choice is 2d or 3d.  You either need someone to create content for you, or you have to create it yourself. 



#3 rAm_y_   Members   -  Reputation: 686

Like
0Likes
Like

Posted 24 August 2014 - 07:22 AM

Depends what type of game, from flappy bird to COD, 2D game or 3D game, PC, MAC, Linux, Windows, Android, iOS, WP, Xbox, Wii, PS etc..

 

Games on Android are written in Java by default for example so maybe an Android 2D game?



#4 GreatBlitz   Members   -  Reputation: 108

Like
1Likes
Like

Posted 24 August 2014 - 07:27 AM

Depends what type of game, from flappy bird to COD, 2D game or 3D game, PC, MAC, Linux, Windows, Android, iOS, WP, Xbox, Wii, PS etc..

 

Games on Android are written in Java by default for example so maybe an Android 2D game?

 

Unity is kind of the big deal right now.  Myself, I think html5 is more interesing because there is no plugin needed. WebGl is supported by most browsers so you can get small engines like PIXI.js that are hardware accellerated.  I looked at Unity and found it hard to organize but it may have been me.  The editors are cool, but it seems to end up it's hard to create enough content so the games look generic and dull.  I guess the big choice is 2d or 3d.  You either need someone to create content for you, or you have to create it yourself. 

2D games is what I want to do. More emphasis on story than on gameplay.



#5 rAm_y_   Members   -  Reputation: 686

Like
0Likes
Like

Posted 24 August 2014 - 07:57 AM

Well I take it your a one man team, can you create art, including textures, freehand drawing, pixel art, vector art, animations, can you create sounds effects, music etc...

 

There is a lot involved aside programming that's why people recommend using an established game engine like Unity, Cry Engine or Unreal Engine.



#6 Patrick B   Members   -  Reputation: 210

Like
3Likes
Like

Posted 24 August 2014 - 08:19 AM

Your choice of tools will be informed by the type of game you want to make. For example, if you're looking to so something with 3D or something that requires broad audio support, you would be wise to steer clear of HTML5 -- lessons learned when I was building Teletoon's Toon Feud game. However, if you're building something simpler that doesn't require excellent audio support and synchronization, across-the-board 3D support or peer-to-peer networking, and are willing to work around occasional browser incompatibilities, HTML5 is a good choice. I have no doubt that HTML5 will continue to evolve so in a few years we can expect it to have the capabilities of Flash 8 -- just not there yet. I broke it down in greater detail here: http://patrickbay.ca/blog/?p=153

 

If you're looking for a broad platform (your game can run on as many devices as possible without having to alter your code), I highly recommend Adobe Flash/AIR. I've developed nearly 90% of the games I've worked on in Flash or AIR and have no regrets. Keep in mind that your audience probably won't care what underlying technology is being used so the important take-away is that you work backwards from them -- what are your audience looking for? How will your game achieve these things? How can your choice of technology make this happen? Most successful developers don't tout the underlying technology (except to interested nerds), they tout what their product does for you.

 

Full disclosure: People have been paying me to develop games for about 10 years (I did it for fun for about 25), and I have a real soft spot for Adobe Flash / AIR. Yes, I'm deeply biased. I've worked in ActionScript, HTML5/JavaScript/jQuery, PHP, Java, C#, Assembler, and in the early days Pascal and BASIC. In my opinion, Flash gives you the biggest bang for the buck in terms of flexibility, power/abilities, and platform coverage. Of course, being interpreted means that ActionScript will never run quite as fast as C++ or to-the-metal Assembler, but ever since great Java-inspired concepts like Just-In-Time compilation were implemented, the Flash/AIR virtual machines have improved significantly. These days, Java and ActionScript are close cousins (though Java is still a few steps above and beyond).

 

You can go entirely open source and free (FlashDevelop or Apache Flex, supplanted with GIMP and InkScape), so costs are not a barrier. And, frankly, I think you'll find that ActionScript is close enough to Java to make the transition easy. Transitioning to JavaScript afterwards is even simpler -- just cut out the useful features and advances of languages like Java or ActionScript (strong data typing, for example), and you end up with JavaScript. Your skills will definitely transfer to other browser-based technologies so even if you end up dropping Flash/AIR in the future, knowing how frame-based animation is achieved, for example, comes in real handy when dealing with things like HTML5 (again, personal experience).

 

Ultimately, if you stick with one of the dot-notation languages you're probably safe in the long run, and when HTML5 is advanced (and actually standard) enough, you should be able to seamlessly transition your code. If you start with HTML5/JavaScript first, however, you'll be immersing yourself in a somewhat stagnant "standard" that, in my opinion, will limit you more than free you. But, of course, this is entirely dependent on what your actual limits are.



#7 GreatBlitz   Members   -  Reputation: 108

Like
0Likes
Like

Posted 24 August 2014 - 08:26 AM

Well I take it your a one man team, can you create art, including textures, freehand drawing, pixel art, vector art, animations, can you create sounds effects, music etc...

 

There is a lot involved aside programming that's why people recommend using an established game engine like Unity, Cry Engine or Unreal Engine.

Yes, you're right. But Unity or any other engine will not create the images or art for you, will it? In the end, you're the one who makes/gets the resources.

 

Your choice of tools will be informed by the type of game you want to make. For example, if you're looking to so something with 3D or something that requires broad audio support, you would be wise to steer clear of HTML5 -- lessons learned when I was building Teletoon's Toon Feud game. However, if you're building something simpler that doesn't require excellent audio support and synchronization, across-the-board 3D support or peer-to-peer networking, and are willing to work around occasional browser incompatibilities, HTML5 is a good choice. I have no doubt that HTML5 will continue to evolve so in a few years we can expect it to have the capabilities of Flash 8 -- just not there yet. I broke it down in greater detail here: http://patrickbay.ca/blog/?p=153

 

If you're looking for a broad platform (your game can run on as many devices as possible without having to alter your code), I highly recommend Adobe Flash/AIR. I've developed nearly 90% of the games I've worked on in Flash or AIR and have no regrets. Keep in mind that your audience probably won't care what underlying technology is being used so the important take-away is that you work backwards from them -- what are your audience looking for? How will your game achieve these things? How can your choice of technology make this happen? Most successful developers don't tout the underlying technology (except to interested nerds), they tout what their product does for you.

 

Full disclosure: People have been paying me to develop games for about 10 years (I did it for fun for about 25), and I have a real soft spot for Adobe Flash / AIR. Yes, I'm deeply biased. I've worked in ActionScript, HTML5/JavaScript/jQuery, PHP, Java, C#, Assembler, and in the early days Pascal and BASIC. In my opinion, Flash gives you the biggest bang for the buck in terms of flexibility, power/abilities, and platform coverage. Of course, being interpreted means that ActionScript will never run quite as fast as C++ or to-the-metal Assembler, but ever since great Java-inspired concepts like Just-In-Time compilation were implemented, the Flash/AIR virtual machines have improved significantly. These days, Java and ActionScript are close cousins (though Java is still a few steps above and beyond).

 

You can go entirely open source and free (FlashDevelop or Apache Flex, supplanted with GIMP and InkScape), so costs are not a barrier. And, frankly, I think you'll find that ActionScript is close enough to Java to make the transition easy. Transitioning to JavaScript afterwards is even simpler -- just cut out the useful features and advances of languages like Java or ActionScript (strong data typing, for example), and you end up with JavaScript. Your skills will definitely transfer to other browser-based technologies so even if you end up dropping Flash/AIR in the future, knowing how frame-based animation is achieved, for example, comes in real handy when dealing with things like HTML5 (again, personal experience).

 

Ultimately, if you stick with one of the dot-notation languages you're probably safe in the long run, and when HTML5 is advanced (and actually standard) enough, you should be able to seamlessly transition your code. If you start with HTML5/JavaScript first, however, you'll be immersing yourself in a somewhat stagnant "standard" that, in my opinion, will limit you more than free you. But, of course, this is entirely dependent on what your actual limits are.

HTML 5 is web-based, is it not? Web based deployment isn't what I'm looking for.

 

As for Adobe AIR, it sounds like a good option.



#8 Patrick B   Members   -  Reputation: 210

Like
3Likes
Like

Posted 24 August 2014 - 08:30 AM

Unity is kind of the big deal right now.  Myself, I think html5 is more interesing because there is no plugin needed. WebGl is supported by most browsers so you can get small engines like PIXI.js that are hardware accellerated.  I looked at Unity and found it hard to organize but it may have been me.  The editors are cool, but it seems to end up it's hard to create enough content so the games look generic and dull.  I guess the big choice is 2d or 3d.  You either need someone to create content for you, or you have to create it yourself. 

 

WebGL is not supported by most browsers. Only 33% of browsers fully support it, another 33% have partial support, and the remaining 33% (most mobile browsers), don't support it at all: http://caniuse.com/#feat=webgl



#9 Patrick B   Members   -  Reputation: 210

Like
0Likes
Like

Posted 24 August 2014 - 08:48 AM

 

HTML 5 is web-based, is it not? Web based deployment isn't what I'm looking for.

 

As for Adobe AIR, it sounds like a good option.

 

 

HTML5 is either web-only or app-only.

 

When not running in the browser, technologies like PhoneGap can turn HTML5/JavaScript content into apps. However, the custom JavaScript calls used in PhoneGap (etc.) are only used in such technologies, so these apps simply won't run correctly, or at all, in the browser. Performance or broad compatibility are simply not there yet. This is sometimes a necessary situation -- PhoneGap can't support something on a Windows phone that can't be supported on Android and iOS, for example -- but there's no low-level workaround at the moment (see ActionScript's Native Extension system, for example).

 

This situation is reminiscent of Flash circa 2007 when ActionScript 3 was being formulated and third-party technologies like NothCode's SWF Studio were providing app functionality to otherwise web-only Flash content. This is why I'm not against HTML5 or JavaScript -- I can see where it's heading, it's just clearly not there yet. If you learn the advanced stuff first and work backwards, I estimate that you'll be in a much better spot in a few years than someone having to climb the knowledge mountain for the first time.


Edited by Patrick B, 24 August 2014 - 08:51 AM.


#10 fireside7   Members   -  Reputation: 213

Like
1Likes
Like

Posted 24 August 2014 - 12:07 PM

 

WebGL is not supported by most browsers. Only 33% of browsers fully support it, another 33% have partial support, and the remaining 33% (most mobile browsers), don't support it at all: http://caniuse.com/#feat=webgl

The current versions of the major browsers support it:

http://caniuse.com/#feat=webgl

 

People that play games tend to use current browsers, and it will just become more prevalent in the future.



#11 0r0d   Members   -  Reputation: 1422

Like
2Likes
Like

Posted 25 August 2014 - 01:22 AM

 

So can you suggest a starting point in game programming for me? According to my research, C++ seems like a good language for game programming (correct me if I'm wrong). Should I begin learning C++? If yes, can you recommend a book for it? And if no, what do I program in?

 

 

You certainly cant go wrong learning C++, which is the standard programming language in the games industry.  It will also introduce you to low-level concepts that you probably havent been exposed to in your previous development experience.



#12 shadowstep00   Members   -  Reputation: 684

Like
0Likes
Like

Posted 26 August 2014 - 04:09 AM

Game Maker isn't just about drag and drop. 

 

If you actually aim on making a good 2d game you have to use the GML language (Game Maker Language). Which has similar syntax to java, c, c++.

You said you know Java so its going to be easy for you to get used to it and get started quickly.

 

I personally use Game Maker and I think its an awesome tool for making 2D games. (ONLY 2D GAMES!)

I have never used the Game Maker Drag&Drop tools cause I find them more difficult and limited from the actual scripting language.

It also supports multiplatform (andoid,iOS, windows, html ect.). At a given price of course... 

 

If your aim is 2d game development then I think Game Maker is a good start.

Personally I started learning Game Maker from youtube videos of Shaun Spalding, When you get how things work you wont need any more help. Then it will be up to you. And of course there are game maker forums to help you out for more specific things,

 

 

Hope I helped. biggrin.png


Edited by shadowstep00, 26 August 2014 - 04:12 AM.

Failure is not an option...


#13 Madolite   Members   -  Reputation: 375

Like
0Likes
Like

Posted 27 August 2014 - 10:37 AM

Well, I'm not an authority source on the matter, but here's some suggestions about what I've been doing. It involves both some questionable or "Less-than-perfect" things as well as some solid stuff from well-known, established sources (like Stanford University, top developers like Will Wright, and more):
 

If you're into Java, then check out the youtube channel "TheChernoProject", it's a treasure trove (imo after never having found an equivalently educational game programming series from an actual top developer with years of experience). Particularly his game programming videos. Have in mind though, that you should probably couple this with some academical lectures like Stanford University's Lectures on Programming Methodology, as well as some books like "Effective Java" etc, because I'm noticing that TheCherno does a few things a bit cluttered or ineffective (by the standards of second-opinion professionals that I've talked to). Some pros have commented on him being a bit lackluster on commenting and structuring his code and certain other methodological things which I've heard is a major issue with coders, especially if you're applying for a job.

As Prof. Mehran Sahami (Stanford) alludes to, a great programmer can still be a horrendous software designer (and vice versa, apparently).

Also, you generally want to have a critical mindset regardless of what you learn in life, because this can prevent you from learning a lot of crap that you later need to unlearn. Intrinsic versus extrinsic learning, and all that good jazz.

 

For more conceptual stuff about game design etc, you might want to check up on Game Design with Will Wright and many more Youtube videos (and books).

 

Finally, never stop educating yourself. I've probably watched 50+ game design videos, read a few books (both on design and writing) and studied well over 500+ major game titles and now I just need to master Java so I can actually construct actual applications, which is ultimately the big bottleneck for many newbies, it seems. Then I'll move on to C++, most likely and later specialize in some specific field of game development. wink.png


Edited by Madolite, 27 August 2014 - 11:32 AM.


#14 Madolite   Members   -  Reputation: 375

Like
0Likes
Like

Posted 27 August 2014 - 10:48 AM

(deleted post) 

 


Edited by Madolite, 27 August 2014 - 10:50 AM.


#15 Patrick B   Members   -  Reputation: 210

Like
0Likes
Like

Posted 04 September 2014 - 03:39 PM

 

Finally, never stop educating yourself.

 

Best advice! biggrin.png






Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.




PARTNERS