Thursday, December 16, 2010

Old Comic

So about a year ago, I got *really* tired of the PC vs Mac War, and decided to make a point.



It doesn't really matter what operating system you're using, as long as it works for you and what you do with it.

And yes, I know my art skills suck. :P

Untitled nothingish post

Recently I've been running Ubuntu 10.10 rather than Windows, and for some reason doing that made me look into programming with C++ more than when I mostly ran Windows. :P

I've now gotten fairly familiar with some of the more basic syntax of C++, but I still have quite the way to go. I had a couple of old C++ books, but I packed them up when I moved to another state (yay for moving!) and currently don't know where they are...hmm....

On another note, I think by getting more familiar with C++ I'll be able to use Microsoft's XNA Game Studio framework with C# pretty soon...not necessarily for 3D games mind you, but for 2D. I'd like to see if I can make my own little "Breakout" game; that would be really cool.

I really like the code structure of C++; in my head it just makes more sense and looks far more organized (well, depending on how good your layout skills are) than DarkBASIC, and something about it just feels more natural. If I can get proficient in C++/C# I will be enormously happy.

And that's what I want for Christmas.

Also this:
File:The Legend of Zelda Spirit Tracks box art.jpg

Tuesday, November 30, 2010

Christmas Spirit

Since tomorrow will be the first day of December (and thus the Christmas Spirit will be blossoming), I decided to change my computer around to reflect that. I also changed the blog around a bit.

Christmas Spirit on my Ubuntu partition
I LOVE that background, it's gorgeous. I found it here on deviantArt. I really wish I could find a Christmas Icon Set for Ubuntu, although that might be going a bit far....

To get in the Christmas Spirit I also set up a Christmas Tree in my room. I love Christmas.

Monday, November 29, 2010

Where I've Been

For those who read my blog now and then, you may have noticed I disappeared for a while. The reason for this is that several things happened at once, and there simply wasn't time to do computery type stuff. There was a lot to deal with in that thing we refer to as "real life". But now that that's all over I hope to do interesting things with computers and programming again.

I'm currently working on that review for Ubuntu 10.10 that I mentioned a while back. It's turning me into more of a Linux convert than the previous versions of Ubuntu...it's interesting. I'm also going to start learning Python for multi-platform programming and work on C++ again.

Friday, October 29, 2010

Interface Design

Today I made a mock-up design of what I want my level editor's interface to look like.

Screenshot!

The blue represents the part of the window where the user will be able to modify game objects and essentially just build the level up from scratch. The two panels will have various controls over them. For example, for positioning an object, red, green and blue buttons on the upper part of the side panel will indicate forward, sideways and up-&-down. The user will be able to click these buttons and the currently selected object will move.  On the bottom panel will be controls for the camera. The user will be able to change the camera viewing style, the position of the camera and the zoom level. All in all, very basic.

I'm planning on using BlueGUI for the menu bar elements and file loading/saving (it will just be easier that way), but nearly all of the GUI will be hard-coded into the editor itself. I plan to write them in functions and then figure out how to separate them so that I can reuse them for future projects.

Tuesday, October 26, 2010

I know I keep messing with the design of this blog. It's too hard to resist not to. There are so many cool templates that are quite easy to modify that it's impossible to pick one and keep it. This new one looks decent though, and I think I'll design my own background image just to help make it more "me", but the colors are good and I like it. UPDATE: I had to change the template again because some of the elements in the last one didn't like to cooperate. So here's a fancier, transparent one that I think looks even better! I'm not so sure I like the blue, though.

In other news, I've started working on some GUI design for my level editor. Screenshot time!


The grey gradient was inspired by Ubuntu's dark Ambiance theme. I liked it, so decided to try and create my own GUI similar to its style. Plus, dark grey GUI elements seem to be "in" right now, so it seemed like a good idea. 

I'm not really sure how to create my own set of GUI functions, but I've posted about it on the DBPro boards and hope to learn as much about the process as possible very soon. I would love to create my own GUI library! It would help make my level editor seem more custom to me. 

If (and when) and get somewhere with programming my own GUI functions library, I may want to write a tutorial on the process. I've actually got a few ideas for tutorials I would like to write, and I think most people would find them helpful. I've just got to gather my resources and begin writing!

Saturday, October 23, 2010

Success with Sparky's!

Even though I haven't really had time to work on my level editor, I managed to force myself to start experimenting with Sparky's Collision .dll. Over the last couple of days I've learned how to simulate gravity with Sparky's, and also how to implement excellent collision detection. I threw together this little test to see if I could get a solid rotating platform...


The white lines represent the collision detection boundaries. Unfortunately I can't quite work out how to make the player "stick" to the rotating platform and yet still slide across it gently. This will be the next thing to work out and then after that I'll start work on the game itself. 

UPDATE: Several hours later....

Thanks to TGC Forum user Randomness 128 for helping me figure out how to make the player stick to a rotating/moving platform! Now that that's implemented by using some simple trig (which, to be honest, I have little understanding of trigonometry so it was a little intimidating to look at), I feel pretty confident in using Sparky's for just about everything my game needs. I'm more than a little excited! However I still need to test a couple of things, so stay tuned...

Thursday, October 21, 2010

Playing around with Sparky's DLL (plus update)

Somewhat Boring Stuff:
Due to life interfering with my programming time, I really haven't been able to work on my level editor at all this week. I've got limited time to work on it right now, but very soon I should be able to work on it every day.

In the meantime, I've been playing around with some of Sparky's Collision examples and studying them pretty intently. It looks pretty easy to implement, so that has me excited. I really love the way it works! It makes implementing complex collision detection really easy.

Somewhat Interesting Stuff:
Someone on the TGC forums suggested that I start writing stories on my blog. My life is full of really stupid stuff that could be funny to read about. Soon, I might start a comic series called "The Misadventures of CoffeeCoder" or something like that. I've been interested in drawing webcomics for a while now, so this could be the perfect opportunity to start that. You can expect much geek-ranting in the comics, of course, but it definitely won't be a rip off of XKCD.

Of course this is assuming my drawing/writing skills are decent.

Thursday, October 14, 2010

I know it isn't much, but....

Okay. So I know this isn't much to show at all, but I just felt like if I didn't at least show some form of progress my project might not seem like it exists. I dunno, I'm weird like that.

Anyhoo, my first screen capture of the VERY basic editor in its infancy stage....

First Screenshot - Flickr Photostream




And thus is proof of my progress. I set up a flickr account to host all of my images for my programming projects. You'll be able to see new photos appear in the sidebar gadget on the right over here -->

So far all this thing does is move objects around. They're spawned with the spacebar and you can't delete them yet. This is only a testing program, so it's very primitive at the moment. This version will not be released to the public because it's only purpose so far is to test features that will be included in the final version (which will be programmed much more neatly than this thrown-together pile of code). 

The features I need to test are the following:

  • Object Properties (setting different properties for each individual object using arrays)
  • GUI Elements (some menus and panels I want to create may not work right off the bat, hence the need for testing)
  • Movement Arrows (instead of using the arrow keys to move objects, a series of movement arrows will be present in the final version...I hope)
  • Save Screenshot (I thought it would be cool if the user could export images of their levels being constructed in the editor. This will be simple to implement but needs to be tested nonetheless)
  • Lights System (for creating interesting atmospheres)
  • Collision Detection (as part of the properties test, but with more collisiony type things)
That's not a whole lot of testing I need to do, but it will still take a little while because real life is kind of getting in my way at the moment. I'll post an update on this next week with a new image, a list on the features implemented so far, and a list of features that work and those that don't. By this time next week I hope to have textures created for the objects as well, so that could be nifty. Or not. We shall see.

Wednesday, October 13, 2010

Getting Started

Well, I've managed to get somewhat motivated to start coding.

Earlier today I was beginning a "test table" for a few things I'd like to try out before I dive head-first into programming a whole game and level editor again. I realized that a feature I want to implement could very well end up not working in the future, so I'm going to test it out now. If it works, yay! If it doesn't work, I'll probably make a face like this one:

I'm so angry! Gaaah!
That image isn't mine. I Google'd it. 

The feature in question is a way to assign an object its own set of properties in my future level editor. This NEEDS to be incorporated into the editor or else my entire project won't be able to work. Basically, what I want to do is somehow, when a user clicks an object (any object), a menu will appear (courtesy of BlueGUI) and display values for various options. Basically it'll look something like this...let's see if my ASCII skills are decent....

| Transparency | 1|
------------------
| Hidden          | 0|
------------------
| Misc. Val      | 0|
------------------

The numbers are flag (or boolean) values, meaning that they only change from 0 to 1 or vice-versa. For example, if the user clicks on an object in the editor and they want the object to be transparent, they must change the 0 to 1, and in the next iteration of the main loop the object will become transparent. 

I'm doing this with the use of an array and a Type set. It looks something like this:

REM Create the Type
Type ObjectProperties
Transparent as Integer
Hidden as Integer
Misc as Integer
EndType

REM Now store the values in an array
Dim ObjectProperties(1000) as ObjectProperties

(Note: It's a right pain to manually highlight the syntax of code here! That's a shame. I need to figure out a way to post code snippets in here.)

I don't feel like going too much more in-depth about it though, although I will say that it works pretty much as it looks. You create a bunch of variables, all contained inside of a Type (which is basically BASIC's version of a class), and then you create an array to store the values in. Since my game isn't going to have more than roughly 500ish platforms in any given level (sometimes I think even that's too many), 1000 array elements should be enough. Since DarkBASIC handles objects by giving them numbers, when I create an object it also assigns the same number from the array all of the values contained in the Type element. So if I create an object at number 50, that will be the same number (50) in the array that it's assigned to, so I can give each object its own set of properties. 

What do you think? Is that how you would go about doing it? 

Monday, October 11, 2010

I AM GOING TO GET MOTIVATED, DANG IT!

I think that pretty much every hobbyist programmer understands a sudden lack of motivation when working on a project.

It kind of sneaks up on you when you least expect it, which can be really inconvenient most of the time because you're like "Hey! I can get this part of my programming done in a week! It's an awesome part of the game/program that will help make it more interesting for the general end user! Yay!" and then suddenly you're like "Ah jeez. There's a stupid bug somewhere in the program. Never mind." and then you go off to drink a boatload of coffee and spend countless hours on the internet either watching YouTube videos or reading web comics. It doesn't help that because you drank so much coffee, you're suddenly unable to fall asleep at a decent hour and then the next day you're horribly sluggish and your brain kinda feels like it's in a state of constant confusion and sometimes even the simplest of tasks feels like it takes enormous brain power to calculate the easiest way of opening a jar of jelly. If you can't do that, you surely won't be able to solve the aforementioned bug in your program. The solution? MOAR COFFEE!

On a more serious note, lack of motivation seems to hit us in random patterns. At least that's what it does to me.

I'll be sitting there, coding away happily while listening to some music (it helps me concentrate), and suddenly I'll realize that an idea I have might not work unless I go back and change part of my code, or I'll encounter a stupid bug that takes me hours to solve, only to realize that I was telling a For-Next loop to loop through variable "z" when I needed "a". It's usually at that point I either become enormously frustrated at my own apparent stupidity, or I'll lose all motivation for at least a week. It's sometimes a mixture of both.

So what can we do to increase our motivation for working on projects?

Something that definitely helps is breaking down your project into small steps. For example:

My awesome program's design document!
  • Determine what your program needs - this includes all features you'll NEED for it to work, not just the features you want to implement.
  • Code the basics based on what your project needs - functions, subroutines and all other basic features should be written and tested NOW in a mock-up project of some sort. 
  • Once you get everything working and all features tested out (this can take a while, so be patient), begin working on polishing the project up (this part may even require a complete re-write). If it's a game, replace the placeholder models with nicer ones. If it's a general program make the interface nice and easy for the end user to use. This is also the stage where you should optimize your program to run its best. Get rid of unnecessary loops and see if you can do anything to speed it up in other ways.
  • Sell it, baby!
The last one is only applicable if you made a fantastic game (or program), so don't think you'll be the next Bungie developer or something like that. Regardless, a list similar in nature to the one above should help you to stay motivated, as it breaks up the project into small steps and you won't feel overwhelmed because you'll know already what you want to do with the project. 

So a pledge I'm making to myself today is to STAY MOTIVATED. Actually, it's to GET motivated and then STAY motivated, because right now I want to work on a project. I'm just not feelin' the urge to start coding right away, so I'm gonna use that to my advantage and write up a design document. Hopefully, that will help. 

But first I have to clean out a cooler from the weekend. Yay.

Saturday, October 9, 2010

Small Update + Future Plans

Hey everyone!

I really wish that I had something going programming-wise to showcase here. After all, that's what this blog's original purpose was. :P

I am still very interested in programming, but unfortunately real life has been getting in the way of me even being able to work on that level editor I've had lying around for ages...until I accidentally deleted it. :( Oh well.

To be honest, my main interest isn't programming/making games; it's filmmaking. For as long as I can remember I've wanted to do something with film, and I've been pursuing that interest avidly for the last few weeks. This is another reason I haven't done anything with programming.

However, something keeps bugging me about programming. I'd love to make it a future hobby.
For the last three to four years I've had ideas for at least two computer games I would LOVE to create. One of them is a simple platform game that follows the Super Mario Bros. and Sonic the Hedgehog theme of collecting coins/rings/jewels and whatnot. I got really close to finally making it happen a few months ago, but then realized that some of the ideas I had wouldn't work with it unless I re-coded the level editor and added support with Sparky's collision .dll and BlueGUI. I never got around to that however, and before I do that I need to experiment with Sparky's...but that's another story.

The other game idea I have is based off of an old movie "trilogy" my brother and I were writing years ago, but have since only completed one film that will not have any sequels...so the idea for the game is changed, but I'd still like to create it. Basically, it's about evil bunnies. I'll leave it at that.

Also, for those of you who are interested, Ubuntu version 10.10 is coming out tomorrow. My plan is to install it on a separate partition on my hard drive, because I loved Ubuntu. I can't do that tomorrow though, as I have a wedding to attend.

That is all for now, folks. Stay tuned as I add some pages here to make it more or less a website for a couple of games I wish to make and I'll talk to y'all later!

-CoffeeCoder

Monday, September 20, 2010

Oh dear. I haven't posted in a while. This is due to a few things....

1) - The main topic of this blog (Ubuntu) kind of died...this is why:

  • I had to reinstall Windows 7 for video editing capability (something Ubuntu is still struggling with)
  • I had to uninstall Ubuntu because Windows likes its own bootloader to be the primary one
  • I actually encountered problems with Ubuntu and needed to reinstall anyway
2) - I have been busy with figuring out real-life things (tracking down a job for instance) and setting up my video production group. If you're interested you can check out some of our work here...it's not too impressive yet, but we'll have more work to show in the next couple of months! Can't wait to get a new camera, too...

3) - I just plum haven't had the time.

I've also been trying to get back into DBPro programming since I've reinstalled Windows, but I seem to have lost interest in it...while I have an idea for something I'd like to do with it, I just can't bring myself to start the project. I like programming...but I'm more interested in web development programming I guess. S'pose I'd better start learning JavaScript and possibly C#...but first I need to master HTML and CSS. Heh.

Monday, August 23, 2010

The Monday Post: Ubuntu Linux meets Mac OS X

This is more of a pointless post, but I thought it would be fun to show my Ubuntu theme:






The theme is called Mac4Lin and was originally designed for Ubuntu Hardy Heron (I think its version number is 8.04), but most of the general theme can be applied to any current Ubuntu theme. And it looks like Mac4Lin's always being upgraded, so it may still work in the future.

Also: I'm going to post a review-type thingy on Ubuntu before the end of September. That's all for now.

Monday, August 16, 2010

Ubuntu Gets Multi-Touch Support in Version 10.10

I saw this posted on Ubuntu's facebook page earlier today and thought I'd re-post it here on my blog:

http://blog.canonical.com/?p=414

The next release of Ubuntu ("Maverick Meerkat") that will be released in October will utilize a new engine called uTouch. Basically, you'll now be able to run Ubuntu on all-in-one desktop computers that use a touchscreen, and you'll be able to use multi-touch gestures just like you'd be able to use in Windows.

Of course, as with all open-source things, it doesn't support all hardware configurations yet, but it's still a new technology and with the way Ubuntu's growing and evolving, it probably won't be too long before all touchscreen computers are supported. I find this to be an extremely nifty thing that's happening in the world of Ubuntu.

In other news, the default dark Ambiance theme will also be revamped for version 10.10. It looks BEAUTIFUL. Check it out here: http://design.canonical.com/2010/08/an-update-to-the-ubuntu-light-themes/

That's all for now. Just thought I'd share these cool findings.

Monday, July 26, 2010

A Few New Things

First things first; I'm limiting myself to posting twice a week. Once on Monday nights, and once on Fridays if I can manage it. Unless I find a cool news article worth mentioning (all of which will be under the "Cool Findings" label I'll create), those are the only times I'll be posting during the week. After summer it may switch to Saturdays. We shall see.

And now on to the main point of this post....

I have done away with Windows. I'm now running Ubuntu 10.04 "Lucid Lynx" full-time, and so far I'm not really regretting it. We'll see if that continues or not.

At some point, I'm going to compile a list of my absolute favorite features of Ubuntu, as well as give the whole story of why I elected to replace Windows with Linux. I will also explain my fascination with Unix-based operating systems and why I'm a fanboy of Mac OS X and Ubuntu. 

Friday, July 23, 2010

My future computing plans

I post a LOT. I know I do, and I apologize for that. It appears as though I'm addicted to writing. :P

Anyway, I've had a recent stroke of brilliant ideas concerning my future with computers. I thought I'd make it a fun list, so here goes:


  • Step One: MOVE AWAY FROM WINDOWS FOREVER
  • Step Two: Install Ubuntu on my current HP laptop (which is a crud computer and I'm never buying an HP again after reading this article provided by a TGC forum dweller named Melancholic).
  • Step Three: Buy an iMac by the end of the year (I love Mac OS X and its great use for digital media, which is what I want to get into as a career).
  • Step Four: Never use Windows again.
  • Step Five: Write blog posts on useful tips for Ubuntu and become an avid blogger on Ubuntu.
  • Step Six: Do the same thing for Mac OS X
  • Step Seven: STAY AWAY FROM WINDOZE
So yeah. As you can see, I've recently become a complete convert. Ubuntu just works on my laptop better than Windows ever did. After some tweaking, I can get it do just about anything (and more) that I could do on Windows. Its design is fantastic and its overall usability (after you explore it for a few days) is great. Mac OS X is pretty much the same deal; although you don't have as much tweaking to do out-of-the-box. Its support for video editing is fantastic. Ubuntu's getting there but it will still be a while before anything close to Mac is present in terms of media support. 


Thursday, July 22, 2010

Running Ubuntu full time starting next week

I didn't really do anything interesting today. But that's okay, because this blog isn't geared towards my personal happenings, although I may sometimes share some interesting moments under the label "Random Babbles".

Anyhoo, I'm  99.9999% sure I'm going to install Ubuntu over Windows next week. I wanted to do it today, but I just got too busy and plus, I want to clean up my hard drive so that the reformatting/installation process is faster when I do get around to it next week. The faster the better!

Ubuntu just works for me better than Windows does. I'm currently in Windows right now and finding myself wishing I were in Ubuntu. *sigh* Soon, my little Linux, soon....

(Yup, I'm a GNU/Linux convert.)

Wednesday, July 21, 2010

The songs stuck in my head today

I woke up today with some classic rock stuck in my head. I'm an unusual 18 year old; most kids today prefer listening to hip-hop, rap and punk rock. Me? I like the sound of the 60s, 70s and some of the 80s. There's just something about classic rock that's...well, classic. :P

Here's just a few I've listened to today:

The Who - Pinball Wizard



The Who - Won't Get Fooled Again



Lynyrd Skynyrd - Free Bird




That's it for now. This was just a random babble of mine. I'll have more of those in the future. :P

Monday, July 19, 2010

The Ultimate Question: Should I run Ubuntu full-time?

Originally, this blog was intended to keep track of programming projects, such as my level editor/game engine program designed with DarkBASIC Professional (a Windows-only game development application), and any other projects I may be working on. However, as of late, it's turned into a Windows vs. Linux debate, and I must say...and I almost never thought I'd say this...Linux, for the moment, is winning.

Whoa, wait...wha?

Yes, it's true. Windows, in the nine months that I've been running it on this laptop (which itself is only nine months old), has needed reinstalled one time, and a few months after that it looks as though I may need to do it again. So, in less than a year, I'll have reformatted my hard drive and reinstalled Windows twice.
Who on the planet earth would want to do that? Not me. I thought Windows 7 was supposed to be pretty nifty, and less resource-heavy, but the simple truth (for me at least) is that while it does have some nifty things, it's still pretty buggy and seems to have problems pretty consistently. What are those problems, exactly?

  • Freezing up. I can't stay booted into my Windows partition for any longer than a couple of hours without it freezing up completely, thus ensuring that the only way I can get out of it is by hard-booting my computer. Hard-booting is hard on computers. It's not a good thing to do repeatedly. And I've had to do a LOT of it recently. 
  • Crashing completely. I haven't BSOD'd, but I reckon I've come close a couple of times. Applications lock up; they freeze, close, and sometimes don't start up again, even after repeated clicking of their icons on my desktop. That's pretty infuriating. Again, sometimes it freezes up completely, thus ensuring a hard-boot. 
  • Internet connectivity. Why, oh why does it take at least 20-30 seconds for Windows to recognize and connect to my wireless network, when Ubuntu finds it immediately? Seriously, Ubuntu finds it and connects to it just after I log in. It doesn't even take two seconds. I am not exaggerating. 
  • Resource-heavy. Despite having 4GBs of RAM, it slows to a crawl. Whenever this happens, I've learned to just shut it down right then and there, and boot into Ubuntu before I have to hard-boot. Why is it slowing down so much when I have 4GBs of RAM? What's taking up so much memory?
That's it, really. But those are pretty annoying and infuriating problems. The worst part? I can't find anything wrong. At all. There's no viruses, malware, or other such things that I can find. I've removed programs I don't need anymore, and I ran defrags and a few Disk Cleanups. The problems persist; nothing I do seems to work. 

I would do a repair, but I'm not too keen on the idea of reinstalling Windows again. Two times in nine months? Nobody wants to do that. It's an annoying, time-consuming process, and is frustrating and pretty confusing. This is why I'm simply considering leaving my Windows partition dormant and booting into Ubuntu exclusively from now on. I'll likely still use Windows once in a while, and I'd really like to know why it isn't resolving its problems, but I doubt I'm going to dig into it much deeper. It's just not quite worth it....

Ubuntu is pretty awesome, once you learn your way around it. While there aren't a whole of lot applications, there's plenty for the average computer user. Support for video editing is increasing, and game development's getting a bit better on it as well. It gains more users with every new release (because it's constantly improving), and it's always pretty stable. It rarely freezes, and the one time it did for me it was on Grooveshark.com. Why, I'm not sure, but I've not visited Grooveshark since then. 

Ubuntu does present a couple of problems; for example, it doesn't acknowledge when I have headphones plugged in (my sound card isn't too friendly with Linux), and my laptop's trackpad can't be disabled; thus when I'm typing and my hand grazes it, the cursor tends to jump and I usually end up having to edit my text entries pretty extensively before I submit them. Besides those two annoyances, Ubuntu works, and it rocks. Here's just a few of the features I really, really like:

  • Ease of use. You might hear that Ubuntu/Linux in general is difficult to use. Not so. With every release, it gets easier to manage and work with, and you rarely ever have to use the Terminal to install things (and even if you do, the website your downloading the applications/themes from usually provides the code, so you can just copy>paste it into the Terminal and not worry about it). Personally, I like having to use the Terminal to do things; it gives you a bit more control over things and lets you know what you're doing. 
  • Ubuntu Software Center. This, my blog readers, is a pretty nifty little thing within Ubuntu itself. Linked to a database, the Software Center grants access to thousands of applications for Ubuntu, and installing them is a breeze. If you want to remove the program for whatever reason (wasn't as cool as you thought it would be or it just doesn't work for you), go back to its Software Center page and click "Remove". It's that simple. I love it.
  • Rhythmbox Music Player. Within this, you can get access to the newly implemented Ubuntu One Music Store. Similar to iTunes, you can purchase and download music tracks and albums and listen to them in their libraries. Not only this, but you can also access several internet radio stations, which, I believe, is pretty awesome. I like this so much better than Windows Media Player, it's not even funny. 
  • Stability. Has it crashed? Nope. Has it locked up? Yes, one time only, and that was on Grooveshark.com. Other than that, I've had no stability issues whatsoever. It simply works and runs better on my laptop than Windows does. 
  • Workspaces. Why has nobody else thought of this? Workspaces allow you to have multiple desktops on one account. For example, you can have your web browser open in one workspace, a game open in the other, your code editor in yet another...and switching between them is as simple as hitting CTRL+Left/Right/Up/Down Arrow key. Once you start doing that, it's faster than minimizing/maximizing a program, and almost more intuitive. It's pretty darned awesome.
  • Customization. You can customize everything, something that Windows doesn't seem to believe in anymore. Look at this pretty nifty Mac OS X theme I found and installed:
[Click image for larger view]

Now that is a pretty awesome lookin' desktop, eh? 



Yes, I think I am officially a Ubuntu convert. I didn't necessarily mean to become one, but while I've been using it more and more, I'm finding myself wondering how I ever got along with Windows. It just...I dunno, it just works so much better. It's less resource-heavy, doesn't come with a bunch of pre-installed bloat ware, and it's easy. It's definitely my PC OS of choice (I like Mac OS X better than both Windows and Ubuntu, but Ubuntu's definitely above Windows). 

So...should I run Ubuntu full-time? What do my readers think? Please tell me in a comment!


Tuesday, July 13, 2010

Problems Continuing

Hmm. The problems with Windows persist.

Windows like to slow down. It likes to crash. And there's NOTHING I can find that could be causing it. Needless to say, it's getting really annoying. Why does my laptop suddenly prefer Linux over Windows? Why does it keep freezing up my internet on Windows, but has no problems AT ALL on Ubuntu?

I'm sick of it. I'm sick of dealing with Windows' strange quirks. I may just start using Ubuntu full time, until I buy a MacBook Pro. Then I'll use Mac OS X + Ubuntu full time. Bye bye, Windows.

(Written in a bit of a irked and ticked off mood. You would do the same, if suddenly your computer preferred one OS over the other.)

Thursday, July 8, 2010

Update: Progress...? Kinda.

My level editor's coming along nicely, I must say. Recently I managed to obtain BlueGUI (an EXCELLENT GUI plugin for DarkBASIC Pro that allows you to create decent user interfaces) which I've since been studying and applying to my editor. It's working so well and making everything tie together so nicely that I'm rather happy about it. :)

So while progress has been made, it's very small. And here's why.

My laptop that I'm programming on doesn't like Windows for some reason right now. Anytime I boot into Win7, it's slow, things overheat a bit faster, and it crashes, leaving me with the dreaded "hard-boot" option which is HORRIBLE to do on your computer. So I have been using Ubuntu/Linux exclusively the last day or so, and haven't had any of those problems. Nothing's crashed, nothing's been slow, and everything's been pretty smooth. So what the heck is up with my laptop and Windows not getting along all of a sudden?

I've done virus scans, disk defragging/cleanup, and have started monitoring CPU and RAM usage more closely. Something REALLY likes to take up a lot of resources, and I think it's Win7 itself. Either that or I've got something unknown running in the background. I think I'll uninstall a few programs I don't need and see if that does anything.

Why do I always encounter computer problems anytime I'm close to finishing a programming project?! For those of you who were on my blog back during NaGaCreMo '10, you'll know I was unlucky enough to catch a virus which required me to lose everything on my hard drive in a reformat/reinstall. That was rather annoying.

I know I don't have to do that this time, but I am tempted to run a repair if problems continue on the Win7 partition of my laptop. Of course I'll back everything up because I know nothing's infected. This is not the cause of a virus, it's something taking up a ton of resources when it shouldn't be.

Thursday, June 17, 2010

Learning Sparky's Collision

I'm really getting into programming with DarkBASIC again. I'm not sure what it is exactly, but I think taking a bit of a break for a few months helped me somehow. Whatever the case, for some reason my brain likes programming now. So much so that I see myself making a few games in the near future!

As many of you from the TGC Forums know, DarkBASIC doesn't have a very good collision detection system, especially when it comes to polygonal collision (a necessity for objects that are complex; everything from characters to trees and even gears in a clock). Not only that, but the collision detection itself is slow in performance and very notorious for its annoying bugs. It's also nearly impossible to get polygonal collision detection working properly, which is rather annoying for those of us who want to create a game out of more than just simple spheres and cubes. Amirite?

The alternative to this nightmare? A brilliant little .DLL known as "Sparky's". Basically, by using this file that contains new (yet somewhat similar) collision detection commands, a programmer can finally create a more complex level with more diverse objects. Imagine a slightly more oblong sphere, perhaps modeled to morph into a cube on its other side, with coins hovering above it just like in all the platformers. Now imagine trying to use polygon collision detection on it with DBP's native collision commands. It ain't happenin', is it? Now use Sparky's. Suddenly, it's possible, and hey presto!, it works without a hitch. 

Honestly, I've not yet used Sparky's, but I've started learning the commands and have played around a bit with the demo programs it came with. Not only is the sliding, polygonal detection fast and accurate, it looks fairly easy to implement. So easy, in fact, that I know if I spent a day experimenting with it I could totally get the hang of it and implement it into my game's engine. This will allow me to have some mighty interesting levels in my game, which is exactly what I need. 

Speaking of which, I'm gonna draw some level concept ideas down on paper and most likely scan them into my computer and maybe even upload them to this blog, just to let people know I'm actually doing something. Oh, and to get feedback, too. Feedback is always welcome. :)

Wednesday, June 16, 2010

My Game Idea (revised from December of '09)

About six or seven months ago, I was working on my largest (and most brain wracking) programming project yet: a level editor and basic game engine. Unfortunately, I encountered several problems with my project and had to restart it. Then I encountered MORE problems that were something I couldn't control. My IDE decided it would be okay to stop working.

So, I halted production on that project because there were just too many things going wrong at once. I used the time to start studying C++ and learned more about the fundamentals of programming. I never got anywhere with C++, but it was an interesting (and still largely incomplete) study.

As I said in yesterday's post, I'm working on a new programming project inside of DarkBASIC. It's a platform/adventure game that's been brewing in my head for the last couple of years. The game mechanics aren't anything new, and the idea is simple, but I hope that by completing it I will eventually be able to make more diverse and interesting games (as a hobby, not as a career).

So what's my game going to be about?
Well, the main character is a Marble named Martin. Martin's friends have been kidnapped and his Land's main source of power (I'm thinking something along the lines of crystals/diamonds) has been taken as well. Now Martin must embark on a mission to save his friends and rescue his world before it's too late!

Here's a list of features/ideas for the game that I know will work, because I've tested them out over the course of the last year.

  • World Screen. Much like the screen first introduced in Super Mario Bros. 3 for the NES, this screen will allow you to look at future levels and maybe even go back one level if you missed a Power Crystal.
  • For enemies, I'm thinking more along the lines of obstacles as opposed to intelligent NPCs. However, there will be at least two types of enemies that do move and provide a bit of a challenge. 
  • Coins. Obviously, collecting a certain amount of these will increase your score and give you a 1-UP. 
  • Switches. These have any number of different effects depending on the level you're in. If you see where you need to get to next but can't quite reach it, look for a switch that will create a new (temporary) platform to help you along. Another type of switch will reveal hidden coins and possibly lead you to a hidden Power Crystal. And yet another type of switch may give way to a secret 1-UP. 
  • CheckPoints. Pass one of these and the next time you die you'll re-start the level from there. 
  • Elevators. They move independently or when activated by a switch. They'll help you cross insanely deep chasms o' doom or take you one step higher than you can jump. But that's it, really. 
  • Power Ups include a Super Jump, Invincibility, Ghost (enemies cannot see you but can still harm you if you touch them), and...well, I'll let you know. 
  • The game itself will be free to download (however the media will NOT be allowed to be reused by anyone).
That's it for the basics. It doesn't sound like much, but that's because I haven't divulged all of the details. I'll post new updates perhaps every two weeks or when something exciting happens. Spread out between those posts will be other ones that I write (such as cool findings or general techie talk). 

Alongside this game engine project, I'm also going to build myself a custom-made level editor. This will help me out greatly in the long run, because I'll be able to design my levels completely visually and without most programming. Originally, I was going to allow the future players of my game to use a specially designed version of the editor to create and play their own levels, but now I don't want to do that. Why? It's not because it would be difficult to program (okay, that's part of the reason why), it's because I can't guarantee that I can get everything working properly for the general end user. I know what kind of attributes and dynamic functions every part of my game will need. I know how I can assign those specifics to the objects without a visually enhanced User Interface. So designing an easy to understand UI and making it easier for the end user to understand how to assign attributes to the specific entities would be an extreme hassle, and it's part of why my project failed last time. As much fun as it would be to create a user base for people to create and share levels, it's just not going to happen with this game. But if I make a sequel, then it's entirely a possibility. This is, of course, assuming that this game gets even remotely popular. 

If you want to, please feel free to leave a comment. I know this isn't much information on my game and programming project, but if you want to leave feedback please do. 

Tuesday, June 15, 2010

Update: June 2010


So I haven't posted on here in a while. I thought I'd let my readers know that I'm currently getting back into programming with DarkBASIC Professional. Hopefully I'll have a small game to prove that with soon! 

Sunday, April 4, 2010

DarkBASIC and C++

A few weeks ago, I was having trouble with my code editor for my game-making software (DarkBASIC Professional). It was not allowing me to save my projects, which I'm sure you all can imagine was VERY annoying. I mean, there I was, just coding away, and BOOM!, I couldn't save my progress. Very bothersome. 

However, I finally fixed the problem...just as I was really getting into learning C++!

Now I have a bit of an issue...I REALLY want to continue learning C++, but I also want to begin working on a game idea I've had for ages. I finally know what I want the game to be, I know what kind of style I'm going for...really the only things I need in order to complete it now are time and patience, as well as a certain .dll file to expand the game's functionality and improve performance. 

I guess I'll do both. 

Friday, March 26, 2010

Preview of an awesome feature from Adobe Photoshop CS5

This is simply awesome. I have never used Photoshop before, but after seeing this I can definitely see using it someday, especially for digital special effects such as matte-painting for film.

The preview video:



Isn't that seriously awesome?!

Tuesday, March 23, 2010

The fourth dimension for television

According to Mr. Sulu, the company Sharp has been developing a brand-new HDTV that better reproduces natural colors by adding a fourth color element to the standard RGB palette: Yellow.

I have heard arguments for and against this technology. According to some, "G+B=Y, so why do we need to include 'Y' when it's already technically in there?". Personally, I believe that adding a fourth color will make a difference, but not a huge difference. It will certainly help tone down over-saturated red hues, but some things might look uber-orange now. We shall see.

Here's what Mr. Sulu has to say on the matter:




Looks good to me!

Sunday, March 21, 2010

Ubuntu and Windows 7

I'm finally doing something I've been meaning to for ages; testing out Ubuntu Linux through the use of a "Live CD".

Personally, I really, really like Ubuntu so far. I'm definitely setting up a separate partition for it so that I can have two OSes on my system. I see myself using Ubuntu a LOT for everyday things, like casually browsing the web and doing some web development, as well as casual C++ programming. School work is also something it will be great for.

The Live CD I was using for the first couple of days was actually the new beta for Ubuntu 10.04 "Lucid Lynx". So I actually ended up testing out a future version that appears to want to introduce a few new features, which seem rather promising. Once I "downgraded" to the 9.10 Live CD, I realized what Linux is doing, and look forward to using 10.04 when it comes out in late April. But for now, I need to install 9.10. There's something about Ubuntu that makes it feel right for me. I really don't know what it is. I never thought I'd actually use it, but once it booted up for the first time and I realized what it's capable of and great for, I couldn't imagine never using it. I decided within ten minutes of checking it out that it needed to be on my hard drive as a secondary OS.

So I'mma go set it up now. I'll update y'all on how it goes, and post screenshots of it.

Tuesday, March 16, 2010

Hi everyone.

It's been a while since I've updated this blog. Unfortunately, my level editor/game project has been abandoned since January 4th (I can tell by the timestamp). The reason is mainly because I realized that to complete it, I'd need to expand my knowledge of programming. The code was messy, I barely knew what I was doing with file access and output, and the performance overall was shoddy because I wasn't sure how to program something to be completely performance-friendly. It also didn't help that I managed to get myself infected with a nasty virus from a false Adobe Flash Player update. I'm still not sure how that even happened; I don't remember downloading any files or accessing any "untrustworthy" sites. My guess is it came in an email that I opened and deleted because I realized it was junk, but I'm not certain. It could have even come from a virus on facebook, too. Anyway...

I have started to study C++. I've also been intently studying mathematics, as 98% of programming is math. Somewhere between basic Algebra and Geometry (and even some basic Trigonometry for super-advanced stuff) is the knowledge one needs to become a better programmer, especially when it comes to physics simulation for games and constructing 3D models. My knowledge is improving and I expect to be a better programmer within the next month or so. I'm also studying C# so that I can use Microsoft XNA Game Studio to program my games. Maybe someday I'll even program a small game in C++, once I have it all learned and figured out.

So that's it. Just thought I'd update y'all.

Friday, January 1, 2010

Update: Happy New Year!

Happy New Year everyone!

I've recently come to realize that I am quite bad at posting about nothing in particular. For example, I've posted updates that really aren't worth mentioning in themselves and would be better saved for a much later post. I'm going to stop doing and wait until things are actually worthy of mentioning, so don't feel like you're missing something if you don't see me post on here for a couple of weeks. It doesn't mean I'm dead, it just means I'm working on a new feature or something.

Also, disaster struck my laptop. I somehow contracted a very vicious piece of malware that I thought I had removed, but found out it was still on my hard drive. So I had to do a complete format/reinstall and thus have lost my media for the level editor. I backed up the source code, but with the new direction I want to take the editor in it's really quite useless. I want to use actual Windows elements for the program's GUI, and to do that I need to spend $20 to buy the correct software plugin. Then I actually have to learn how to use the GUI functions and commands, but that in itself shouldn't take more than a day or so. In the meantime I can work on the basic requirements of the editor.

So here is my newly created list of things I want to do for my editor:

  1. Use actual Windows GUI. This will result in an easier tool to use and will look far better. 
  2. Create better media: this includes object textures and improved 3D models. 
  3. Make sure everything's optimized for the best performance. To make this even more flexible, there will be several customizable options the user will be able to setup the first time the program is run. These settings are written out to a Setup.INI file, which you can modify IF you need to. 
So that's it for now.