This weekend we had the very first Crystal Space conference in Aachen (Germany) and it was really great! So first I really would like to thank the university of Aachen (actually the ZLW/IMA RWTH-Aachen department) for this enourmous opportunity and for the very good organization there. In addition I would like to thank the Hanss Martin Schleyer-Stiftung? and Heinz Nixdorf Stiftung for sponsoring this event. Special thanks certainly go to Prof. Dr.-Ing. Klaus Henning for having this idea in the first place and proposing the conference to me. I would also like to thank Uschi Rick for organizing the practical aspects of the conference at the location of Aachen itself. Additionally I'd like to thank Martin Henne as one of the developers on the truck driving simulator (which is the project that actually started all this) and Tom Tiltmann for his help and also for letting me stay at his place during the conference. Also a big thanks to the technical staff at Aachen for being with us all the time and helping us make sure the streaming and video recording stayed operational. And finally I really want to thank all the people who participated to this conference. It was all of you together (both speakers and non speakers) who made this conference a real success.
Now here is a summary of the events during the conference:
On friday Marten and I arrived in Aachen. Marten visited my place in Belgium first because the flight to Brussels was actually cheaper for him. And then (after missing the right exit to Aachen so we had to enter the city from the other side) we arrived at the ARPA (conference location) at about nine a clock in the evening. Several other people were there including a few developers and people from Aachen. We didn't stay long there because there wasn't actually a lot to prepare yet. We checked the equipment a bit (like the video cameras and streaming) and then we went to get a drink somewhere in the city. The weather was really very nice and there are a lot of nice places around the area where the conference was located.
On saturday the conference started for real. Most of the Aachen crew and the Crystal Space developers and organizers arrived at about nine in the morning and then we discovered that somehow the Crystal Space site was gone! Luckily Andres Freund (maintainer of the Crystal Space site) was with us so he could quickly fix up a temporary solution. He couldn't access his real computer with the backups on it at that time so the site was only partially restored. Later on he managed to get the IP address of his home computer and then he could fix the site for real. Probably the site was actually removed by a combination of some maintenance work done by Andres the day before and a run-away cron script removing a bit too much. It was also around this time that we setup the streaming video and posted the url's to the streams on the (partially restored) site.
At about ten a clock people started arriving. The Aachen crew made a polaroid picture of everyone who registered and then that picture was pinned on a map of Europe (and a few smaller maps of other continents). Hopefully someone made a photo of that so that we can show it later. Everyone also got a welcome package containing a Crystal Space T-shirt, a small toy-truck, some sweets, two tickets for the lunch and dinner, a map of Aachen, and some information about the conference and the university. During the conference everyone could go down in the building and have some cookies, cake, coffee or some fresh drinks. There was plenty of stuff to choose from.
About 30 minutes later Professor Dr.- Ing. Klaus Henning gave the very first talk in which he introduced the university and his department and gave some practical information about the conference and about Aachen itself. Immediatelly after this I followed with a VERY short keynote :-) Normally there would have been a demo from Hristo Hristov (Erroroman) at that point but due to some hickups he wasn't able to arrive friday evening (actually he was in Aachen but at the wrong spot) and thus didn't have time to try to solve the technical glitches in getting his demo to work on the projector system. So we decided to skip that demo and try to do it again later that day (which actually happened). BTW, Hristo and his two friends travelled about 2000km from Bulgaria to visit the Crystal Space conference, and they did it by car! Talking about dedication :-)
After this introduction we had a small break and then at 11:30 Frank Richter (res2k) started his first talk about shaders. Frank talked about how shaders work in Crystal Space and how they integrate with the engine and renderers through the renderloop system. He also talked about techniques and passes. His talk was technical but not too technical so I think it gave a nice introduction about an important part of Crystal Space.
After Frank's talk we had lunch in a nice restaurant. Due to the nice weather we could actually sit outside and it was really great. The food was a buffet with warm and cold stuff and you could pick whatever you wanted. It was really great.
At two a clock I had my talk about Crystal Entity Layer. I gave an introduction about what I consider the key concepts of CEL and explained a few of the most important subsystems. Then I also gave a few practical examples on how to use those subsystems and how to create entities.
After my talk Marten Svanfeldt (thebolt) gave a small overview of the current lighting systems in Crystal Space (lightmaps, software dynamic lighting, and hardware lighting) and their limitations, and then he explained a bit about some improvements that we have to make in the future and clarified (on a high level) some of the shadowing algorithms that can be used. He also talked about the new lighter he is making (new lightmap system) and how it can use radiosity.
Following a short break in the program there was a parallel session where I talked a bit about optimal level building. In this talk I explained some techniques like packing materials, sectors and portals, using Dynavis, render priorities, and binary alpha. I also showed a few levels in Blender and Crystal Space and demonstrated why one version was slower compared to another version. At the same time as my session Amir Taaki (genjix) was doing his session on 'Artist Perspective'. Since I haven't seen that talk yet (going to watch the recorded version later) I can't tell you anything about it.
To conclude the day (at six a clock) we had Arianna Benigno doing a talk about Virtual Annelov and the Cacavan team (with M. Castrillon, E. Delgado, C. Guerra, M. Padron, Y. Rodriguez, J.P.Suarez, and A. Trujillo) doing a talk about their terrain visualization project. I had a hard time deciding on which talk to follow but in the end I watched Arianna's project. She did a very nice non-technical talk about how she adapted PlaneShift to make a kind of role playing game to help physically disabled people and also archeologists to visit archeological sites from the Bronze Age and perform scenarios in the game (replaying in a role playing way what the people at that time probably did at that time). I can't comment on the Cacavan demo yet but I will also check that out later on the recorded version.
Around this time Hristo, Boyan, and Vladimir managed to fix the demo so we all went down to the big conference room and we completely darkened it and then we enjoyed the show :-) Hristo didn't fully manage to get the demo working using the features that he really wanted to show. For example, dynamic shadows were still missing and there were a few performance glitches here and there. But even with those limitations the demo managed to impress everyone. The level and models were done by professional artists and Hristo's coding abilities made it all fit together VERY nicely indeed. The demo will be made available later as a free download. The program itself is written in Python and uses both CS and CEL.
This demo concluded the first conference day. Already at this time I had a very good feeling about everything. Things were going very smooth and the talks were really good. After this a big group of us went out to eat something in the city. We talked a bit about things and Crystal Space. Most people then went back to wherever they planned to sleep (youth hostel or hotel or whatever) except for a few people who managed to stay at the conference place the entire night (hi caedes! :-)
Someone else who didn't sleep too well was Marten. We wanted to transfer as much of the recorded tapes to his laptop as possible but the transfer was in real-time! That means that to transfer a one hour session you need one hour. And every hour someone has to change the tape. So Marten set his phone to wake him up every hour during the night so he could change the tape. A big thanks to Marten for doing this!
The next day Marten still managed to do his talk about shaders :-) In contrast with the talk from Frank on saturday, Marten's talk was a lot more technical and in depth. He didn't talk so much about how shaders fit into Crystal Space but more about the actual writing of a shader (using the CG shader language). He also demonstrated the shader in a real-life demo so you could see the different effects. After one hour Marten paused his talk and after the pause Luca Pancallo (Talad) started with an in-depth talk about the PlaneShift MMORPG game (http://www.planeshift.it) and a real-life demonstration on the running server. It was amazing to see how one event was visible on four different 'channels'. First there was the actual demonstration done by Luca as you could see it if you were there in person. Then there were the people watching the streaming video of the demonstration. In addition to that several people were actually in game during that time and watching (and following) Luca around when he walked through the PlaneShift world (he attracted a lot of interest as he was morphed in one of the bigger PlaneShift creatures) and finally several people were chatting about it on the PlaneShift IRC channel. It was a fun demonstration how various virtual and real channels can interact with each other. Many people were actually using more then one of those channels at the same time (for example someone in game and watching the streaming video).
After this we had a small break and most people went to fetch some sandwich to eat. A rather big group arrived at a small sandwich bar and since they didn't expect that many people there was only one poor guy suddenly having to make a lot of sandwiches :-)
After the lunch break there was again a parallel session. Upstairs Pablo Martin (caedes) gave a workshop about blender2crystal (http://b2cs.delcorp.org/index.php/Main_Page) and downstairs Amir Taaki and Vincent Knecht gave a session about the Ecksdee Game (http://ecksdee.sourceforge.net/wiki/wiki/Main_Page). I watched the EcksDee? game. First they gave an overview of how they modified Crystal Core for their purposes. This gave me the thought that it would be nice if we could find a way to perhaps share the Crystal Core source code and make the game itself a separate download. So you use the 'Crystal Core' executable and then 'plug in' either the Ecksdee or the Crystal Core game data and logic (and other games too in the future). It is something to think about at least. At the end of the talk they gave a nice demonstration of their game. Since the blender2crystal workshop was still going on I then decided to check that one out. A lot of people attended that workshop and it seemed to me that it was a big success. At the end I unfortunatelly had to interrupt his talk because he probably could have gone on for yet another hour :-) and we had to start the final session of the day.
This final session was the future of Crystal Space roundtable discussion and the Q&A from the audience. We decided to merge those two sessions a bit because they are actually very related. Christopher Mewes (Fossi) moderated the discussion and Marten, Frank, Luca, and me participated. Luca was there as a representative of the biggest project using Crystal Space (PlaneShift) and probably also one of the projects having most problems with the release (or no-release :-) system Crystal Space uses now. In this discussion we covered various topics like the 1.0 release, making Crystal Space site easier to use, improving the documentation, some features required for post 1.0. Release management in general and branching in svn, the tool chain, the Google Summer of Code projects and a few other smaller topics. I can list here a few of the things we decided to do:
- For the 1.0 release we would like to avoid any major new features. The only things we really would like to do before 1.0 are:
- Clean up the particle systems. That basically means that only one particle system will remain (a new one being made by Marten right now) and all others are removed. We will provide convertors to make it easier to go to the new system.
- Fix all bugs (or as many as we can).
- Improve the documentation sufficiently so it fits an 1.0 release.
- Judge which of the Google Summer of Code projects are good enough to be included as well. This *might* include the PVS, the terrain, and the OpenAL renderer but probably not imposters, streaming loader, decals, and VFS as those affect existing parts of Crystal Space.
- In a matter of a few weeks we will probably make the 1.0 branch in svn. This will happen after Marten finishes his particle system cleanup and we had some time to test it sufficiently.
- Starting from that point on we will continue normal development on the developers branch and merge all important fixes and 'stable' new features (to be seen!) on the 1.0 branch.
- Further point releases (like 1.1, 1.2, ...) will all be made from the stable 1.0 branch. So there will be two main branches that are constantly maintained.
- We should have more frequent releases and when a release is made we should document better what the new features are and how to use them. Additionally we should communicate this better to the project managers (for example by using a specific mailing list for this).
- We are thinking about making a new web site with a better design and also a better way to find the information that you want.
- We also would like to improve documentation and especially make it more clear what documentation systems we actually need. At the moment it is a bit hard for a user to find out what is possible and where to find documentation on this. Related to this we need a clearer overview on the Crystal Space site explaining to people what CEL is and when they should use it. Also what is blender2crystal and things like that.
- As a developer we should try to document (at the very least with some stub documentation) whenever we add some new feature. Even having a simple stub documentation (i.e. only a mention of the feature at the right place in the documentation) would already be a great help and it would make it easier for others to then contribute actual complete documentation.
- We need more work on the tool chain. One important part of the tool chain is blender2crystal but also for people who don't want to use Blender we need better (documented) solutions. Also some features are better edited inside a Crystal Space application to get a real-time preview. For example a particle editor and perhaps material/shader editors.
- People also would like to see a list of 'best practices' (either in the documentation or on the site or wiki) so that they know what the best way is to implement some kind of things (like water, dynamic lighting, ...).
- For post 1.0 we would like to discuss a fundamental change in the way the render system (renderloops and such) works in Crystal Space. This new render manager would open up the way for more advanced shadowing techniques and techniques in general that depend on render to texture.
- We have to discuss which parts we want to keep in Crystal Space and which parts we have to move out. For example, we currently have three window systems: AWS, AWS2, and CEGUI. AWS is going away once AWS2 is mature enough but that still leaves AWS2 and CEGUI. We feel that it is best that we concentrate on things that we are good at (i.e. the 3D engine and rendering stuff) and for the rest try to use other projects. So in that sense the CEGUI window system might be a better choice for CS. However, we don't want to just ditch AWS2 as it can have some advantages over CEGUI in some cases. The plan would be to move AWS2 either to CSEXTRA or else make it a separate project in SF (or another host).
- We need better levels for Crystal Space:
- We need another default level (instead of flarge) that is not too big but looks nice and doesn't scare away people.
- We need more complete testing levels that can be used both to demonstrate what Crystal Space can do (but in a sober and easy way), act as a tutorial for people so that they can look at the world file and see how it is done very easily, and finally as a better test case so that it is easier to see when something breaks.
- Finally we need a few REALLY big and nice demos that are released separatelly from CS (as separate downloads) and really show what Crystal Space can do. Hristo's demo will be one of those.
So after this roundtable there was some dinner in another very nice restaurant. People could choose in advance what they wanted to eat (there was a choice of three dishes) and it was really very good indeed! During that dinner Prof. Dr.-Ing. Klaus Henning talked with me to get some feedback on the conference and he gave us the green light to do another conference either next year (to celebrate the 10th birthday of Crystal Space!) or else the year after if we don't yet have sufficient new material. We still have to decide on this.
Finally it was time to get home. Tired but VERY satisfied. It was really a wonderful weekend and I'm really looking forward to doing this again.
Some information: There were about 60 people present on the conference. At least the following nationalities were represented: US, UK, Sweden, Belgium, Germany, Spain, Italy, The Netherlands, France, Switzerland, and Bulgaria. I hope I didn't forget any country?
We will try to make all material from the conference (the recorded talks, slides, demos, and other materials used during the talks) available as soon as possible. We would also like people to send us their pictures they made during the conference. We would like to collect those on the Crystal Space web site.