Author Topic: I know nothing about coding/game development and need help  (Read 4955 times)

Offline JoeSauro

  • bit
  • Posts: 1
    • View Profile
I know nothing about coding/game development and need help
« on: July 09, 2013, 01:20:34 AM »
I would like to become an Android/Iphone game developer or computer game developer and i have no clue what to do at all, i do not know anything at all and i would like some help on how to get started. Thanks.

Offline x3ro

  • byte
  • *
  • Posts: 14
    • View Profile
Re: I know nothing about coding/game development and need help
« Reply #1 on: July 09, 2013, 02:12:16 AM »
You can try a Java Beginners Tutorial, or you can try getting started using a dynamic language, such as Ruby (please not PHP :D) on CodeAcademy. Also, you might want to read this.

Quote: "So you want to make games, eh? Prepare yourself; Itís a long and arduous journey." :P

Offline littleguy

  • Developer
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: I know nothing about coding/game development and need help
« Reply #2 on: July 09, 2013, 06:12:04 AM »
I have no idea how old you are, but many high schools and colleges offer computer programming courses.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3499
  • Developer
    • View Profile
    • PaulsCode.Com
Re: I know nothing about coding/game development and need help
« Reply #3 on: July 09, 2013, 11:06:11 AM »
Classes are important for more exposure and to help you land a job.  That said, to learn programming well you will also need to do a lot of work on your own outside of the classroom, with a clear idea of where you are going and how you will get there.  This is the route that I would recommend.  I am a little biased toward web development and Java, so don't just rely on what I've put here.  Do a little research and create your own road map like this to fit your goals.  Parts of what I've outlined here may seem irrelevant at first, but the idea is to pick up skills along the way that will eventually apply to Android and to game development.  It's definitely not a process that you will get through quickly, but learning any skill well is going to take time, so I'm sure you are aware of that.

1) Purchase an inexpensive web hosting service (such as godaddy or 1and1).  This will be used to create a place where you can upload file backups, post useful resources and links, work through and test example programs, and eventually build a community.

2) Start with a Google search for "beginners guide to HTML".  Find some simple tutorials to start with, and actually work through them (don't just read).  Once you are familiar enough with each tutorial to be able to do the examples on your own without looking, then move on to another one.  Find more and more complex tutorials, until you are comfortable with writing web pages.  This may seem irrelevant, but in fact web development is a great foundation to have when you branch into basic digital artwork techniques (essential skills to have for game development).  Additionally, HTML is a practical form of XML.  Being comfortable working with XML tags and properties is an important skill to have for developing Android apps.  Having a web hosting service will be key for learning HTML effectively, and this will be where you begin to create an online presence and a community.

3) Start with a Google search for "beginners guide to CSS".  As with the HTML tutorials, start simple, work through a bunch of them for CSS, memorize the examples, and expand to more difficult tutorials.  Styling is an important part of digital artwork, and will be applicable when developing any application.  CSS goes hand-in-hand with HTML, so this is the logical next step.

4) Start with a Google search for "beginners guide to Javascript".  Same as before, work through a bunch of tutorials.  Javascript also goes hand-in-hand with HTML, so this is another logical next step.  Spend extra time on this one though.  Not only will it be more challenging to learn, but this will build you a good foundation of basic programming skills.  Up to this point, your focus will have been on creating static pages that don't really change -- Javascript will open up the world of dynamic content-- writing logic, solving problems, and interacting with the user.

5) Start with a Google search for "beginners guide to PHP", and work through a bunch of tutorials.  PHP is one of the "C - like" language, very similar to Java.  It is another logical step, since it goes hand-in-hand with HTML, and will allow you to write programs that run on the server (versus on the user's computer, which Javascript does).  Having an understanding of server/ client interactions is very important in developing certain types of games.  As with step 4, spend extra time on this one.  Being comfortable with PHP will ease the transition to Java, C#, Objective-C, and eventually even C/ C++ itself.

6) Start with a Google search for "beginners guide to GIMP", and work through a bunch of tutorials.  GIMP is an open-source digital artwork tool (just as capable as Photoshop, only its free).  Alternately, if you already own Photoshop work through tutorials for it instead.  Get familiar with the concepts of layers, transparency, and scaling, as well as the advantages and disadvantages of different compression schemes (JPG vs PNG, for example).  You really want to be comfortable with the tool and know what capabilities it has, since you will find yourself relying heavily on it throughout your career as a developer.

7) Start with a Google search for "beginners guide to MySQL", and work through a bunch of tutorials.  Databases are an important component of most programs, so it is very important to be comfortable with the basic structures of a database.  This includes not just learning the syntax for insert, update, select, and delete, but also interfacing with your database from within various programming languages (starting with PHP).

8) Create your own website.  While working through the previous tutorials, you will have put together several interesting web pages, designs, and programs.  Now is a chance to bring all those skills together and create an online presence for yourself.  Begin by tinkering around in GIMP (or Photoshop) with logos and color schemes to come up with a "branding" for yourself.  Think about how you want the focus of your website to be.  If you are like me, and your goal is to build a community of developers, then look into various open-source forum, chat, and bulletin board programs out there, and come up with your own unique hybrid of features, and use styling and branding to bring it all together.  The good thing about piecing together core components that others have written is that it will teach you the valuable skill of looking through someone else's code to figure out how it works, and modifying it to fit your needs.  It will also familiarize you with accounts and security, which is important when developing certain types of games.

9) Start with a Google search for "beginners guide to Blender", and work through a bunch of tutorials.  Blender is an open-source 3D modelling and animation tool (similar to Autodesk 3DS Max, Maya, etc. only its free).  Alternately, if you already own another 3D modelling program, work through tutorials for it instead.  Google Sketchup is another good one to look at as a beginner, but I would eventually graduate to Blender, which is much more capable (like starting with MS Paint and eventually graduating to GIMP or Photoshop)

10) Start with a Google search for "beginners guide to Java", and work through a bunch of tutorials.  This will be a good transition from PHP to a more structured, Object-oriented language.  The biggest challenge will be learning to work with more solidly-defined data types, and moving toward a system where you are using a single language for every part of the program.  This may be something of a shock, coming from the 'right tool for the right job' approach you can use with web development, where you have CSS for styling, HTML for layouts, PHP for server-side processing, and Javascript for dynamic content).  Being bound to the limitations of one language, you will have to learn when to search for 3rd-party libraries and APIs (and dealing with licensing concerns), or when it is better to spend the time writing your own solutions.  Put a lot of effort into learning Java, as I would consider this your first "real" programming language.  A strong foundation in Java will give you the confidence you need to move forward into the complex subject of game development.

11) Sign up on the forum at jpct.net, and begin learning jPCT.  This is a Java-based, easy-to-learn API for 3D programming.  The developer EgonOlsen is one of the most helpful guys I know, and the community he has put together is really great.  Read through the forum and get some ideas for what you want to do.  Come up with an idea for a simple game.  Figure out each function you will need to know to create that game, and start programming a series of demo applications to demonstrate each of those functions.  When you get stumped, just post on the forum to ask for help, and you will usually get a response very quickly from EgonOlsen himself.  You can add audio to your simple game using my SoundSystemJPCT extension.  It meshes well with jPCT, and will just give you even more exposure to "thinking in 3D".

12) Start with a Google search for "beginners guide to Android", and work through a bunch of tutorials.  Android is based on Java, but it is a completely unique API.  This will be a great way to break into the mobile arena.  At this point you will be glad you did not just jump right into Android, as you will be able to leverage your well-established core Java and XML skills, and focus on learning the Android-specific information.

13) Port the simple game you wrote over to Android, using jPCT-AE (the Android extension of jPCT).

From here, you can either focus on the mobile arena (branching out into different mobile platforms and APIs), or branch out to other possible fields of game-development (PC's, consoles, etc).  As before, figure out your goal, figure out what skills you need to get there, and work though and memorize a bunch of tutorials.  And don't forget to ask for help when you get stumped (Stack Overflow is your friend!)  That's really the best way to pick up new skills and gain real-world experience IMO.
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted