Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


Like
1Likes
Dislike

Unity Summer of Code Post Mortem: External Lightmapping Tool

By Oli Wilkinson | Published Nov 11 2009 10:01 AM in Interviews

unity project i&rsquo game time fbx system code great
If you find this article contains errors or problems rendering it unreadable (missing images or files, mangled code, improper text formatting, etc) please contact the editor so corrections can be made. Thank you for helping us improve this resource



We talk to Polish developer and Informatic student Michal Mandrysz about the creation of his External Lightmapping tool for Unity, a project selected
for this year’s Unity Summer of Code competition.
How would you describe your project to someone who had
never heard of it before?


The project is about creating an easy way to improve the scene look by adding pre-computed lighting and shadows from external applications. Basically the system creates a powerful bridge between
the Unity game engine and rendering engines such as VRay and Mental Ray. This means that Unity game developers will now be able to create lighting and shadows of a quality seen in architectural
visualizations incredibly easy.




What is your background and experience game development,
Unity or coding in general?


I’m a second year Informatics student at Wroclaw University of Technology. I’m widely interested in Science and Technology, focussed mainly around Mathematics, Physics, Computer
technology and Biology. As a young child I always wanted to make my own game and I tried to learn DirectX at that time, but I needed more mathematical background at that time, so I’ve turned
into mathematics and physics for some time. Later I’ve started to develop some software (simple game engines, calendars etc. ) using multiple languages (python, java, c++, c#, maxscript, as3,
php) for my own usage from which I’ve published only a small part. Idealist is one of the examples that will be shipping to shops on days.





A Scene Pre-Light Mapping

What inspired the idea behind your project?


Some time ago I was earning money on freelance scene rendering and when I first saw Unity I thought to myself that it would be great to have such beautiful lighting on which I worked before in
Unity.




What does your project bring to the table that isn’t
available already?


Well, everyone has its own light mapping workflow- some less painful than others, but my system minimizes the amount of work needed to bake the scene not only the first time, but also later on
when changes are needed.




Unity - Summer of Code

How would you describe Unity to someone who has never used
it before?


I would say that Unity is a great tool that both greatly minimizes the amount of work needed when developing games and simplifies amazingly the workflow with other tools (I think that’s what
the name is about !) such as Photoshop, 3d Studio Max, Maya and so on.


Using Unity you can spend more time thinking about what your game should be about, rather than spending it on figuring how the engine behaves.




What originally attracted you to use Unity?


Actually, my friends and I were searching for an good game engine with a quickly growing learning curve and after trying many engines we decided to pickup Unity.




Which platforms do you target with Unity when making
games?


Well, Unity currently works almost everywhere, but I would target PC and IPhone mainly.




What inspired you to enter Unity’s Summer of Code
competition this year?


My friend Piotr Szwach (great music composer and programmer) encouraged me to send my proposal and I’m really grateful him for it.




Would you have created your project without the
competition?


Probably yes, but the other and easier way, which wouldn’t be such effective. The competition made me put more effort in its quality also.




What does being selected as a final project in the Summer
of Code competition mean to you?


A priceless feeling that my effort wasn’t fruitless and this is most important to me.





Setting up the lightmapping

Development – Post Mortem

After you had the original idea, describe the process you
took in prototyping the idea and finally bringing it to completion...


On the beginning I had to make sure that I’ll not get to any roadblocks, so I’ve planned everything and so the development wasn’t that hard. However later on when I’d got
some initial feedback I decided to make the system more general and extendable in future. Whilst the system grew the development got a little bit harder and sometimes made me searching for solutions
for hours and even days.




How did you go about testing the project?


This was one of the hardest parts of the project. I’ve had to do numerous tests to make my system work, but really soon I’ve started to send the project at beta stage to people
interested in the project. Lucas (my mentor) also did some testing and was giving me a really quick feedback.




What do you feel went well in the project?


The project really simplifies the lightmapping process and can save a lot of time. I really like the feature for saving light, rendering and material presets that I’ve implemented in 3d
studio max.




What didn’t go so well?


I didn’t know that there are such huge problems with FBX importing compatibility in 3dsmax, as I developed the system it turned out that only the latest FBX plugin for 3dsmax imports the
ASCII FBX file in the right way.




What were the issues you had with the FBX importer?


I would feel much better if FBX would have had even the simplest possible documentation when comes to ASCII format. What was probably even worse is that it's easy to find some kind of
documentation for the newest FBX 2010.2 version, but there's no chance of finding the old ones.




If you were to go back and do your project again, what
would you do differently?


I would probably develop a binary FBX exporter which has more chances on being compatible. However the good news are that supposedly someone at Unity is already working at some kind of a FBX
exporter which could be later plugged into my system instead the current one.




What would you do the same?


I think that there’s not much to change now – so probably I would do everything the same way.





Back to Max for rendering

Which part of the project did you find the most
interesting or fun?


Testing gave me a lot of fun. The cycle: “Export scene” -> “Tweak lights” -> “Rebake all” -> “Come back and see the changes” ->
“Export scene”.... is pretty fun actually.




Which part of the project did you find the least
interesting or fun?


Reverse engineering Autodesk FBX format was fun, but also very hard and sometimes irritating, so I think that it was the worst part.




Did you have enough time to complete your project?


Luckily, yes. My family was pretty tolerant in this case and I could start my project almost at any time and end up late at night.




Is there anything else you’d like to have added or
spent more time on if you had the time?


Yes, providing the FBX exporter would be binary I would love to extend the system to Modo – which currently is my favourite modelling tool.




Is there any advice you’d like to offer any
developers based on your experience in this project?


Yes – Do not focus on adding new functionality but rather keep figuring out how to make the old ones faster, more solid working and more user-friendly.




Have you ever developed an addon for Unity before?


Yes, for instance a batch cubemap creator for materials which should pretend glossy, but I’ve never published it. Currently I’m thinking about adjusting them a little and sharing with
the society.




How did you find the process of creating an addon of
Unity?


Well, Unity has an enormous amount of examples at the wiki community and one of the existing scripts gave me the idea, which I’ve then pushed
forward using the Scripting Documentation which comes with Unity.




What support did you get along the way?


I didn’t need any, it was a very basic stuff. However I could turn to Unity Forum and some smart guys there.




Looking forward...

What do you plan to do next?


Well, there’s more than a lot on my mind recently. First I’d like to finish the game I and some of my friends started before Unity SOC, this surely will take me a lot of time.




Would you enter another Unity Summer of Code
competition?


Of course! Developing the system gave me a lot of satisfaction and priceless experience.




Do you have any other comments you’d like to make
about Unity, Unity Summer of code, your project or development in general?


Get Unity – it’s really great stuff. Get involved in developing it – it’s awesome.





Back to Unity to admire the results

Finally, you mentioned making a game with your friends
– would you like to share any information about it?


Actually it is the first game I'm making. We’re not out to make a big, huge, glamorous project like games from EA or Activision so we’ve decided not to make a FPS, RPG, or an RTS game.
We are trying to make small but not casual game for children. I'm not going to tell you what is the game's plot or who is the main character to keep it still confidential. Although I can tell you
which games are the inspirations for us: Thief, Mirror's Edge, Assassin's Creed, Crysis, Wiedzmin, Tomb Raider and of course some Disney-like games.


So what will it be? A platform game with next-gen graphics for children and adults who wish to face up with (or not) the dangerous world while sneaking, jumping, grabbing and solving logical clues
designed by 3 of us: me, Peter Szwach and Blazej Stanek with music composed by Peter.


I know making great looking graphic for games is very difficult thing. There are many small indie groups that have great ideas and graphic artists but their final game is simply crappy. Since it
is our first project I expect to gain great experience with it. Also we're not going to release any demo until we know it is looking great. The visual quality is very important for us and that is
also one of the things why I made my Lightmapping system. Its first implementation was made for our game. After joining Summer of Code I started from a scratch to make it easy for people to use and
extend.




Thanks Michal and good luck with your game!








Comments

Note: Please offer only positive, constructive comments - we are looking to promote a positive atmosphere where collaboration is valued above all else.




PARTNERS