Happy New Year! Had I wrote a post when I was supposed to, a “Merry Christmas” would have been in order, but it is what it is.
I’ve got some great news. I’ve been hired! Woo-hoo! The position is an entry-level software engineer (programmer). I’m incredibly excited to get started, so that I can continue to expand my knowledge of programming. The paycheck doesn’t hurt either :). In the future, I would like to write a post on my experience with the interview process, and highlight some things that were done that I feel led to my success. Hopefully, it will help some of y’all still looking, or for those of you who are looking for new opportunities outside of your current employer.
“But, what’s been going on with the game?”, you ask? I knew you were eager to find out ;). Well, progress has been pretty slow over the past few weeks. This is partially to blame on the holiday season, and partially (mostly) to blame on my addiction to Dragon Age: Inquisition (so good *drool*).
Both Nate (my teammate) and I decided to get together for a day and work on the project collaboratively. He decided to break ground on modeling our characters (planning on one male and one female), and I continued to hack away at the movement code. It cannot be stressed enough how effective this strategy is. We were able to cover more ground in one 5 hour session than we ever had in a week working independently. I attribute the success to motivating one another, because we could both see the results of the other person’s work. It also kept each of us honest. If one of us hit a wall and needed a break, it was spent constructively scoping out what the other individual had accomplished, rather than skimming through Facebook for the next half hour.
I am most excited about the thing which I have no involvement in: beginning to model our characters! Nate broke ground on the female model first. Through some manner of wizardry, Nate imports these images into Blender, and transforms it into this:
As stated, this is just beginning of the modeling process, which is why there is little to no definition to the model. I am still very excited to see this part of the game getting started, and cannot wait to update you all further on its progress. The code update is fairly minimal, and may come off as even boring to some. Nevertheless, the additions, which revolve around refining acceleration and deceleration, were greatly needed.
The two highlighted “if” statements, if you remember, were once a single statement. This, we found, caused the player avatar to freeze in place if Speed exceeded MaxSpeed, which happened often. It would remain frozen as long as input continued (player kept swiping down), and resumed as normal once input stopped and the deceleration method was executed. Thus, the offending portion was moved to its own “if” statement, and if true, set the Speed to the MaxSpeed. One problem solved.
Another portion in the first statement worth mentioning is when we set the Acceleration variable equal to a set of values. This was to make the acceleration look more gradual, and therefore lifelike. There exists a similar set of logic within the “Decelerate” method as well, but it may be unnecessary in the end. The foundational logic is there, and it looks pretty good. Some more tweaking with the numbers wouldn’t hurt though.
Yes, it was good that we sat down and broke some serious ground as a team. However, I think that is the only time we worked on the project between then and now. Matters are only likely to get worse as well with me getting hired, and he still occupied by his job, family and school work. We may have to hold more scheduled pow wows in the future in order to see this thing through.
The rest of “The Bad” involves running into more coding problems, of course. I had some extra time after finishing up the acceleration and deceleration bits, and decided to break ground on getting our avatar to move right and left of the path, depending on where the player’s fingers were on the screen. It did not go well, but it wasn’t a total disaster either.
It should be stated that the logic depicted above actually works as intended. It will move the avatar depending on where the fingers are located. However, when playtesting, the avatar will jitter in the direction of the finger, and then reset along the path. Thinking that something within the MoveCharacter() method was interfering, I temporarily disabled the whole method. Sure enough, the player moves towards where the finger is located.
Okay, it is a good thing that the movement logic works, but we have two additional problems to deal with now.
1.) The avatar was free to move anywhere it wanted to. We only wanted the avatar to be able to move a set distance to the left and right of the the path.
2.) The camera, since it is a child of the avatar, follows the avatar along that axis. We only want it to follow the avatar’s forward movement. This means we will have to remove it as a child to the avatar, and write an additional script specifically for the camera’s movement with regard to the avatar.
For me, the big focus will be resolving the two issues we now have mentioned in “The Bad”. Nate will continue to chip away at the female model in his free time. Collectively, we need to come up with a course of action. Setting a time and day of the week were we can both sit down and hack at this seems like the best way to go for the foreseeable future.
– Andrew Medhurst