Beginning my programming journey

BlitzMax Forums/BlitzMax Beginners Area/Beginning my programming journey

ScottFromCanada(Posted 2010) [#1]
Hey all.

I am just beginning my game programming journey with BlitzMax based on the recommendation from Simon of New Star Soccer fame. I know what I want my big project to be game-wise but I am quite far from that yet. So I have two questions.

1) Can you guys suggest a good, simple project for me to learn how to create a game? A simple shooter perhaps, A recreation of an existing board game, or something along those lines.

2) Is there a step-by-step guide to creating a game from concept to completion that describes not just the programming aspect but the planning, documentation etc? I am really interested in learning the progress of game creation.

Thank you.

Scott


johnnyfreak(Posted 2010) [#2]
i found this useful for me. Maybe it's right also for you.


Who was John Galt?(Posted 2010) [#3]
Hi there,

Someone else can help you with (2), but if you are a real beginner, do yourself a massive favour, and forget the whole planning and documentation aspect to begin with. The only documentation you need at this stage is a few well placed 'rem statements'.

If you haven't done so already, have a good read of the BlitzMax documentation. Find a simple demo, for example something from the code archives or something that comes with Blitz, and play about with the code. Change bit, tweak bits, and ensure that you understand what is happening and why. This is an excellent way of learning.

Don't get bogged down with things such as MaxGUI, object-oriented programming or types if they seem daunting. There's plenty of time for that later.


Dabhand(Posted 2010) [#4]

1) Can you guys suggest a good, simple project for me to learn how to create a game? A simple shooter perhaps, A recreation of an existing board game, or something along those lines.



Yahtzee, draughts, a remake of a classic old game, such as space invaders or centipede, a popular genre game such as match-3/hidden object... The list is endless, but really, what you have got to think is, what type of game do you like,as its no good making something you have no interest in.


2) Is there a step-by-step guide to creating a game from concept to completion that describes not just the programming aspect but the planning, documentation etc? I am really interested in learning the progress of game creation.



As John mentioned, just have a good read, scour the examples that come with BlitzMax, start to make something, and if your not sure of what your doing, say, handling tilemaps, then just post! :)

Dabz


ImaginaryHuman(Posted 2010) [#5]
How about a game of solitaire or something like that?


therevills(Posted 2010) [#6]
Have you done any coding before?

If not, try pong... it'll teach simple graphics, controls, simple AI, sounds etc


Czar Flavius(Posted 2010) [#7]
Get a bitmap/png image of a face to draw on the screen.
Get the face to follow the mouse pointer.
Get the face to move around using the arrow keys instead.
Get an image of a ham.
Place 3 hams at random locations of the screen.
Collision detect between the face and the ham. When there is a collision, remove the ham and increase score.
Get an image of a stop sign.
Place 3 stop signs at random locations of the screen.
Collision detect between the face and the stop sign. When there is a collision, prevent the face from moving over the stop sign (it's a barrier)
Add some sounds and a background image.
This will keep you busy for a while ;)


ScottFromCanada(Posted 2010) [#8]
Thanks for the advice guys. I will decide on something simple and start there and I will read and absorb everything I can on this site and the Blitz basic manual....oh, and i'll search Google images for a picture of a ham. ;)


_Skully(Posted 2010) [#9]
Welcome... always nice to see another Canuck on here... where about are you? I'm in Victoria


slenkar(Posted 2010) [#10]
the gamedev link tells you to make tetris which is actually quite difficult


MGE(Posted 2010) [#11]
seriously...just do this in order and then you'll be on your way....

Hello World.
Hangman.
Pong.
Space Invaders.
Pac Man.
Tetris.
Super Mario.

There is so many ways to do Tetris, it's always a good challenge because usually no 2 beginner coders will ever code it the same way.


Czar Flavius(Posted 2010) [#12]
I also would not suggest Tetris as a beginner project. In fact I wouldn't recommend cloning any real game as your first project. Keep it simple, but with your own design ideas. That will keep you motivated.


Arabia(Posted 2010) [#13]
I've done programming for years & years, but I'm still a novice.

First thing I made in BLitzMax was a slide puzzle/tile scramble puzzle:

- Load a pic
- Devide it into 16 pieces
- Scrammle
- Use arrow keys to re-arrange pieces to put the puzzle back together

Rather boring really. I offered my tile scramble game to EA for $1Mil but they declined :( but I did learn something from making it

Must agree re: Tetris - I reckon I could make it if I put my mind to it - but it's not a first project to work on unless you have a decent amount of programming experience behind you or unless you think in a very logical kind of way


Taron(Posted 2010) [#14]
LOL!

Well, I started by exploring an existing project and augmenting it to get the hang of it. It was the little breakout in the bmax examples. Although I do have a strong starting point, since I had been programming for nearly two decades before stumbling across bmax. However, it reminded me of my very first beginnings with disassembler on the C64.

Even now I havn't finished developing a single complete game, but only due to my focus on learning and the digression of exploration. I know that the four games I've started would all make fun games in their completion and all of them started without a fleshed out concept but just an idea. Along the way you discover the merrit of organizing your code and with that knowledge in mind you simple make a certain structuring your habit.

Learn about the Graphics. (syntax, loops, coordinates...)
Learn about user control (KEY and mouse, maybe even Events).
Learn about Types. (Methods, Functions, Fields of variables...)
Learn about String handling, Arrays and the likes...
Last but not least Audio, but I'd keep that for last...

That's about the order in which I went at it. I'm still fighting with audio, though.
That's all you need to make your games.


ScottFromCanada(Posted 2010) [#15]
Thanks very much guys. I was also a little confused about Tetris as a beginner project. It seems like it would be too complicated at this point. I will let you know how I progress and what I decide to start with.

@_Skully - I am near Toronto.

@Arabia - nice idea. I may try something similar.

Thanks again everyone.

Scott


Sledge(Posted 2010) [#16]
I have to agree about the (over) complexity of Tetris. Also, while it should probably sit some way down the list, you really should look into states and serialization at some point. Saving and loading state data is one of those things that is tricky to retroactively add to a project so it's worth getting into the habit of structuring your game around how you're going to achieve it from the start.


Kirkkaf13(Posted 2010) [#17]
Hi ScottFromCanada,

How is learning blitzbasic going for you, I am new aswell just purchased yesterday was wondering on your progess.

- Kirk.


ScottFromCanada(Posted 2010) [#18]
Hey Kirk. It's going well. I am reading everything I can and messing around with the sample code included with BlitzBasic. I am trying to learn all i can.

Keep in touch and let me know how it is going for you.

Scott


Kirkkaf13(Posted 2010) [#19]
Hi Scott,

Nice to hear your doing so well in learning I will try help you if your struggling to understand something and give you my noob point of veiw of things. I am doing well myself, I was just messing about creating little programs in the console for a few hours, created a simple number guessing game and went on to using the graphics mode, created a little stickman image in paint and displayed the image. I then went on using the arrows keys to move the image around the screen.

So thats where I am so far going to look into Types next and collision detection between sprites.

- Good luck!

Kirk.


ScottFromCanada(Posted 2010) [#20]
Hi Kirk,

Sounds like you are doing well. I am trying to write some simple little programs as well. I like your idea of the simple number guessing game. I might give that a try.

Scott


Kirkkaf13(Posted 2010) [#21]
When creating the guessing game I had a problem with IF statements as from the previous languages I used they slightly different in there use.

Good luck with this tell me how this goes.

Kirk.


Czar Flavius(Posted 2010) [#22]
This feels like I'm reading somebody's correspondence lol


Nate the Great(Posted 2010) [#23]
kirk, what problems are you experiencing with the if statements, do you have a simple example?


Kirkkaf13(Posted 2010) [#24]
When to use EndIf because in the previous BASIC language I used you use it after ever IF statement.

- Kirk.


Czar Flavius(Posted 2010) [#25]
If the If statement is only a single line long, you don't need EndIf.


Kirkkaf13(Posted 2010) [#26]
Cheers.