Regard All Phenomena As Dreams


And the language of choice is....Smalltalk!

When we're going out to a restaurant, Russ is amused by my inability to decide exactly what I'll order until the waiter/tress is hovering over us. Sometimes, after having been saying I'll order either A or B, B or A, I'll blurt out a third thing at the last minute. I just did it again: "Let's see, C# or Java? Which one......oh, how about Smalltalk!" Okay, it wasn't quite that impromptu, but it definitely was a come-from-behind decision to pick Smalltalk.

I know most people would find that decision downright ridiculous, but there's a (form of) reasoning behind my madness. I've always found Smalltalk interesting from the perspective of language development history, and had dabbled in various free versions of it over the last few years. (Squeak and Cincom VisualWorks in particular). While I wasn't initially blown away by it (for reasons I'll detail in some later post) I was intrigued.

As I mentioned in a previous post, having fun and enjoying the development process itself was of key importance. In thinking about this I remembered one of the best times I ever had: writing in Forth on my Commodore 64 back in the mid-eighties. What really appealed to me about it was the way code was naturally segregated into smaller parts, and you could incrementally build up your functionality and slowly let it 'grow' one piece at a time. (One could object that this is true of any language, but some facilitate this more than others...) Similarly, Smalltalk provides a very interactive experience that lets you fluidly move between design, coding, and testing. It's also rigorously object-oriented (some may say to the detriment of the language, but I love it), and I enjoy using a Class Hierarchy Browser for not only reference but as a place to code in. It makes looking up information feel like a smoothly integral part of the development process rather than an interruption to my coding while I hunt for what I need to know.

So, a major theme of this blog will be about my experiences and such as I go about developing a small game in Smalltalk. There are some wonderful sites with lots of information on Smalltalk, especially insofar as the language itself. BUT, there's not a whole lot of information out there (at least easily available) on developing games in Smalltalk, so I'm hoping to pass along whatever interesting/helpful info bits I find or discover as I do this. At the time of this post, my sidebar links are a miscellaneous mix of stuff, but over time I'll put a separate section of smalltalk-related links that I find especially helpful or interesting.

Next up: I'll review the various Smalltalk implementations, and make a choice for which one to concentrate on for my initial efforts.


  • Things you might find useful:

    Seaside: A continuation-based Web/Application Server

    Bottom Feeder: A News Aggregator Client (RSS and Atom)

    Pongo: An MSN Instant Messenger Client

    Typeless: An IRC Client

    WithStyle: WithStyle is an XML-based user interface platform (a web browser for the 21st Century)

    The Chronos Date/Time Library

    By Anonymous Anonymous, at 9:06 PM  

  • Thanks for the tips! I've seen Seaside mentioned before, it looks very interesting, as does Bottom Feeder. I'm looking forward to playing around with both of them. I'll check the other references out too..

    By Blogger Eddie, at 9:11 PM  

  • I'm actually just wondering how any of those links would actually help you deliver a game in Smalltalk.

    As far as environment, what platforms are you looing at targeting?

    By Anonymous Anonymous, at 3:27 AM  

  • Hi, if you're thinking about games in Smalltalk then I wrote this one with my son as a DirectX game in Dolphin ST. See

    By Anonymous AndyB, at 4:54 AM  

  • As much as I am an advocate of VisualWorks and making programs that work on multiple platforms, I'd have to agree with Andy that if you want to make a game using DirectX then Dolphin is a great choice. I tried writing a cute space game in VW for Linux and Windows with some friends once and it was a disaster trying to get common 3d behaviour across both platforms. If you limit yourself just to one platform, then you can save yourself a lot of pain. While Smalltalk is great at being cross platform, 3d libraries and the Windowing API's you need to torment to get to the 3d libraries are simply not very portable (in their use - no matter that their docs say otherwise!. You have to love it when some 3d framework has a big polling loop that you must call and it'll call the rest of your program, hallo! our VM already green threads for us). Okay, ranting now. I can't wait to hear more about your game.

    By Anonymous Michael Lucas-Smith, at 8:47 AM  

  • I don't know if you all had noticed my other posts saying this blog is not yet 'real time' posts are still catching up to where I am now. (I'm just to lazy to post it all at once.)

    I'm just about ready to do my last few posts, and the end result is that I do go with Dolphin as my Smalltalk of choice. (Andy, I'm the same Eddie you helped upgrade to professional edition the other day!)

    I'm looking forward to using Dolphin for my first game. Now I just have to finish learning Smalltalk, figure out what kind of game i want to shoot for, and then actually start doing it! I'm hoping Dolphin 6 is out by the time I'm ready....:::crosses fingers::::


    By Blogger Eddie, at 10:28 AM  

  • Cool, another Dolphin developer!

    By Anonymous Anonymous, at 7:43 PM  

  • Hey Michael!

    It probably wouldn't be fair to say that all dialects of Smalltalk don't have cross platform 3D. What about Squeak? :-)

    By Anonymous Carl Gundel, at 8:57 PM  

Post a Comment

<< Home