I am the worst blogger... ever!
Sorry! But I've been super busy!
While I've been gone I've:
-Made another game engine
-Started, and Quit a job as a technician and network administrator
-Finished countless work related c++ projects
-Started Learning Java and C#
-Learned enough OpenGL to make some games with it
-Made an awesome sidescrolling game as well as a tic-tac-toe and a pong game
-Gotten less terrible at SC2
-Finished "iPhone Programming, the Big Nerd Ranch Guide"
-Had an awesome time!
My Current Projects:
-iPhone block avoidance game [started 11/1]
-Block::Warrior (sidescrolling multiplayer shooter game) [started 10/5]
-A bunch of work-related mundane stuff =]
Here are some screenshots (videos to hopefully follow)
I've been lucky enough to have a lot of time to program lately and my code is getting pretty awesome. Collisions,events,animations,particles,sounds,text, and just about everything one needs for a game are now included in my engine.
Haha, also have a new favorite joke:
How many apples grow on trees? (see end of blog post for answer)
I've been slowly going insane trying to come up with playable games and not taking on any project that I won't finish, but it's going really well. I'll post a link to my game soon here (hopefully, you know I'm forgetful, so please email me and remind me! (seriously ... I'm so lonely... so... so.... lonely... (
mr lonely starts playing in the background))
A little bit about block::warrior
It's currently in the stage of creation where one can create full levels and play around with them, if any of you are good at level design, please let me know. Because I suck. Badly. And no one wants that. Do they? =]
Oh and for you code junkies out there, here's my quick inventory system:
class inventory: public object{
protected:
map types;
vector numbers;
public:
int type_index(const string& type);
int add_thing(const string& type, int number = 1);
int remove_thing(const string& type, int number = 1);
int get_number_of_things(const string& type);
int handle_event(event* evnt);
};
int inventory::type_index(const string& type){
if (types.count(type))
return (*types.find(type)).second;
types[type]=numbers.size();
numbers.push_back(0);
return numbers.size()-1;
}
int inventory::add_thing(const string& type, int number){
return (numbers[type_index(type)]+=number);
}
int inventory::remove_thing(const string& type, int number){
if ( numbers[type_index(type)]-number>=0)
return (numbers[type_index(type)]-=number);
numbers[type_index(type)]=0;
return 0;
}
int inventory::get_number_of_things(const string& type){
return numbers[type_index(type)];
}
int inventory::handle_event(event* evnt){
if (evnt->type=="getitem"){
add_thing(evnt->command,evnt->value);
}
}
(answer to joke) All of them! =]