Archive for the 'Graphics' Category

Caster HD for iPad is on the App Store!

Thursday, April 1st, 2010

One of the best third person shooters on the App Store is now on the iPad! Get Caster HD now in all its high resolution glory!

I am seriously excited for the iPad! Hopefully I will be able to get a hold of one soon and check out what may be the future of personal computing.

Caster for iPhone: A Postmortem

Saturday, October 31st, 2009

My good friend Mike has for many years had a pet gaming project called Caster which he has worked on in his free time for graphics experimentation and his own entertainment. And for almost as many years I have been working with him to port it to various platforms such as Mac OS X and iPhone OS (as of this writing I am currently poking around with a Dreamcast build of Caster). Recently Mike gave a presentation we co-authored called iPort: How to Bring Any C++ Game to the iPhone at the GDC Austin 2009 iPhone Games Summit based on our experiences with porting Caster to the iPhone. Even before the GDC presentation Mike and I thought it would be cool to write a postmortem on porting Caster to the iPhone. At the time we thought we could turn it into a blog post or web article or something. After being accepted into the iPhone Games Summit at GDC we adapted a lot of the notes and material that we had produced for the postmortem into the presentation slides. The presentation went well and the slides were jam packed with a lot of good tips and tricks for both iPhone porting newbies and experts alike. However, I thought it would still be fun to use the original material to organize a story-like postmortem.

Caster 1.1 for iPhone is out!

Monday, October 5th, 2009

After a long time coming, Caster 1.1 for iPhone was released about 2 weeks ago to the App Store. A lot of care has gone into listening to feedback and deciding what can be addressed now. It is a really nice update that should be a delight to existing customers and more enticement for new purchasers. Changes include:

  • The first three levels of Episode Two are playable.
  • Caster theme music cover by Mega Ran.
  • Controls tweaked to fast-paced shooting perfection.
  • Customizable draw distance (for people with the new 3GS or iPod Touch).
  • In game menu re-arrangement (to avoid hitting menu buttons inadvertently).
  • Tweaked visuals like the lifebar.
  • Small gameplay tweaks.

We learned a lot at GDC Austin 2009 about iPhone optimization, development and marketing strategies so be on the lookout for more updates in the future with improvements with regard to both technical aspects and content.

Caster for the iPhone is out!

Wednesday, May 6th, 2009

Caster for iPhone

My good friend Mike has released his 3rd person action game Caster on the iPhone App Store! The entire desktop experience has been faithfully reproduced and tuned for play on the iPhone with remarkable performance. The game is really fun on the Mac and PC but it really shines on Apple’s handheld devices. The graphics performance is amazing and the relatively complex control scheme has has been adapted perfectly for the touch screen without sacrificing any functionality and is arguably easier to use.

If you are a fan of fast paced action games be sure to grab Caster. I think you will dig the gameplay and love the unique pseudo Mega Man/Anime art style. It is only $5 but there is also a free Lite version with one playable level if you want to give it a test drive first. The best part of all is that the value of your purchase will increase over time as it updates with episodic content for free.

Caster is out!

Wednesday, January 7th, 2009

At long last my friend Mike’s game Caster has been released to the world! It is available for both Mac and Windows as a free demo or for $9.99, a full version with episodic content. Caster is a fast paced third person action game featuring fun weaponry (such as terrain deformation guns), nifty music and slick graphical effects. Mike has really poured his heart into the game and it is truly impressive to think that one person engineered and authored almost every aspect of the it. Yours truly handled the Mac port of Caster and it was a really great experience to watch Caster grow up into a full game. I am looking forward to seeing where Caster will go in the future!

Caster fan art contest

Saturday, November 8th, 2008

My friend Mike over at Elecorn has been working hard for a long time on an action game called Caster. Fairly early on I started maintaining the Caster Mac OS X port and have had the unique opportunity of experiencing the game evolve over its development cycle. Caster has really matured into quite a fun and graphically impressive indie game. Mike has made use of a lot of neat techniques that produce slick looking graphical effects without shaders or vendor specific extensions. This emphasis on back to the basics GPU effects means that Caster runs pretty well even on older systems and doesn’t break compatibility across GPU vendors or even operating systems.

For the month of November, Mike has instituted a Caster fan art content. Caster itself has a neat feel to it and I am looking forward to seeing what people come up with. The winner gets to have their art featured in the final build of the game as well as a free copy! So if any of you out there have an artistic streak in you, see what you can come up with and it might get published in the game!

Language Aid 1.1.2 is out!

Saturday, March 1st, 2008

One of the things I hear most often while providing support for Langauge Aid is something along the lines of “I hovered my cursor over text in some program, hit the lookup trigger and it didn’t do anything/grabbed the wrong text.” This is sometimes because the application they want to grab text from does not support the Accessibility API or sometimes because what they were hovering over wasn’t really text. Thus I have added a feature in version 1.1.2 that should help alleviate confusion.

highlight

Now in Language Aid 1.1.2 if you hold down the lookup trigger for more than one second, a highlight bubble will appear containing the text that will be grabbed if you let up your lookup trigger. You can also move the cursor around while holding the lookup trigger to see the exact text that would be grabbed from any point that your mouse cursor can hover over. So now if you are unsure about what text will be sent to the plugin, simply hold down the lookup trigger and move the mouse cursor around until you find the text you want. The highlight bubble is also slightly translucent so you can see the text under it.

I have also slightly overhauled the main Language Aid website to focus more on the the three different ways that you can use Language Aid to grab text. I have added short videos that explain and demonstrate each way. Also, a quick side note on Quicktime video encoding…the “Prepare for Internet Streaming” setting is BAD. When run in my web browser I found that my videos would often play for a bit, then the video would freeze but the progress slider would keep moving. This would continue until the end of the video. If you scrubbed through the video it would seem to display fine. However, if you scrubbed to a section in the video and then pressed play, it would play for a bit and then freeze again. Strangely enough, when played through Quicktime Player this did not happen quite as much but still occasionally would occur. I found that when I turned off the internet streaming setting this behavior stopped. Also, setting my H.264 keyframes setting to “Automatic” from 24 seemed to cut my file sizes in half. I suppose the moral of the story is that it pays to deviate from the default video encoding settings.

My video editor of choice? Quicktime Player (Pro).

Friday, February 29th, 2008

I must say that over the years more than any other video editing program I have used Quicktime Player (editing functionality requires Quicktime Pro) to do quick, clean and simple edits of video when I have needed to. Despite having only limited editing functionality and its purpose isn’t primarily to edit video, I have found that it gets the jobs I want done without a lot of hassle and helps maintain my video file fidelity.

I havn’t had the time to learn Final Cut Pro and for most jobs that I want to accomplish it feels a little overqualified. iMovie tends to mush my video around in ways that I don’t like such as transcoding it into something else, messing with the video dimensions and framerate. There may be better alternatives closer to what I want but I am not aware of them and I havn’t hunted extensively.

What I like about Quicktime Player is that I can slice and dice, re-order things, make translucent overlays and muck with the soundtrack by simply adding in references (by copy/paste) to my source media and then play with them. This means that nothing has to re-render and everything stays quality (the big box editors of course do this too). Now there are some problems sometimes when you try to play things back. Often my edits would playback one frame off as it is trying to load the resource or something. Even when I save the movie as a self contained archive it seems to have this problem. However, I have found that when I am all done with my edits simply choosing to “Export->Movie to Quicktime Movie” seems to take care of that.

An example of using Quicktime Pro to add a translucent comment overlay onto a video:

qteditor

  •  First I make a translucent png the same size as my video.
  •  The I open it with Quicktime Player
  •  Edit->Select All
  •  Edit->Copy
  •  Then I open my video and select the time that I want that overlay to be visible
  •  Edit->Add to Selection & Scale
  •  Window->Show Movie Properties
  •  I then change the new video track’s “Transparency” to “Straight Alpha”.
  •  Lastly I make sure to export so that the little transition jitters are removed.

It seems to have filled my little niche fairly well. Perhaps one day my needs will grow but until then Quicktime Player will be my quick and clean tool of choice.

Physics Models

Thursday, December 20th, 2007

So I have been thinking about what level of physics model I want to implement in Razor. Specifically I have been doing a lot of thinking about collision detection. There are a lot of different ways of doing things with their own strengths and drawbacks. I have initially made the decision of going for more precision and complexity versus speed and ease of computation. I have been spending a lot of time at Wolfram Mathworld trying to remember all the stuff I learned in college.

In preparation for the impending physics tests I have added optional bounding box drawing to all the Actor objects:

Razor Bounding Boxes

I looked around and didn’t immediately see any optimized math libraries that calculate determinants on the mac. If anybody knows of one please let me know. I did find this thread which had some helpful ways of doing it manually.

Why is it called Razor? I don’t know, I just needed a name.

Tuesday, December 18th, 2007

I actually had a very hard time thinking of a name for this project. Nothing really seemed to fit too well or sound that good. But I needed some sort of name for my new project. You have to call it something… I finally settled on “Razor”. What does it mean? Nothing. What does it have to do with the project? Nothing other than now that is what the project will be known by. After not being able to think of a name for a while and itching to just start coding on the darn thing I just picked the name and it has just kind of settled.

Ok, so what is it? On the Google Code page that it is hosted at I wrote:

Razor is a strategy game engine which is oriented around programming the AI of the units rather than direct control by humans. The idea is that human players compete by engineering the intelligence of the units under their control in order to fulfill an objective. The game world is in 3D and will employ some basic physics. Units, AI, physics models and many other aspects are extensible through a plugin system.

Razor is for Mac OS X Leopard only due to leverage of certain Leopard exclusive features such as dynamic loading/unloading of Objective-C, Garbage Collection and more as time goes on.

This is an idea I have had banging around in my head for a long time. Ever since I worked on an AI lab in college where the final semester objective was to program the AI of 5 tanks to play capture the flag against 5 other tanks controlled by one of the AIs of my many classmates. At the end of the semester the class had a tournament in which the prize was an instant ‘A’ in the class and didn’t have to take the final! My lab partner and I won the tournament and even though we both had As in the class at that point, not having to take the final exam was a big time relief at the end of a very busy semester. Perhaps I will make a blog post on our winning strategy later.

Along with that, I have always loved the great strategy involved in RTS games like Starcraft (which in my opinion is the best RTS ever made). I loved thinking of crazy new strategies that would find kinks in established defenses or play with the psychology of the other players. The only thing that prevented me from pulling off my grand designs was the limitations of my own reflexes. Some people just have the twitch and can bounce from scene to scene, keep everything in their heads at once and make lightning fast and precise mouse movements. But if the Korean Starcraft scene is any indicator, these cyber-athletes like gymnasts have a limited lifespan. Once you hit the ripe old age of 22 your reflexes aren’t what they used to be and some pretty young 16 year old is going to take your spot. What I want in some respects is AI programmable Starcraft.

Now the project is only in its infancy and is nowhere near doing anything of significant interest at this point but I decided that I wanted to get the code into an initial functional state that would at least be worthy of initial check-in. Because the project is open source I will be commenting here about the work that I am doing on it, future feature additions and other issues with great openness and frequency unlike my closed projects.

Below is a screenshot of the Simulation Viewer app that you can build and run right now from the source that is posted on the project page. It is not much but it is a start.

Razor, first commit