Archive for the ‘coding’ Category

Contributing code to the project

Saturday, October 10th, 2009

What I have to say now is specific to the code and doesn’t involve the artwork at all.

I have been thinking about how we can get as many people playing the game as possible and I think I have hit upon a winning formula. In the very distant future when Hardwar is mature and fun enough we will try to get it distributed on different platforms such as xbox live, steam, play station, etc.

I think this would be both good for the project and open source as a whole. My plan is that we charge for the game in these distribution channels however release the same code base online for free as it is now and always will be. My belief is that people who use these distribution channels are happy to give money to get the game. If not then they always have the choice of downloading directly from our website.

With this plan issues which I have not accounted for may arise to do with the licensing on the code base. One example I can think of right now is if we need to integrate proprietary APIs to make the game work on certain games consoles. Since we’re using the GPL 3 for our code base what do we do? We would not be able to include the proprietary API in our open source code. We also want players to have the freedom to play our game anywhere even if that means they would rather trade freedom for convenience on a closed source games console.

I think the solution is that we have a contributor license agreement for the code base. This would allow us flexibility to publish Hardwar to wherever we wanted while still keeping the game free software.

It’s an issue of trust. I think that trust is earned and so far I have proven myself with my past work and also this project. I am the sole contributor to the code and own all the copyright on it. This change would be business as usual, so I don’t see any problems with this. My motivations for this change are strictly to promote the game in markets that have so far been unreachable by open source games.

Right now our community is non-existent which is why I am proposing this sooner rather then later. Everyone would know what to expect when getting involved with the code.

Building Placement is working

Saturday, July 4th, 2009

I’ve finally worked out most of the problems with the dragging and dropping of buildings in the editor and it now works! Not only that but the buildings are added to everyone who is in the game. Very exciting to see after all this effort.

I even made a video of two clients being connected to one server to show this off.

threads are hard work

Thursday, May 7th, 2009

I just pushed up revision 77 which includes my first implementation of threads on the server code. A thread allows for the execution of multiple pieces of code “at the same time”.

I’m currently using it only to manage the clients on the server and there are still bugs in it. I have been reluctant to upload anything until now because it has taken me quite some time to get the code back into a state where the game loads again. Unfortunately there is nothing to show off this time as it is all server side.

My plans are to get this working correctly before I move on to object placement/level editing. The idea is that only the admin can have access to such features, which is why I am working of the server first.

Loading screen redux

Sunday, March 22nd, 2009

Only one day after posting my poorly done concept artwork for the loading screen and I received an amazing response back from the community.

Below I have posted my original drawing (left) and next to it is Tranberry’s effort (right).

As you can see it is really looking good and I am currently making an effort to get it into the game.

This however is taking time because I have removed CEGUI in favour of MyGUI, a different GUI library. I am also in the middle of finishing my university course so there won’t be many code updates until next month after my final year project deadline. I will be active in the forums though so please come and join in the fun.

Network programming

Saturday, January 24th, 2009


I just started working on the networking in the game. It meant moving a lot of code around but I’m pretty happy with the results which is it very uninspiring connection screen (hint hint UI artists) which after connecting to a server will load up the main game.

We’re using Enet for the networking library which can be pretty tough to get your head around the code, however it’s worth it.

Apart from initially connecting to the server the code does not do much else at the moment. However it is exciting to see how the code forms more and more of a game whenever I get the time to work on it.

I already committed this version to bzr so you can check it out and see. You’ll need to do “./hardwar –help” to get a full list of commands.