Portfolio


Web Development

Using Html, Css, Javascript, Jquery, Bootstrap, Ajax/Json, Domino, Lotusscript (VB), Php.

  • A responsive photo-database with multi-file upload, categories, editing.

  • A project management system in a single webpage.

  • A dynamic data grid used to present, filter, sort, group and summarize json data. It uses virtual rendering and supports
    SQL-queries against a local browser database. Available on Github.

XArea

Multi-platform casual game developed with Unity3D, C#. Released on Windows Phone. iOS/Android on the way.
Team consists of one programmer, two artists and one sound engineer.


Features:

  • 25 unique levels in 5 groups. Endless mode.
  • Powerups and collectable puzzle pieces.
  • Gyroscope and swipe steering.
  • Leaderboards and achievements using GameCenter and App42 backends.
  • Animations, special effects, thematic music.
  • Tutorial, story, analytics.
  • In-app purchases.
  • Social integration.
XArea

Rocket Cars

I worked as a senior programmer and mainly with implementing vehicle AI. Tools used were XCode, Cocoa Touch, C++.


Features:

  • Different behaviors combined: path following, obstacle avoidance, separation.
  • Smooth steering: goal position slides forward each update.
  • Perform major and minor tricks while in the air using different speeds.
  • Nitro usage. Used to catch up with the player and for different overtaking patterns. Controlled by a statemachine.
  • Slow cars are treated as obstacles to avoid crashes.
  • Crash info is collected and summarized. Crash sites are drawn in AI debug map.
  • AI debug map: show cars, waypoints, obstacles, detection box, neighborhood area.
  • AI debug GUI: show currently active forces, speed, turnrate, waypoint time, overtaking states.
App Store

STORM: Frontline Nation

A grand strategy game situated in modern Europe. It contains a strategic gameplay level featuring Europe and North Africa, and a tactical gameplay level where the combats take place.


I was lead designer and lead programmer throughout the production cycle. Assignments together with features I personally implemented:

  • Planning the design and programming tasks, and distributing the assignments
  • Writing a majority of the design documents
  • Mission-system with over 50 mission types with customizable goal values, time limits and rewards (with functionality much like quests in MMOs). Story mission arcs for the 5 major countries
  • Diplomacy system that allows negotiating with several countries concurrently and includes offers like money, technology, a variety of treaties and covert information
  • A game database (30+tables) to store each scenario, and a majority of the code interacting with it
  • Constructing many of the game object classes and the hierarchy in C++
  • An advanced strategy AI that dynamically handles military, economy, diplomacy, production, construction, research, movement, mission fulfillment and victory conditions
  • A modifier system that change unit values temporarily depending on morale, experience, rank, terrain, weather, daycycle, unit kits and supply
  • Spies and special forces units that can infiltrate enemy lines in secret-ops carrying out sabotage and decoy activities
  • Lots of networking (client/server) and user interface programming
The game was developed by 4 programmers, 3 artists and 1 sound engineer using the cross-platform Torque Game Engine. The code was written in C++ and Torquescript (similar to javascript). It was released in June 2011.

Reviews

GameSpot (7/10)
Strategy Informer (7/10)
Out of Eight (6/8)
XGN (7.5/10)
GameGrin (8/10)
EveryEye (8/10)

RaceRoom - version 1

RaceRoom is a concept for the event entertainment industry. It contains 8-22 simulators, and software that features a Race Control Station which is custom made for professional and commercial LAN events. RaceRoom is based on games from Simbin, and features more than 450 cars and 38 world famous racing circuits. The concept is rapidly expanding, and now have permanent installations in several countries. The software use a subscription-model with quarterly updates.


I was lead programmer for this project during 2 years until completion. The Race07-engine, C++ and C# was used. Some of the features I've implemented includes:

  • The layout of the RaceControl GUI (design and programming) with C++/Win32
  • Converting the RaceControl program to C# and WPF/XAML
  • Lobby where clients connect automatically, and handling of multiple ingame servers
  • An advertisement system where custom menu and ingame banners are sent from the server to the clients when they connect
  • Spectator view where the camera switch between different cars and angles, and avoiding to show cars in the pitlane when possible
  • Warnings, weight penalties and time penalties set from the RaceControl
  • Support for triple screen resolutions
RaceRoom

RaceRoom - version 2

This is the sequel to RaceRoom currently under development. This version adds several new programs to handle the administration and the maintenance of a raceroom. It includes a FrontEnd and BackEnd for player respectively administrator bookings. It logs results from all racerooms to a central database. As well as dozens of other new features.


I worked as a senior programmer in this project for about 6 months. New programs and most new features were created using C#. C++ was used for the game client. Some of the features I've implemented includes:

  • Adding various player results and settings to the database (PostgreSQL) after each session
  • Dynamically creating pdf-files with race-results (graphics, lap times, track info, custom advertisement etc)
  • GUI layout of new C# programs. Including sortable headers, unsaved changes checking, advanced tooltips
  • Several ingame result-screens
RaceRoom

Nürburgring Formula One/Truck race simulator

This game is used at the Nürburgring event center ring-werk. It allows visitors to sit inside cockpits and to participate in Formula One and Truck races at the Nürburgring track. It's based on the Race07 engine, and was written in C++.


In this project I wrote most of the server-side code and parts of the client-side code. Some of the features I've implemented includes:

  • Creating a design document based on the the presented demands. This is available at request
  • Clients on the LAN automatically connects and joins the corresponding server (each client and server group use separate ports)
  • The server autostarts with the last used settings so there's no need for user interaction
  • Automatic reset after the driver gets outside the allowed track, drives in the wrong direction or gets struck. The last waypoint that was touched is saved and used for this
  • Predefinement of grid positions, so simulator 1 always start on grid position 1 and so on, regardless of in which order the clients connects

SmashTime

Casual game created with Flash Actionscript 3 as a solo project.
Click on the pictures to play the game and to use the level editor.


Features:

  • 25 normal levels and 5 bonus levels with special functionality
  • 17 different powerups and many types of bricks (1-3 lives, permanent, invisible, exploding)
  • Graphical effects (screen greyout, particles, fireworks) and fullscreen support
  • Timelimit, online highscore list and localization
  • A level editor that saves in .xml format

Online competition leaderboards

V-WTCC and Be Our Pilot were online competitions where the players competed in Race07 and viewed their results online. Prizes were awared to the winners. The code was written using php and javascript.


Features I wrote includes:

  • Live leaderboards included sorting and filtering on different fields such as player name, ranking, vehicle type, track and others.
  • Maintenance functionality for the V-WTCC competition: log-in, sorting and filtering information, removing and blocking cheaters, and the use of database replication

Thesis - Artificial Intelligence

Abstract from Coevolution and turnbased games:

Artificial intelligence plays an increasingly important role in modern computer
games. As the complexity of the games increase, so does the complexity of the AI.

The aim of this dissertation is to investigate how AI for a turnbased computer game
can coevolve into playing smarter by combining genetic algorithms with neural
networks
and using a reinforcement learning regime.

The results have shown that a coevolved AI can reach a high performance in this kind
of turnbased strategy games. It also shows that how the data is coded and decoded and
which strategy that is used plays a very big role in the final results.


The official location of the thesis can be found here.

Survival

Group project with 5 people over 5 weeks, with me as lead programmer.
A 2-player arena deathmatch game. Control your soldiers one-at-a-time to destroy the enemy soldiers. Use machine gun, mines and grenades. Pick up ammuntion, health and powerups on the battlefield. It was written in C++.


You can download the game here (~33 mb). It runs on Windows machines.

Phantasy Ball

Solo project. The practical part of a 5-week C++ university course.

It's a Breakout clone that contains 10 levels, and many different powerups.


You can download the game here (~0.4 mb). It runs on Windows machines.

Maya modelling

Maya animation

Lipsync. This was done during a 10-week university course in Maya animation.


Business programming

August '99 – August '01
Consultant work for Cardo - Programmer


These two years I was stationed at the IT-department of Cardo AB in Malmö. Cardo is a multi-billion dollar industrial port manufacturer with offices and salesmen around Europe. My duties included enhancements and upgrades of both their vast DB2 and SQL Server databases, and of the OS/400 and Windows applications built around them. As some tables included millions of records, writing procedures and queries optimized for performance was eminently important. Tasks also included database migration, advanced report generation, message queue systems, user interface and documentation. Later I worked on their new web-based sales system, used by hundreds of company representatives in their daily routine. Main techniques used: SYNON, ASP, Javascript, C.

August '98 – August '01
Commence Konsult AB - Programmer


Employed as a programmer in a consulting company. The first year my assignments included the development and maintenance of various Windows-applications. These were mainly sales-support systems, and my role included a number of meetings with the clients. Languages I used were primarily Visual Basic, VBA and SYNON. Access was used for relation database implementations. In addition, I did Y2K-conversions of AS/400 systems and some work on hand-held computer applications.




Contact
Joakim Långberg
Klippan
Send Mail