Senior Project
1. Project Overview
Primary Goal:
- Implement the Boids algorithm in the Unity3D game engine as an external library (.dll) to enhance cross-platform utility and facilitate integration with other software, such as Maya.
Secondary Goals:
- Apply the Model-View-Controller (MVC) design pattern to structure the project.
- Ensure the library’s compatibility and performance across various platforms.
2. Initial Project Setup
- Version Control: The project utilized Subversion, hosted on a friend’s server, with an upgrade to Unity 4 to enable third-party version control integration.
- External Library Development: Research and development focused on creating a .dll to make the Boids algorithm portable and commercially viable. Steps for creating and integrating the .dll within Unity were methodically followed, as detailed from Unity’s documentation.
3. Implementation Details
- Boids Algorithm: The core algorithm is based on three rules: cohesion, separation, and alignment. These rules govern the flocking behavior, emphasizing the natural, autonomous interactions among individual boids.
- Challenges and Solutions: Initial issues with boids behaving unrealistically were addressed by imposing limitations on velocity and applying the algorithm’s rules more judiciously. The inclusion of a boundary system prevented boids from exiting the scene.
- Design Pattern: The project’s structure was initially conceived around the MVC pattern, with GUIController managing user inputs and BoidAlgorithm handling the computational logic based on these inputs.
4. Project Completion and Reflections
- Distribution: The project was prepared for multiple platforms, with builds tailored for Linux, Windows, and web deployment, highlighting the need for broad compatibility.
- Website Deployment: A personal website was established to host and showcase the web build of the project.
- Learning Outcomes and Future Directions: The project not only facilitated a deeper understanding of motion and autonomous behavior but also highlighted areas for improvement in user engagement and presentation. Future plans include refining the user experience through guided interactions with the algorithm.
5. Conclusion
This project illustrates a comprehensive journey from conception to completion, embodying technical challenges, problem-solving, and the pursuit of knowledge in autonomous systems within interactive media. The reflection on user interaction underscores the importance of clarity and engagement in software design, pointing to future enhancements aimed at demystifying the algorithm’s workings for users. The commitment to continuing this project as a learning tool, without seeking external assistance, speaks to a personal dedication to mastery and the sharing of knowledge.

Leave a comment