Jump to content

  • Log In with Google      Sign In   
  • Create Account


The Beginning


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
10 replies to this topic

#1 Darkwind   Members   -  Reputation: 116

Like
1Likes
Like

Posted 02 January 2013 - 04:38 PM

Hello Everyone, 

 

I'm going to start this with a bit about me. I am a relatively new programmer, and have been in the working world for the past 2 years now. My main programming language is C#. I have also dabbled in VB6 in the office, to support some of our legacy applications.

 

For the past 3 years I have been "mentoring" a team of students at a sixth form college in robotics, which is primarily coded in C++, also with this I have taught myself some Java, as one of the students wanted to learn it and apply it to robotics.

 

My question is, like many before me have asked, where should I begin to look at game developing?

 

My first stop on the road was to look at http://www.gamefromscratch.com/post/2011/08/04/I-want-to-be-a-game-developer.aspx which is about a year out of date, which seems to be a long time in the development circles.

 

A brief on the article says to avoid C++, is this a wise choice for starting out?

 

From that article I also started to look at XNA, however from doing a quick google it appears that Microsoft are not supporting this for windows 8, not that this is a big factor in my choices. As a MSDN holder, I have access to the full MS Development tools anyway.

 

My next stop would have to be Java, now I don't know if this is a misconception but I believe that it follows the same syntax and structure as C#, and seems to be widely support on the GDK side of things. Correct?

 

I'm going to preemptively try and answer a question I think I am going to get asked, and that is "What type of game do you want to make?"

 

In the long run my aim is to put together a RPG type game, with a few possible starting "Classes", walk around some open spaces, go into some dungeons, kill some bosses, win some loot, save a princess. You know that sort of thing.

 

I am well aware, that this is a long time goal, and I guess my first attempt would be something along the lines of "snake" or a simple "old school" game.

 

Thanks for reading this and any help would be much appreciated.

 

Ben

 

 

 

 

 

 



Sponsor:

#2 3Ddreamer   Crossbones+   -  Reputation: 3133

Like
3Likes
Like

Posted 02 January 2013 - 05:38 PM

Hi,

 

 

The amount of experience which you have makes clear that you know how to make a program.  You have some experience in several languages.  You work in a development environment.

 

You must make a few simple games if you really want to understand how games work and are ported to systems.  Use your current development environment to make and implement these. Here is a partial list:

 

Crossword Puzzle

Tic-Tac-Toe

Pong

Tetris

Pac Man

Space Invaders

Asteroids

Defender

Donkey Kong

Mario Brothers

Galaxy

 

... or other simple games...

 

Create 3 to 5 of these games, finished really well and modified, and port to two or more platforms for each game.

 

If your development environment is not adequate for the more art asset faceted games down the list, then consider another development software environment or a game engine once the time comes.  Since you like C# and Java, why not use them?  There are fine games and game engines written in Java or C#.   Some let you use the language of your preference other than the one in the game engine, for example using C# for your game scripting, VB6 for your user interfaces, and both over a Java game engine.  By the way, it is not entirely necessary to use or have a game engine to create and run a game on a computer, but your capabilities would obviously be greater in general.

 

There is no need for a programmer of your experience to avoid C++, but choose your libraries carefully because of the possibility of getting lost in all the features.  C++ has a strength and advantages in the lower level aspects such as graphics, yet beyond the ability of most inexperienced programmers.

 

A fair warning of one of the pitfalls of game making:  User interfaces can make or break a development choice.  Look from the beginning at development systems which have good interface development at the start. Take a look at Mono, SharpDX, and Unity 3D.  The #GTK has fast start development with GNOME projects to make interfaces, as an example. 

 

Here is a list of game engines and don't overlook the C++ ones, since you are fairly experienced in programming:

http://en.wikipedia.org/wiki/List_of_game_engines

 

 

Of course you must take into consideration your present and future art abilities.  You may wish to be programmer heavy.  Finding artists is an option, but good ones will want to see solid progress on your part and something to show for it in a game concept.

 

When you are ready to make your own unique games, then you will know it.

 

[Edited for typo]


Edited by 3Ddreamer, 03 January 2013 - 01:59 PM.

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software.  The better the workflow pipeline, then the greater the potential output for a quality game.  Completing projects is the last but finest order.

 

by Clinton, 3Ddreamer


#3 alnite   Crossbones+   -  Reputation: 2067

Like
3Likes
Like

Posted 02 January 2013 - 06:00 PM

My question is, like many before me have asked, where should I begin to look at game developing?

 

My first stop on the road was to look at http://www.gamefromscratch.com/post/2011/08/04/I-want-to-be-a-game-developer.aspx which is about a year out of date, which seems to be a long time in the development circles.

 

A brief on the article says to avoid C++, is this a wise choice for starting out?

 

Avoid C++ if you have no background whatsoever in programming.  C++ is merciless to beginners.  If you do have background in programming, then by all means learn C++ if you haven't already.  C/C++ are pretty popular among game developers, so there are plenty of tools and libraries.

 

 

My next stop would have to be Java, now I don't know if this is a misconception but I believe that it follows the same syntax and structure as C#, and seems to be widely support on the GDK side of things. Correct?

 

Java is widely supported for game development, and it has plenty of development tools.  It has, however, always been seen as the 'slow' language not suited for game development.  Having developed games in Java on embedded systems (512K RAM or less), I can say with 99% confidence that it's not true.  The people who say it's slow are usually low-level freaks who are concerned with 1 ns difference in their game loop, or people who don't know how to use Java and abuse the GC.

 

 

I'm going to preemptively try and answer a question I think I am going to get asked, and that is "What type of game do you want to make?"

 

In the long run my aim is to put together a RPG type game, with a few possible starting "Classes", walk around some open spaces, go into some dungeons, kill some bosses, win some loot, save a princess. You know that sort of thing.

 

I am well aware, that this is a long time goal, and I guess my first attempt would be something along the lines of "snake" or a simple "old school" game.

 

Yes, do start with something simple.  This is to get you familiar with what game development is like.  It is different from the typical application development.

 

 

Thanks for reading this and any help would be much appreciated.

 

Ben

 

You are welcome and welcome to game dev smile.png


Edited by alnite, 02 January 2013 - 06:01 PM.


#4 Stormravens74727   Members   -  Reputation: 132

Like
1Likes
Like

Posted 02 January 2013 - 06:13 PM

Maybe have a look through 'Beginning C++ Through Game Programming' by Michael Dawson. I know you have a fare amout of experiance in programming but the book take you through some simple games to get you started



#5 Darkwind   Members   -  Reputation: 116

Like
0Likes
Like

Posted 03 January 2013 - 03:05 AM

A fair warning of one of the pitfalls of game making:  User interfaces can make or break a development choice.  Look from the beginning at development systems which have good interface development at the start. Take a look at Mono, SharpDX, and Unity 3D.  The #GTK has fast start development with GNOME projects to make interfaces, as an example. 

 

Here is a list of game engines and don't overlook the C++ ones, since you are fairly experienced in programming:

http://en.wikipedia.org/wiki/List_of_game_engines

 

Of course you must take into consideration your present and future art abilities.  You may wish to be programmer heavy.  Finding artists is an option, but good ones will want to see solid progress on your part and something to show for it in a game concept.

 

Ive looked at Unity in the past, and I think it is a bit above what I am aiming for at the moment, 3D is something I haven't really looked into. SharpDX looks interesting though, 

 

Thanks for those, I had taken a look at the list of engines, I didn't realise there were so many to choose from, do you have any recommendations, personal preferences?

 

 

Java is widely supported for game development, and it has plenty of development tools.  It has, however, always been seen as the 'slow' language not suited for game development.  Having developed games in Java on embedded systems (512K RAM or less), I can say with 99% confidence that it's not true.  The people who say it's slow are usually low-level freaks who are concerned with 1 ns difference in their game loop, or people who don't know how to use Java and abuse the GC.

 

Thanks for reading this and any help would be much appreciated.

 

Ben

 

You are welcome and welcome to game dev smile.png

 

I had briefly touched on looking at Java, as someone I know recommended JMonkeyEngine.

 

Thank you for the warm welcome, its good to be here :)

 

Maybe have a look through 'Beginning C++ Through Game Programming' by Michael Dawson. I know you have a fare amout of experiance in programming but the book take you through some simple games to get you started

 

Thanks for the book suggestion, there seems to be a lot of them from a quick browse on the web. Ill probably end up picking up a copy of this along with some general C++ books for some "light reading".

 

Ben



#6 Serapth   Crossbones+   -  Reputation: 5310

Like
1Likes
Like

Posted 03 January 2013 - 10:04 AM


 

My question is, like many before me have asked, where should I begin to look at game developing?

 

My first stop on the road was to look at http://www.gamefromscratch.com/post/2011/08/04/I-want-to-be-a-game-developer.aspx which is about a year out of date, which seems to be a long time in the development circles.

 

A brief on the article says to avoid C++, is this a wise choice for starting out?

 

What a great place to start!  :D  ( I am the author ).

 

You are right, its just over a year old, although I have done a few edits to keep it more current.  I have considered doing a version two of that article, but truth of the matter is, it's mostly still accurate and their haven't been a ton of new developments since.

 

The exceptions since that article was written:

  • Microsoft put an axe in XNA.  That doesn't mean you shouldn't use it, but it certainly does suck, as C#+XNA was the perfect beginner recommendation
  • HTML5 / Javascript.  There has been a lot of movement in this space over the last year.
  • LUA.  Lua is having a rocking good time.  There are four major Lua engines and they are a great place to start ( or end! ).

 

The last one would probably be my biggest change in how I wrote the article, as I *STRONGLY* recommend starting with LUA and one of the game engines ( LOVE, Moai, Gideros or Corona ).  Lua is an easy language to learn, and you can get up and going faster than PyGame+Python, but without the heavy performance drop people seem to express.  

 

I would also recommend JavaScript but... 1) the language has some serious flaws for a new developer 2) the DOM [browser programming model] SUCKS, and I do mean SUCKS.  There are just two many little headaches when working with JavaScript for new developers.  Hell as a developer with 15+ years of experience ( including many years of JavaScript work ) I still encounter gigantic WTF moments.  That said, the core of the language ( prototype based ) is a wonder to work with.



#7 Darkwind   Members   -  Reputation: 116

Like
0Likes
Like

Posted 03 January 2013 - 11:00 AM

What a great place to start! biggrin.png ( I am the author ).

You are right, its just over a year old, although I have done a few edits to keep it more current. I have considered doing a version two of that article, but truth of the matter is, it's mostly still accurate and their haven't been a ton of new developments since.

The exceptions since that article was written:
  • Microsoft put an axe in XNA. That doesn't mean you shouldn't use it, but it certainly does suck, as C#+XNA was the perfect beginner recommendation
  • HTML5 / Javascript. There has been a lot of movement in this space over the last year.
  • LUA. Lua is having a rocking good time. There are four major Lua engines and they are a great place to start ( or end! ).
The last one would probably be my biggest change in how I wrote the article, as I *STRONGLY* recommend starting with LUA and one of the game engines ( LOVE, Moai, Gideros or Corona ). Lua is an easy language to learn, and you can get up and going faster than PyGame+Python, but without the heavy performance drop people seem to express.

I would also recommend JavaScript but... 1) the language has some serious flaws for a new developer 2) the DOM [browser programming model] SUCKS, and I do mean SUCKS. There are just two many little headaches when working with JavaScript for new developers. Hell as a developer with 15+ years of experience ( including many years of JavaScript work ) I still encounter gigantic WTF moments. That said, the core of the language ( prototype based ) is a wonder to work with.

I'm just going to say thanks for the article, it really did get my foot moving towards the gaming door, and slightly through it.

I've written a lot of Javascript in the last year as I work mainly on web apps. And I agree with you there are a lot of WTF moments, especially with DOMs load order in IE compared to well everything else. JQuery document.ready was my friend in a lot of cases...

I can't say I have any incentive to go for HTML5 yet, as there doesn't seem to be a standard, and headaches between browsers is something for now id rather avoid.

I hadn't even looked at LUA, but with that recommendation I may just go do so, isn't it more of a "Scripting" language?

At the moment I think I am going to stick with XNA and see where that takes me, next step would probably be Java with again your recommendation of Jmonkey

Ben

Edited by Darkwind, 03 January 2013 - 11:04 AM.


#8 Serapth   Crossbones+   -  Reputation: 5310

Like
0Likes
Like

Posted 03 January 2013 - 01:45 PM

What a great place to start! biggrin.png ( I am the author ).

You are right, its just over a year old, although I have done a few edits to keep it more current. I have considered doing a version two of that article, but truth of the matter is, it's mostly still accurate and their haven't been a ton of new developments since.

The exceptions since that article was written:

  • Microsoft put an axe in XNA. That doesn't mean you shouldn't use it, but it certainly does suck, as C#+XNA was the perfect beginner recommendation
  • HTML5 / Javascript. There has been a lot of movement in this space over the last year.
  • LUA. Lua is having a rocking good time. There are four major Lua engines and they are a great place to start ( or end! ).
The last one would probably be my biggest change in how I wrote the article, as I *STRONGLY* recommend starting with LUA and one of the game engines ( LOVE, Moai, Gideros or Corona ). Lua is an easy language to learn, and you can get up and going faster than PyGame+Python, but without the heavy performance drop people seem to express.

I would also recommend JavaScript but... 1) the language has some serious flaws for a new developer 2) the DOM [browser programming model] SUCKS, and I do mean SUCKS. There are just two many little headaches when working with JavaScript for new developers. Hell as a developer with 15+ years of experience ( including many years of JavaScript work ) I still encounter gigantic WTF moments. That said, the core of the language ( prototype based ) is a wonder to work with.

 

I'm just going to say thanks for the article, it really did get my foot moving towards the gaming door, and slightly through it.

I've written a lot of Javascript in the last year as I work mainly on web apps. And I agree with you there are a lot of WTF moments, especially with DOMs load order in IE compared to well everything else. JQuery document.ready was my friend in a lot of cases...

I can't say I have any incentive to go for HTML5 yet, as there doesn't seem to be a standard, and headaches between browsers is something for now id rather avoid.


Yeah, dealing with the various browsers is a right pain in the ass. It would be nice if everybody supported WebGL ( IE and many mobile browsers didn't ), or canvas performance was good across platforms ( Safari canvas performance stinks for example ), hell on my Android device, I can see a variance of 5FPS to 60FPS by switching between browsers. That said, if you go with a library makes your life a hell of a lot easier.

 

 

I hadn't even looked at LUA, but with that recommendation I may just go do so, isn't it more of a "Scripting" language?

At the moment I think I am going to stick with XNA and see where that takes me, next step would probably be Java with again your recommendation of Jmonkey

Ben
 


XNA is a good choice, although if you are working on a 2D game, I would consider working with Monogame, which is basically XNA minus the content pipeline. This will allow your code to run in XNA ( Windows PC + XBox LA ), but also be portable to just about every platform of any relevance. Then again, this is something you can worry about later.

As to LUA, it traditionally is used as a language for embedding. Essentially what products like Moai or Corona do is create a host and supporting libraries that your LUA code run in. So essentially yes you are scripting and the "pacemaker" controlling your code is behind the scenes in the native host. Allowing someone else to create the host for your app actually has some huge advantages though, as they prevent you from having to deal with the various platform/hardware warts. I've done a series of tutorials on programming with Moai if you want some idea what its like. Moai is nice in that you get full C++ source code of the library, a number of LUA samples, then a native host for each platform ( Linux, Windows(C++ GL), Mac(Obj-C), Android(Java), iOS (Obj-C) ) with full sourcecode if you need to dig deeper. So if you want to think about it that way... you are working in C++, ObjC or whatever else, but someone has already done 99% of the work for you, leaving you to implement your game logic using the LUA scripts.



#9 3Ddreamer   Crossbones+   -  Reputation: 3133

Like
0Likes
Like

Posted 03 January 2013 - 03:22 PM

Thanks for those, I had taken a look at the list of engines, I didn't realise there were so many to choose from, do you have any recommendations, personal preferences?

 

 

The reason I took Mono is because of the range of implementation libraries and alternative tools for cross-platform. It satisfies my long range need for operating system cross-platform as possible and eventually creating game engine, too.   Language interoperability is built into Mono. These are largely the reasons why the game developers of Unity 3D chose it.  I salivate at the possibilities of making tools like Unity 3D developers did in Mono. tongue.png

 

  Everything seems great with the exception of using my 3D art ability - 2D is no problem. I am looking into how I can get my 3D models into a game I made, but that will come.  With 2D, Mono is straight forward, but the 3D need is sort of forcing me into eventually making my own 3D render engine, though there are some ways to plug-in existing ones.  Interfaces, physics, sound, and so forth have good tech and community support in Mono.  I can't read the minds of the Unity 3D developers, but circumstances imply that I am on the same development strategy as they have.

 

SharpDX is something I looked at using.  I would have the same issue with 3D graphics engine there, too, so I don't see how SharpDX would help me personally until I get skills in 3D coding.

 

If I were a beginner looking at only 2D, then the recommendations in this thread for Monogame or jMonkey would be at or near the top of the list to consider. XNA is up there, too 

 

The XNA choice will work for a while, but in about 1 or 2 years Microsoft will have a replacement or you will find another development system, if not sooner.  XNA is still wonderful, especially for starters, so don't worry about it.  It will sharpen your C# and other skills. You'll know when the time comes and you outgrow it.

 

 

The most important things I see is that you are

 

1) Challenged in your language(s) which you prefer

2) Satisfied in your game development progress. 

 

 

Keep these two in mind and you will be just fine.  biggrin.png    


Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software.  The better the workflow pipeline, then the greater the potential output for a quality game.  Completing projects is the last but finest order.

 

by Clinton, 3Ddreamer


#10 Darkwind   Members   -  Reputation: 116

Like
0Likes
Like

Posted 03 January 2013 - 04:00 PM

Thanks for that Dreamer.

Legacy and Microsoft are two things I have learnt to deem hand in hand. Having clients at work with office 2003, and IE 7 I have to cater for them too.

With regards to Mono just did a little bit of light reading and that looks like an excellent choice going forward. As cross platform isn't something ive really looked at with getting my foot in the door, my plan so far is as follows.

1. Finishing getting XNA4 installed correctly. Should have guessed it wouldn't run properly in VS2012, just finished the re build of my laptop to Win7 Ent with VS2010 Ult.
2. Follow a tutorial on the basics of 2D game development in XNA using "XNA 4.0 Game Development by Example: Beginner's Guide" which I picked up yesterday.
3. Generate a few clones of some simple games using XNA
4. Get Mono installed.
5. Generate a few clones using Mono.
6. Move onto bigger more technical projects (such as pathfinding).
7. Putting all the pieces of my technical projects together to create a basic RPG type game.
8. Do some polishing.

Thats my 8 "Major" goals for this year, if it only takes 6 months to get to 7 ill be happy. As ive never really looked at this before I dont know if thats a realistic time scale, and no doubt real life will get in the way somewhere.

Anyone with any comments on those points? That seems realistic to me, am I missing something blatantly obvious? Also all of this will be in 2D, Not planning on 3D until I have the resources to actually draw in 3D, my blendering skills are less than desired at the moment.

Ben

Edited by Darkwind, 03 January 2013 - 04:01 PM.


#11 3Ddreamer   Crossbones+   -  Reputation: 3133

Like
0Likes
Like

Posted 04 January 2013 - 07:24 PM

Remember, there are thousands of no cost or little cost art assets advertised on the web.  I have on occasion even seen terrain levels supplied with a map editor at no cost and open source, including for XNA.


Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software.  The better the workflow pipeline, then the greater the potential output for a quality game.  Completing projects is the last but finest order.

 

by Clinton, 3Ddreamer





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