Oregon State University|blogs.oregonstate.edu

Archives: February, 2024


Capstone Technologies February 3rd, 2024

Capstone Technologies

Working on this capstone has given me the opportunity to learn and apply a couple of new technologies. My capstone project is all about artificial life. Our goal in relation to this is to develop a simulation of evolution over time, with artificial species having genomes that produce inherited traits, where the simulation demonstrates how, over long periods of time, those species reproduce, mutate, and speciate. We have chosen to complete this project using Unity and C#, both tools I had very little prior experience in.

While I hadn’t actually worked in C# before this project, I have found it very easy to pick up and I have been enjoying learning it! I have previously done a significant amount of coursework in C and C++, both at OSU and at my community college, RCC. This made learning C# a pretty simple task. There have been some minor differences, but I’ve found the documentation pretty straightforward and that has helped me a lot. I’ve even learned some little tricks associated with C# like auto-implemented properties!

Unity, on the other hand, has been a bit more challenging. While I worked with Unity in a previous NMC course, my experience was very limited and did not include scripts. Combining Unity with C# scripts, and adding in the challenge of a group programming dynamic has been relatively difficult. I have not found Unity documentation to be nearly as helpful as C# documentation. For example, when trying to figure out how we would implement group version control for our project, we went down some rabbit holes of Unity-associated VC methods. This resulted in several dead-ends with outdated documentation and deprecated systems. This wasted about a week of our time last term and we ended up figuring out a system with GitHub instead that has served us pretty well so far (though we have seen a couple of merge issues pop up). Luckily, I am not in charge of the UI for our project, as that seems to be the steepest learning curve, and the team member who is has had a lot of experience with Unity on other projects.

Overall, I would say that I’m really happy with our tech stack. We definitely discussed other possibilities, but I think with the team that we have, this option has made the most sense and will produce the best product in the end. I’ve really appreciated the opportunity to add these technologies to my arsenal and hope to have the opportunity to use them again and grow my skills in future projects.

Read the post...