Monday, March 1, 2010

Design 1.0

I'm going to be hitting the design phase sometime soon, due to the length of simultaneously learning and making. My posts will be less about a resume of my progress but a show of the progress itself. I will first try to make tiles and apply them to the game world. The game world will be a matrix of tiles put inside the panel you saw couple of posts ago ( in the image folder of my album ), 16x16 tiles generated with some kind of technique I still have to fathom. I plan on developing my own technique for doing this ( instead of just hitting the forums and asking how to do it ) because I feel like I can find it myself and thus will be better at applying it. It won't be anything revolutionizing  but fun to make out.


On my list right now there is:
  • Figuring how the hell to make a map and apply tiles to it.
  • Make said tiles using paint and the tutorial I got.
  • Make individual functions that I will be able to use throughout the game. ( Wait functions, timers, showing menu's, combat etc. )
  • Start thinking about music effects.
More will be added as I go. For now I have to study about my exam coming tomorrow morning. Hell I hate exams, nothing worse than theory. Give me practical exams for fuck's sake. 

Saturday, February 27, 2010

Requirements of the Game Project

This is the requirements I've been working on for the game projects. I tried following a Waterfall software development approach, but unsure if I'm doing it right. I tend not to care very much if I'm not doing it EXACTLY right because I mainly do this for fun. 

Requirements 1.0
What purpose does the game serve ?
        Be entertaining to a technical degree


What graphical content is expected ?

        Sprite and Pixel art textures.
        Sprites with different phases to represent movement.
        Top down perspective at about 70 degrees

What audio content is expected ?
        An 8-Bit music track.
        Ambiance tracks, combat tracks, indoor tracks. 


What amount of content is to be expected ?
        Have at least 30 minutes of content.
        Single storyline
        Immersive story


What kind of interactions will be possible with the world?
        Conversation with multible options
        Turn by turn combat
        Inventory system


These are the expected things I hope to fulfill with my game. I might not be able to get everything working but I will update the post to add or remove items as I go. Next in line is the Design part. 

Software Development Process

So I've been reading a few wikipedia articles ( namely this one, and that one ) about software development planning. For it has always been a problem for me, I never finish any project I start because I have no plan to stick to and always find that I can do "that part" in another way and want to re-write the whole thing. 


Now, things will be different. After those articles I managed to grab the essential of the concept of making a plan and sticking to it and not jumping to the implementation process too soon. And so I have chosen the waterfall model for my process.






So I am now jumping into the "Planning the requirements and specs" stage. What purpose will my game serve? Whats the point of it ? I will make a post about this stage when I am done or simply to update.

The websites I'm reading

Last post I mentioned websites that I was reading to give me ideas for my game and learn a thing or two about creating them. I feel like I should share those websites for anyone who wants to peruse them in search of knowledge. Here's a couple of links:


GAS 13: Tips about Pixel Art
GameDevs: Game Development
AlanHipps.com: Creating games with the XNA platform
Pro VB 2008 and .net 3.5 platform: A very good book I'm reading.


I also watch amazon.com a lot for interesting books that I might buy. I will probably compile a list of the best of them along a quick review if anyone is interested in such reading.
These are only a few links, I'm still sorting through my bookmarks after switching from firefox to chrome and the bookmark management is not that great. Will post updates.

Thursday, February 25, 2010

Update on the blog and an Upcoming Project !




Blog Update
I wanted to re-assure you that my blog won't be focused EXCLUSIVELY on programming, the vast majority of my posts are going to be around that subject but I might sometime write tidbits of text about this or that.

Upcoming Project
Since the last few days, I have been looking for a project in which I could submerge myself and work on in my spare time. I am still searching but I am getting closer to having an idea in mind. I've wanted to program a game for a long time now, not a good one or anything remotely revolutionizing but something that I could do that would strengthen my grip on my programming language. I tried a messing around with a console interface but I couldn't bring myself to making anything else than a very boring text scroller without any semblance of combat and adventure. 

So from this day on, I am leaving the world of console game programming and moving on to 2D graphical game programming. I was thinking along the lines of one of these two screens:


The big panel in the middle of the second image and covering the whole window is where the game will take place. 

My idea of the game is that it is going to be a 2D top down RPG, much like Lufia or Golden Sun and the likes. I would draw the sprites, make the music and the "animations". The biggest challenge to my mind right now will be to program the engine of the game and make it as easy to re-use as possible. With my little experience in the domain I expect this to be quite a challenge.

Feel free to check my gallery of pictures related to the project here. Not much right now but I will update it as I make progress.

Classes Overview

Today we had to use classes. I will try to explain briefly what classes are, without going into too many details, because this is a deep subject.

First off classes are concepts of "things". A thing can be pretty much anything you can interact with. Chairs, tables, cars and clothes are all classes. Objects are physical representation of those concepts ( or logical, in the case of computers ). The particular chair you are standing on is the physical representation of the "chair" concept. Chairs are things which have several legs and a plate on which you can sit. But the one you are sitting on right now may have a number of legs and style and paint, it is unique ( even more unique when you think about the atoms making your chair ). Class = Chairs and Object = [The one chair you're sitting on]. 

Creating a class is made that way:

Public Class Car  'The class definition

Dim typeOfCar as string 'This is called a Member, it is specifically a property of a class (i.e a variable )


Sub nameCar(byval newValue as string) 'This is another member, it is a procedure.
typfOfCar = newValue


End Sub

End Class


By inserting the following snipper we have now created a Class called Car, it is a very general and broad class right now. It has a single property called typeOfCar that defines what type of car we're talking about. Right now it has no value so it can be anything. It a concept. When we create it, we define the car. We give it a brand, a name, a maximum speed, number of doors and etc. This is called an instance of a car. And creating an instance of a class is as easy as creating any other variable.

Dim MyViper as New Car
MyViper.nameCar("My Big Car")

We now have a living representation of a "car", its a dodge viper and its name is "My Big Car". We have given it a name using our member by accesing it using the syntax Class_Name.Procedure_Name


As you see, an instance of a class is an object. And the class itself that defines the procedures and properties is a Class. By using Object Oriented Programming you can do many things functional programming cannot do. The code you make is a lot neater and well structured. OOP is a lot more complex than that but thats all I'm going to risk explaining else if make some error and give you bad knowledge. That is all for today, hope to see you next time !

The format I'll use

So like I said in the previous post, I'm a student in IT and I currently have only a single class in programming. And its boring and I pretty much know everything we're learning ( having failed said class the first time ) . But I thought that it would make a good revision to summarize here the result of my classes here as I go to them. I think and I'm sure several people might agree that being able to explain the concepts means that you fully understand the subject. So my next class is coming up later today and I'll be sure to write a post about it when I'm done. Until then:

Do Until schoolClass = State.Finished
        Wait()
Loop