New Tutorials on writing a platform game online now
October 13, 2008 at 9:31 am | In Games development | 1 CommentTags: blitz 3D, blitz basic, Games development, indie coding, platform game
I’ve begun producing a series of tutorials on how to write a 2D sidescrolling platform game using Blitz Basic. These should work fine in either BlitzPlus or Blitz3D (or Blitz Basic 2d if you want).
So far we’ve got a basic tile map editor and a character who can run left and right and jump.
I’ve got some ideas for what features to add, this has mainly been by looking at major platform games that have come out over the last 20 years and picking out the common features. So we’ll be trying to add the following:
slopes, lift, floating platforms, doors, animated tiles, treasure chests, enemies to be jumped on, breakable tiles, flying sections, powerups and what ever else I can think of.
I’ve already had a number of mails showing interest in this series, so I’ll try to make it a good one. I’ll try to get a general level structure working first, then each tutorial after that will look at adding in more features.
Aside from that, there’s the level editor tutorials. These will have to tie in with the platform game videos. So for instance, I’ll produce a level editor video which adds doors onto the level, the type of doors you get in mario which basically transport you from one area of the level to another. So obviously we then have to add the code to the game engine to handle these doors. The ordering of the videos will be a new level editor video, followed by a game video when adding new features in. Sometimes you’ll see a new game video without a level editor one for when I’m updating the game engine but not affecting the level structure. Level editor’s are very closely tied in with the game engine, but not totally.
The ultimate goal with these videos really is to build a generic platform game engine, that can be used for any type of platformer. So whether you want to write a mario style game, a megaman or a sonic game, you’ll be able to use this code.
The next step will be to use this code as a base for an overhead RPG tutorial series, but that’s a long way off yet, and will involve much more complex functionality such as conversation code for speaking to characters, quests surrounding a storyline and a complex inventory system.
Anyway, here’s the link, go enjoy yourself: Click Here!
Platform game WIP post 1
August 22, 2008 at 8:20 pm | In Games development | 1 CommentTags: blitz basic, blitz3d, Games Programming, indie games development
I’ve started writing a platform game. My feature list I’m aiming for is based on games like Mario and Sonic, so moving platforms, enemies you can kill by jumping on them. But I also want to put in more advanced features like wall climbing, swinging on ropes, large sprites, full screen graphical effects, etc….
The main problem you hit when writing a platform game is deciding how to structure the levels in memory. I’m going for a basic approach of using a 3 dimensional array. The first two dimensions are the grid reference of the map tile, and the third is the type of tile. So map(3,4,0) would be the tile type at grid ref 3,4, and map(3,4,1) would be the collision type of that same tile. A value at map(5,8,2) is an object at that grid reference, right now I’ve got coins and alcohol workign as objects to pick up. Coins give you points where as alcohol bottles make the whole screen go wavy using a simple screen effect I came up with recently. I’ve almost finished deciding how to put in the enemies. As the enemies won’t be set in place at map coordinate, they will have starting coords, then move freely from that point, so enemies will exist outside of the map array as seperate objects of my enemy type. The enmy type contains fields to cover things like: movement speed, graphic name, behaviour, hit points, etc…. I’m hoping to be able to expand this to use it for RPG characters in a later game.
Anyway, back to the map editor, I’m going to try using a GUI module for blitz3d, there’s a number of free one’s available from the blitz website that look pretty good. I’ll want them to be able to access different tiles and objects for placing on the map. Currently it works by pressing the space bar to switch between tiles and objects, and then scrolling the mouse wheel to switch tiles or objects. REally I want a grid showing all the tiles so I can select tiles from there and also see all the objects and any other features to add to maps. Such as player starting places and enemies too. I also need to be able to specify level size, background graphics, weather effects, and any other settings for the level such as time limits and where doors lead to, the list is pretty endless. I think the main things is to get the basics working first, enough for a simple game to work, then add things to it one feature at a time, until I have a complex level editor. Of course the game has to be able to handle all these features fo the levels too, so any level loading code is shared betwene the level editor and the game using an include statement. This also makes it important to use the same variable names in both the editor and the game. I’ll be trying to share as much data as possible between the two actually as this will aid me in writing further games. Having seperate modules of code, which you can include in other code, is the first steps in writing a game framework, so I could have common code for menu screen, loading screens, options menu’s, controller config screens, that sort of thing. This way I can have several games all being written at once, and fixing a bug in one will fix the same bug in all the other games. Obviously a map editor would only be good for platform games or rpg’s, but other modules such as menu systems, title screens, options screens, would be transferrable over to any type of game. same goes for highscore tables and split screen multiplayer code too.
Obviously with a map editor, there’s no reason I could change my game code to be C++ based instead of Blitz, and keep the map editor written in Blitz, the only problem here would be that the map loading code would need to be re-written into C++ meaning changes to the map code would need to be written both in blitz and in C++.
Anyway, enough rambling, I’m off to go code something. I’m uploading a video fo my platform game tonight, so you can see how far I’ve got with it so far. I’ll also be doing a series of video tutorials on how I implemented different features in the game as I go along. The tuorials may take a while to appear though as I want to be happy with the code before I do a tutorial on it.
My youtube channel is: http://www.youtube.com/amcadam26
Two new youtube videos
July 23, 2008 at 12:26 am | In Uncategorized | 1 CommentI’ve uploaded two new youtube tutorials on Blitz basic. They cover how to replace your mouse cursor with a custom one, and how to do simple animation of images/sprites.
My channel is: http://www.youtube.com/amcadam26
Small update on things…
June 4, 2008 at 7:07 am | In Games development | 2 CommentsTags: blitz basic, Games development, indie games development
I’ve been getting some more work done on Fruit Drop, I posted a video blog on this on Youtube, you can see it here: http://www.youtube.com/amcadam26 it’s the entry called Lone Game developer video blog, or something along those lines.
I’m really looking forward to finishing Fruit drop off now, because I’ve started the design docs for my next game. It’s an overhead view, futuristic actions RPG, it’s working title is “Alpha base 23″. It’s look will be similar to Alien Breed for anyone that remembers that game. But will have many more features. It’s not a copy of alien breed I only mention that as the graphical style will be similar. It will be much more RPG based, you’ll have missions to accomplish, an inventory system, NPC’s, maybe levelling, although that’s not in the design doc yet.
The level editor will be written in Blitz3D aswell as the scripting programs and object editors. It’s my goal for the game to basically be an engine to run the levels data files. So technically you could write a whole new game based on the same engine using different levels and graphics and everything. This is actually how games like Doom worked, they have everything pertaining to the story and levels in a big WAD file then the game is simply the engine that runs what ever it finds in the file. that’s how my game will be.
I’ll be looking for help later on to speed things up abit, initially I may need someone to help with graphics, drawing tiesets and sprites, then later on we’ll get to level design, writing dialogue for NPC’s and general scripting of cutscenes. It sounds like a very complicated game, but I’m sure if I break it down into simple to manage pieces, that I’ll manage it okay. I’ve got a number of games under my belt now, so I’m ready for the challenge. I will of course still be writing smaller games at the same time, maybe even some relatged to this main project.
Let me know if you’ve be interested in becoming part of the team…
Quick update on everything
May 29, 2008 at 6:39 am | In Uncategorized | Leave a CommentTags: blitz basic, Games development
Hi all,
just a quick update on everything I normally blog about:
The You Tube Blitz Basic videos are proving popular, I’m getting some good comments and have just hit the 21 subscribers mark. I’ve seen other you tube posters make little games to celebrate hitting certain numbers of subscribers, I’ll be doing this for getting to 25 I think, just need to decide what the game should be.
I’ve not been doing much at all on Fruit drop lately, it’s nearly finished though, it’s just the small details that need fixing now, such as changing from text to bitmapped fonts, which is faster. I also need to implement the high score tables and tidy up the graphics. Don’t know when I’ll have this one finished.
Other games, well I’m wanted to get started on my Action RPG title, I’m still not 100% sure what language to write this one in, I’d like to do it all in Blitz3D, but I want to be able to use it on my CV as an example game, so it might be better to do it in C++ using the allegro graphics library. I’ll make that decision once the design document’s finished.
My home life? I’m still spending all my week days away in Switzerland, which really sucks, especially as I’m trying to move into a new house with my girlfriend, due to the leaky roof problem in our current flat. Might be moving this coming weekend, will have to wait and see.
More success with Youtube programming tutorials
May 13, 2008 at 7:34 pm | In Games development | Leave a CommentTags: blitz basic, fruit drop, Games development
I’m now over 1200 views from 5 days ago, and have 10 subscribers. I’ve alos finished the first set of tutorials showing how to program a simple space invaders clone.
I’ve been getting good feedback from viewers, so I’ve begun a new series of videos showing simple techniques in 2D for games, such as how to do gravity.
See my videos at: http://www.youtube.com/amcadam26
Here’s a Work in Progress video of Fruit Drop:
The video tutorials are a success!!!
May 7, 2008 at 8:24 pm | In Games development | Leave a CommentTags: blitz basic, Games development, youtube
After one week of posting videos, I’ve just uploaded my eighth tutorial video and now have over Six Hundred views already! And 4 subscribers too, including the guys Gyrovorbis, whos videos inspired me to start my own in the first place.
I’m not competing against them, or anyone else, as no one else is making Blitz Basic videos.
the link is:
Here!!!
So go check it out. There’ll be a few clips of other games I’ve written on there too, as well as a video of how Fruit drop is going.
Beginning games programming with Blitz Basic
April 28, 2008 at 10:01 pm | In Games development | Leave a CommentTags: blitz basic, blitz3d, programming tutorial
I’ve decided that as well as writing abut what games I’m working on, it’d be good to produce a few tutorial videos for absolute beginners to learn from. These should help you to start off in programming if you’re thinking it’s a massive scary thing that just looks too complicated. Hopefully my videos will show you that it’s pretty simple to get going.
So anyway, I’ll be adding videos pretty regularly, so let me know what you think, and subscribe. I will be putting some youtube videos up of games I’ve written in the past as well as games in development now.
Here’s the first part to start you off:
Late night coding…..not good…..
April 24, 2008 at 10:26 pm | In Games development | 1 CommentTags: blitz 3D, blitz basic, fruit drop, Games development
I have to get up in six hours, and I’m still sat here writing game code!!! Gah!!!
This is one of the problems with bedroom coding. You start coding around eight in the evening, then before you know it, it’s four hours later and you have to sleep.
I’m actually really looking forward to the weekend now, cause I’ve managed the following tasks with my casual game “Fruit Drop” this evening:
Added: First sound effects, particles, company logo screen, animated title screen, undo function.
Oh, and my girlfriend made a suggestion for the game, so I added it. Basically she said to make the particles produced when you click a fruit to be the same colour as the fruit you click. It looks nice, it’s a nice little touch that adds some polish to the game.
I tried doing some 3D rendering tonight as well, just a wooden crate that the fruits fall into when you click them, but I couldn’t get the textures looking good, so I’ll give that another try some other time, probably this weekend.
I can’t wait for the weekend now, there’s just so many features I want to implement in the game, such as more sound effects, some music, difference game modes, game over screen, high score tables, options screen, maybe full screen mode too.
Anyway, night folks. They’ll be an updated screen shot this weekend. I don’t want to release a demo before it’s done so I’ll just release the entire game when it’s finished. Hopefully that will be in about a week.
What’s going on with Fruit Drop
April 23, 2008 at 7:41 pm | In Games development | Leave a CommentTags: blitz basic, blitz3d, Games development, indie game
Since my focus has been off development lately and more focused onmy day job. I thought I’d write a quick update as I’ve actually spent the last hour working on my Fruit Drop game. It’s now got a nice blue gradiented background instead of plain white. I’ve also had to sit in paint for ages trying to get rid of all the nearly white pixels, that look invisible to the eye, but the mask color is pure white, so when you play the game, there’s al these white dots around the fruits. It was so annoying, and I nearly went blind from it.
Aside from that. I’ve optimised the code a bit, basically it now loops through all the fruits five times instead of eight times, which bascially means I’l be able to apply my particle engine which I’ve been meaning to do for ages and there shouldn’t be any slowdown. I’m developing this on a shitty 1.4 centrino laptop, so if it runs fine on here then I’m happy.
I might try adding a main menu and high score tonight if I have time. My last game had a highscore that saved the highest score to a file, this time I want the top ten highscores to be saved, and have the players names on the table too, so it’s a bit more challenging than before.
Oh, I fixed some bugs with the game too, like now you can’t click between the fruits, cause that was annoying.
P.S. MY invaders game is now up to 63 downloads. I’m actually proud of that. I didn’t advertise much, only mentioned it on the blitzbasic forums and indiegamer forum. With fruitdrop I’m wanting a lot more downloads, I might actually get round to developing a proper site with a games list, as the number of games I’m releasing is getting larger.
Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.