HeaderSIS.jpg

IS480 Team wiki: 2012T1 6P Project Documentation Tools

From IS480
Jump to navigation Jump to search
6pcube.png Home   6pProject overviewicon.pngProject Overview   6pProject managementIcon.png Project Management   Project Docs.png Project Documentation   6pMeeting minutesIcon.png Meeting Minutes   6PGralch.png Game Development


  Downloads   Tools evaluation   Diagrams   Project Hierarchy   Business Efforts   Team Reflections  


Tools and Technologies evaluation

Software Evaluation

We are a self-proposed FYP project team resulting not having a business sponsor or client to give us a list of software to be used. In the market, there are several companies offering similar products for a particular function. Thus, our team needs to evaluate the possible software to be used, which mostly we have not used before.

The approach that we took when evaluating a software is to first read online reviews on the software and shortlist a few names. From this shortlisted list, we will list down the functions they provide. From there on, we will categorized the functions and list our findings in our evaluation form. The table below represent the software our team had collaboratively evaluated.

Deployment
Software/Tool Description Advantages Disadvantages Conclusion Status
Amazon EC2 Cloud computing tool for web services without the need of physical IT infrastructure.
  • Pay-as-use basis.
  • Startup cost is almost none as physical infrastructure such as servers is not required.
  • Ease of flexibility in development programme used.
  • It is highly scalable to support any sudden spike and drop in active users’ rate.
  • Initial setup would take a while else not much disadvantages in using cloud service.
The amazon cloud server is definitely going to be used within our project development as it provide the computational power to let us test our project without any initial setup cost at all and it provides the flexibility of development engine deployed. Recommend
SmartFoxServer 2X Multiplayer community development tool that supports Android, iOS, Unity 3D
  • It is a free server that provides out of the box functionalities for interaction between game clients and web server development.
  • It has specific support for Unity3D projects as well as Android platform projects.
  • It is 100% free, for its community edition that supports 100 concurrent users.
  • It can be deployed onto the cloud, windows, mac os and linux.
  • Cloud deployment is easy as rightscale supports the installations of SFS 2X onto EC2 instance with few simple steps.
*Once scaling up is required to support more concurrent users, license fee can be steep. This is the likely that we would choose this to be our game server as it fulfills the requirements that our game project need and it scalable anytime when required. Recommend
Skiller Multiplayer SDK for game server Free mobile social gaming platform for developer to develop and include social and multiplayer gaming feature in their games.
  • Free SDK for developers to develop multiplayer feature.
  • SDK provides cross platform support (J2Me, Android, Windows 7 and BlackBerry)
  • Not widely adopted, small community and little support or guide.
Though it is free, it may not be the best SDK or game server for multiplayer support as it is still not as robust and widely adopted by developers. Keep In View
Google App Engine A cloud service that provide computation power that scale according to your demand. It’s a cloud service provided by Google which charges on a pay-per-use basis.
  • Ease of setup
  • No initial cost for developmental and testing purpose.
  • Ability to scale and provide failover without the need for developers to spend time for tedious hardware configuration.
  • Have to use Google’s proprietary database, big table and datastore else the next best option is Google Cloud SQL for relational database support.
  • Lesser control as compared to Amazon EC2.
Google App Engine would be one of the option for our project development, however taking into consideration of using game server like SmartFoxServer 2x which is highly compatible and easily configurable on Amazon EC2. The latter option would most probably be the final choice for cloud service. Keep In View
Development
Software/Tool Description Advantages Disadvantages Conclusion Status
Andengine Free 2D OpenGL game engine for Android mobile game development.
  • Based on Java language, everyone in the team is familiar with Java.
  • Open source and its free.
  • Easily integrated with eclipse, an IDE that the whole team is familiar with as well.
  • Has a community of users, tutorial and guides are also available for learning.
  • Not really scalable to other platforms, if the game would to be ported to iOS or other mobile operating system in the future.
  • It is limited to 2D, future intention of adding 3D graphics would not be possible.
Though the limitation of this engine is high, it serves the needs of our current project, and it is open source. It is a likely candidate that our team would choose as the game engine for our project. Recommend
Unity3D A game development tool that supports both 2D and 3D development. Supported platforms includes, PC, Macintosh, iOS and Android.
  • Ease of publishing developed game to multiple platforms.
  • Ease of testing, as all changes and addition of gameplay logics and scenes can be tested accurately on the editor without deployment.
  • Good support and guides from forum, wiki and working examples.
  • Ease of integration with multiple game servers.
  • Very high license cost
  • Highly complex for first time mobile graphic game designers
Unity 3D would be recommended for its support from Unity’s large community and for its powerful game engine which ease the development work which shorten the development time needed in the long run. Recommend
Corona A platform for mobile development, allow multiple publication across platforms and OS (iOS, Android, Kindle Fire, Nook) with one single code base. Automatic scaling of screen resolution of application depending of screen size of device.
  • Support windows and mac OS.
  • Support database interaction.
  • Large community of users.
  • Cheaper license fee as compared to unity 3D.
  • Have to pick up LUA language.
  • Not as powerful or extensive as Unity 3D.
This is a very affordable mobile development platform, however for it is not the best candidate for our game project development. Keep In View
Gamesalad 2D Game Engine
  • Ease of use - able to create games relatively easily (compared to engines like Unity 3D) through its simple drag and drop features
  • A major drawback for game salad is that it does not support database, which means that we'll be unable to proceed with our “challenge a friend” with game salad
Given the fact that the “challenge-a-friend” feature is one of the main selling point of our game, we have decided to drop game salad, even with it’s easy to use interface. Reject
MySQL Open source relational database
  • Ease of use - able to create games relatively easily (compared to engines like Unity 3D) through its simple drag and drop features
  • A major drawback for game salad is that it does not support database, which means that we'll be unable to proceed with our “challenge a friend” with game salad.
Given the fact that the “challenge-a-friend” feature is one of the main selling point of our game, we have decided to drop game salad, even with it’s easy to use interface. Recommend
Project Management
Software/Tool Description Advantages Disadvantages Conclusion Status
Jira A project management tool that helps users to track bugs and tasks, link issues to related source code, plan agile development, monitor activity, and report on project status.
  • Tight integration of bugs reporting to the particular line in the source code.
  • It has various add on such as greenhopper (for agile planning) and fisheye (bug tracking). However, these additional plugin costs monthly subscription fees.
  • The dashboard customization level is more in depth than Joomla project fork.
  • The task tracking is awesome, where the PM can know the project progress at one glance.
  • It supports SVN version control and the source code and bug tracking can be linked together.
  • It supports Google App Engine integration
  • It is a web portal, where team members can access via mobile devices.
  • The greenhopper plugin for agile development is not released yet. JIRA allows PM to issues task to members and track the progress via the dashboard. But it lacks the MS project interface, where PM can have a list view of the tasks and plan the iteration accordingly.
  • The configuration page is confusing. The user guide is not explicit in the instruction.
  • The page takes a long time to load. And the price for monthly subscription is $10 for 10 users.
  • Team members need to log in to web page and indicate the start of a task and vice versa for the end of a task and this could be a hassle.
JIRA is good but the price for monthly subscription is too expensive. The bug tracking is good as links to the line of code. But an additional plugin cost an extra 10 dollars per month. And the features offered are not as useful and is unsuitable to be used in our project. Planning tasks is important to the PM. But JIRA does not offer an as good interface as the MS project for PM to plan the schedule. Hence we conclude that by coupling MS Project with SVN, it serve the necessary needs for our project. Reject
Joomla It is project management system that is build on open source and can be extend with add on(subject to additional pricing).
  • It has a dashboard where user can customize and show the KPIs of the project.
  • It has a file management system where teams can share their documents and files
  • It has a calendar feature.
  • It is task manager, where PM can easily assign and keep track of tasks.
  • It is free for the above mention functions.
  • It can be hosted on a shared hosting domain.
  • It page loads slow because it is a web application
  • The configuration and setting up is a complex.
  • The file management system does not support version control features.
  • The web interface is not as user friendly and users are expected to spend quite some time to learn and use it.
This web application is promising but it will not be suitable in our context because it lacks the version control. We need a version control for development iterations. The task tracking is good for PM, but it is not sufficient to attract us to use it. Reject
Others
Software/Tool Description Advantages Disadvantages Conclusion Status
SVN A source control management software that allows collaborative development and support versioning of shared files.
  • Free server provided by school.
  • Setup up is really simple and the whole team has experience using it.
  • SVN is free and support multiple operation system.
  • Unity project files can be committed and updated without issues (Certain unique files have to be configured to be ignored).
  • Simple conflict management.
  • Disadvantages

No branching is allowed, users are not able to create an individual branch of the current codes to test things out.

SVN is the right source control tool for our project. The team is familiar with the usage of the software and its ease of setup help the team to get started with source control in the shortest amount of time. Recommend
Github An open source distributed version control system that is lightweight and fast. It provides additional branching and merging feature that other Source Control Management (SCM) software does not provide.
  • Support multiple local branches that allow developer to test out and commit ideas. Developers can then switch back to the original state and merge the changes in or just throw all the experimental work away.
  • Distributed SCM, every user has a full backup of the main server which creates a multiple backups, having no single point of failure. Developers do a clone of the source code instead of just checking out the tip of it.
  • Faster operations as compared to SVN (commit, update, logs and Diff) except for cloning which usually only take place once during the initial setup.
  • Conflict management is not as straight forward as SVN. Developers require certain know-how of the command prompt commands to allow unlocking and resolving of conflicts.
It is really a great source control software with plenty of nice features that might help out the project development, but it come with a price of a higher usage complexity. Reject
Microsoft Expression Blend 4 For prototyping purposes
  • Ease of use – easy to create a working prototype within a short period of time
  • Suitable for hi-fi prototyping for games as Sketchflow Animation feature in Expression Blend makes it possible for users to get a better feel of the gameplay, such as throwing of rocks at enemy etc.
  • Free for SIS students
  • NIL
Our team has decided to use Microsoft Expression Blend 4 as our tool for hi-fi prototyping. Recommend