Sunday, December 4, 2011

Arkanoid 3D

My current personal side project is to create a simple 3D version of Arkanoid.  I will be using Direct3D 10 and C++.  Other than DirectX and a yet-to-be-determined audio library, I won't be using any third party libraries.  This project serves a few purposes, 1: to develop a game from start to finish, that is complete. (Eg, start-up screen, menu screen, loading screens, ....) and 2: To be used as a demo to show to different recruiters, to portray my ability level.

So far all of my personal projects have had a specific goal in mind, not one of them had the goal of being a complete game.  Most of the time the goal was to learn some new technology.  For instance I created a Pong game, with the goal to learn Allegro 5.  Although the game was fairly complete it wasn't very polished.  Later on I made another pong game: Paddledroid, with the intent of learning how to program for the Android OS.  Paddledroid again, was fairly complete, but it still lacked a bit of fine tuning, and features.   On another occasion I put my efforts towards developing a tower defence game that I titled RoadBlock.  The purpose of that was to learn a bit about graph traversal, and different algorithms like the A* path-search algorithm.  The list goes on...

So this time around my goal is to develop a complete game, that has all the features and refinement (as much as is feasible) of a game that is fit for distribution.   Bear in mind that when I say this I refer more to the gameplay quality, for when it comes to graphic design, and anything art related I have a relatively big handicap.

I am currently very happy with current status of the project. To handle the different states of the game, such as intro screen, menu, and gameplay states, I created a state manager.  The game currently has an introduction sequence, a main title/menu screen, and a game running state.  In the next day or two I will add a state for when the game ends.  The Main menu only consists of 2 options, start and exit, all that is left is to find an adequate font and a background image.  The game state is working and functional.  The only things that need tweaking are: the 3D models for the ball, paddle, and bricks, and the collision detection for ball-box collisions.  After that the game will be fully functioning and it will be time to add in some eye candy.  Things like fancier animations when bricks get hit, sound effects and background music, and other aesthetics.

So far I am happy with the progress.  Visit Arkanoid 3D - Adam Kromm for more info.

Friday, December 2, 2011

Milestone 1 nearing completion

The project that I am working on has been split up into six milestones.  Milestone one is nearing completion, major coding and small scale testing has been done.  Next up is to try it out on the intended servers in full scale.  This also comes after switching from using Java with SVNKit to using C# with SharpSVN.

The purpose for milestone one is: Determine code deltas for each branch.  The purpose of this milestone is to determine the code differences between different branches.  For example how much code has changed between team branch 1 and the integration branch and vice versa.  By discovering the differences, we can pre-emptively discover potential merge conflicts.

The purpose of the following milestones is to then take this data and discover where in the code merge conflicts are most likely to arise.  We can then notify developers a lot earlier in development where problems could arise, and thus speed up production time.

More to come...

Thursday, October 20, 2011

NDA delays.

After almost a month (possibly more), the NDA's between the University of Calgary - or more specifically, Jonathan Sillito, Shaun Phillips and I - and the Company we are going to be working with, are signed.  The company has requested via the NDA to remain anonymous.  So from here on they will be referred to as "The Company".  Hopefully now that the NDA's are signed and in place it won't be long until we have access to their source code repositories, and can start data mining.

On another note, school work is adding up fast.  In this next week I have 2 tests, a 3-5 page essay, and a glossary due.  So I'm a little short for time to say the least.  I will also be interviewing with a Chilean company on wednesday to see if I can work part time remotely doing software development.

At this point all personal projects have been put on hold to make time for school, and other obligations.

Adam Kromm.

Wednesday, August 24, 2011

University Work - Updated

Here is a short update with my current work at the University of Calgary Software Engineering Department:

My just finished sub-project that will contribute to the main tool mentioned in an earlier post, is to make a tool that will allow a user to enter in a revision number, to calculate analytical data.  The tool first uses the revision number to find out what changed during the commit that corresponds to the revision number.  It then scans the SVN repository and figures out what branches have received the changes from that commit, and when.  It also determines which files from the commit were merged and which weren't, this is to handle cases where there is a partial merge, and to calculate the percentage of the commit that was merged.

Once this data has been determined, it is printed out to the screen in an easy to interpret, human readable form.  At a later date this tool will be expanded upon to output data in a way that will allow it be utilized int a GUI.  The GUI will be used to visualize the timeline for changes in a commit being integrated into other branches in the repository, among many other things.

Adam Kromm

Saturday, August 6, 2011

University Work... Conflict resolution

On Wednesday I started my new temporary full time job as a research assistant at the University of Calgary. I will be working with Professor Jonathan Sillito and his masters student Shaun Phillips, to create a tool that will allow the visualization and analysis of a SVN repository tree. Better said I will be creating a tool that will allow a company with multiple teams and multiple development stages visualize them, most likely with a graph, and view potential merge conflicts before the actual merging needs to happen. This will allow companies and developers to locate and recognize potential conflicts and problems before they happen and will therefore allow developers be more aware of other developers and thus allow them to collaborate more intelligently and efficiently.

Current progress is pretty good. I'm going to split the tool into two parts: the repository analyser and the visualiser. This will allow the analyser to run in the background generating the files for the visualizer, then the teams can load up the visualiser and load the most recent data generated and display it. This will allow the visualization to be smooth so that there is no time wasted waiting for the repository to be analysed while in a meeting.

The tools that I have been using so far are Java and SVNKit.

Because I have been working at the University it has limited the time that I have to work on personal projects like DirectX. I still have managed to find some time to continue working on learning DirectX 10 and HLSL 4.0, it's just not as fast as I had hoped.

Tuesday, July 26, 2011

Light Reading material.

I recently ordered two books from amazon. The first is Ultimate Game Programming with DirectX. and Game Programming Gems 8. Some time late September or early October I will be interviewing for an internship with the Microsoft Game Studio. My goal is to get to an intermediate skill level with DirectX 10, and HLSL 4.0 so that I can be prepared for the interview process.

So far the "Ultimate Game Programming with DirectX" book has been quite good, with very good explanations. The Game Programming Gems book has been quite technical, and a little over my head, but I expect by the time I'm done with the DirectX book, I should be able to make use of the Gems.

Friday, July 22, 2011

First Time...

Hi, so this is the first blog that I've ever created.  I will be using it for multiple different reasons, a few that I can imagine up right now would be, project status updates/releases, tutorials, programming thoughts/ideas, and most likely a lot more stuff.

I am also currently in the process of learning DirectX 10.  I will be following a set of tutorials I found at  I will be keeping the code that I create in a Git repository here.  When I feel my understanding of DirectX is sufficient I will start creating other projects in github under the same username.  So be sure to check there for more stuff too!

Keep coming back and you will be sure to find a lot more content!