With all the recent movements in the Linux community with Unity and Gnome 3, I’ve been looking for a interface that better suits me. I don’t really need any fancy effects, I just want something simple. I recently discovered Cinamon, which I think is originally from Linux Mint. After just a few minutes of using it, I knew this was my new interface. I used the following commands to get Ubuntu to the state shown in the picture above:
My game framework Snowball is far enough along that small games can be developed with it by now. The basic overall design is now laid out and not too much is likely to change as I’m now developing my own small games with it.
In order to create some kind of documentation on how to use Snowball, I created a Samples folder in the source. In the Samples folder is a WalkingWizard sample. I’m posting this source code here but it can also be viewed on GitHub here.
I used to have a Github account and later eventually deleted it. I felt Mercurial was a superior source control system and so I wanted to stick with that. At work we switched to using git. And that’s when I discovered gitextensions.
Gitextensions in my opinion makes git usable for me on Windows. My only real complaint with git was that there wasn’t a good gui for it on Windows. Git also has a few features that I can definitely say are superior to Mercurial, fast-forwarding for instance.
I’ve moved most of my open source code over to Github as of now. There are some things that I haven’t moved and probably will never move but will remain on Codeplex.
I’ve always wanted a program that would allow me have a command line that I could slide in and out of view as needed like the console from Quake. I never could find one and so I finally got decided to write a tool myself. A picture is below and the source code is on GitHub.
I’m not putting a download here as I don’t consider this finished just yet.
I’ve decided to start using the BitBucket repositiory as the official Snowball repository. I’ve been keeping the code updated both there and at Codeplex the best I could but I’ve decided to flip which one is the primary. I’ll still continue to keep the code updated in both places but I’ll be using the Issue Tracker from BitBucket.
I originally got the idea for Snowball after working with the Xna Framework. The Xna Framework is a good piece of software for what it is but there are some things about which I just do not agree with:
The content pipeline only works with content in the serialized .xnb format.
There are certain content types which can only be loaded via the content pipeline.
Certain features don’t exist on the PC because they don’t exist on the XBox or Windows Phone 7.
Xna was designed as an abstraction layer for all the 3 platforms mentioned in the last point, so that one is somewhat understandable. I don’t want to write games for my XBox right now though, so why should things like drawing lines not be available to me?
With these points in mind I started working on Snowball. It’s designed to be an Xna like framework for making 2D games. It uses SlimDX on the backend, but that is completely abstracted away from consumers of the framework. What I want to do is design the API so that the backend can be swapped out somewhat painlessly.
I still have a ways to go before I will consider it a version 1.0 release. As of this writing, I’m transitioning to more of a ContentLoader class style for loading your game’s content. Any resource type from within the framework can be loaded by hand if you want, the ContentLoader class will just make it easier. After that I have a few other features like GamePad and Music which I would like to implement before saying I have a Beta type release.
The future after that is up in the air. I would love to try and have different implementations of the API for Xna and/or OpenTK.
I recommend for anyone who is interested as to why an API designer choose to implement the API in the way they did to try it for themselves. I have learned many things from this project including why certain design decisions were made by the Xna Framework team.
The Codeplex Snowball repository is finally working again. It had to be wiped out but I had the repository locally again. Codeplex will remain as the main site where I host Snowball but Bitbucket will continue to be updated.
Sometime at the beginning of this week my Codeplex repository for Snowball busted. I wrote them and hoped they would fix it asap. As of this writing it is still not fixed and I have not had any response from them.
So I then decided to try and pump my source code up to github. Although I was successful with the help of hg-git, eventually my local repository became corrupt. All the code in the working directory was ok of course, but I was unable to make any commits to the repo. I pulled the latest backup I had locally of the repository and decided just to fork off from there.
I then decided to give Bitbucket a try. I figure the more options the better. I still really like the way Codeplex is set up. I like the social aspect of github but codeplex seems more structured to me.
Going forward I’ll try to keep the code updated in all 3 places. Pushing to github is not a huge priority to me as it can be a little tricky pushing from mercurial to git, but I will try my best.
I’ve added a Samples folder to the repo now which I hope will help provide some kind of how to get started. The Walking Wizard sample shows the basics of getting a sprite of the screen and making it move with the keyboard.
Just a quick post to hopefully save anyone who finds this some time. If you need to convert a datetime value from a WMI query to a native DateTime object in C#, you can use the method ToDateTime() on the ManagementDateTimeConverter class.