Thursday, October 9, 2008

Wilco's Tower Simulator Review

Well, I can't say I am surprised by what the reviewer found.

Wednesday, September 10, 2008

Bell 412

I know, a little boxy here and there.  Just saving polys.  After all, everyone wants high frames per second, right?






Monday, September 8, 2008

King Air B200

I am finding it hard to not include every detail, so this has a little bit more of that than the RV-7.  I have to watch out for the polygon count, having the simulator's performance in mind, but I figure it is always easier to take a high detail model and scale it down than the opposite.

So far so good regarding the project plan.








Wednesday, September 3, 2008

RV-7

So tonight is the second night of work on the first task in the project, creating a 3D model of an RV-7. I have one more night, according to the plan, to finish this up. I plan on creating some basic textures (one of my weaknesses right now) to have some color on it. Can't wait to see what that looks like... For now, here's what the model looks like. I tried keeping the polygon count to a minimum, while adding enough detail. Click on each image for a full-resolution version.





Project Plan

The Project plan is done. If I am incredibly prescient, and have actually predicted every single activity right, it will take 219.5 days until I have a decently completed version of Tower Simulator. That sounds like a lot (and if that number is anywhere near accurate, I'd be very surprised. It could be a lot less or a lot more, who knows?), but it involves a lot. Here's what I have planned (in bold are the main sections):

Tower Simulator Project Plan
  • Physics
  • Collisions
  • Motion
  • Taxiing
  • Parking
  • Takeoff
  • Climb
  • Cruise
  • Descent
  • Approach
  • Landing
  • Driving
  • Audio
  • Aircraft
  • Jet Engine
  • Startup
  • Running
  • Shutdown
  • Turboprop Engine
  • Startup
  • Running
  • Shutdown
  • Piston Engine
  • Startup
  • Running
  • Shutdown
  • Ground Vehicles
  • Trucks
  • Cars
  • Tractors
  • Voice Recognition
  • Models
  • Airports
  • KCMH
  • Runways
  • Taxiways
  • Apron
  • Buildings
  • LOWI
  • Runways
  • Taxiways
  • Apron
  • Buildings
  • Aircraft
  • Airliners
  • Embraer 170
  • Embraer 190
  • ERJ-135
  • ERJ-140
  • ERJ-145
  • Airbus 319
  • Airbus 320
  • Airbus 321
  • Dash 8-Q400
  • Boeing 737-300
  • Boeing 737-700
  • CRJ-200
  • CRJ-700
  • CRJ-900
  • General Aviation
  • Lancair Legacy
  • King Air B200
  • Bell 412
  • Falcon 900
  • Gulfstream V
  • Cessna 172
  • Cirrus SR-20
  • Graphic Interface
  • Splash Screen
  • Main Menu
  • Sub Menus
  • Graphics Engine
  • Load Models
  • Terrain
  • Skybox
  • Clouds
  • Shadows
  • Rain
  • Snow
  • Input
  • Keyboard
  • Mouse
  • Custom Shortcuts
  • Installation Package
Let's see what happens.

Thursday, August 28, 2008

Project Plan

I make no fuss about the fact that sometimes I find it hard to police myself in regards to following schedules, so I have hired a project manager: my wife. Maybe it sounds crazy to you, but this will keep me much more on track regarding the project plan for Tower Simulator, as she has been very serious about it. I'll be posting a Gantt chart of what the project looks like right now.

Sunday, July 13, 2008

Terrain test

Today I found some time to test loading a heightmap, which I generated from a 10m DEM file, into XNA just to see how easily I could do it, and how good it would look.
The result was pretty good. Some information before you watch it:

  • The colors are simply based on the height of each vertex, just to have some color. They are not related to anything else from the real world.
  • The app runs at 60 fps without even sweating, but the video below is running at 30 fps due to compression
  • The depressions that look like wholes on the opposite side of the mountains are either DEM noise or lakes, I have not investigated it yet
Can you tell where on earth this is? :)



Here's the original heightmap:

Saturday, June 21, 2008

WILCO's TowerSim

I had the opportunity of trying out TowerSim, and have to say I was pretty disappointed. I had a longer list of things I didn't like, but here's the major stuff:

  • Graphics are sub par - For today's standards, the graphics are really not very good. Some interesting things, such as shadows that fade into transparency as they get away from the object casting them, and point lights for runways and taxiway lights that do get very small at a distance (unlike the light "gobs" that MSFS has) are good ideas, but the texture resolution, aircraft models, terrain resolution, weather conditions (rain and snow) are not very good.
  • No tower cab - the view from the controller's perspective is simply a point in space, without control panels, monitors, glass or anything else to represent the inside of a tower. It is as if you were floating in space.
  • Aircraft motion - This is a soar point for me. I think part of a realistic and fun Tower Simulator is aircraft moving as they do in the real world. The aircraft I watched tended to fly a precise approach path, without a single foot of variation, hit the runway exactly at the same point, perform no flare whatsoever, and have unrealistic angles of pitch.
  • Controller's interface - The radar scope is very similar to the one I am designing, but the text window that allows the user to control aircraft is cumbersome and slow. It could also have been a bit smarter, such as recognizing "cleared for takeoff runway 9" instead of forcing you to type "cleared for takeoff runway 09".
  • No voice recognition - Controllers don't control via text, they do it via voice. ATCsimulator does a good job at that, so there's no reason these guys couldn't get it right.
  • Robot-like pilot voices - They used about 8 people to record different pilot voices and accents, but the stitching together of words sounds pretty mechanical and unnatural. I have not cracked the nut on this yet, although I have found a couple of expensive text-to-voice engines that can do a great job. I just have to discover how to do it cheaply.
  • Performance issues - I left Chicago O'Hare run without controlling aircraft, and the performance quickly dipped below single-digit frame rates. More and more aircraft showed up, and the simulator had no way of deleting older aircraft, or any other means of stopping it from affecting performance.

All in all, it is not a bad effort, but I expected more. I guess this is good news in the sense that the field is still very much wide open for a good Tower Sim, but I could have been a bit more encouraged by stiffer competition ;).

Sunday, April 27, 2008

Have you seen this?

I have known for a long time that there is a community out there just dying to have a good tower simulator. This means that this community is actually pretty sizable, and is great news for everyone! Raising awareness about tower simulations is only one of the good things this software will do.

I like the following features, besides the basic stuff that needs to be in a tower simulator:

- Career mode
- Real-world airline schedules
- Service vehicles

The visuals look quite good, but I am more interested in how realistic it will be. Maybe a demo will be out soon? Here's to hoping.

New airport being considered

As you have probably noticed from the poll on this site, there were some major airports I was considering including in Tower Simulator. After watching a very well-done documentary on Van Nuys, this airport became a very strong candidate, perhaps even number one!

This airport has everything to make a tower simulation interesting. Beautiful scenery with some pretty high terrain close by, varied traffic (small pistons, flight training, business jets, news helicopters). OK, there are no airlines, but we can fix that by having another airport in this release. Not to mention it is the world's third busiest general aviation airport, as well as the 25th busiest among all world airports, with 1,200 operations per day. That should keep everyone pretty busy :).

Another interesting point is its proximity to LAX and Burbank, which means lots of coordinating between the three facilities. This would allow me to develop the intra-airport communication system that I have been thinking about including. This, of course, exists in real life, and I think adds a lot to a controller's responsibilities and overall perception of realism.

It's tower is pretty interesting looking too, and should be fun to model.

If you have some words on this idea, leave me a comment.

We have arrived!

Uhuuuuuuu, after a lot of planning and effort, we have arrived in Columbus, OH!!! The good news, as it relates to Tower Simulator, is that I will now be able to resume development, as the dust settles down. Stay tuned.

Thursday, April 3, 2008

Eco-house

So we have decided to build a new house in Columbus, and while this is totally off topic, since it is affecting my work on Tower Simulator, I thought it fair game.

In going over all the deatils you need to pick and choose when buying a house I am finding out a lot about being environmentally sensitive while at it. Here are some really cool solutions:

- Solar water heater
- SunTunnel skylight
- Green roofs
- Geothermal power
- Great reference for all parts of the house: Energy Star

There are so many inexpensive ways to make a house considerably greener, and it will only cost an overall addition of 2 to 3% compared to a "normal" home. Pretty cool, huh?

Wednesday, April 2, 2008

Back to Columbus

Flying back to Columbus this Saturday to work on getting a house once again. Workload at the moment is severe, so development has slowed down. Hopefully I'll move soon and be able to resume work.

Sunday, March 23, 2008

Space Shuttle Simulator

Seen this? It looks pretty good. At this point in time, it looks like it's not a very detailed simulator, but more of a mission overview. Graphics looks very good. It is made in France, but I wonder what language they are using. No mention of XNA anywhere...

Friday, March 21, 2008

Feed readers

I am relatively new to blogging. One of the things that helps me keep up with other blogs I like to read is a feed reader, also called an aggregator. There are many different ones out there, but I really like Google Reader.

Google Reader allows me to check feeds very efficiently on my laptop or on my phone, since they also have a very slick mobile interface. I like the fact Google is smart enough to check what type of browser is accessing their sites. By doing that, they can tell if you are accessing from your phone or laptop and display the proper page (the mobile page is very barren, just text, so it loads very quickly on your phone).

Let me know via the comments if there are other aggregators you like to use, I am always checking new programs out.

Pick up and move

The latest news are that I have been promoted. I have just returned from France and Monaco, travelled to Vermont the next day, spent one day back at home after that, and am now in Columbus, OH house-hunting. Life moves fast!

One of the cool things about this last trip is the hotel is literally on the airport, it sits between runway 28L and 28R, so I have planes taxiing about 300 feet from my window! Very cool!

Sunday, February 24, 2008

Normal Mapping

One of the things that makes modern games look so good is called Normal Mapping. It's a technique that allows the GPU to deform a simple mesh (an object made of relatively few triangles) with a special image made from a much more detailed mesh of the same model. The result is few triangles, which means faster rendering, but lots of detailed thrown in at render time by the GPU, which means better looking models. Read the Wikipedia article in the link to understand it. I plan on using normal maps a lot in Tower Simulator.

This can be applied in very small-scale object, such as a telephone used to communicate to other ATC all the way to a whole planet, which is what this video is all about. It is not rendered in XNA, as I have not learned to do that yet, but in modo. I just wanted to learn a bit more about normal mapping and the quickest way was to use this software, which is what I use to create models.

The video portraits a perfectly smooth sphere model with 288 polygons with to textures applied. One is a color map of the surface of Mars, the other a normal map of the surface of the same planet. The normal map does not show as color, but instead it allows the GPU to deform the smooth surface I created to show elevation of some major features and craters on the surface of the red planet.

This render is made out of 1500 frames playing at 60 frames per second. The blogger upload came out darker than what I wanted, but you can still see some of the major elevations such as the huge volcano that shows on the beginning and end. Notice how it remains partially lit for a little bit once it moves into the shadow area as Mars rotate. That clearly indicates it is higher than the rest of the surface. You can see this in reverse towards the final seconds as a canyon moves into view.

If you are interested, I got the textures from Planet Pixel Emporium.

Here's the video:

Sunday, February 17, 2008

Multiplayer and interfacing with other software

I have planned to add multiplayer to Tower Simulator. It will work over system link, which means a bunch of computers connected via Local Area Network (LAN), or over the internet. This would allow more than one person with a copy of Tower Simulator to man different positions, such as Clearance Delivery, Ground, and different Tower positions (in big airports it is common to separate the workload between two or more Tower positions, each with a distinct frequency).

That will be really cool, but another option I plan to implement is interfacing with Microsoft Flight Simulator (MSFS). I have not looked into it yet, but I am pretty sure it can be done without much fuss. Tower Simulator would look at the airplane being flown in MSFS and try to do a best match, based on the aircraft that will be available. Communications will happen over a voice channel.

Another cool interaction could be done with ATCSimulator, which is in version 2 at the moment. This simulator covers the enroute, approach, and departure part of the ATC business, and would be a great complement to Tower Simulator. I have not talked to the author yet, and don't plan to until much later in my own development, but it's definitely a goal.

Friday, February 15, 2008

Tech Article #2: XNA's Content Pipeline

This is pretty cool. Whenever you create a game, one of the hard parts is writing some sort of processor that can, well, process the assets you want in the game. What does that mean?

Let's say I design a kick ass airport in 3DS. I now want to import that into my simulator. How do I do it? My game doesn't just have an "Open file" option, and it sure doesn't understand a .3DS or .MAX extension. So, what are our options?

I could go to Wotsit and take a look at the structure of these file types, meaning their innards, and write some code that can sift through that data and find useful things I need, such as vertices locations, UV map coordinates, etc.

Great, now I can import my cool looking airport and we're in business! Well, not quite. I still need to be able to draw it, and that means I have to write code to run through the vertices and see what textures goes where, load those textures, check everything, then draw.

And what if someone else makes a good airport in another 3D creation tool and I want to add it? What about audio? Can you see how in depth this can get? As a matter of fact, game studios have hordes of people working on just these portions of the code. Lots of work. Boring work, if you ask me.

Enter the Content Pipeline. XNA Game Studio was created by guys who created games for a living, so they know where the pains of the process are. With that in mind, they have created a very cool and streamlined "pipeline" through which we can import all kinds of files. OK, so it's not any kind, they are limited to:

- 3D Files: .X and .FBX
- 2D Files: .DDS, .BMP, .JPG, .PNG, .TGA
- Material files: .FX
- Audio files: .XAP (XACT)

The Content Pipeline takes you all the way from step one, importing, to the last step, loading the asset in memory, ready for use. Check out this graphical description of the pipeline:



How do you use it in code? Very, very simple:

ContentManager myManager = new ContentManager(GameServices);
model = myManager.Load<Model>("ship");

You can now call "ship" in your Draw code and bam!, it's on the screen.

Of course there are shortcomings. The pipeline, as shipped, is pretty limited, but it was meant to be so, since the XNA Team cannot think of all different ways you need to import and convert assets. So they made this a very easy class to inherit and change, adapt, gut, add to, whatever you need, to get exactly what you want out of it. Nice, huh?

Wednesday, February 13, 2008

FAA ATC Documentation

This is pretty cool. I am a pilot by schooling, but have never studied for or been a controller. So I need to learn. Where do you go? FAA.gov, of course. Check this out.

OK, looks like the latest FAA Order for Air TRaffic Control is 7110.65S, which came out February 14. Scrap the previous one.