Low Poly Renders

Two years ago, I talked my school into allowing me to teach an intro game development class. I still can't believe it and I get a huge grin on my face when I think about how lucky I am. This fall I convinced folks that I should be allowed to run a week long intensive course about making low poly renders with Blender...

Sure I've done enough "box art" for Fracture the Flag to know the basics and produce work that's "good," but I've spent almost no time making non-game art.

Oops.

So in my game dev course I assigned a project where the students had to make box art for a new game. Basically an excuse to work more with Blender and dig a bit deeper into the program. The first part of the assignment was to find a published low poly image and use it as inspiration and guidance.

I joined my students and began to create my own low poly render. I choose Winter Night by Vitaliy Prusakov. I loved the lighting and the simple, but elegant colors.

My result was far from perfect or as tasteful as the original.

Snowy Village

Not bad, but I thought I could do better. Those roofs? Where'd the snow on the fences go? The fence rails are too straight...

I was having so much fun I wanted to do another. So I started working on the view from my front door.

The result is (obviously) highly stylized and somewhat idealized. I think its also step up in overall quality.

Backyard

Creating these images has been such great practice, not to mention great fun. I'm sure I'll make a few more, but I'm dreaming of getting a similar style into Unity for my next game...

I think I've figured out the light baking and textured needed to make it work at 60 fps and I'm pretty excited about it. It would be such a step up from Fracture the Flag's art work :)

FTF: Testing New Features

Recently I've been working to add a two new features to Fracture the Flag - both stretch goals. The first new feature is the addition of defensive watchtowers. The watchtowers can target workers, swordsman, siege weapons and enemy balloons, but won't target enemy buildings.

The towers provide much needed ranged defense against bombers and swordsman. Especially early in the game watchtowers can provide a good deal of security. They'll also easily knock down the new hot air balloon units.

Blender render of the bomb dropping hot air balloon

The hot air balloon unit does a low speed strafing run with three large and very effective bombs. While landing three bombs on a target can be devastating, the balloons themselves are relatively fragile and can be shot down by a watchtower fairly easily. Balloons are a one time use vehicle. After dropping their bombs they will fly off to the horizon.

The addition of the watchtower and hot air balloons (in early play testing) add a degree of balance and more variety to a player's strategy. It's also just really to see flaming arrows flying all over and bombs raining down on your opponents buildings.

A short teaser of the new features can be seen below.

For those who are REALLY interested I did a longer play testing session via Twitch. There are a few bugs and a few things that aren't ready for prime time, but you can see the new features (more or less) fully functional.

Watchtowers - Predictive Targeting

The soon to be latest addition to Fracture the Flag will be the defensive watchtowers. The towers will provide stationary ranged defensive. Something that is very much missing with the current build.

The watchtower script estimates a time of flight, gets velocity of the target, and uses a healthy dose of high school physics to predict the location of the target when the arrow will arrive. There is some inherent error in the calculations as a few assumptions must be made, but these turn out to be minor.

Once the predicted position has been calculated another healthy dose of kinematics is used to create a launch vector for the arrows. This is then turned in to a velocity vector and passed off to the arrow's controlling rigidbody to provide a physically accurate trajectory.

There are some errors in the calculations, such as the time of flight shouldn't be independent of the angle, but one value needs to be calculated before the other... The result can be small errors. The coding also allows a degree of inaccuracy to be added (not shown) for the sake of realism. This quickly makes any numerical errors pretty irrelevant.