The Development Environment!

Ancient Armies - now in the new and improved .net 3.5!!!

Ancient Armies – now in the new and improved .net 3.5 framework!!! (Click for full-sized image)

This week saw a fair bit of work, of which the biggest was the upgrade to my development tools and environment.

Sorry for the fairly techie nature of this post, but maybe it will help other home developers with picking the tools that they need for some serious home development! 🙂

Ancient Armies used to be coded using Visual Studio 2005, with the game targeting the rather antiquated .net 2.0 framework. Both of these are very old and lack many features that would really aid Ancient Armies development going forward.

In terms of tech, the key thing that I wanted access to was a Microsoft technology called LINQ that can only be found in .net 3.0 and later. Alas, this version of .net is not supported by Visual Studio 2005 (it is simply too old).

The primary catalyst that drove forward the upgrades to my tooling was the release of the rather excellent free development environment from Microsoft: Visual Studio 2015 – Community Edition. This edition is far richer and far more capable than my old Visual Studio 2005 environment. Plus, it also gives me access to the .net 4.6 frameworks and all earlier versions down to 2.0.

I decided that whilst upgrading the development environment, I might as well upgrade my entire toolset – including my source control system from Perforce.

This latter tool is very important as it looks after my source code and keeps it safe. My version of Perforce was very old, so it would be quite a jump to upgrade it to the much more modern Perforce Helix.

For me, the upgrade to the new source control tool was by far the highest risk. A fair bit of time was spent backing stuff up to make sure that I had somewhere to go if things went wrong. Luckily, in the event, the upgrades went very smoothly.

So what tools do I use in my development environment? And how are they connected?

My fully integrated development environment!

My fully integrated development environment!

The above diagram shows the tools that I use. They are all free or very, very cheap 🙂 I will provide links later.

This system is extremely powerful and is a full end-to-end solution from requirements and documentation, through to task management and then ultimately onto the source code.

Having an integrated system like this enables me to see how much progress I have made and to keep track of this progress, without really having to do much in the way of extra work.

It also helps me manage the project and keep track of any issues or design decisions.

The best thing about the above tooling is that it is all scalable. A very handy feature, should Ancient Armies sell well!

Here is the detail on the tools that are used:

Microsoft Visual Studio 2015 Community Edition

Visual Studio 2015! - (Community Edition) - This is where I do all my coding!

Visual Studio 2015! – (Community Edition) – This is where I do all my coding! 

https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx

This development environment is completely free and can be used for commercial use, provided that there is only one of you. So in my case, it fits my purposes very well indeed.

I cannot begin to describe what an improvement this is over my rather old Visual Studio 2005 system. The result of this upgrade should be increased productivity and the provision of access to much more modern technology.

Perforce Helix

Perforce Helix! - My source code configuration management system.

Perforce Helix! – My source code configuration management system.

http://www.perforce.com/downloads/helix

Source control is one of the most important aspects of software development. You want to be able to work on your code from multiple places, as well as being able to compare, rollback and submit changes to that code.

In addition, the source control system keeps your code nice and safe. This is very important as your code is an asset that can quite literally represent years of invested effort!

Without a source control system, development would be very difficult indeed.

This tool is available for free for teams with up to 20 people. That plus the fact that it is much better than SVN and suits my development processes much better than GIT, makes it a no-brainer.

Atlassian FishEye

FishEye! - My source code integration and management system.

FishEye! – My source code integration and management system.

https://www.atlassian.com/software/fisheye/overview

FishEye forms the bridge between Perforce and JIRA. It allows me to check in source code within Visual Studio and have that code automatically allocated to a specific JIRA task.

In addition it provides many more source code forensic tools, which enhance and supplement those available in Perforce.

The cost for this system is $10 usd for one year of support for 10 users. You can still use it after that year, but it cannot be reinstalled, nor upgraded if outside of the period. $10 a year seems like a good price to me 🙂

Atlassian JIRA

JIRA! - My task management and bug tracking system!

JIRA! – My task management and bug tracking system!

https://www.atlassian.com/software/jira

JIRA forms the hub of my efforts. Without it, I would have no idea what tasks I currently have to do, nor would I know how far through those tasks I am.

This sounds like an optional tool, but when one is working on a large project like Ancient Armies, one needs a means to log tasks and bugs so that they are not forgotten and to enable them to be planned properly.

JIRA also provides me with estimation metrics, both actual and predicted as well as providing direct linkages to my requirements, documentation and source code.

The screenshot below shows the actual source code changes related to the above task. From here I can even view the code changes themselves – a very handy feature when one is investigating previous changes to the system.

Source code integration with JIRA!

Source code integration with JIRA!

The cost of this system is exactly the same as for Fisheye. An absolute steal in my opinion!

Atlassian Confluence

Confluence! - My document and requirements management system. This is a view of my design document for Ancient Armies' new directory structure.

Confluence! – My document and requirements management system. This is a view of my design document for Ancient Armies’ new directory structure (I’ll discuss this in a later post – honest!).

https://www.atlassian.com/software/confluence

Confluence is my documentation and requirements tracking system. All project documents are stored here and are ‘live’, in that they can be linked to various JIRA tasks and issues.

Having all of one’s document in one place cannot be underestimated. Having the ability to link them to JIRA tasks and issues is just priceless. For example, one could create a requirements document and link each requirement to a JIRA issue. As the issues are worked on, the document updates itself in real-time to show the current progress. Overall, pretty awesome!

A screenshot of my requirements from very early on in the project. Each requirement is connected to a JIRA issue.

A screenshot from Confluence of my mapping requirements from very early on in the project. Each requirement is connected to a JIRA issue. This enables me to instantly see the state of the project.

Anyways, that’s it for the Ancient Armies development environment tour.

As a result of these upgrades, I am now in a much stronger position. Ancient Armies now has access to much more modern tech, which should increase its shelf life, plus I have access to many programming constructs that were simply not available to me prior to the upgrade!

That’s it for this week.

Laters

RobP

Advertisements

2 thoughts on “The Development Environment!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s