• 28 Jul 2009 /  Uncategorized

    SEO time! So the blog had already gone under a facelift quite a long time ago to force pretty URLs, and now the main site has them too. Instead of index.php?page=software it’ll be /page/software. On top of looking better, supposedly this is good for SEO…

    In other news, matt-soft will be expiring shortly so I’m redirecting all traffic to matt-shaffer.com. Over the next day or so I’ll try to shove everything from matt-soft onto this site.

  • 20 Jul 2009 /  PGD2009

    Oh, good! I’ve been able to split up my sources into different units happily so far. I’m using a simple technique I developed when working with Java; passing the drawing context to other functions in other files to allow them to draw. And this is helping my organization a ton.

    Now, I’ve got a bit much to do.. first of all, it’s King of Lands‘ birthday on July 30th, and I like to make big updates for it. On top of that, I’ve got 2 books to read + 200 pages from another random book for school, and somehow I have to squeeze in time to make Sun Defender.

    The above screenshot is probably the sum of another chunk of 3+ hours of work, and it’s glitchy. For some ODD reason, key up events are being thrown when no key is released… On top of that, with pascal I can’t find a “isKeyDown” function; so the movement of that ship (it’s currently controllable) is jerky as well.

    Of course, there’s some more problems to be worked out if I find a isKeyDown function, like keeping consistent timing across different computers… then I’ll have to redesign my current system ;) but it would totally be worth it if I find that eluding function + a way to keep the key down events @ the same intervals across all computers…

    Now, I also had to hack up the sound system a lot to get it to work the way I wanted. First of all, it’s audioOut.loop didn’t work. So I have to check when the audio is done playing, what screen it’s on, and decide if the music should loop or not. I’d also like to note that when in game (Currently, just not the menu), it’ll select a random song to play and when that’s done it’ll pick another random song.

    Getting the random song system to work was also quite problematic, but I got it done. It was ridiculous, the system I eventually slapped down to get the job done involves a timer waiting 100ms before playing the next random song, because even though the darn thing gets out of the while(componentIsBusy) loop, it’s, guess what, still busy for a while longer.

    In the screenshot pictured way above, the fire follows the ship of course, but what you can’t tell is that the ship is animated. Got that done too; and I have an idea for the art style of the game. One problem currently is that bullets aren’t ever destroyed yet ;) Gotta make my own garbage collection system, and maybe learn up on lists or something.. because I desperately need something similar to Java’s vectors to manage these bullets.

    I’ve also got this thing fairly customizable already. There’s a settings.txt file, that reads whether or not to go full screen, whether or not to mute, and all of the player controls. The menu and ship are controlled by what keys are specified in the file.

  • 13 Jul 2009 /  PGD2009

    So as stated in my last blog entry roughly 2 minutes ago, I’ll be posting progress of my game on this blog as well as over at pascal game dev.

    In this first progress snapshot, I’ve got some super basics done:

    1. A compressed, encrypted datafile system
    2. Music / sound support
    3. Particle effects! :D
    4. Just a title screen

    It’s a start, and I’m fairly new to pascal although I’m loving it and hating it. I come from a Java / PHP background and I use TONS of different include files. For the life of me, I cannot learn to use pascal’s units efficiently. It’s not like Java and PHP where you can have File 1 including file 2 and file 2 including file 1 at the same time — pascal just doesn’t let ya do it. Because of this, I cannot continue with my current coding style and it’s throwing me off – bad. I’ve only got 2 units so far, and I foresee this game being 1 big fat hunkin’ 200kb unit with that random 3kb unit.

    By the way, the FPS is capped off at 60 FPS, but it’ll still run +- 5 FPS to that, as seen in the screenshot. Aside from that, it appears the engine I’m using, Andorra, uses VSync (good), so depending on your monitor’s refresh rate the FPS could vary, but should generally stick around 60-65 FPS max.

    The game also runs at 800×600 resolution, and if you enable fullscreen (which will be the default), it won’t change your refresh rate or depth… I hate games that do that ’cause it screws over my monitor.

    Now, what exactly is the game made with?

    • Freepascal 2.2.4
    • Lazarus .9.27
    • Andorra 2d .4.51
    • OpenGL for graphics, DirectX for sound
    • Images created with GIMP

    Seeing as this is my first ever pascal game, this will be fun. (And extremely poorly coded woopie). The good news is, you will probably never find out just how poorly coded :p

  • 13 Jul 2009 /  Uncategorized

    A lot has been slowly changing in the background… I’ve decided to scrap matt-soft.com and move all content onto this site (as mentioned earlier), and I’ve begun the process. All of those shiny buttons now have links, all though many have no content. It’ll probably be another week or two before I get all of the content shoved up on the website,  so whatever. Once I get done offloading all content and uploading it to this site, I’ll do a permanent redirection to matt-shaffer.com until the end of the domain’s life, and then I will let it expire.

    I’ve also created a new program, Isteg, which lets you embed files into other files, namely zip files into images. Your images will open just fine when double clicked or linked to on a webpage, but if you open it with a compatible zip program, you’ll see whatever secret contents you’ve hidden there.

    I’ve also entered into the competition over at pascalgamedevelopment.com; the PGD annual. So probably most of the next posts on my blog will be about my work in progress, Sun Defender. I hope the random few viewers I get don’t mind ;) .