Monday, August 22, 2005

SAY WHAT?!

Nigga!

I just found out that I have an assignment for Data Structures and Algorithms. Gay. It's due in a month, but I don't want to slack off. I also have an exam coming up soon. More gay. So I'm slightly busier now then I was, oh, I don't know, a few days ago? Sounds about right...

ANYWAY. This means I'm going to have to slow down on the non-essential things. That is to say, I have to take it easy with the learning of Windows programming. I may get back into it soon, providing I can get my assignment done quickly. I have to go to school earlier on Thursday in order to hand in some forms, so I'll bring my assignment along with me and scribble things down. I estimate I'll have about an hour of working time... That should be more than enough time to draw up a rough plan. I may end up posting my final source code (when and if we get our results - no need to jeopardise my marks by having my code openly available before everything is finalised) so you can get an idea of... I have no idea why you'd want to look at code for an assignment, oh well.

I apologise to my readers who have come to expect a working demo of a game from me soon... It isn't going to happen - not soon anyway. I barely have the knowledge to put a window together, let alone a working interactive (real-time) application. Command line crap is easy, well, easier... *ahem* Know this - I want to get a game done (possibly) more than you want me to get one done. It isn't going to be easy, but I'm going to try, and I am going to get something done even if it kills me! Or hurts my eyes! I AM GOING TO DO IT! NIGGA!

If you find that racially offensive, you are a racist. In this case, it doesn't take one to know one, instead, it takes a racist to find a word racially offensive. That is way, WAY off topic - stfu.

A quick summary of the points made:-

  • I have slightly more work to do for school; which means

  • Progress on game related things will slow down; so I want you to

  • Be patient my niggas.

Thank you.

note :: I think it would be wise of me to include a quick summary in all my posts, so as not to break the (proverbial) balls of my readers when I find that I've typed some large number of words. I sure as hell don't want to re-read a post, so I doubt anyone else would... Actually, if I can take the time to write all this out - you can read it. There will be no more summaries... NIGGA! /note

Sunday, August 21, 2005

New layout!

*d00t*

I spent pretty much all of today working on images for my blog layout. I made a few, and then I was all wanting to incorporate me into it, so I did, and it was crap -_-. Then I made some changes, reworked the other images around, and ta daa! I'm so cool.

In case you're wondering, the characters in the pic are (from left to right) Ryu, Ken, Sean and Akuma (Gouki for the Japanesely inclined) from Street Fighter, and if you didn't know that... Where the hell have you been for the past 15 years?! Jeez. These pics are actually of the characters in Street Fighter III: 3RD STRIKE, an awesome game ^^. I have it on Dreamcast, but I'd like to get it on XBOX (when I get one) and then get an arcade stick controller dealy.

Oh, and yes, that's me on the very left of the image... In case I haven't said so already. Just letting you know ^^. I really like how it's turned out, considering I took the picture of myself with my webcam, so the quality is FAR from amazing.

This post hasn't been as incredibly long as my others, but, then again, I didn't do any programming today. Enjoy yourself.

Saturday, August 20, 2005

*Does it again*

Again I've jumped the gun and gone and gotten myself some more development tools. This time I've acquired the library tools for the Simple DirectMedia Layer, a neat little thinger that has a bunch of graphics related stuff built into it. It was made in the first place so programmers don't have to re-invent the wheel so to speak. It simplifies window creation, plotting pixels, and I assume everything else graphic related. Of course all I've done is create a window using it -_- and plotted a pixel. I've even animated the pixel, and gone so far as to implement a very, very primitive collision detection system. Basically, a block merely bounces around a window, returning from whence it came if it comes into contact with a wall. Err... The edge of the window... There is no special physics, it's bounces remain at a constant 90degrees (imagine if you will, a beam of light, reflecting around the inside of a square-mirrored pipe - if that makes any sense). It isn't something great, but it's something.

I've also begun to read a book on artificial intelligence. The beginnings of the book deal with most of the same things as other game programming books. The basics of Windows programming and so on. I find it quite interesting to read, as different authors explain things in different ways. I've gone through 4 or 5 texts/reference materials where the author goes through the basics of creating a window, and it's slowly beginning to sink in for me ^_^ go me!

But yes, back to the AI. You may be wondering why I'm also looking at learning to program AI... Well... What use is a game if the computer doesn't do anything (without AI, a computer opponent doesn't technically exist now does it)? Now for a simple game like Noughts & Crosses (tic-tac-toe for those who may not know), and possibly Connect4, the AI programming would be relatively simple... Actually, I don't think it'd be very simple for a game like Connect4... But you can see what I mean. 9 spaces to choose from, aim to get 3 in a row, easy. If I had to do something for that right now I imagine I'd use a large CASE statement, either that or a series of large-ish IF statements, or even a combination of both. I know it'd take up a (relatively) large part of the game's processes, and that alone is a bad thing.

I'm still not too sure of what game I'll make first. It has to be simple, but not too simple. That doesn't make much sense now does it? -_-. Noughts & Crosses, Connect4, Memory, games like these ones are what I should be looking at making first off. No need to go and try build the next Half-Life engine now is there? I didn't think so. It also helps to start of small cause then that way you gain little skills along the way that can be applied to projects down the track ^^. Over the coming week or so, I will define my first project. It won't be a game, more a test to see if I can just do a bunch of things.

  • Create a window;

  • Place text in that window;

  • Plot single pixels

  • Display graphics (from file, BMP, GIF, whatever... most likely BMP);

  • Read keyboard / mouse inputs; and

  • Display those inputs as text in the window.

I may get ahead of myself in terms of my readings, but I can't get ahead of myself in terms of what I practice. Since I was 15 I've been saying I wanted to learn how to program games. Odd... It's taken me this long to actually start... Although, I did attempt to program various games. A text-based Monster Battle game. A random number generator to help me pick EmailCash's Guessing Game's winning number based upon previous winning numbers. Another Monster Battle game, this time with an actual interface (in Visual Basic), some sound effects (I think? Using the WAV module from my SDD assignment), still no images and true gameplay to speak of. I designed SketchPad-PRO, an assignment from my engineering computing unit (the only unit I passed last year mind you) which would plot a series of points based on input from a text file. Not much else comes to mind, I guess I didn't work as hard on anything else as I did those things. Most of them were on my older computer which has recently been wiped ;_; all of them are gone, save for the engineering assignment :o I might post that later...

The cool thing about blogging via MS Word is that I can check out my word count and stuff like that, right now I'm leaning towards 800 words I think. My typing is getting better, and I'm trying to not look at the keyboard as I do it ^^. Well, I haven't exactly memorised all the special symbols above the numerical keys, most of time I actually have to look at 'em when I wanna use one of 'em or something. Oh well. I suppose I can only get better with time.

Heh... I can't play games any more without wondering how it's done. While playing some Bomberman Online today, I was so curious as to how the game worked. The puzzles of Chu Chu Rocket were amazing (at least in the HARD mode, I beat normal in like 10 minutes x_x), I hope that one day I can come up with puzzles as good as those. Playing Street Fighter Alpha 3, I can't help but wonder how the collision detection is implemented, or how the animations are all done so well. In Street Fighter 3: 3RD STRIKE, the microscopic collision detection and timing come together to form the parry-system, amazing. And sure, these games all come from professional developing studios with years of experience, and some of the most talented people in the industry working for them... But... It's interesting to see these things implemented so well, and I really want to be able to do something like this one day...

... One day... When I make a game... I'll look at it... I'll comment on how well the game is implemented... But I won't be curious as to how it works - I'll know exactly how it works...

Friday, August 19, 2005

Arrg! Classes! GRR!

Ok. So I've looking more and more at how I've arranged my class for the data... And I keep wanting to go back and add/modify things... This, in turn, has brought me to my next conclusion - draw up a friggin' decent plan, get everything sorted, don't touch anything once you're done. Sound good? I thought so.

As of now, I'm scrapping my data setup, and will re-analyse everything when the time comes to do so. I should still be learning all the fundamentals, not going ahead and creating parts of a game when I can't even implement it! That's crazy yo! YO!

I figure that everyday after Monday is time for me to work on programming (yeah I've also got to study everyday x_x), and I'm hoping that I get good enough over the next month or so to actually make something. I know I'll be good enough eventually, but I want things to speed up! Next year I won't have so much free time.

Hmm... What else... I guess that's all.

I'm'a see if my homework is available now, and do that, then study...

Welcome to the student programmer's life...

Thursday, August 18, 2005

Data structure :: Complete

Yes, that's right. My data struture for the checker board is complete AND tested. I can display the board exactly how it should look like.

That's all good and well, but now I have to figure out a way to calculate whether you can take your opponent's piece... At least while using data the way I have structured it...

note :: I have done this using only C++ command line programming, I haven't gone so far in my Windows/DirectX programming skills to have done this there yet. I just... I started doodling ideas, and then I just wanted to test things, and now here I am, a mini-project completed ^^. /note

My theoretical knowledge of programming is increasing. I understand things a lot better now than I did only a few months ago. I feel so much smarter ^_^. Hoshi would be proud. And I think Sari is hoping I am able to get something done. I hope so too.

Tomorrow and on the weekend I have to catch up on school work/study. I can't afford to miss anymore classes. I'll spend an hour on each subject everyday except Thursday, do all my homework on the weekend (or earlier if possible), and work on game programming when I have no homework/study to do.

Expect to see good (if not great) things from me in the future. I might not be very good right now, but I can only get better...

Update

Little note of progress on my checker board design...

I've gone from an 8*7 array to 8*4. Way to optimise eh? Go me. Optimisation of how you use memory isn't exactly important at this point in my programming life, but I'd rather begin taking notice of things like this right now as opposed to down the track when I have to develop really high end applications.

Technically, the Big-O efficiency for the algorithm would be the same as using a larger array with space not used. Each algorithm is awkward either way; I have to check all the pieces on the board, and test to see if they can make a destroy move, then force those moves, else... Uhm... I'm not gona plan this right this minute.

I actually just noticed something I have to change in my custom data type...

Never before has checkers been so complicated x_x...

Note :: I will figure out how to get things like mouse clicks as input before I attempt to build a game. No point having a non-working engine eh? Dam right there's no point! PUNK!

I'm out.

Wednesday, August 17, 2005

Taking a break!

Yeah, that's right. I'm taking a break over my attempt at Windows/DirectX programming. Yesterday I spent about an hour or 2 downloading/setting up/testing various unofficial development kits. About 3-4 hours of actual programming, and about another 4 hours (I did both things simultaneously - multitasking) reading resource material... When it comes to sitting in front of the computer, I could do this shit all day. That's the reason why I'll be looking at getting a job during the summer that involves being in front of a computer. IF I don't go to Canada during my summer break to see the Hoshi that is. I've asked some friends about data entry, and apparently you're required to touch-type some 50 words a minute, which is something I could pull of with MSNese, but using proper English I'm a bit slower, I don't know how slow exactly, but I highly doubt I'm pulling off even 40 words a minute. I'm really hoping that all this blogging I'm going to be doing, as well as programming, and typing up various school dealies will help speed me up and increase my touch-typing ability. I can kind of touch type right now, but I'm not all taht great yO!

Some interesting developments occurred during my day yesterday, After getting my unofficial devkits to work, I tested the compiler function and, it too had worked. Leaving me with various executable files, like the *.gba for Gameboy ADVANCE games... I could create working GBA games, for which all I'd need to play would be like, a Flash Kit dealy from Lik-Sang or where ever, and I'd be good to test my dealies on my own GBA. Cool huh? I'm so getting off topic.

After the past few days of hardcore study/programming, I'm going to be taking a little break (from game programming anyways). I've decided that I'll read up on my Computer Networking textbook, then maybe some stuff on Data Structures (if I don't feel dead after Comp. Net.). Netowrking just involves learning all the concepts and stuff, but I wish it would be teaching me to build networked applications : (. Data structures will really come in handy. I could probably use it in game development ^^ like creating a 'record' to handle character data (stats, name, status, so on) and stuff like that.

One last thing. Last night, I got bored and figured a way I could store the data for a 'Checkers Board' in an 8*7 array, instead of a 8*8 array. My way also requires less calculations to be made (pieces move horizontally/vertically as opposed to diagonals, only thex- or y-coordinate ever has to be modified, as opposed to both coordinates needing to be modified in order to calculate the diagonal move... Go me ^^).

I've type far too much. I'm going to have breakfast, then read. STFU, I'm aware that it's 11:30, but I only woke up an hour ago, so let me eat dam you! Also, I have 4 hours of school tomorrow, during which I will be paying my fees, don't touch me bitches.

Tuesday, August 16, 2005

Console game development

Yeah that's right. I've gone WAY TOO FAR AHEAD OF MYSELF and acquired development kits for:
  • Nintendo Gameboy ADVANCE
  • Nintendo DS
  • Nintendo GAMECUBE
  • Sony PSP

edit :: Acquired from devkitPro, here's their SourceForge and WiKi. If anyone out there is really command-line-savvy and would like to help (with properly setting up MSYS), please feel free to do so ^_^. /edit

edit2 :: Nevermind about the MSYS, I've figured it out. /edit2

I highly, HIGHLY doubt I'll be using them anytime soon. Even setting them up has gotten me slightly confused (how the friggin' hell do I build executables?!). But I've gotten the basics set up (it kind of works...). It doesn't matter too much, I was just very interested to see what these things are like. They may not be official SDK's, but they get the job done I suppose. Not to worry! I won't be using these for a while. Console platforms are harder to develop for, or, at least you need to be more concise about things... Which makes it a better paltform to develop for, as you're not worrying about a bajillion different hardware configurations, conflicting software, and so on. When I do begin programming for consoles in the future, I'll have to set me up with the tools I need to test executables on the platform. Like a card thinger for GBA so I can load my game onto it from the PC, chuck it in the GBA, and away I go.

Admittedly, I have a ways to go before I make anything decent... But I can do this...

When it comes to programming, I get my head around everything - eventually.

... The story so far...

This is what I've done so far. Aiight, check it.

I've created a program (in C++) that creates a window of size 640*480. Next I'm'a look to see if I can make that resolution changeable WITHOUT hard-coding it. What I mean to say is, I want to let the user be able to define it at runtime. That as well as other variable dealies.

I've copied an error handling class, which is all good for now, but I'm'a try rewrite it again on my own. Most of the stuff I did while looking at reference material, but I actually did type it all out again, I didn't just copy'n'paste (you learn more when you actually have to do stuff).

Now I need to learn to create the game-loop and after that I'll have to work on getting in/outputs, using those to actually do stuff within the window and so on.

This all doesn't sound like much, but let me tell you, it's taken about 100-ish lines of code to just make a freaking window and handle errors... This is not going to be - by any means - an easy thing to do...

... >_>... I made a window bitches...

Monday, August 15, 2005

WINDOWS BIARTCH!

No I'm not bitching at the OS that we all love to hate. Instead, I am here to tell you that I have made but a single step forward on my journey to create a game... I... Have created a program, that creates a window... AREN'T YOU EXCITED! I KNOW I AM!

But yeah, seriously, as nerdy as this might sound, I am actually psyched up over this. I shit you not. I've just done something I've never, EVER done before, and it means I'm one step closer to accomplishing my goal.

What's my goal exactly? I'm not exactly sure... To make a game I guess. Or a few games. I won't stop at just the one, cause then I'd be done pretty soon... So yeah, I hope to be able to do this for a long time...

HERE my friends is a link to my EXE... Due to my webhost being gay (anyone wanna give me webspace for free? ^_^;;) I've had to change the filename cause it doesn't allow *.rar's, sooo you just have to change it to *.rar, then extract it to whereever, and run it, and TA DAA!

... A window is born...

SDK ahoy!

WOO!

Ok, so I've just gotten myself Microsoft's DirectX SDK, something that I'm going to need (most of the resources on game programming I've looked at are all concerned with DirectX, so it looks as though I'm going to have to use it) to learn to use. I've set up my VC++ to use the LIB and INCLUDE files from the SDK. Other than that, no real development has started. No it's not cause I'm lazy, it's just that I have other things to do that are of higher priority, and there's a bunch of things I need to do before I can really even get into the programming portion of it all. I don't expect a game from me anytime soon, I'd expect something, just not a fully working awesome-sauce game.

I've also been scrounging around GameDev for various resources, converting things that look useful into PDFs and dumping 'em onto my computer for reference later on. I only have 9 hours of University a week, 5 of those hours are actual classes (all on Monday baby, go me!), so I've really got a lot of spare time on my hands (oh, I forgot to mention self-study didn't I?). I don't need a job to drag me down, and doing all this extra study will be really good for me as a budding (game) programmer.

So now, with 2 C++ textbooks on my desk, 1 game programming PDF (1000 pages long x_x), several HTML resources on various game programming dealies... I am on my way to making a kind-of-a-game type dealy... Hopefully...

PS: Will I ever stop typing the word that as taht? I think not...

PPS: Forgot to mention taht I might be looking to buy at least 1 more textbook concerned with Windows game programming. I might also get stuff on A.I. programming... Maybe... I'll cross that bridge when I get to it.

Sunday, August 14, 2005

*looks around*

<_<... >_>... v_v... o_o...

HELLO!

After a somewhat overly extremely long break, I've come back to this magnificent blog of mine that appeared in a wink of an eye... And was abandoned shortly there after... BUT NOW I'M BACK!

And now the purpose of this blog has also been extended. You see, I don't want to have a zillion different blogs, each one for a specific subject area... I'd rather generalise... And that's what I'm going to do with this. Instead of being just about my views on gaming, games, and the like, it will also extend to my ideas for games, and the development status of any of my programming projects.

I've been thinking about a way to make an MMORPG that isn't farm-able. Farming is basically when some dude makes a ton of accounts for an online game, has bots play for each of those accounts, then sells off all the goods over eBay and what have you. Having played some games where messing with the economy, or strength of new players (getting an uber equip, giving it to a n00b character) isn't exactly flexible... I can think of a way to eliminate farming, but that would of course severely limit trading and such in the game...

Since having started seriously studying game programming, I'm starting to look at things in terms of how they might've been done. How are particular things within a game programmed? How are transitions in the controls or game mode handled? Exactly how do they get things done? ...

I will definitely have to explore these aspects further, but, for now, I have homework to do for tomorrow... I feel sick, and I really don't wanna stay in class for 2 hours doing work I could've done at home.

Rufi out yO!