Showing posts with label games. Show all posts
Showing posts with label games. Show all posts

Saturday, November 14, 2009

Busy Days

I've been busy lately with a number of new developments:

Video Work!

At work we have been talking about incorporating more video into our e-learning and marketing products. In some cases we are supplied content. In other cases we need to produce big content, so we will be outsourcing much of that for sake of scale, resources and quality. But there seems to be a number of opportunities to take on small to medium-sized video work.

About a year ago I investing in a nice Canon XH-A1 HD (1080i) 24f pro-sumer camcorder. I love it. The images from this piece of equipment are amazing. But, if I am going to use my camera for these projects, I have decided that getting the "film" look is important.

Recently I purchased a glidecam, which is an in-hand stabilizing device that makes your shots appear to have been taken from a dolly rig.

Secondly, I just purchased a Letus device which allows me to attach my Canon XT Digital SLR lens onto my XH-A1. This allows the camera to shoot with an extremely shallow depth of field (which means that your subject stays in focus while everything closely in front and behind the subject falls out of focus.)

A while back I had already invested in an XLR field condenser microphone and rode boom for the purpose of capturing higher quality audio while on the run.


Click the above image to check out a larger pic!

This next week is the first shoot. Unfortunately I do not have any light gear and investing in a basic low-quality 3-pointing kit (for film) costs around $2k!!! So, if anyone knows of some place with a better price, let me know, so I can get my boss to make the investment.

Updating My Resume!

Specifically, I've been thinking about revamping my website http://enginpost.com for the purpose of "simplification." The current site is quite busy and filled with a level of detail that is, well, distracting.

I am pondering taking on more side work in my free time, so revamping the site might be the way to go. Here is a shot of the new site.


You can checkout prototype (which does nothing yet) at:

http://enginpost.com/cs

Mobile Games!

Lastly, this one here is a completely new venture for me. At work we are talking about building playable games for mobile devices, but rather than learning proprietary languages for each device we are targeting, we have been looking into both browser-based javascript-driven games as well as flash CS5 mobile game development.

For my first javascript-browser-based game, I decided to attempt to reinvent a classic old-console game. I am not done yet, but so far I have been able to master animating a few bits using HTML, DHTML, CSS and JavaScript, and it works on my iPhone!


If you want to check this out in your browser (or on an iPhone) go to...

http://enginpost.com/bomber/bomber-drop.html

When I complete any games I will be sure and post them here.

Sunday, October 25, 2009

iPhone Game Project

My first iPhone game project is underway...



(click the image to make it larger)

Step one is learning all about basic physics and how to pull off physics in Flash. I have so far tackled basic velocity and trajectory along with some collision math (when two or more object bump into each other.)

In the above screen shot you can see an iPhone sized screen with 100 objects bouncing around the screen at random velocity, spinning at random rates, all random sizes and one of three random shapes. Next notice the colors. That is only helpful to me at the moment while I am programming but the color coding goes like this:

  • Green: the object recently bounces off of the west wall.
  • Yellow: the object recently bounced off of the north wall.
  • Orange: the object recently bounced off of the east wall.
  • Blue: the object recently bounced off of the south wall.
  • Red: Two or more objects recently collided with the object.
  • White: the object recently collided with another object but is currently not touching another object nor is it touching an outer wall.


Here is another screen shot with 400 objects all bouncing around the screen!


Almost nothing is anything other than red, meaning that flash is working hard to calculate a whole bunch of collisions. Technically, with 400 objects on the screen that means that Flash would potentially need to calculate 400 x 400 possible combinations of objects colliding. I recently learned a little trick about how to pull this off without demanding that amount of CPU power to collision detection. Basically, in short, I have divided the screen space into a grid and I am only testing for collision against objects that share reasonable proximity. This drastically cuts down on the number of tests. Next I can avoid testing similar converse cases meaning if I test if Object-A and Object-B are colliding then I don't have to test if Object-B and Object-A are colliding (that would be a valid test [permutation], but a redundant one.) That cuts the tests way back again. Finally, to keep track of objects I am sorting them into Vector (or data-type-based) Arrays which just cuts process time for lists of objects to test... in half!

Here is one more screen shot of the same view but with only 25 objects bouncing around...



You can see more colors at work depicting bounce-state in this example since there are fewer collision opportunities.

So, currently there are over 75,000 iPhone apps out there which means there are likely not many more opportunities falling into the "completely unique" category. Whatever game idea this evolves into, well... there will likely already be "an app for that." So I am not worried about competition. I am in search of killer cool ideas. My first game might be something simple like rounds of flying a spaceship through an asteriod field (like this game here) and each new screen would get increasingly more complicated. I have a few ideas for interesting ways to make the effort more challenging using multitouch and the accelerometer (when you tilt the iPhone) , but we will see.

Below is a tweaked version of this for the blog here (only 50 objects set into motion with object collision turned off):