My New Project
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: D Programming Language, Slick, Smoothie
May 15th, 2007 - 12:35
Funny; I just decided to start (again) on my own game engine. I’ve tried a few times in the past to do one, but either kept getting side-tracked or stuck.
However, this time, I have a secret weapon: a massive mind map done with Freemind that is slowly mapping out the architecture, api and thinking.
And just like you, I’m setting myself milestones so I have something to aim for. They’re a bit smaller than yours, tho (first milestone is get the config system up and running).
So, I wish you the best of luck with this. Also, if you’re looking for a simple game to create on top of it, take a peek at Spacecute: free graphic resources and game design.
http://lostgarden.com/2007/03/spacecute-prototyping-challenge.html
— Daniel
May 15th, 2007 - 23:56
Yeah, I saw the news item on GameDev.net about those graphics the other day. Great for prototyping, to be sure.
Good luck with your project.
May 19th, 2007 - 18:43
Interesting; Any reason you chose not to go with ArcLib?
May 20th, 2007 - 11:19
Yes. I’m taking Smoothie in a different design direction. I’d rather work on my own code base when playing around with ideas like that. Plus, I just really enjoy this sort of project.
May 25th, 2007 - 18:14
Good luck!
If you ever want to collaborate on anything, just stop by.
July 6th, 2007 - 15:23
Im currently writing a SDL-based engine for old school 2D point-and-click adventure games (like the old lucasArts ones).
I’m also building (together with a few other people) a game in parrellel to ensure a constant flow of feature requests
July 6th, 2007 - 20:47
That sounds cool. I loved those old SCUMM games. Let me know how it goes.
June 30th, 2010 - 10:11
jave games are so cool eventhough they do not have fancy graphics.-”"
July 24th, 2010 - 06:23
java games are cool because they need very little resources and the graphics are good too.~`-