Jump to content



1

which system is the best to learn coding on as a novice?


12 replies to this topic

#1 gooner73 OFFLINE  

gooner73

    Star Raider

  • 75 posts
  • Location:united kingdom

Posted Tue Dec 13, 2011 6:30 AM

Hi

just wondering if someone can point me in the right direction, i have finally decided i want to try my hand at programming some games, i love most platforms so there is no particular preference, but which would be considered the best one to teach yourself on?

if anyone has any input it would be great!
:-D

#2 GroovyBee OFFLINE  

GroovyBee

    7800 Developer

  • 5,782 posts
  • Busy bee!
  • Location:North, England

Posted Tue Dec 13, 2011 6:34 AM

The obligatory questions... What background do you have? Are you good at maths, logic or problem solving? Do you know any computer languages? Do want to develop on a Mac or PC? What emulator(s) do you use?

#3 potatohead OFFLINE  

potatohead

    River Patroller

  • 3,655 posts
  • Location:Portland, Oregon

Posted Tue Dec 13, 2011 6:41 AM

I personally would give the Batari Basic a try.

The thing is, it's very limited because the VCS is very limited. This is both good and bad. The bad is you will need to keep your initial expectations low. The good is there isn't a ton of stuff you have to learn in order to be doing something on the machine!

Simple games in Batari Basic are really simple. Something like PONG or BREAKOUT won't take very many lines of code to get working. The big hump is understanding programming and how it relates to both the task at hand, and the machine you are programming for.

There is lots of game code to look at, build, run, then tweak. Highly recommend tweaks to a working thing first. You can go through the code and change the shape of something, or it's speed, color, etc... this can help you test what you know and what you don't, triggering questions! The questions are good, ask them, and collaborate with the other Batari Basic programmers here and have some fun.

If you see some real success, like bumping into the limits of Batari Basic on a game project or two, then you can branch out to more complex setups, leveraging what you know.

I would say the second most important thing besides just getting up to speed on programming is the process. Define your game, considering the limits you've got in play. There are always limits and understanding those helps you succeed early on. Later, if you get good, breaking those limits is where a lot of the fun is! But, small steps first.

Once the game is defined, you break it into pieces, write each one, building on each, until you have it done. Example Breakout.

You write a program to draw the bricks. Done. Then you add in the paddle piece. Done. Add in the ball just bouncing around in there. Then do bouncing on the three walls, and only the bottom when the paddle is in the right place. Finally have it take out bricks!

Each of those tasks might only be a little tiny bit of code, but they all add up!

What I'm saying here is make a simple game first, cloning one that exists already, so you've got something possible to start from. Get it all done, and when you do, then you will know enough to expand on it, and you are off and running from there.

I've seen people just start tinkering with existing code, pick it up and go do their own projects. Random Terrain took a long path, but a good one, documenting everything he found, which helped him get to where he needs to be to get his project done. (nice one too)

Edited by potatohead, Tue Dec 13, 2011 6:43 AM.


#4 gooner73 OFFLINE  

gooner73

    Star Raider

  • 75 posts
  • Location:united kingdom

Posted Tue Dec 13, 2011 8:41 AM

t

View Postpotatohead, on Tue Dec 13, 2011 6:41 AM, said:

I personally would give the Batari Basic a try.

The thing is, it's very limited because the VCS is very limited. This is both good and bad. The bad is you will need to keep your initial expectations low. The good is there isn't a ton of stuff you have to learn in order to be doing something on the machine!

Simple games in Batari Basic are really simple. Something like PONG or BREAKOUT won't take very many lines of code to get working. The big hump is understanding programming and how it relates to both the task at hand, and the machine you are programming for.

There is lots of game code to look at, build, run, then tweak. Highly recommend tweaks to a working thing first. You can go through the code and change the shape of something, or it's speed, color, etc... this can help you test what you know and what you don't, triggering questions! The questions are good, ask them, and collaborate with the other Batari Basic programmers here and have some fun.

If you see some real success, like bumping into the limits of Batari Basic on a game project or two, then you can branch out to more complex setups, leveraging what you know.

I would say the second most important thing besides just getting up to speed on programming is the process. Define your game, considering the limits you've got in play. There are always limits and understanding those helps you succeed early on. Later, if you get good, breaking those limits is where a lot of the fun is! But, small steps first.

Once the game is defined, you break it into pieces, write each one, building on each, until you have it done. Example Breakout.

You write a program to draw the bricks. Done. Then you add in the paddle piece. Done. Add in the ball just bouncing around in there. Then do bouncing on the three walls, and only the bottom when the paddle is in the right place. Finally have it take out bricks!

Each of those tasks might only be a little tiny bit of code, but they all add up!

What I'm saying here is make a simple game first, cloning one that exists already, so you've got something possible to start from. Get it all done, and when you do, then you will know enough to expand on it, and you are off and running from there.

I've seen people just start tinkering with existing code, pick it up and go do their own projects. Random Terrain took a long path, but a good one, documenting everything he found, which helped him get to where he needs to be to get his project done. (nice one too)

thanks for the info! will look into batari and see what happens :)

#5 StoneAgeGamer ONLINE  

StoneAgeGamer

    Stargunner

  • 1,182 posts
  • Gaming de-evolved.
  • Location:Howell, MI

Posted Tue Dec 13, 2011 11:53 AM

View Postgooner73, on Tue Dec 13, 2011 6:30 AM, said:

Hi

just wondering if someone can point me in the right direction, i have finally decided i want to try my hand at programming some games, i love most platforms so there is no particular preference, but which would be considered the best one to teach yourself on?

if anyone has any input it would be great!
:-D

Do you already know how to program in any language? If not I suggest learning before tackling these older systems. Just understanding programming logic and concepts is really important to start programming anything.

That's, of course, just a suggestion.

#6 jaybird3rd ONLINE  

jaybird3rd

    Quadrunner

  • 5,248 posts
  • Location:Northeast Alabama

Posted Tue Dec 13, 2011 12:09 PM

I would start with the questions GroovyBee posed earlier. Which method of learning is right for you, and which system you start with, really depends on your present level of knowledge. There are a lot of complexities involved in programming for vintage computers and consoles, mostly having to do with effectively managing their very limited resources, and you really need some grounding and experience in the practice of efficient programming first.

If you're totally new to programming, I would recommend starting on a modern computer, with an easy-to-learn language that has lots of free tools and resources (Python, perhaps?). Once you've gained some experience, you can then move on to a project on a vintage system, and you'll have a better idea of which system would be most challenging/enjoyable for you to work with.

#7 gooner73 OFFLINE  

gooner73

    Star Raider

  • 75 posts
  • Location:united kingdom

Posted Tue Dec 13, 2011 1:13 PM

I am totally new to it, so do you suggest i start with Python on the pc?

View PostGroovyBee, on Tue Dec 13, 2011 6:34 AM, said:

The obligatory questions... What background do you have? Are you good at maths, logic or problem solving? Do you know any computer languages? Do want to develop on a Mac or PC? What emulator(s) do you use?
i am good with maths and logic so it might me a start! :)

Edited by gooner73, Tue Dec 13, 2011 1:14 PM.


#8 GroovyBee OFFLINE  

GroovyBee

    7800 Developer

  • 5,782 posts
  • Busy bee!
  • Location:North, England

Posted Tue Dec 13, 2011 2:58 PM

I'm not a Python guy so I can't tell you if its a good language to learn or not. As a beginner anything that gives you pretty immediate feedback as to whether or not your code is working is always a good start.

#9 jaybird3rd ONLINE  

jaybird3rd

    Quadrunner

  • 5,248 posts
  • Location:Northeast Alabama

Posted Tue Dec 13, 2011 8:14 PM

View Postgooner73, on Tue Dec 13, 2011 1:13 PM, said:

I am totally new to it, so do you suggest i start with Python on the pc?
Python is the programming language that is taught in some of the introductory programming classes at my university. I'm only somewhat familiar with it myself, but the syntax is not very demanding, there's lots of online documentation and tutorials, and the development tools offer an "immediate mode" which allows you to type a line of code and immediately see the results.

#10 JonnyBritish OFFLINE  

JonnyBritish

    Moonsweeper

  • 328 posts
  • Location:Montgomery, IL

Posted Tue Dec 13, 2011 9:00 PM

I will add my 10 cents for what its worth.

All depends, do you want to learn on a retro system or get some experience on a modern platform then go back to retro..On PC you could do worse then learn C#.NET. In fact a new free video series has been published that assumes no knowledge and will take you through many of the basics. You can find the link here - http://channel9.msdn...Introduction-01

There is also a version for VB.NET.

Also recently I discovered this platform - http://www.monkeycoder.co.nz - this is a game orientated BASIC language. It actually came from a UK company and was originally called Blitz Basic I think. They now also have monkeycoder that can target many platforms.

Of course you could decide to learn purely on a retro platform.

On Atari you have a choice of multiple BASICS / Forth / Action! which is a pascal like language and very structured.
On the TI99 for example you could code in extended BASIC or now TurboForth.

Of course you could go another way and look at languages like Ruby for example or even www.kidsruby.com which gives you instant feedback

As you can see there are more options than you have time in the day so more insight into your end goals would help. If you want to develop the next great game on the Atari 2600 then you are talking either Batari Basic or 6502 assembler...the second one is not a good place to start.

On Atari for example the Action! language is very very powerful and has been used to write a few commercial Atari games.

As you get further in though in general you will find that all computer programming languages have similarities such as having to declare storage in memory, looping, getting keyboard input, making decisions and writing to screen.

For that reason you could start with a good video series as i linked to above and then use those new skills to better understand coding on retro platforms.

One thing is for certain, there is no shortage of amazing developers on Atariage and many are willing to answer questions as long as it is clear you have put in some effort.

Last word....one thing about coding especially when you are new to it...be sure to break your project up into tiny chunks of code. This way you can get the satisfaction of knowing you have completed some code very quickly rather than having to code for hours / days etc before you get a result. Also be realistic, you will not code Super Mario Galaxy on day 1. If you were coding in Action! on atari 8bit you might start with simply displaying a dot on the screen and having it move under joystick control. Then perhaps as you move the dot you increment a number which displays on the screen. Now turn your dot into a graphic like a racing car and now you are starting to build up a game. Small steps is the way to go until you get more skilled up

Good luck!

#11 Sir Guntz OFFLINE  

Sir Guntz

    Space Invader

  • 26 posts
  • Sega-16's Covert Ops Specialist
  • Location:The not-so-great white north

Posted Wed Dec 14, 2011 2:15 PM

From what I've seen, the Genesis is one of the easiest retro systems to learn programming on. Pretty much because virtually everything in the Genesis has already been well documented and the hardware design is very straightforward. The only two flaws I can think of are the system's extremely limited color palettes (64 colors split up among sub-palettes... In other words, not much color choice) and the lack of a hand-holding beginner's springboard, like NintendoAge's Nerdy Nights series for NES programming. You can easily program the Genesis in BASIC, C or ASM however, so again that further adds to the ease of learning.

#12 gooner73 OFFLINE  

gooner73

    Star Raider

  • 75 posts
  • Location:united kingdom

Posted Thu Dec 15, 2011 8:35 AM

View PostJonnyBritish, on Tue Dec 13, 2011 9:00 PM, said:

I will add my 10 cents for what its worth.

All depends, do you want to learn on a retro system or get some experience on a modern platform then go back to retro..On PC you could do worse then learn C#.NET. In fact a new free video series has been published that assumes no knowledge and will take you through many of the basics. You can find the link here - http://channel9.msdn...Introduction-01

There is also a version for VB.NET.

Also recently I discovered this platform - http://www.monkeycoder.co.nz - this is a game orientated BASIC language. It actually came from a UK company and was originally called Blitz Basic I think. They now also have monkeycoder that can target many platforms.

Of course you could decide to learn purely on a retro platform.

On Atari you have a choice of multiple BASICS / Forth / Action! which is a pascal like language and very structured.
On the TI99 for example you could code in extended BASIC or now TurboForth.

Of course you could go another way and look at languages like Ruby for example or even www.kidsruby.com which gives you instant feedback

As you can see there are more options than you have time in the day so more insight into your end goals would help. If you want to develop the next great game on the Atari 2600 then you are talking either Batari Basic or 6502 assembler...the second one is not a good place to start.

On Atari for example the Action! language is very very powerful and has been used to write a few commercial Atari games.

As you get further in though in general you will find that all computer programming languages have similarities such as having to declare storage in memory, looping, getting keyboard input, making decisions and writing to screen.

For that reason you could start with a good video series as i linked to above and then use those new skills to better understand coding on retro platforms.

One thing is for certain, there is no shortage of amazing developers on Atariage and many are willing to answer questions as long as it is clear you have put in some effort.

Last word....one thing about coding especially when you are new to it...be sure to break your project up into tiny chunks of code. This way you can get the satisfaction of knowing you have completed some code very quickly rather than having to code for hours / days etc before you get a result. Also be realistic, you will not code Super Mario Galaxy on day 1. If you were coding in Action! on atari 8bit you might start with simply displaying a dot on the screen and having it move under joystick control. Then perhaps as you move the dot you increment a number which displays on the screen. Now turn your dot into a graphic like a racing car and now you are starting to build up a game. Small steps is the way to go until you get more skilled up

Good luck!
Thankyou very much, that is really helpful :-D

#13 theloon OFFLINE  

theloon

    Stargunner

  • 1,015 posts

Posted Thu Dec 15, 2011 8:50 AM

One place to start is a game maker such as, er, Game Maker from YoYo Games. Construct is also another good starter programming environment. These two options are complete packages to make game programming dead simple. The nice thing is, both Game Maker and Construct let you dig pretty deep when you're ready for hardcore coding.

If you want to start with console video game programming Batari BASIC (2600) and BasiEgaXorz (Genesis) are good choices. Batari BASIC makes you work around the 2600's constraints but the community is AWESOME and truly newbie friendly. BasiEgaXorz is not actively maintained and buggy. The community is not so active and, in my opinion, not as tolerant for the beginner.

BasiEgaXorz http://devster.monke...ga/basiegaxorz/
BatariBASIC http://bataribasic.com/
Game Maker http://www.yoyogames.com/make
Construct http://www.scirra.com/

Edited by theloon, Thu Dec 15, 2011 8:54 AM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users