Archive for the ‘Smoothie’ Category

Reinventing Smoothie

Monday, September 10th, 2007

Now that I’m completely done (for real this time) with all of that nasty contract work and coming back to my D projects, I’m looking at Smoothie with a critical eye. I really don’t think my time is best spent on a 2D/3D game library right now. There are a few reasons to do so, but the bottom line is that working on Smoothie is distracting me from my game. I had thought to develop Smoothie as part of the game, so that the game would actually use the library, but I don’t need to be concerned with abstractions and use cases right now. I just need to knock my damn game code out. I’ve been fooling around too long with this game idea and it’s time to get the thing done and out the door. Besides, the ArcLib crew really does have the 2D lib department covered fairly well right now without me mucking about. Also, I’m back to trying to put together a graphics package for Tango, which is more than enough graphics work for me right now. Yet, I like the name Smoothie too much to throw it out.

As always, there is a long list of projects I would like to work on. So Smoothie is going to undergo a reinvention. Rather than being a 2D game library, it’s going to be something completely different, though still game related. I can work on it for a few hours each week without really distracting myself from the game. In fact, I think it will be the ideal project to take a break from the game, or tango.graphics, during those times when I’m banging my head on the desk trying to solve some problem.

I’ll talk more about the new Smoothie when I have something to show. I don’t want to jinx myself.

Technorati Tags: , , , ,

My New Project

Friday, May 11th, 2007

In a recent post I mentioned that I am working on a new project that I will eventually release as open source. I wanted to wait until I had a solid outline of the entire project before I talked about it. Well, I have so I am.

Not too long ago, Kevin Glass let loose the first point release of his 2D Java game library, Slick. I’ve been following his progress with Slick for a while now and thought it would be nifty to port to D. I didn’t bother with it though, because I didn’t see it as something I had time for. Besides, the D community already has Clay Smith’s ArcLib. When I decided to sit down and work on a test case as described in the post linked above, I thought about what would constitute a good project. Slick immediately came to mind. So I worked on it for a couple of days and then had the epiphany I wrote about.

All projects need a name. I thought about this for a bit and wanted to derive something from Slick. Eventually, I settled on Smoothie. I couldn’t find any other game libraries with the same name. Plus, I love drinking them.

While Smoothie is based on Slick, it is not a direct port. I’m going in a different direction with much of the design, though I am certainly using some of Slick verbatim. Like Derelict, I’m primarily writing this for me. I’ll also be developing a commercial game in tandem with the library, so that’s going to drive most of the design decisions for a while. But I do have milestones set out where I will make point releases of Smoothie under the BSD license.

The first milestone will allow the creation of simple 2D games, such as Pong, Asteroids, or Space Invaders. The second milestone will add special effects, simple GUI components, support for tile-based games, and more. Each milestone is set up to be an incremental improvement over the last. Though I haven’t gotten more than the first two milestones completely fleshed out, I am looking farther down the road. I’ve structured the framework such that it can, eventually, support different windowing APIs for OpenGL context creation (SDL, DFL, SWT, or what have you). It will also be able to support 3D rendering in addition to 2D, together or separately. For example, in a 2D game you could easily create a GUI component that rendered a 3D model such that it’s not part of the game world, but part of the UI. Or in a 3D game you could easily create a 2D GUI component for the player to play a mini-game (like, maybe, tetris) while waiting for the game to load, or as part of a challenge. You could then use the same code for the mini-game and release it as a completely separate game with very few changes.

I’m a long way off from the 3D bits yet, so you won’t be seeing that any time soon. I’ve got a couple of 2D game ideas I want to pump out first. But this should give you an idea of what Smoothie is and what my goals for it are. Once I’m ready for the first point release, I’ll ask Brad for a DSource project. I expect that to be early next month. Starting soon, I’ll be keeping a devlog detailing the progress of Smoothie and the games I make with it, over at my game blog.

Comments and questions are welcome!
 

Technorati Tags: , ,