• entries
37
65
• views
48167

## Solution to Level 2

Continuing working on the introductory levels, this is the solution for level 2.

Here the player gains control over the leg also (level 1: only controls the arm). The body is still fixed, so there's not a lot of room to screw up.

Exactly zero minutes were spent researching the insides of a helicopter. I just needed a task that involved the arms and legs so the players gets used to keyframe, timing, etc, before he is actually loose and at the mercy of physics.

## Inverse Kinematics to the rescue.

I'm currently trying things to make the game easier on the new player, without sacrificing the original vision.
Besides modifying the first levels, I have added a few control related improvements.

Inverse kinematics:

I slowed it down on purpose to give the user more control.

This is something that several people asked me to add. So now you can control the whole arm through IK, or control each individual part as before if you want more control.

IK is usually not an easy subject, but for my case I was able to approach it in the simplest way, using Cyclic Coordinate Descent. Using this awesome article by Ryan Juckett (includes explanation, drawing, math and code!) it took me very few adjustments to make it work.

The only thing I had to add was restrictions to the joints, since the wrist of my character is not supposed to do a 360 rotation.

To make it work, I modified Juckets' Bone_2D_CCD struct to:struct Bone_2D_CCD{ double x; double y; double angle; bool hasLimits; // new double minAngle; // new double maxAngle; // new};
And fed this new information to the algorithm.

Inside the IK function, after these rotAng variable is computed (these lines)...double rotAng = acos( max(-1.0, min(1.0,cosRotAng) ) );if( sinRotAng
...I added code to truncate the rotAng variable:if (bones[boneIdx].hasLimits){ bool limitExceeded = false; if (rotAng > 0 && bones[boneIdx].angle + rotAng > bones[boneIdx].maxAngle) // truncate to maxAngle { rotAng = bones[boneIdx].maxAngle - bones[boneIdx].angle; limitExceeded = true; } else if (rotAng
And although I'm not super proud to bring trigonometric functions to an "all linear algebra" solution, I don't know enough math to do it properly, and this was a case of not needing to optimize things that do not slow down your game (this code follows the action of the much-slower user).

## New, easier, introductory levels.

So, besides my hud problems, and gameplay troubles, it has come to my attention that the first level is too hard.

This is the current first level:

It's a vertical level, from top to bottom; so gravity was supposed to help. It was not enough. So this level needs to be redesigned.

Also, I've been trying to come up with a way to ease the mechanics to the player. One suggestion I've got is to reduce the number of limbs/joints, so it is easier to control with less degrees of freedom.

That is actually an idea I really liked, so I came up with three introductory scenes, in which your character's body is fixed to a position, and you only control the arm, then the arm and the leg, and finally the arm and the leg with a loose body.

(programmer art)

Hopefully this will give the player enough actions to get use to the poses/keyframes/mechanic of the game, before he has to worry about moving the character around.

To give context to the inability to move, the character begins the game strapped on a helicopter sit, before being dropped to the mission. The character has to push some buttons, let itself free, and later jump into the void.

## The IGF reviews are here.

The IGF reviews are here. The good news is that they all concur to the same point. The bad news is the point they all concur to.

Consensus: Good idea. Boring implementation.

===

I really like the idea behind the game however in it's current state it is no fun to play at all because the process of animating the character feels to tedious and slow.
Maybe an idea to facilitate and speed up that process would be to preanimate some poses and then reuse them with some kind of drag and drop mechanic. I can see this being fun but it would need some damatic changes in its interaction principles.

----

This is a really interesting idea, but the inherent tedium of animating is not mitigated enough at this point. This may be one of those ideas that looks good on paper but doesn't work out when you actually prototype it, or there may be ways to improve the pacing, such as the ability to save poses to swap in more quickly or having characters with fewer joints at the beginning.

----

REALLY love the idea, but the implementation is just not there. It's not fun to play. It sounds amazing in my head--and I was blown away as soon as I was reading what it was asking me to do--but I didn't enjoy the doing.

===

This implies much bigger changes than the HUD things I was talking about. The suggestions they give I had already considered, but i rejected them because of their implications on gameplay.

I think these are the first objective, over the internet, opinions I've gotten, and for that I give them more weight than the ones I've gotten so far face to face (a lot of people won't say to your face that your game is boring).

Now i need to decide if I keep my original direction, thus aiming super-niche, and sink with the ship.
Or... make a drastic change, trying to appeal to a (slightly) broader audience. I really wish I could do this without compromising the original ideas of the game, but right now that doesn't seem possible.

Decisions, decisions, ahead of me... and of course lots of prototyping.

"Art is not a democracy." - GRR Martin.
[size=2]But I'm not an artist, Martin, I'm an artisan.

## Rethinking my hud

So... about my hud. This is my current hud design (graphics not final).

mixed with Adobe Flash's time line...

Although functional, as i said before, a lot of people are having trouble grasping it. Programmers and animators have very little issues, but "common" people do not understand it easily, making the game pretty much impossible for them.

These are the main problems with the hud that I have seen when playtesting with strangers:

1. The concept of timeline is not intuitive:
1.1 People have problems going backwards and forwards in the animation
1.2 They can't realize that more space = more time.
1.3 They make their changes in a wrong place, when they try to add new keyframes.

2. The concept of interpolating between keyframes is definetely not understood.
2.1 People want their pose at this moment, and don't change the past!
2.2 Adding a frame to preserve the past is not understood.

So this is the idea i'm playing with right now:

The idea:
- I think users will be more familiar with a "film" concept, than a timeline.
- When you press play, the film slowly rolls to the left as the movie progresses.
- Every pose (frame) is held for X miliseconds and changes (almost) inmediately to the next.
- So no interpolation concept.
- The film starts very small (one or two poses) and the user can add poses as he needs them, so he knows how big it is.
- The frames are added only to the back, inmediately next to the last frame.
- They incrementally create the film form start to finish.
- No mistakes on where to add a frame. You are always working on the final part of the movie...

It becomes closer to a "list of instructions" that the character will try to imitate.

In theory:

Pros:
Easier to visualize.
Easier to teach.
Harder to make mistakes.
No interpolation required.

Cons:
Loses control and granularity. Since now each frame is bigger, you will not have as much control as you would with individual frames on a timeline.
More rigid, less liberties.

I realize that this approach take away A LOT of liberties from the player. I am not convinced if it's worth it. I have to implement it, and see if it works as i hope it will. I have to think if i like to play it this way.

I'll report again when i have results.

## One year report (trailer inside).

Alright, my friends.
It's been 12 month since I started this project.

Here are a few stats of this whole journey:

Number of months without a home: 12.5
Countries visited: 7
Cities visited: 43
Money spent:
- On me (food, bed, transport, tourism& stuff): 8000 **
** 3000 in Korea alone. It was crazy, i was blinded by SC2 and kpop stars. I regret nothing.
- On the game (domains, hosting, music): 76
Fake iphone cables destroyed: 3
Number of pants/shirts lost along the way: 6
Times I got sick: 2
Times I got attacked by an alpha male spider monkey: 1
Number of classes in my code: 101
Lines of code: 22500+
Games finished: 0
Levels finished: 6.5
Trailers produced: 1.

Here is that trailer... the only tangible good coming out of this whole mess.
Enjoy.

If you like what you see:
Comenting/Following/Liking/Sharing/RTs on any of these will make my heart warm.

Web: www.stochasticlints.com
Twit: @StochasticLints
FB: Stochastic Lints
Gmail: stochasticlints@gmail.com

## My character is growing...

I said i was gonna post more often. I haven't. Sorry.

To make up for the lack of updates, I want to show you the evolution of my character in the last year.
I talked before about finding the right proportions.

This is how the character visually evolved all along this year. From prototype to current version.

I'm trying to set up a website but it's pretty much empty right now: http://www.stochasticlints.com
Should have something on it in the following weeks.

Cheers.

## One month to IGF! And my game is unplayable...

So, one month to the IGF submission deadline.
What have I been doing the past 11 months?
I have no idea. Sometimes projects just don't seem to move forward.

To top it all... today I had a completely stranger play my game. This is the first time somebody has played the game without knowing anything about it. I told him nothing. Just run the game and follow the tutorial.

Well, it's unplayable.
He couldn't finish level 1.
And if he got even remotely close to finishing it is because I was there helping him after seeing him struggling for 10 minutes.

I need to redo the whole tutorial.
Maybe a video? I've seen non-gamers able to play it after seeing a video of me playing and explaining it.
But a video is not what you would call a good way to do a tutorial... maybe it is in this case?

Maybe a level 0. Easier.
But i thought level 1 was so easy.
What do i know.

Sorry for the rant... just one of those days.
I realize i've barely even posted things about the game here. I'm gonna change that.
So you don't feel cheated about this post... I will show you level 1... from november 2013 to september 2014. This is the whole level. No scrolling necessary.

## Bugs Funny.

Bugs are usually source of headaches...

99% of the time you encounter a bug in your game you will be flooded with confusion, anger and the need to lift your fist and curse the gods. Because that's what programming is basically about... cursing the gods for your unfair destiny (why didn't you make me normal?!).

But sometimes... just sometimes... bugs are funny. And they show you unexpected things that you, as the developer, will hardly experience with your own game. Surprise and chuckles.

Yesterday, i was programming very late at night, barely finishing a new feature, when i made my character jump, head first, into this bouncing awning (?). He was supposed to bounce back up... but his high velocity made his head go through the box2d joints of the bouncer (composed, like a bridge or rope, of several bodies tied together)...

The result was my character got stucked on the awning, softly bouncing up and down... while i stared in silent for a few seconds trying to understand what just happened...

Then i laughed. I laughed out loud so hard at the silly result. It was late, i was tired and i could not work anymore...
I turned off the computer still laughing... brushed my teeth laughing... got into bed and chuckled one more time.

Then I rolled to my side... and cried myself to sleep.

## My sketchbook...

As i was reading Asteroid Base's post about sketchbooks: http://www.asteroidbase.com/devlog/8-ugly-sketchbooks/#more-496, it was a nice surprise to see three different people and the way they treat/use their sketchbooks. Even though i consider myself 100% a programmer, my sketchbook looks more like Jamie's: drawings mixed with math (more like geometry in my case), although not as tidy.

I was actually surprised how clean and white were the programer's pages.

My sketchbook's pages usually start with useful data: todo lists, algorithms or ideas. I'm not very tidy, but it makes sense to me...

As time goes by, and those pages spend more and more time next to me, doodles start invading them. Sometimes they actually mean something (level design, geometry collision, direction vectors, etc)... and sometimes they are just things my hand does while my brain is thinking...

In the end... if possible, i even start using darker pens to write over other things... there's a whole mess with barely any white on them... time to move to the next page...

I've found that having as sketchbook to doodle makes programming so much easier. To put something on a page (even though it's just a square representing a class or an object) organizes the code in my head.

The curious thing is that when i get into "artist mode" (character design, mainly), i am the opposite. I am very tidy and i don't like doodling on these pages. This is the same sketchbook, except showing the art pages.

In fact i think i'm TOO tidy. Too rigid. I've seen actual artists' sketchbook, their lines are all over the place, the re-do the same line several times, maybe trying to find something new that works better. Their shapes are not defined until later, they are actually sketches. And have like one hundred drawings of the same character with slight variations...

But i cannot do it, if i don't like a line I erase it... if i like a character, i'm afraid to draw it again because i don't know if i will manage to draw it the same. I have to pratice to loosen up... a lot.

What does your sketchbook look like?
As a programmer do yo have a sketchbook at all?

## Finding proportions for my main character

I've always been a fan of short legs, short arms, big headed characters. I don't now why. Maybe too much Dragon Ball when i was younger.

But for my current project a character like that would not work. I needed a character kinda "athletic", that could make different poses (action movie type poses) and you could recognize this poses from the distance. A character that can actually strech his arm and go above his head.

I was out of my confort zone drawing these guys (my drawing skills are very limited), so I tried to find inspiration somewhere else.

I remembered of having played with these 80's GI Joe toys that I think were the most articulated toys I ever had:

Even though that worked, like I said I'm not fond of very human like characters.

Later I found this star wars toy I though looked VERY cool:

It worked very well and I liked it. I implemented him into the game and I was almost certain that they were the final proportions.

Until I saw the new ninja turtles tv show from nickelodeon:

They had similar proportions as my current character, although longer limbs and wider body.

I'm liking this last version a lot. Now, if i stop watching kid's show/toys (not likely), this might be the final proportions i'm going with.

## Being Collin Northway

So, my story starts a few years ago.

I was working on a personal project called Greengineers for the Microsoft's Imagine Cup contest.

After the contest was over, I dropped development of the game. A few months later i hear about this game called Fantastic Contraption, which shared some similarities with Greengineers and had made a lot of money.

The game was great and deserved all the merits it got. I thought to myself: "this is what Greengineers should have been". I was way out of focus with the direction i was taking, way out of my league, overcomplicating gameplay, and i realized i knew nothing about game development. Note taken.

Years later, i'm on my daily life handling in my head an idea i wanted so much to make (aren't we all in this state?), when i see this prototype of a very cool game called Incredipede.

Again, the game had some similarities with my current idea and turns out it's from the same developer as Fantastic Contraption!

"Ok," i said to myself, "this guy is cleary stealing my ideas, traveling back in time and implementing them before me! I must stop this ASAP!"

Ok, so not really, but at least he was a developer whose games i liked and i could relate to. Browsing through his website i read his name is Collin Northway, and develops games while travelling the world... wait, what? Has this guy not only stolen my ideas but my dream? Yeah, turns out he goes to different places, works on his games, and moves on to the next place. Just, awesome.

That is what i wanted to do all my life. See the world, be free, make friends, get to know different cultures, stay if you like, or move if you don't, all while working on games.

So, self analyzing time: why am i not doing this? I'm young (enough), i'm healthy (enough), i don't have any responsabilities, i've never been a big spender so my bank account can handle it, and the craving for indie game development in my head is killing me... why not?

Sure, i could fail. In fact, let's be honest, most likely i will fail. So what? Worst case scenario i burn all my savings and have to go back to work... exactly where i am right now. But at least i could look back and see that i lived what i wanted, did what i wanted, experience for a tiny bit what is it like to live my dream. Like this journal's name states: i know i'm too dumb to make it, but i'm just too dumb to quit.

Fast forward one year later, i'm outta here. I quit my job, sold all my stuff (to be honest they weren't many to begin with), grabbed my backpack and my notebook under my arm.

This is me going to live through the eyes of Collin Northway, this is me crawling through that tunnel i found on the 7th and a half floor... let's see what's on the other side.

* hi, my name is agustin and i'm a part-time traveller, part-time game developer, and, currently, also part-time crummy go student in korea. I have a small travel blog (sorry, spanish only: http://dondecarajoestaagustin.blogspot.com/) and this will be my game development journal. I hope you guys like what you see =)

** no, i do not know, nor have i spoken to Collin ever in my life, hope he doesn't think this is TOO creepy =P