18 Mart 2010 Perşembe

Important Steps

This week, I mainly revised some classes that I wrote previously and added some essential base classes for TRASTRAPS.

First of all, I defined XML files for all units and systems that are used in TRASTRAPS and wrote Initializer class that parses those XML files and initializes database.

Another Initializer class that I implemented is scenario initializer. It gathers scenario units and their properties from database and accumulates them in our singleton unit manager to make them easily reachable during the rule evaluation.

I also implemented RTI communication to be able to send multiple units' positions. In our prototype, there was a single hard-coded unit of which positions were changed manually by us. Now, Simulation Engine calculates positions of each unit and sends them all to the Graphics Engine. I added MissionController class into the Simulation Engine that controls whether units have missions and if they have any, it tries to accomplish that mission. For the time being, I tried to accomplish Move Mission only.

I hope, there will be lots of improvements in the following week.


Integration on Different Platforms

This week I have worked a little bit experimentally :) First issue was making all our modules and federates implemented so far work on my Mac. We have been working on Ubuntu, everything was going well there. But my parts were implemented on my Mac, so on Mac OS X, so we have to realize what we said on our design reports and make the whole thing work platform independently. GUI was working since implemented here, Simulation Engine was not working at first but I handled it with a little bit configuration, and Graphics Engine was not working too, but with a little bit change in implementation will handle that too.

Using Netbeans for code development environment, also we have come across with some difficulties in version differences. After equalizing all platforms and environments, I have joined all the pieces together and try them on Mac OS X. The result was as expected and this step taken was successful in making TRASTRAPS platform independent. Also about one or two months ago, my other friends had tried it on Windows too, it was working.

This is all from me for this week, my last word is again mentioning our website: we all welcome you at http://www.virtualimpact.co.nr


17 Mart 2010 Çarşamba

TRASTRAPS rules...

In TRASTRAPS, we plan to use a rule engine to provide AI. Since we started to use JAVA in Simulation Engine, the Jess Rule Engine came to our mind, so I made a tiny research on it.

Jess is a rule engine and scripting environment written in JAVA. Using Jess, developers can build Java software that has the capacity to decide using knowledge you supply in the form of declarative rules.

After I dive into Jess, I realized that it requires to learn additional language that is very similar to LISP. Therefore, it may make our job a bit difficult. For many rules, it may very helpful to use it, but if there are very few rules, I think it is unnecessary to use.

Şenan Postacı

11 Mart 2010 Perşembe

As time passes by, everything changes

As all my friends said, this week has been a gun fired for start of the project marathon. We have implemented many classes as we had done for our first term demo. And many others with the help of our design document. Inspecting our graphic engine Irrlicht, RTI communication structure Portico and other federates, we have started to think that what if we use both Java and C++ in place of only C++.

Disregarding middle steps, we have decided to use Java for some federates (like Simulation Engine and Recording Engine) and C++ for others (like GUI Engine, Graphics Engine and Sound Engine). Because RTI communication is easier on the way of using Java and C++ makes us lose time in some aspects. This brand new decision leads us to change our already written classes, and this was the role of mine. I have changed the simulation engine's prototype from C++ to Java, so we are now OK with language use.

My other roles to be completed on next weeks are integrating physics engine and helping Suat to define systems class units. So these also will be completed too.


When classes start, we write classes :)

We have started this term and this week very fast. The implementation is getting more and more complex but thanks to our thick Detailed Design Report, everything is going on the right way. We complained much when we were writing the report, but now we see the ease of using it.

This week, my role in the project was developing object classes like Unit classes, System classes and Mission classes. I have written the basics of these classes like predefined attributes, getter and setters, basic predefined methods and constructors - destructors. These are seem primitive actions but we have decided that we have to start by these tasks to construct a strong structure. Also I have implemented database connections via a database class, to store our basic scenario units. Unit manager class is also ready to use by simulation engine including singleton objects. Lastly the scenario class is started to being implemented by me and help of others.

Next week, according to our plan, these all mentioned classes will be finished. See you all next week.


10 Mart 2010 Çarşamba

Start with a new semester

As the new semester starts, we have started to our term project again. This week, we reviewed another groups Detailed Design Report. After we finished it, we had our first meeting in my new house.

Since there are no homeworks yet, we have a great chance to improve TRASTRAPS, therefore we started coding immediately :D With the help of our great Detailed Design Report it is very easy handkle all the jobs.

As we know TRASTRAPS consists of 5 federates: Simulation Engine, Graphics Engine, Audio Engine, Recorder and finally GUI. I started to code some of the Simulation Engine and Graphics Engine.

Şenan Postacı

New Semester, Same Work :)

After a little break, we are all freshly on our job to serve you TRASTRAPS. This week we have given a quick start to implementation phase and the demo we are preparing for tomorrow will also reflect that. Briefly, we have been coding and developing day and night for about a week :)

My part of job is again dealing with GUIs and writing the classes of GUIs integration to project. Control classes are also to be written with database interaction. Apart from these, I have set up and uploaded our website to our provided domain. You can access it from the address http://www.virtualimpact.co.nr (free domain :) ). All the material we have written or implemented (except the last demo) can also be found here. I will upload the end product and manuel at the end of the semester too, Ojala if we finish :) (A spanish word for strong desire). All other parts of the website are again my creative vision. Also you can follow us from twitter too, with "virtual_impact" username. Our last contact with the world is I also included this blog to our welcome page, to make everyone have access to our first term work.

For a last word, last week we have evaluated another group's work and they were good designers too in terms of project development. This also enlarged our vision of thought while inspecting others work.

This is all for this starting week, again I suggest you to visit our website if you have some questions about our project.


4 Ocak 2010 Pazartesi

First Presentation!

As Senan said, we are enlarging our steps and speeding up the development process. Irrlicht is really useful, whereas other tools we integrated to each other also look perfectly synchronized so that we are fully motivated to enter the kitchen for the project.

But as we have shared the subjects to be told between the team, I will not mentioned the development part, but the presentation we prepared for whole seniors, professors and all those who are curious about TRASTRAPS! "The chosen one" of our team is me, so I am the one to introduce us and the project. Of course, as most of the phases we have been passing, we have been preparing the presentation altogether too, but the style belongs to me :)

First I will start to our presentation with an introducing video, taken from a trailer of the game Battlefield 1942. Of course it is not a sole video, we have added (actually we have chosen the style and Serkan added) our project logo with visual and sound effects. After that, I will give an outline of the next 13.5 minutes and let the audience meet with our team. Then the part I like the most in our presentation will appear: Virtual Impact Trailer(!). Again, with team contribution, Serkan, After Effects Master of our team, prepared this too. Then I will introduce team members, and project. As TRASTRAPS sounds like troops are coming, we believe that even the name makes you "feel the real battlefield" (one of the sentences I like to say most at the presentation :) ). Then I will mention about the market analysis we have conducted and explain the differences of these projects from us, what we will do as extra. Then our motivations will be discussed, followed by project details. I will not give the whole presentation here, as details can be found in the link provided to the audiovisuals of our presentation.

After providing information about Units, Scenario, Missions, Systems and Modes; features and requirements of the project will be told too. Then some template and example GUIs will also be shown and then lastly design details will be given. You can also inspect the overall architecture, the federate communications (since HLA based) and tools to be used from the slides too. Lastly I will present the work done and work that will be done, and finish the presentation.

We are planning to finish the visuals and presentation text today and then work on it in the place I will be giving the presentation. I hope it will be a really good presentation because I believe that our motivation will reflect to the presentation and prove all our energy to the audience. We will be glad if any of you who follow us from our blog wants to join us in our presentation day :)

Thanks for your attention again, and here is the link for our presentation:

Ilke (The Presenter?)

Going Into Irrlicht

As more day passes, we need to give more interest to our term project and Irrlicht is one of the most important component of it. All the graphics of our simulation will be drawn by Irrlicht. So it is important to learn its usage as soon as possible.

I started this process by simply drawing a terrain and adding military objects to the environment. Doing it was an easy job thanks to the tutorials of Irrlicht.

First of all, it is so amazing that, there are lots of methods for specific usages. For example there is a specific function to draw just terrains and lots of similar metohds. For all the rendering process you have to just get a reference to 3 important objects initially: your device driver, scene manager and gui environemnt. All the process will be realized by this 3 important references.

to draw a terrain by using just a greyscale image file, it is enough to call scene managers addTerrainSceneNode method with appropriate arguments, and that' is. Later on, you can apply some texture mappings and etc. to make your enivornment look very realistic.

Another thing that I did was adding external 3D models into the environment. It was also an easy job. Irrlicht provides a mechanism to load a wide range of models and set texture of them. Just calling addAnimatedMeshSceneNode adds a specific model in to the environment: So amazing!

You can also add a FPS (first person shooter) camera, therefore you can walk around anywhere in the terrain by just using the arrow keys. The one of the most important feature of Irrlicht that I should definitely mention is that Irrlicht also provides a collision handling mechanism for your camera. So you can not run into an object.

It is really exciting to work with Irrlicht and I am so glad to meet with it.

Şenan Postacı