Programming

Lua on the iPhone

I was first introduced to Lua 3 years ago just after I started grad school; I first read about it in Mat Buckland’s “Programming Game AI by Example,” a reference I still always keep in arms reach. As a total n00b in the universe of game development back then, learning how Lua could be integrated into my game code without really having more critical fundamentals down first shelved any use I had for the language pretty quick. Well, things are different now, and as a professional game developer, it’s time I give Lua the respect it deserves. Read More...

[Website runScriptNamed:@"reboot.js"];

Starting over...

OSX + VTK = Pretty Cool!

Continuing my long standing tradition of being overwhelming uninteresting, I thought I would post a screen shot of my first attempt at using VTK for medical imaging. Thank you, Rogue Research. Happy Easter, everybody!

KVitale_Cocoa_VTK_Screen

P. S.: I love my lady.

April Ghouls!

Wow. Its time for an update!

I got VTK to build on Leopard 10.5; CMake sure is an awesome program! I used the SimpleCocoaVTK app as a code sample. I’m really excited how well it works.

Also, I made a iTunes playlist for when I do programming. Any suggestions are welcome.

First league game is on Friday! I can’t wait.

There was something else I was going to say...durrrrr.

Research Update

I haven’t updated in a while because I’ve been really, really busy with school and work. I got accepted into the Ph.D program for the fall, but...I don’t know yet. Below is a quick video of what I’ve been working on for the last two months.

Beware of imitators

So, iPropose has done exceedingly well in the first week of release. It has been downloaded 3000 times! Not too shabby. In addition to this early popularity, iPropose has already seen its first round of copy-cats.

Another series of applications, named (unsurprisingly), “iPropose,” were released on January 19th. Ignoring the fact that both the name and the description have been ripped off, the author of this doppelgänger adds two additional SKU’s for the gay and lesbian community, respectively. All this, despite the fact that the description of my iPropose is left intentionally ambiguous for the purposes of hetero- or homo- relationships.

All things considered, I’m not losing sleep over the fact that there is another “proposal” app. I am a bit confused about the fact that other developers can just rip Application names off of previously released apps, though. Moreover, the other developer in question is charging 0.99 cents for their applications, and we all know that’s going to really fly. >.>

iPropose in waiting

Happy Belated New Year, everyone!

I wasn’t at all busy during the break. Rather, I played a monstrous amount of video games. I did manage to squeeze in time to program my first iPhone app. I submitted it to the App Store on Monday, and it currently is undergoing review. The app is called “iPropose.” The product description is available under the “Games & Apps” section of the site.

iPhone Tech Talk - Toronto

So I’m finally here! Sure, maybe I got a little lost coming into Toronto, but after an unnecessarily 5+ hour drive in, I’m sitting in the main reception auditorium. I’m either super excited or its just super cold in here, cause these teets are primed!

Blokus & C#

I’ve been working on my final project for my AI class. We have to write an rule-based expert system in CLIPS which plays a game of Blokus. Of course, the only things we’ve done in CLIPS thus far is a boring text based 8-puzzle solver, and entering full Blokus moves into the CLIPS command line doesn’t seem very functional. So, if I’m going to have to write the rules and such anyway, I’ve decided to write a graphical version of the game which interfaces with the CLIPS engine.

I’ve used XNA 3.0 to write and display the game’s graphics content. I’ve also used the latest CLIPS .Net release from ProAI. The work is on-going, and I’ll have to finish it by December 10th, but it’s going really, really well. I’m pretty proud of the speed at which it is being developed and will post it under the closed-sourced section of the site when it’s done.

Macbook Pro, XNA & Parallels 4.0

For anyone interested, after Boot Camping my new Macbook Pro (late 2008) and loading the partition into Parallels 4.0, I was able to build and run a default XNA 3.0 project. I’m assuming because of the improvements in 4.0 and support for Shader Model 2.0. Parallels 3.0 did not have the capacity to run any XNA build because of the lack of supported “hardware” (rather ironic term when talking about visualization). Either way, I’ll post a screen shot when I get some 3D content loaded in.

Please read instructions carefully!

While working on my research project/thesis, I decided that I really need to start incorporating threads into my apps to make anything of myself as a competent programmer. This involved two significant revelations: first, that pthreads do not inherently play nice with C++ OOP (duh! they're a native C library!); and second, threading OpenGL programs in an entirely different ball game.

Getting a thread up (which, for the record, I have done before for classroom projects), was no big deal. Then realizing that C++ classes don't play nice with pthreads was a bit tricky. Once I figured that out (I welcomed static member functions with open arms, I just don't feel the need to code proxy thread classes! That's crap), I couldn't understand why my app kept crashing inside a thread using OpenGL calls. I thought it had to do with something I wasn't getting right when trying to recast a void*; however; some sleuthing made it clear that only OpenGL calls made the main process choke. All this eventually taught me a very valuable lesson...

READ THE INSTRUCTIONS FIRST!

The Apple documentation, conveniently titled "Multithreading and OpenGL," made it more than obvious that pitfalls run rampant across the OpenGL/Multithreading paradigm. Only a few sentences in gave me the clairvoyance I needed to see why my thread kept crashing.

I'll keep OpenGL calls within the main thread for now, but I look forward to working in Cocoa/Obj-C soon. At least there, OpenGL seems cared for delicately with plenty of out-of-the-box routines that are multithreading specific.

svn checkout svn://192.168.1.114

I setup an old beige tower with Xubuntu (733 MHz, 384 MiB) and put up Apache (of course), as well as *drum roll* SVN! I'm using it on my research project cause I'm trying to experiment with a bunch of new programming designs for this project. I branched a"stable" version and started a bunch of other changes, and to know that I won't screw up the original is just awesome! I should've done this a long time ago.

w00t!

glRotatef(xRot, 0.5f, 1.0f, 0.0f);

It's quite impressive what programming simple games will teach you. I don't know why I've waited so long to knock boots with small game projects. Sure, admittedly I've had trouble following through with a lot of them, but now that I've gotten over that first big hump, its been a drastically different story.

I started writing a small game engine using C++, SDL & OpenGL. Source code will be provided in the coming weeks, but for now, check out the pathetically underwhelming screenshot after the jump. Read More...

glBegin();

So now with TetriSDL out of the way, I started looking at other projects. Before I move on though, I've committed myself to learning OpenGL (and Kung-Fu, if there is any time leftover). OpenGL is seriously the wwwwhip, mostly cause its cross-platform and ridiculously easy to work with. Any of the games I start working on needs to be ported to other platforms; all the effort I put into XNA doesn't do jack shit if I spend 100% on my Macbook.

On a much more interesting note, I've been listening to the Flight of the Conchords almost non-stop. They're absolutely fantastic. Oh! And I've also been gearing up for Kat's return to life. I can't wait to introduce her to all the ladies I met at the bar during the past five weeks.

Enjoy the best Flash game on the Internet!

delete &myGame;

So I close a chapter in life. As noted earlier, I started a lot of Tetris projects over the years, but no longer do I have to feel defeated by lack of interest or programming ineptitude. I make it sound like it was an epic endeavor; sometimes it was...especially when the ogres showed up.

As I expected, it was 4 lines of code changed to get it to compile on Windows XP. Click here to go to the code page.

tetrisGame.Update(&errorMsg);

Its been almost two months since my last update. However, the purpose of this particular update is to acknowledge a very special moment! Teris!

Sure I started plenty of Tetris projects here and there, the first being the DirectX version I slaved over while visiting Katherine at Yale, but what I have finished here tops all of them. Its written in C++ (with some Obj-C calls for alert boxes); its my most portable version yet (runs on Mac OSX, but itshould only be a couple of line changes for both Windows & Linux). At the moment, it does everything it needs to as a Tetris game. There is still a couple of changes I wouldn't mind making:
  • Add sound & music
  • Improve CPU usage & memory footprint
  • Needs a main menu
  • No menus? No repeats!

I'm tolerant of the only 6% CPU usage and ~6MB footprint it has right now. Still, it certainly can be improved; hell, it's only Tetris; it ain't Pong! I'll post the source and a Universal binary tomorrow.