JaxDragon's Posting Area

A place for all the ramblings in my mind.

Sheng En F-II Cube Review

I’ve recently got into solving rubiks cubes. I bought one at walmart that was atrociously hard to turn. As such, I decided to buy an F-II, and have not regretted it.

It turns well out of the box, and came prelubed(though with what, I’m not quite sure).

Cuts corners pretty good, although I get a lot of pops if I try do it fast.

One downside is the stickers. They are of HORRIBLE quality and scratch extremely easily.

Having said all that my solve times have increased tremendously. From about 2mins to 1min average.

Why I Will Stick With Ubuntu 10.04 LTS

I have tried many linux distributions. I have failed at using most of them, because of my rather odd hardware. Arch had a problem with my partition table, fedora was too slow, opensuse was just all around not a pleasant experience. I would try debian, but it doesn’t come with native WPA support out of the box, and I can neither remove the encryption or move my computer to an area with an ethernet connection.

I really don’t like the direction Ubuntu is going (ie Wayland, Unity) which is why I’ve stuck with 10.04 for such a long time. When they stop supporting 10.04, or just change it altogether, I’m going to have to find a new distro.

I wish there was one that had everything I need, but sadly that doesn’t seem to exist.

More Thoughts on Fedora

Well, I have fixed a good majority of my problems with Fedora.

  • Fixed boot to go to GRUB, and GRUB can now boot to windows
  • Figured out how to change number of virtual desktops
  • Updated nVidia drivers(which fixed the flickering flash problem
  • Installed Thunderbird, seeing as I’m not much of a fan of Evolution.
  • Got Compiz working just the way I wanted it

Fedora Install and First Impressions

Before, I was a Ubuntu 10.04 user. Then, about a week ago, I switched to openSUSE 11.3.

openSUSE was great, but it just didn’t feel right to me. So I decided to try Fedora.

Installation was a little difficult. I have 2 hard drives, one with windows, and one with linux/another windows extra space partition. The fedora installer seemed to have problems installing grub to boot both operating systems.

After I figured out how to go into the boot settings in the BIOS, I was able to get into fedora. Keep in mind, though, that every time I want to go into fedora, I have to press F10 as soon as my computer starts, and select my linux hard drive. Thats a con.

After getting into fedora, I proceeded to update as required. At first it was only 3 packages that needed updating. Now It says there’s over 400 updates required.

Setting up sudo wasn’t hard, although I’m a little curious why it wasnt set up in the first place.

I havn’t even really looked at the package manager yet, although it seems to be pretty standard. I havn’t used YUM yet either.

Im dreading installing the NVIDIA drivers, because they require a kernel update. When I updated my kernel on openSUSE, I lost support for my wireless keyboard and mouse. Reverting packages in openSUSE was easy, although I’m not sure how it’ll turn out for fedora.

If it gives me more hassles than I think it’s worth, I’ll just switch back to either Ubuntu or openSUSE.

UPDATE: Flash also appears to have an annoying glitch that makes flash applets blink white when you try and scroll down the page.

inFamous review

I just finished inFamous, so I figured I’d give it a review. Keep in mind I played through the “evil” campaign, so if you play through the good campaign, you may find some story differences. I’ll leave out story details, no matter how basic they may be.

You can play the game as an evil character, or a good character. There are a few powers that are unique to each. Another thing to note is that good characters have blue lightning, while evil characters have red lighting. This is one of those games where it’s very rewarding to be evil.

You can use multiple different powers to attack your enemies. From simple lightning zaps to throwing a grenade. The powers are very fulfilling and fun to use. You acquire these powers either through restoring power to the city, or purchasing them with XP. XP can be hard to get if you don’t do side missions though. Some powers require you to do a certain number of good/evil side missions in order to obtain, so you should stick to doing one or the other.

There is only one island in the beginning, but there are two more you unlock later. Each island is home to a different faction of enemies. There are 3 different factions: the reapers, the dust men, and the first sons. You begin the game in reaper territory though. Some enemies are extremely annoying, but most are easily kill-able with a few zaps. The “Conduits” act as mini bosses for each faction, and as such you get more XP for killing them.

The combat is very entertaining and original. I appreciate the fact it zooms you in when you start targeting enemies, it would have been rather annoying for you to have to just eyeball it.  The AI is well implemented and can give you a good challenge to boot.

The world is highly interactive and I had a good time wreaking absolute havoc on the environment and it’s civilian inhabitants. You want to avoid hurting civilians if you’re playing good, naturally. Some buildings can even explode, such as gas stations.

The story plot is unique, yet somewhat predictable. It’s also not overly entertaining until about the last 1/3. You will be surprised when major things happen, yet when you think about them later you notice they weren’t really new concepts.

One major gripe is the responsiveness of the controls. At times they get you killed, not doing what you think they would. Instead of jumping down a building, the game would magically turn you around and grab on to a ledge. Or you would try and shoot a distant object, but your projectile would get caught on another object that in reality it did not touch. Not nearly as bad as Prototype though.

Also, there isn’t much fun in the game after the ending. It’s not as much fun as it was before. The story missions were rather fun and intuitive, and naturally they stop after you beat the main plot. Don’t get me wrong, they give you plenty of things to do, but there’s really not anything major you couldn’t have done while playing through the game before.

I found a few glitches while playing the game, nothing harmful to the gameplay at all, except one time I fell through the ground. The people sometimes get stuck and just start walking in place. Sometimes the enemies get stuck in objects, and you can’t kill them, but they can’t kill you either.

Overall, it’s a good game. I would recommend it to open world fans.

Revival

I just moved all of the old posts into a category called “Old posts/Legacy” so there’s more free space for new content. Going to try and start up some more programming articles. Maybe game reviews. Who knows.

Kanoba Online Update 11/13/09

Kanoba Online development is still going on, but not with VB6/Eclipse. I am currently in the process of writing an entirely new engine(Kanoba Engine).

Once the engine is completed, we will begin development on Kanoba Online. Not sure when the engine will be finished, but it will be free and publicly available.

The engine will be written in C++, with Qt as the GUI library, and SDL for graphics. Lua will be used as the scripting language.

Modern Warfare 2 Review

I’m basing this off the PS3 version, and if you would like to play with me my PSN is JaxDragon

Special Ops
Special Ops contains a series of Co-Op missions for your and your friends(or your brother) to play. There are plenty of missions, all of them with special goals to fulfill. You get a rating from one to three stars. You get trophies for beating them on Veteran. You also get trophies just for completing them on any difficulty etc. You can play them over the internet with people, or do split screen(not recommended, they still have those really annoying black bars around each players screen). Overall Spec Ops is pretty fun.

Campaign
Campaign is very fun in MW2. There are quite a few twists in there. The mission/level designs are flawless despite a few occasional bugs. The campaign is a little longer than it was in the original modern warfare. There are various easter eggs if you take the time to look around and explore the maps. I won’t spoil the ending, but I will say it is very good and somewhat reminiscent of MW1′s ending moments.

Multiplayer
MW2 multiplayer is basically MW1 multiplayer on crack. There are loads of new perks, weapons, maps, attachments, and theres even a nuke if you get a 25 kill streak. I love multiplayer, and I would say it is the best out of the 3 categories(spec ops, campaign, multiplayer). Theres certainly enough new content to make you want to play it a lot.

Bugs/Issues
First off, the multiplayer servers were down for a good 12 hours the day of release. That was quite annoying. Also, there is no team balance. It’s all to often that its 2v4 or 1v6. Also, the bodies tend to glitch up in campaign, vibrating and falling into the scenery. I’m not a PC player, but the fact that theres no dedicated server is a punch in the face to me as well as those who purchased the PC version. And theres loads of issues when trying to invite a friend to join your party

Overall, it’s a great game and I would highly recommend it.

Jax’s Basic Array Tutorial

This tutorial will cover basic C++ arrays, including multi-dimensional arrays. Arrays are an essential part of C++ programming, as they are very helpful when dealing with variables.

An array holds multiple values of a variable. For example, you can have an integer array type that holds multiple integer values. Or a long array that holds multiple long values.

Arrays are declared as so

//type array_name[number_of_values];
int array[3];

That wasn’t so hard was it? Now then, on to giving your array values. Lets say you want to give the third element in your array the value of 2. Here is the code

array[2] = 2;

Now, you may be saying “I thought you said we were going to change the third value to 2, not the second!” Well, the arrays index number(the one in brackets) starts at zero. So you count 0, 1, 2. Meaning the second value has the index of 1. It’s really not that complex.

 

Now then, say you want to change all of the values at once, not just one at a time. That is very possible with C++ arrays. Here’s how.

int array[3] = {2,3,4};

The syntax is really rather simple. The braces contain the values for each of the array elements. For example, with the code just used, array[0] would be 2, array[1] would be 3, and so on.

 

To use the value of the element, use code like so

cout << array[3] << endl;

That is, of course, assuming you wanted to print out the value of the fourth element. Lets say you want to use the value of an element as a parameter to a function. Lets say you have a function that multiplies two integers

int multiply(int num1, int num2)
{
  int product = num1 * num2;
  return product;
}

You could use this function to multiply two array elements, and return the product, like this

int array[2] = {2,2};
int result = multiply(array[0],array[1]);

You can also use array’s in loops. Here’s an example

int array[2] = {2,2};
for(int i = 0; i < 2; i++)
{
  cout << array[i] << endl;
}

That’s all I care to share with you about basic arrays for now. Let’s move on to 2 dimensional arrays. These, instead of having just one line full of elements, has a table full of elements. This is especially useful in game programming for things such as mapping. Here is how you declare a 2D array

//type array[num_rows][num_columns];
int array[2][2];

Inputting values for elements are basically the same if you’re adding in values one at a time. But if you want to input all of the values at once, the syntax is a bit different. Heres an example

int array[2][2] = {3,3
                   3,3};

As you can see, you just add a new line for every new column.

 

That’s it for this tutorial. If I left something out, didn’t explain something, or explained something wrong, leave a reply.

C++ Pointer Basics

If you’re like me when it comes to pointers, you find them quite irritating to learn. But never fear, I am here to help you. This post will teach you the BASICS of pointers. I won’t go over more complex pointers until later.

You may find yourself asking, why do I need pointers? Well, you don’t, if you plan on making simple console applications for the rest of your programming career. If you plan on doing things like GUI programming, network programming, or game programming, pointers are almost required.

Think of pointers as shortcuts to variables. They can give you the values of a variable, and change the values of a variable.

Here’s how you declare a pointer

int *pointer = &variable;

The & symbol is vital. Without it, you will get an error.You can also have the asterisk right after the type declaration, but I prefer this format. You can make a pointer out of any variable type, but if you make a char pointer, you will need 2 asterisks, because if not, the compiler will think you are trying to make a string.

But keep in mind that the pointer HAS to have the same type as the variable you are pointing to. For example, and int pointer HAS to point to an int variable. If not, you will probably get an error, or bugs in your program.

Also, if you want to declare a pointer, but don’t want to assign a variable yet, put it to point to NULL. While not required, it’s good programming technique. If you point to null, you don’t need the & symbol until you point to an actual variable. NULL means nothing, if you didn’t know.

The asterisk is a unary dereferencing operator. In other words, it de-references the variable you point to. Also, if you didn’t know, the & symbol references the address in memory of the variable you are pointing to. But referencing deserves it’s own tutorial, which it will get sometime in the future.

If you try to echo the contents of the pointer like so,

cout << pointer << endl;

you will see some wacky hexadecimal code when you run the program. That hexadecimal code is the location, in the computers memory, of the variable you pointed to. If you want to see the actual value of the variable you pointed to, you need to use code like this
cout << *pointer << endl;

Once again, the asterisk dereferences the pointer, so you can get the actual value of the variable, instead of its location in memory.

If you want to change the value of the variable you are pointing to, do it like so:

*pointer = 1

where 1 is the value you want to change the variable to.

One more thing, if your pointer is not null, and the variable you are pointing to does not have a value, be sure to give it a value. If not, you will probably get a memory leak of some sort.
Thats the end of this pointer tutorial. If you still don’t get the point of pointers, don’t worry, you will eventually. I apologize for not going into using pointers in functions, that will be in the next pointer basics tutorial. Also, sorry if this post is unorganized. If I posted something incorrect, just let me know and I’ll change the post.

Follow

Get every new post delivered to your Inbox.