Thursday, April 20, 2017

Weekly Update (2017-04-20): Liam

This Week

I added landing constraints for airplanes. If they are too close to the end of the runway, or pointing more than 30 degrees off the heading of the runway, or positioned outside of a 30-degree sector at the end of the runway, the airplane will not be allowed to land.


Asana Tasks Completed

  • Add landing constraints

Next Week

In this process, I noticed a couple of weird bugs involving landing: sometimes an airplane won't land even if it's perfectly lined up with the runway, and it won't land at all if time-warp is on.

Asana Tasks

  • Determine scale of airport
  • Add landing capabilities: descent, remove landed planes from runway
  • Fix landing bugs
  • Add collision warnings

Weekly Update (2017-04-20): Guy

This Week:

This week I started off on Tuesday by fixing a mistake I made over the weekend with Github. I had commited an old version of the code from my home computer while attempting to pull the current version on Github. I had to find out how to delete a commit and revert it back to how it was initially. On Thursday I worked on the design doc and added a section for The Main Menu and how it will look and work. I have not completed it yet, but its pretty straightforward.

Next Week:

Next week I will complete the page on the main menu and hopefully add it to our Gitbook design doc as well because it was not working this week. Then I will start work on the it. That should take up[ most of the week, as its creating a new screen from scratch essentially.

Asana Tasks:

  • Main Menu

Friday, April 14, 2017

Weekly Update (2017-04-14): Benjamin

This week, I added a debug time warp system as well as a UI for viewing more information about planes.

Time Warp

We found that often, while testing the game, things would be going to slowly and we would spend a lot of time waiting around. The solution is a developer only time warp. Time warp is pretty simple. The main idea is that dt gets multiplied by a warp value, which can be changed with buttons. (Asana task: time warp)

Plane UI

Previously, each plane would have a lot of information associated with it like name and flight type which were inacessible to the user. To show this information, I created a box which shows up in the upper right hand corner when an airplane is selected. This box provides information about the airplane. (Asana task: add UI for flight type)




Next Week

I plan on starting work on some of the tasks listed under "Minimum Playable Tasks". Specifically, I plan on adding either collisions or setting other airports as destinations.

Weekly Update (2017-04-14): Liam

This Week

I didn't have a whole lot of class time this week since I missed class on Wednesday, but I accomplished some small changes. I fixed the positioning of the text (yet again--it was destroyed during a merge) and started implementing landing constraints. I added the easiest part first: if an airplane is too close to the runway, it can't begin to land.


Asana Tasks Completed

  • Add landing constraints: distance

Next Week

I plan to continue implementing landing constraints and then move on to collisions.

Asana Tasks

  • Add collision warnings
  • Add landing constraints

Weekly Update (2017-04-14): Guy

This Week:

This week I added functionality to the buttons on the home screen. The one button I have now changed the screen from the Main Menu to the game state. Now that we have this we can easily implement buttons to another screen such as a settings screen. It is also possible now to all have the same code for ProjectIcarus class since there is no need for each of us to go to a different initial screen.

Next Week:

Next week I haven't really thought about. This has been the main project that i have been working on so we will have to discuss what other parts of the game we want to implement in the future. It is likely i will be working on making a usable main menu so Ill start with that.

Asana Tasks:

  • Main Menu

Wednesday, April 12, 2017

Weekly Update (2017-03-03): Benjamin

This week, I worked only on the autopilot. I'm not done yet, but I think that I am getting close. Because of this, I have not checked off any Asana tasks.

Autopilot

What the whiteboard looks like right now

We have a draft of an algorithm:

The heading of the plane is $\vec{a}$, the position of the plane is $\vec{b}$, the target point on the runway is $\vec{d}$, and the heading of the runway is $\vec{c}$. First, we turn towards the runway until $\vec{a} \cdot (\vec{d} - \vec{a}) < 0$

Friday, April 7, 2017

Weekly Update (2017-04-07): Benjamin

This week I worked on altitude control and landing systems. We now have a working system for changing altitude as well as a (semi) working system for switching to landed state.

Altitude Control

For altitude control, when you press a button, an altitude target counter will pop up. Dragging up and down will change the target altitude. Tapping will select the altitude. After a target altitude is selected, the airplane will change altitude at a constant rate in order to match it.


Landing

The landing mechanism currently used will cause airplanes which go close enough to the end of a runway while attempting to land on it to stop displaying their altitude and start slowing down to a stop on the runway. Internally, this involved a lot of refactoring. The idea is that individual behavior states for an airplane should be their own classes (deriving from one AirplaneState) base class. This way, things which only make sense in a given state are not implemented by other states.

Next Week

Implementing landing caused a regression in the landing autopilot system. Now, airplanes often end up slightly off the runway when attempting to land:

I don't know exactly what is causing this yet, but I suspect that the turning radius calculation is incorrect.

Asana Tasks

  • Refactoring

Weekly Update (2017-03-17): Guy

This Week:

This week I got the switching down and was starting to work on the main menu by adding buttons and styling. Soon after I figured this out I started getting nothing to show up on the screen and then after started getting crashes. I went through the changes that were showing up in git bash and then tried to reverse the ones I didnt think were necessary. In doing this it seemed to almost do nothing, as I still got crashes and had an error. I found that the error has something to do with getWidth and will fix it next week.

Next Week:

This coming week ill fix the bug with getWidth and hopefully add a button to the main menu. Currently it doesnt show anything, but once i figure out the issue i can add the button and make it so we can use the same code on the master branch.

Asana Tasks:

  • Main Menu(incomplete)

Weekly Update (2017-04-07): Guy

This Week:

In the past week I worked on implementing a button that will switch screens in the game. I stopped trying to use the buttons we used in our game previously and used buttons that are called imagebuttons. This seems to be working so far, but I have run into the same problem that I had with the other button type. I currently cant change screens with the button, and there isnt an error. Ill have to compare the code from John's game to mine and see what I am missing or added accidentally.

Next Week:

Next week i should be trying to add the fully functional button to master. If I can get it to do that then i will add another screen for settings and possibly another for a different function. The first thing ill try next week will be to find the error in the code.Once I do that i think it will be smooth sailing for whatever i need to do next, which i have not figured out yet.

Asana Tasks:

  • Main Menu(incomplete)

Weekly Update (2017-04-07): Liam

This Week

While Benjamin worked on refactoring the airplane code, I fixed some small UI problems that have been bugging me for a while. I made the airplane labels smaller and farther away from the airplane, and I fixed the positioning of the runway labels. I also created a new map, with properly aligned waypoints and non-overlapping labels.

Before the changes. Note the overlapping text.

New map

New airplane label

Asana Tasks Completed

  • Fix label positions
  • Implement final airport

Next Week

I plan to merge Benjamin's changes in landing-experiment with plane-control, and eventually with master. Then I wan to finish up the landing algorithm, either at the end of next week or the beginning of the week after.

Asana Tasks

  • Determine scale of airport
  • Add landing capabilities
  • Add landing constraints