Posts Tagged ‘Unity 3D’

Closure of fall 2011 and continued work in spring 2012

Tuesday, February 28th, 2012

Hi everyone!

It’s been a while now so I thought that I would sum up the last thing I worked on during fall 2011, as well as bring everyone up to speed about what I am currently working on right now. So without further ado, lets get going.

Small game project in Unity 3D – Fall 2011

The last thing I did in 2011 was to practically apply my previous programming skills in C++ by using  Unity 3D. I did this by plunging deeper into Unity 3D and its programming aspects by developing a small game in the engine. Though there are differences between programming in C++ and C# (which is one of the possible programming languages to use in Unity 3D), and also some specific tricks for programming in Unity 3D, a lot of what I learned during the courses in C++ could be applied in Unity 3D since both C++ and C# are object-oriented programming languages. An interesting thing is that I continuously throughout the development process of my game used the process of iteration to constantly keep it simple and working, adding features as I went along. This kind of approach is something I have talked about before and it worked really well for me. Try it out if you haven’t.

The game that I made turned out to be a management game which is very easy to digest. It’s called Log’n’Hog and as the player, it is your job to cut down, chop up, and deliver a small forrest to the saw mill by using different vehicles for the different tasks. The main idea of the game was to make it easy to understand and to get into with the simple mechanics of being able to change vehicle and only use the mouse for steering. You can check out a development video of the game below.

Bachelor Thesis – Spring 2012

Before rounding this post off, I thought that I would talk a bit about my bachelor thesis that I am currently working on together with fellow game design student Måns Billing. In short, it will focus on mythic structure in the narrative of  digital games, mainly by using the theories of Joseph Campbell and his work The Hero with a Thousand Faces, as well as Christopher Vogler and his work The Writers Journey: Mythic Structure for Writers. Both of these writers are concerned with something called the Monomyth (also known as The Hero’s Journey), which is a theory about how certain patterns in stories and myths constantly reappear throughout history. These patterns can be also be identified in modern litterature, as well as in movies and digital games. What we will do in our thesis, is to focus on how this theory appears or has been put to use in digital games, and how it can be used. Next time I will be back with more details concerning this thesis, which is our final work at the Digital Games program at Blekinge Institute of Technology before we graduate.

Until next time.


Jakob Lindh

C++ and continued work with Unity 3D

Saturday, December 10th, 2011

Hi again!

Some time has passed since my last post as I’ve been quite busy for the last couple of weeks. I’ve also decided to stop calling these updates weekly updates as there is no point in that when they aren’t weekly. It will be better to share things with you when I feel that I have something to share, and I hope you agree. So, in this update I will round up the work that I have been doing with the final C++ course at Blekinge Institute of Technology, as well as my continuing work with Unity 3D.

Wrapping it up with C++

The last two weeks have been spent with wrapping up the last C++ course that I was taking. And this was mainly done with a one week project together with another programming student named Tobias Lundström, who also took the course. Also, fellow game graphics student Kunal Lutra did the graphics besides his other studies, and it looks great. We used Haaf’s Game Engine for the project which is a 2D game engine for C++.

Below I will talk a bit about what we initially planned for the project and what we finally ended up with, as well as a short reflection over how the project went and what I learnt. There is also a short video of the game further down.

Initial idea

During our project we created a 2D Space Shooter named The Reach. Our initial idea was a 2 player split screen co-op game where the first player would control the steering and weapon systems of the space craft on his side of the screen by using standard W-A-S-D for steering, and space bar for shooting.

The second player would have his side of the screen and act as the ship engineer, diverting the ships power between engines, weapons, and shields, but also be able to repair different parts of the ship that got damaged during combat, which in turn would affect how the ships steering operated. The second player would control this by using the mouse, with an overview layout of the ship to quickly be able to give attention to required areas.

By having this kind of co-op in an otherwise ordinary space shooter, the idea was that the game play would be more dynamic and fast paced with the players having to constantly communicate. This would give even more of the pilot/co-pilot feeling where the first player would have his eyes on what enemies the ship was facing and thereby be able to communicate to the the second player if they needed fire power, speed, or protection, depending on the behaviour of the enemy. This would of course also work the other way around were the second player quickly could say which parts of the ship that were seriously injured and demanded that the first player avoided damage in those areas at all costs.

The enemies of the game would behave in ways that took advantage of this kind of system. For example there would be a hard hitting enemy that demanded more power diverted to the shields, and another one which came down really fast and needed to be avoided by moving quickly and thereby diverting power to the engines e.t.c.

Final game

As we quickly realized, the above vision was quite ambitious for a one week project and we were forced to cut a lot of features out because of the short deadline. What we ended up with was the ability to divert power to either the ships weapons, making the ship do more damage, but sacrificing shield protection, and the other way around, using the up and down arrow keys. This made it a singleplayer game, as the ship systems functionality was to simple to really involve another player. Also, we narrowed it down to one one sort of enemy that come in waves, using different moving and shooting patterns, as well as a boss.

During our project I was mainly occupied with programming the player and the ships systems, and Tobias Lundström handled the quite advanced enemy system and did a great job with it. He also handled the programming of most other parts of the project.

Reflection and Learning

I think that the initial idea we had would be interesting to see in a space shooter to make it more dynamic. Unfortunately time caught up with us we had to rethink the idea. This shows how important initial planning of a project is to make a functional game in the end.

Instead of planning a lot of elaborate features and systems from the beginning in a project. I think it is important to learn how to narrow game concepts down and start out small with a core game mechanic that really works before moving on to the next feature. Using this way of developing, you can constantly iterate through the game development process and ensure that a feature is really working and that the game is fun to play before taking on the next feature. The design principle KISS (Keep It Simple Stupid) comes to mind and it can be a very good guideline when designing games.

This will also help you to finish in time without having tons of more things to add before the game works and is fun to play. I also think that this kind of method can avoid stressing the development team out by taking one step at a time, and be able to finish quickly as you are only working on a single feature at any given moment. This is very important to make sure that the team doesn’t burn itself out which otherwise can happen, and I feel that this is often a problem in game development.

If I look at the pure programming aspect of this project I think that I have become more object oriented in mind when I program, moving functionality to different manager classes, like the players movement, shooting system, e.t.c. This is better instead of programming it all in the player class which make it all more complex, cramped up in one area, and much harder to work with. My programming teammate Tobias made me very much aware of this during the project and I thank him for opening my eyes a bit.

Also, since I am not a programmer at the core, but a designer, I think that having worked with another dedicated programmer has helped my communication skills with that certain competence area of game development. It helps you as a designer to better understand the programmers workload during a project and therefore be able to plan your work better, and cut out functionality that you know won’t make it during the given time frame. Knowing other competence areas and what they do and how they work is always important in any development team, and this of course goes for graphics, sound and music, e.t.c. It helps communication and will lead to a better working team.

This project wraps up my two courses in C++ at Blekinge Institute of Technology this year. I have learned a lot and have definitely gotten a better understanding of object oriented programming, how it works, and how to use it. It has not only helped my private programming skills, but as mentioned above, also evolved my communication skills with other programmers, as well as my way of planning.

Unity 3D – Continued work

For the next couple of weeks I will be returning to Unity 3D to learn more about game development using that engine. As you all know, you learn by doing, and I hope that the next few weeks will help me get a better understanding of the engine, as well as being able to continuously work more efficiently with it. My goal is also to be able to apply the object oriented thinking and programming from the C++ courses when I work with C# programming in Unity, and that this will help me further organize and structure my game development more efficiently.

The next time I post I will go more into my continued work with Unity 3D  and how it is proceeding.


Jakob Lindh

Weekly Update

Sunday, October 2nd, 2011


I’ll continue this week by summing up my intial work with Unity 3D and talk about what lies on the horizon for the coming weeks.

Unity 3D

So, as you know I’ve been working with Unity 3D for the last couple of weeks now, getting to know the engine and its functions better. The physics game that I am working on is coming along and has advanced further in its development. I’ve changed the players interaction from placing objects to actually manipulating the ones that are already on the playfield. As of now the player can rotate the triangles on the playfield to help get the ragdoll all the way to goal.


The physics game so far. Work in progress.


All in all, I have liked working with the very easy-to-use Unity 3D game engine and will continue to do so in the future. Although, there will be a break from this work in the coming weeks as I develop my programming skills.

Coming up

For the next ten weeks I will be attending two classes at Blekinge Institute of Technology which focus on object oriented programming using the language C++. For a long time I’ve been wanting to get more experience in the field of programming to make it easier to realize more advanced game play ideas, and also to be able to  fully utilize game engines like Unity 3D with all of its programming power.


Jakob Lindh

Weekly Update

Tuesday, September 20th, 2011


I’m back again for a new weekly update. A tad too late to really be counted as a weekly update, but nonetheless!

This week I’m going to share some of my experience with the Unity 3D game engine so far, and shortly discuss some of it’s greatest strengths and why I have choosen to use it as one of my weapon’s of choice for this semester.

Why Unity 3D?

Unity 3D is being continously developed by Unity Technologies, and it is according to me one of the most powerful and versatile game engines currently on the market together with Epic Games’ Unreal Development Kit (UDK). I have only worked with Unity 3D for a couple of weeks now, but below I’ll list some of the features that made me dive deeper into the engine.

Deploy your game everywhere!

Unity 3D has a very wide range of platforms that you can deploy to, including PC, Mac, Web, Android, Iphone, as well as the current generation of stationary consoles. This is probably one of the engine’s greatest strengths.

User friendly, sleek, and easy to get into

From my experience Unity 3D is fairly easy to use and get into. The interface is streamlined and functions and features are often self explanetory. Also, there are a lot of systems already in place for you to use, like first person controllers and particle effects.

Wide developer base and big community

There are a lot of developers that are currently using Unity 3D. This opens up for a large community where you can share ideas and thoughts, as well as quickly find help and solutions if you get stuck.

Low cost and royalty free

Unity 3D has a very reasonable price for the Pro version, which lets you deploy to PC, Mac and Web. Additional licensing is required for the other platforms, like consoles, Android and Iphone development. The Pro version gives you access to more features, for example the ability to use external version control and more powerful graphical features.  However, there is a free version with the more advanced features removed, as well as discounted student licenses. But the best thing is that Unity Technologies does not take any royalties what so ever for anything you create and sell with any of the licenses. Great!

What am I doing with Unity 3D right now?

Learning the ropes

For the last couple of weeks I’ve been going through tutorials and trying out different things to get the hang of most of the features that Unity has to offer. I’ve mainly been using 3DBuzz’s excellent video tutorials to get the job done. These are really great and you should check them out if you want to learn Unity. They go through everything from the most basic user interface to more advanced features like light mapping. Below is a screenshot I took when working on one of the tutorials where you build your own first level.


Working with terrain in Unity 3D.


Small project: A physics game

Starting today, I’m working on a small project that will result in a short and simplistic physics game. It will be the player’s job to guide a ragdoll through different levels, hopefully keeping it reasonably intact until it reaches its goal. The player will be able to place different contraptions in the ragdoll’s way to help him avoid danger and guide him home. Below is a screenshot from todays work. Still a lot to do, but when its done you’d better: Be fast, use as few contraptions as possible, and keep that ragdoll intact!


Physics Game: Work in progress.



Jakob Lindh

Weekly Update

Sunday, September 11th, 2011

Hi again guys!

As promised, I am returning this weekend with a short update on what things I’m currently working on. So lets get started!


This first thing is an adventure game that me and six other developers are currently working on. It is called Sjörök.

Sjörök  is a first person experience and entirely in swedish. It takes place in a fictitious 19th century swedish archipelago, long since abondoned by the inhabitants who once lived there.  Through puzzle solving and exploration, the player will find out what happened in this mystical and sometimes quite psychedelic environment, with its abandoned islands and misty waters.

The game will be released shortly, but in the meanwhile feel free to look at some beautiful screenshots or listen to bits of the soundtrack over at Sjörök’s Facebook page. You can also find a bit more information there, but it is all in swedish.

Unity 3D

My work in school this semester is amongst other things going to involve a deeper dive into the Unity 3D game engine. The versatility and accessability of the engine has made it my choice for game development in the foreseeable future, and I am just now learning the ropes of it. In my next weekly update I will share with you some of my experiences with the engine so far, so stay tuned!


Jakob Lindh