Ryan IRL

Panda3D is not a Mickey Mouse Engine

I recently discovered Panda3D, and have been very impressed with it. I’ve had a handful of game ideas I’ve been wanting to jump into for a long time, and have consistently been looking at and checking out different engines. My favorite candidates have been Ogre (which is not a true game engine) and Unity. Both of which I have tinkered with, and run through tutorials, etc. I’ve gone between the two but I’ve feel like I wanted something in between in terms of speed/flexibility (ogre) and ease of use (unity). I think I’ve found that perfect in-between with Panda, and I’m getting some things done with it.

There’s a lot of cool stuff available in the Python API, but something that stood out to me was how nice it is the create custom event handlers in code:

# myObject derived from DirectObject
myObject.accept('Custom Event', self.listenerMethod)

# you could then do the following:
messenger.send('Custom Event', ['param1', 'param2'])

# slick.

I’m hoping to actually put together a simple game or demo this weekend and post it. Stay tuned!

This entry was written by Ryan Leland, posted on July 21, 2010 at 9:11 pm, filed under Uncategorized. Leave a comment or view the discussion at the permalink.

Python and Snow Leopard

I like Python. A lot! I try and find excuses to use Python when I’m just fooling around with an idea because it’s so easy to go from a simple idea to something tangible. I wish I could find the time to use Python for something serious though. Every time I want to use a library (pygame, pyglet, PIL) to make something a little more serious, I end up wasting all my time figuring out issues.

Issues have ranged from something requiring Python 2.4, weird GCC issues when building a dependancy, something requiring 32 bit, etc, etc. It’s sad to me that a language as fun as Python can be so frustrating to experiment with and just try out libraries. Maybe part of my frustration is due to my lack of experience with Python (I don’t use it very often), but every time I WANT to use Python I seem to run into a lot of roadblocks (bad luck?).

Starting to feel like I’ll need to set up a linux box for fooling around with Python code, or maybe find another scripting language.

This entry was written by Ryan Leland, posted on July 3, 2010 at 10:29 pm, filed under Uncategorized. Leave a comment or view the discussion at the permalink.

2010 Tech TODO

1. Learn a functional language

Functional and concurrent languages were pretty much all the rage in 2009. I’ve been looking a little at languages, and Clojure seems pretty cool, as does Erlang. These languages make my brain hurt seeing as I’ve really only ever worked with C syntax languages, but it could be a good learning experience.

2. Learn to use neural networks

I had some experience with some basic AI this year, and did some work with genetic algorithms, but I don’t feel like it really gave me much more insight into developing intelligent software.

3. 3D with OGRE 1.7

OGRE is the rendering engine to watch next year with the announcement of iPhone support, MIT license, and the release of Torchlight, . Not sure what my actual plans would be, but I’d like to actually build something this time around. Even if it’s just a simple tech demo.

4. Finish an iPhone app?

Yeah, I’ve started a lot, and finished pretty much nothing this year. With 3 or 4 apps already on the go, I think I should probably get around to finishing something soon.

This entry was written by Ryan Leland, posted on December 30, 2009 at 10:13 am, filed under Uncategorized. Leave a comment or view the discussion at the permalink.

Christmas Code

A friend at work put together our 2nd annual Christmas coding contest. The goal was to print out a tree that would scale by n, and was sort of inspired by another well known holiday coding challenge, only we made it a little more fun by adding some considerable complexity by adding slashes on either side of the tree to fill out the shape, and a pipe and ^ for the bottom and top.

Turns out I won despite some other brilliant entries. My secret sauce was the use of nested ternary operators, and pretty much makes the code unreadable. I’m posting the example in case anyone is interested in running it and seeing if they can improve/learn from it. Might also be worth noting that you should turn php notices off, and give $n an unsigned int value (for best results).

The code:
<?$a=str_repeat;for($t=$n+1;$t--;)echo$a(' ',$t?$t-1:$n-1).($t?$t==$n?"^":"/".$a('*',($p+=1*2)-1)."\\":'|')."\n";

This entry was written by Ryan Leland, posted on December 23, 2009 at 10:20 pm, filed under Uncategorized. Leave a comment or view the discussion at the permalink.