Junwei Chen - Week 3
1) what were your concrete goals for the week?
- Implement basic collision detection and physics (speed, gravity, …).
- A more well-defined game design. Get everyone on the same page.
- Use fmod to sync multiple music pieces. Write an interative audio manager.
- Help with next step in graphics and networks.
2) what goals were you able to accomplish?
- I wrote a collision detection prototype here. I built it based on 3 types of objects: cylinder for the models of characters and the boss; cylindrical sector for the impact range of an attack, especially the boss’ attack; and point for music attack of characters (I imagine it’s a note flying towards the boss, kind of like a magic attack that traces the boss). I am using a fixed-size list for all objects on stage and keeping track of free slots in the list with a linked list, kind of like what we did in CSE 120 for pagetable. Then when an object’s location is updated, it should check collision with all existing objects one by one.
- I was also doing synchronization of music beats with player-typed notes. Checking if an input is on beat was easy, but I somehow struggled with playing notes on beat that do not feel strange or lagging (see below). It still needs some work.
3) if the week went differently than you had planned, what were the reasons? note that this happens regularly…I would prefer you to be aggressive in what you want to try accomplish rather than limit yourself to goals you know you’ll easily achieve. so answering this question is more of a reflection on the development process and the surprises you encounter, it’s not at all an evaluation.
- The audio stuff was not going as planned. There are two main reasons.
First, I found some audios online that are going at 100 BPM (beats per minute), such as Justin Biber’s Sorry. However, even if the music is 100 BPM, the first beat may not start at 0ms or a multiple of 600ms. So I wanted to write a program that auto-detect the first beat, which turned out to be quite hard. I guess if we have full control over the music (making the basic rhymic ourselves) this will be less of an issue.
Second, if we play a note when the player presses a key, then it may not sync with the beats and sounds weird. A solution to this is to delay playing the note to the next beat if it’s on beat. This works for a player input that is before the beat, but what about an input that is after the beat which may still be on beat (within a range around the beat)?
4) what are your specific goals for the next week?
- I will continue working on the collision. One thing that I want to figure out is how to do collision response. If there is a collision, does the character just freeze where they are or still move on the subdirections that they do not collide with others?
- I will also continue working on the fmod music sync.
- I will show what I have got now to my teammates to ask for suggestions.
5) what did you learn this week, if anything (and did you expect to learn it?)
- I learned to do collision between a cylinder and a cylindrical sector, which I think is useful in our game (we can design much more attacks with this). It is much more complicated in math than cylinder-cylinder collision.
6) what is your individual morale (which might be different from the overall group morale)?
- I am busy but satisfied with everything that I am dealing with this quarter.