Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!

1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Member Since 04 Aug 2012
Offline Last Active Feb 25 2015 03:54 AM

#5199207 Where should I start learning game development?

Posted by 3Ddreamer on 19 December 2014 - 09:51 PM



My humble little opinion is that college or uni students should down scale their ambitions in game development until after graduation. While in school I would suggest a goal of a few simple 2D games.  They can be easy on the art assets for the first few games.  It is not unusual for a game developer to use placeholder art assets in the earlier stages of developing a game.


The important things to realize are this:


1) Do not try to reinvent the wheel.  Game engines by themselves typically take a team years to develop. This does not include the games themselves which can take months or years. As for art assets, there are literally thousands of no cost or low cost 2D and 3D art assets available on many websites. Do not try in your early learning to make complicated coding libraries - found to take years to evolve in themselves.   For example, there are already existing level editors, so no need to reinvent one for yourself in the early years. There are libraries for importing texture and model file formats, so no need to spend months on that area, too. Collision and physics libraries are available (such as Bullet Physics).  Blender and other software (which can make 3D models) have some ability to convert file formats to the desired format, so no need to reinvent the wheel there, also. Collada animation is popular with some game engines, so look for animation applications such as within Collada which are available.


2) Choose a game engine and select a standard language (such as C#, Python, Java, C++, or one of dozens of others), since you have some few years of coding experience. (Beginners should almost never choose C++ which is too forgiving of bad coding habits.)  Each game engine usually has a choice of a few languages and some have a native language unique to the engine which is similar to a standard language, which I advise to avoid unless you are committed to that game engine long term.


3)  Make single player 2D games - simple ones - for a while.  These can be as easy as only a few pages of coding to a hundred or more.  Next make a few multiplayer 2D games.


4)  Last couple stages of learning are creating single player 3D games (usually first person, such as FPS) and later a few multiplayer 3D games.


The more demanding that game dev gets, then the more need to assemble a team on each game, so keep that in mind long term and aim for standard technology so that other people can easily join your team to get to work right away at high level of productivity.


After college, the whole world of game dev will open to you!  biggrin.png




#5185615 What language to choose?

Posted by 3Ddreamer on 07 October 2014 - 02:48 PM

C#... I never touched. Mostly because it's tied to only Microsoft, which would be incredibly limiting in my opinion.


Actually C# will run in any computer.  C# is one of the many standard languages recognized by all makers.


The real issue for OS or hardware cross-platform implementation is to have an intermediate layer which is a framework between the language and the machine/assembly language. True it is that C# was made specifically for Microsoft's .NET Framework (actually tailored specifically for development toward .NET), but C# is accepted in the industry as a standard language which any developer may use to write coding of applications and any computer will read it as long as the runtime framework is present, as what is written in C# will be interpreted by that framework layer.


Think that the framework is unnecessary overhead?  Game engines are another example of an intermediate layer framework in which you may develop applications and software, often both OS and hardware cross-platform. No coder has the ability to do all the things that they want to do in machine/assembly language because it is unreadable to humans. C# is another standard high level language among many which enables the coder to command the computer what to do.

#5185359 What language to choose?

Posted by 3Ddreamer on 06 October 2014 - 01:45 PM

not everyone has Java installed on their computer.


Almost everybody has Java installed in their computer. Everyone after Windows XP should have at least Java 6 or later.  About 15% of Windows OS are pirated XP and many of them are not updated to the latest Java, but that should not stop you.


Usually their update application in the operating system will detect that a new application is being used which requires a particular update and the update system will download and install it the next time that the computer is restarted. Of course, the update system will notify the end-user right away if the person runs a check for updates manually.


Java has its own update system.


No matter what language and development framework that you use to create your games, there will be numbers of people who can not play your game (at least initially) OR have some compatibility bugs because the owner/end-user has not updated their runtime environment in their computer.


It sounds like a browser game made with HTML 5 would have the fewest compatibility issues, but even there, you probably will run into some until you rise in your level of understanding of HTML 5 development to at least intermediate experience.


Sorry, no free ride with no problems exists out there for the beginner in the areas that you mentioned. Likely you will have issues to overcome until you reach intermediate level. Eventually you will be able to deploy a bug and compatibility free game most of the time.  That will take hard work and time.

#5176241 Suggestions in Finding an Interesting Game Ideas

Posted by 3Ddreamer on 26 August 2014 - 11:55 AM



- As a designer I want to know what makes a game interesting, fun and enjoyable to play?  That is a great mystery at first, but with observation and actually playing the most popular games, then you begin to understand. A game could have everything going for it but one very annoying issue for end-users and the game will not be popular. This is not too uncommon, but most games sell even with sub-par features.


Watching YouTube reviews about games and reading game critic articles can help a whole lot!  PC Gamer Magazine is one of my favorites, but there are others with good reviews.


Most people like surprises, challenging play, and rewards for good play. Most people seem to be annoyed by rewards for only the completion of a mission or scene, instead enjoying the reward for actually accomplishing something. Some games sell by "eye-candy" stunning visual appeal with simple gameplay and others are opposite having fantastic gameplay but the visual part is simple to put it tactfully.  


Large game development companies actually do market research, surveys, and testing to help understand current trends in games.


- Is there any best method in finding the interesting and different game idea?  There is a best method but God only knows what it would be. The big design concept could come from anywhere or anytime.  It's best to keep paper and pen with you at all times so you can write down your design concept when it appears in your imagination, among other things to write.  Many of the most savvy business persons do this.


Large development companies sometimes get a game design concept from market research inspiration.   For example, in a survey or conversation, a gamer (could be on your team) will say, "I sure wish that a game would come along which allows me to disappear and reappear somewhere else in a futuristic FPS.  Like teleportation, ya know?"  Somebody says, "Like Star Trek?"  The first person, "Sort of like that, but without all the transporter equipment.  Let's say I just decide to disappear and appear behind the enemy.  Can we have that?" 


See?  Getting a conversation going, one way or another, is great for discovering a game concept. Most of all, somebody has to use the imaginationwink.png 

- What things that must be considered in order to design a great game that can blast the market?  Potentially anything could be considered that is related to the game development and the game market.  First comes the game concept with market research to look into the feasibility of the concept.  Many people have the second stage as the game design (using paper sketches, writing a dialogue outline for the characters, or scripting the scenes of the game). After that you must know how much time and money you have to develop the next game. Next you determine what skills and tools are needed.  Adjustment is made all along the way.  Large companies usually have Alpha testing inhouse and Beta testing outsourced to get input and evolve the game in final stages to target the game appeal that they discovered has value.


At one time or another, I have been on teams which were involved in everything which I wrote here.  Beginners should start with basic development stages and tasks.  As your organization and success increases, then you will find a need for more scientific and business approach to game development which results in games that people enjoy.

#5176231 New and Clueless

Posted by 3Ddreamer on 26 August 2014 - 11:12 AM



For most people, starting with C++ is a bad idea.  Anybody in the business or education who is worth anything knows that, so don't let anybody tell you otherwise.  The C++ is too forgiving of inferior coding habits. In experienced hands it is very flexible and allows the developer to adapt to a wide variety of programming needs.  That flexibility also allows bad code to be made and bad habits are of course time consuming to undo.


Better choice of a first language would be Python, C#, Lua, Java, or other relatively beginner friendly one.  In my opinion, choosing an auto-memory management (garbage collecting) language is the best for a newbie. You won't need to program memory management yourself for a long time, until large and complex software made by you demands better performance.  It will probably take at least a couple years for you to reach that level. Many game developers sell their games which have auto garbage collection provided by developing games thru a game engine, but there are ways that garbage collection friendly languages can take care of memory automatically. You won't have to be concerned about these issues for a long time, so just pick a good beginner friendly language.


In general, I would steer you to Direct3D/ DirectX in the long term, given that you love GFX. SharpDX and SlimDX are worth at least looking at them, since you expressed that you want to get prepared for coursework.


It is critical that you make some simple applications for a while after you settle on a language.  Make "Hello World", text / letter display application, sorter, indexer, search, or whatever relatively simple applications that are recommended. It would be ideal to find a book, course, or tutorial which has similar applications as these in the lessons.


Next you should settle on a development framework, preferably what is used in the course that you will be taking. A game engine is ideal long term, but use what is in the course for your early learning stages.  


Eventually you will make a few simple 2D single player games, then 2D multiplayer games, 3D single player, and finally 3D multiplayer games in a few years if things go well.

#5175650 3D Graphics with C#

Posted by 3Ddreamer on 23 August 2014 - 10:14 AM

Stay with OpenGL for quite a while since you are on your way with it already. That's called, "Staying on track."  smile.png


OpenGL 3.3 or 3.4 works on all the computers that matter.  A small percentage will have issues with it, but they probably have a pirated version of an OS or need updates.  If everything is normal, 3.3 or 3.4 is the best of OpenGL to target the most machines at this time, in my humble opinion.


Khronos is working on the next generation of OpenGL which I expect to be available in bug-fixed versions in 2016. This is a great time to learn OpenGL and get your own personal bugs resolved before the next gen GL is released.  That gives you a year or more which is perfect timing.


The C# is a great general purpose language.  Once the next gen GL is here, then you will be able to use C# with OpenGL for better optimization than was available in GL in older versions. It is promising to make alternative languages more accessible to threading and other performance issues, while streamlining the development process a bit.  I'm excited about it if Khronos can actually deliver something that gives worthiness to the level of other APIs next generation. 


There is an OpenGL library for 3D but I don't remember what it is called.  It would allow you to have some of the coding for low level accessibility already written for you, so you focus on coding the object.


By the way, if this is just a hobby or for learning reasons, then wonderful!  If you intend to make a living in game development long term, then it would be best to not try to reinvent the wheel but instead choose a good game engine and starting making games instead of wrestling with the low level "brick by brick" stuff.


Anyway, have fun with it.  smile.png

#5175648 Game Designer vs Team Arguments

Posted by 3Ddreamer on 23 August 2014 - 09:56 AM

But when the team hears the word "argument" they take it as a negative attitude. Which is not what I am intended to project.


The word discuss is the standard.  "I want to encourage us to discuss anything that you may feel needs it,"  and similar words are welcoming.  Most people do not want to argue.  Argue is NOT the same thing as debate.  I suggest that you not even use the word debate because that will happen naturally.  You can not force issues or use unique jargon which you solely prefer and expect yourself to have good leadership.  A leader talks the talk of the team and if need be will adapt and drop own preferences to do so.  The team will at least subconsciously discern that and you will gain respect.  Be colloquial and friendly.

#5175060 Staying Motivated

Posted by 3Ddreamer on 20 August 2014 - 11:07 AM

On top of my apparent Attention Deficit Disorder I work two jobs, one is sales and the other as an after hours call out undertaker that ruins any sleep pattern I may have had, and working on my fitness to get into the Army Reserve (to replace the undertaking, I'm not going to do three jobs at once, bugger that) I find I have less time to work on what I want to and I'm so exhausted that I end up getting home and I don't have the capacity to think so I play some games, eat dinner, exercise (usually going to the fiance's place and running the dog for 40 mins) and sleep.


You lack motivation because you do not have focus.  Most people can only excel in 2-4 major areas of life at one time, often at the expense of something or things in order to make progress (sleep often being one of them).  Obviously you are already overloaded by what your own words show.


Focus on your work and your relationship with your fiancé and continue in programming as a hobby until you make time in the future for it.  Don't worry about it.  Just be patient and someday you will make the time for it. Now is simply not the time.


Back to motivation, you need to learn the habit of STEP by STEP progress toward goals in a PLAN.  As you accomplish realistic goals, then you will be motivated to concentrate because you desire the next reward of accomplishment for your hard work.  Somewhere in there you need to develop the desire to work hard and methodically.   Desire has a lot to do with concentration, motivation, and completing projects.  Desire, plan, and focus!

#5173904 Making 2D Images

Posted by 3Ddreamer on 15 August 2014 - 09:23 AM

(I use both at times, nothing beats the cimplicity of the "Color to transparency option in


You must have intended to put [GIMP] at the end of that sentence, because the Color to Clear in GIMP is quick, easy, and reliable. At first, I believed that I would rarely use this function but I find many ways to Color to Clear in manipulating an image.


I use GIMP over 90% of the time, but Inkscape and Blender have some functions that are hard to find in no cost software. These software allow professional quality results in almost all situations despite being no cost. GIMP developers are sometimes the first anywhere to introduce a new tech function in GIMP before any others. They are very good at improving and expanding GIMP, so it will be in the picture as a competitive image manipulation software for a long time. 


WordPress is another worth mentioning, though only a few functions would be commonly used for game development needs, however web games obviously could get more use from it. It is not directly for image manipulation, but you can make and change things in a browser window which can later be captured by screenshot and imported into GIMP or other ones.


Screen capture/screenshot is can be a major area contributing to game dev 2D work, so get a good software or two that has good screenshot ability such as FRAPS, GIMP, and so on. 


When you get more advanced, then you may sometimes use video editing software to display and alter video images which can be used in part or the whole video frame for your game dev images. Video editing software can have some amazing effects! For example, if you had a WW2 game and wanted a WW2 theme splashscreen, then you could use a video editing software to get the right resolution and other tasks to get it just right and screenshot it to be imported into GIMP or other software.  I have done this on occasion.

#5173649 Making 2D Images

Posted by 3Ddreamer on 14 August 2014 - 11:43 AM



There is not enough information in the post to give a focused recommendation.  You claim to have all the skills that you need:


I'm aiming to be a "lone wolf" meaning I make my games by myself, and I have all the skills to do so.


You must mean non-digital art skills, correct?


Genre of 2D game (art) that you want to explore could have a huge influence on what software you use.

#5173221 Best languages/tools for simple 3D graphics?

Posted by 3Ddreamer on 12 August 2014 - 06:02 PM

Start with console applications.  In that sense they are relevant to your goals.  Text leads to 2D objects which leads to 3D.   Trying to skip stages always results in knowledge and understanding missed, often with spaghetti coding as the result.  Trust me - you do not want to try to debug mangled coding.


After you get some console applications done, then consider a game engine or code more directly thru an API, OpenGL or Direct3D.  You can code for 2D even with a 3D development framework.


I really do not know what you are trying to achieve with your "experiment", but you need to follow some course or tutorials and expect to learn more than you thought that you would need.  If you are trying to reinvent the wheel, then don't.   All the coding for 3D has been created in libraries from many developers.  You will not likely match them in quality of coding.



Is the programming involved in 3D much more complex than 2D?


Yes - generally it is more complex.  The 3D puts even more demand for object oriented programming.  Some tutorials walk the pupil from 2D to 3D, so after you choose a language then try to find a tutorial like that.


For you to make 2D or 3D software coded from scratch will be much harder than using an existing game engine to import a 3D object and display it to screen. Game engines come with all or most of the coding libraries needed. In that case, you would choose the game engine and use the main language for it that is recommended by the developers of the game engine.  Next you would make some console applications in that language.  After that you would return to the game engine to create coding for 2D and eventually 3D rendering or rasterizing.




#5173120 Best languages/tools for simple 3D graphics?

Posted by 3Ddreamer on 12 August 2014 - 11:06 AM

Python rasterized or rendered (two different methods) to screen thru Blender would probably be the most productive.


Either Python or C# is basically newber friendly.


OpenGL or Direct3D are APIs that take time to learn in order to display 3D to screen, but if you are willing to turn your "experiment" into a dedicated hobby more long term, then you will get nice results.


There really is no quick and easy way for a beginner to make a complex coding which displays a 3D object to screen, unless you are talking extremely simple coding and object. There are some tutorials online about making console applications which are generally the simplest coding to do the job. We are not talking applications for video game consoles but console applications that use the very basic computer functions underneath to do what you want. You need to literally start much simpler than 3D and work with 2D for a while.  Start with "Hello World" console application and build on that.

#5171906 A Game Engine Question (UDK, Torque, Unity)

Posted by 3Ddreamer on 06 August 2014 - 10:44 AM

Torque 3D has a community and third party art assets that are really good.  The effects offered for Torque are dazzling like you typically see these days.  Unity and UDK also have all that but I feel that they are easier to find, acquire, and use in Torque 3D if you want pre-made stuff.  Of course you may customize what is offered.

#5171645 Game Engine and APIs

Posted by 3Ddreamer on 05 August 2014 - 09:32 AM



Think of an API as a lower level layer between the higher level languages such as is used to script a game and the machine/assembly language which you will never directly handle. An API by itself has a fraction of the coding libraries needed to make the usual video game.  APIs connect the game source code to the hardware language under it which is shipped with every computing device. Type API into Wikipedia for a good concise explanation.


A game engine is much more, including libraries to support two or more languages used to develop a game (often high and low level languages), class file libraries ( or jar files ), input device libraries, physics libraries, GUI libraries, etc.  So a game engine has potentially all the libraries in the game's main directory (of files and folders) and you manipulate those libraries and add both art and coding content by using the interfaces and editors which come with the game engine.  Added to this inside the game engine are the possibility of other specific tools for use inside and/or outside the game, such as image manipulation software or a plug-in terrain editor ( plugging into the game engine ).  


Keep in mind that sometimes only a fraction of the game engine or none of it is delivered with the game to the end-user - only enough to run and play the game. In this case the game developer uses the game engine to create stand-alone game coding from game source code. Smart phone games are at times like this, since space is limited in the phone. On the other extreme, a few games come shipped with the entire game engine so the players can also mod a game in many ways, such as PC games.  Modders are common to big title games and scream for all the tools and the source code (part of whole source code).  Also remember that some game engines are completely separate from the game source code while sometimes the game engine and the game are either partly or mostly integrated.  Each has advantages and purposes aimed at delivering the smallest footprint of the game possible in the end-user's hard drive while satisfying the desire of the player.  


Blender is the extreme in reverse.  I really don't know what to call it, since it includes a game engine and many other things either related or unrelated to game development.


An API is an interface layer between the highest and the lowest coding, whereas a game engine is a collection of libraries for many purposes and manipulates or extends 2 or more layers of coding, usually high and low levels.


The largest game development companies working on huge game titles for consoles and PCs will have a game engine source code and also a game source code generated from it  [by which they extend the coding to create consecutive versions of both the game engine and the game (Versions:   1.0, 1.1, 1.2,.........2.0, 2.1, 2.2, .......3.0, 3.1, 3.12, 3.2, etc.) ].  You can see by my post that each game dev company has a unique working philosophy in this business with all kinds of solutions to challenges.  They all draw from a field of technical standards but implement them in different and unique combinations.



EDIT:  By the way, we often see this stack of layers in game development....


Game Player/End User

Game Controllers and peripheral devices 

Game coding

Game source code

Game engine

API ( such as OpenGL )

Machine/Assembly language

Hardware such as a PC

#5171467 Java or Python

Posted by 3Ddreamer on 04 August 2014 - 01:13 PM

In general, C# is a good language, safe to say "easier" than some languages and one of the more beginner friendly compared to C++ in the long term.   Productivity is said to be good with C#. It has some limitations but all languages do.


Python is a good language for scripting a game in some development frameworks.  Java is a good all-around general language.


Really the language that you choose should typically be determined by the game engine or other type of development framework that one will be using, except that beginners should avoid C++ for the most part. The C++ is best for a second language after the coder reaches at least intermediate level in another language first. C++ allows the beginner to make sloppy coding habits too much to be a first language.  Perhaps you know enough about coding to avoid the C++ tolerance for inferior coding.


All just my humble opinions you got here, but many would agree with me.


EDITED: By the way: If you choose Java, then take a look at jMonkey engine.