Categories
Uncategorized

The Last Push

Over the time I have spent working on this project and with my team, I have learned valuable tools and ways to get around issues that arise as well as learn how to communicate properly with a team. My group has been great so far even though we have lost a few, but we just pushed on.

The most difficult challenge that I experienced was at first using Bevy and Rust together, I have never even used either of them before this project. I was worried at first that I would not be able to contribute as much, but month after month I was looking into using Bevy and Rust to help create this self driving simulator, our mentor helped us along with great resources. Sticking to learning and getting better and writing, understanding, and learning about Rust helped greatly and now I somewhat know what I am doing, which is better than not knowing anything.

I decided to go with this project purely based on the idea of incorporating AI into the project. I have always been quite interested in the idea of using AI in a coding scenario and I was glad that I got to experience a little bit of that in this project. This project was recommended by another one of our teammates in the very start of our group and I wanted to join in because of the mento Chris, I thought it would also be valuable to learn from a individual who is in the field. This is a genre of computer science I eventually want to go into but I have learned many skills that will overall make me more confident about going into this field of work when I graduate soon!

Categories
Uncategorized

Project Tools

    For my project that me and my group are working on I have used various tools that I have never seen before, I would like to talk about them a bit in this post! This was my first time ever using Rust and Bevy the game engine, I have never experienced making a simulation before. Using Rust is a tad difficult for me just because I am so new to it, but after awhile I have grown to like it more, the only issue I am still having is just the more advanced areas in Rust. These advanced techniques I am talking about are more obscure things that are only used when I am trying to make something like 3dmeshes with Bevy but other than that it has been going great.

    A new technology we are incorporating into our project is deep learning reinforcement, basically using images to train our AI, as the car will drive it will pick up on things it should or shouldn’t hit. To begin we must start simple then build from its knowledge. I find this technology to be the most interesting and fun to learn about, even though I am having a hard time implementing it into code I am starting to understand the overall premise better.

    My least favorite technology we are using is Bevy, I am not a huge fan of how everything is laid out, it is especially difficult dealing with Rust and bevy together mostly around spawning in meshes since bevy had an update and a lot of things are depreciated. It is not the end of the world, I still am working on it and have gotten better!

    Categories
    Uncategorized

    Proper Programming

    This post is dedicated to my shortcomings in coding in the years I’ve been pursuing a degree in computer science but also issues I still have today. First I want to talk about writing smaller and more concise code when dealing with functions. The end goal of a function is that it does the function, as in the one task you have coded it to do. I still struggle with making functions only handle one specific task and then moving onto another function for it to communicate between each other. Reading Robert Martin’s Clean Code, he explains how each function, class, or module should have only one reason to change. The issue arises when a function is taking on too many tasks your code becomes hard to test and maintain. I completely agree with his opinion on this, it is way harder to find bugs and issues with your code when everything is shoved into one or two functions. Here is a simple code example of having too many tasks in a function,

    This function has too many tasks to complete and should be split up into multiple functions which would make it easier to work on in the future. This is just a simple case but if we were to add more to it this would get a lot harder to test.

    Code smells are small issues while looking at code that lead you to a deeper problem within the code. Martin Fowler talks about the “Long method” I gave an example above but this is more about how to spot it and these small problems will lead you to discover the larger issue at hand. The long method is basically if a function is doing too much or not much of anything, the reason for this is because when you split up your functions instead of making a long method then it you are less likely to run into bugs that are hidden within the one really long function. Both of these issues, code smells and writing clean code have a big emphasis on writing code that is clear and concise, it is already hard enough to read someone else’s code and when it is not organized it makes it harder for yourself to work on, and these code smells eventually lead to even worse bugs down the road that could take days to figure out. The first bigger program I made was in python and it was for a bowling game in the command line. I made the whole program in one function, that it and let me tell you it came back to haunt me. I was so close to finishing it and then I got this one bug where the game was not able to keep score, it took me 3 days to figure out what was going on , it was an awful experience. I still today have issues with trying to fit everything into a few functions because I just get in the zone and don’t stop but it just makes coding way more difficult down the line, and what has helped me is slowing down and checking if this is my intention for this function to do this task.

    Categories
    Uncategorized

    Progress For The Future

    Recently I have been more proactive applying for internships! Hoping to get a job related in the software development industry or in a field that is working in AI. I have not had much luck yet but it has not been very long. As for my group’s project I am making some progress slowly but surely, really struggling with creating these environments, mostly with positioning but I think the real challenge when it comes to creating a more realistic environment. Hopefully I will have Rust and Bevy down when the time comes! I have been researching videos of people using Bevy to create a similar environment which has helped a bit, I just wish there was some updated ones.

    Categories
    Uncategorized

    How Its Going So Far

    Hello! The project me and my group have been working on has been going great so far. I am learning more and more about Rust and Bevy which is the language and software we are using to create this simulation. Overall I have enjoyed it, and planning our project has helped a lot in figuring out how to break up this big project into smaller parts. My group members have been very helpful in our project writings as well.

    My main struggle with this project has been deciding whether or not how difficult it would be to implement other things I want to add. We started with our design being very simple to make sure we are able to complete the required document that we made. Eventually we will add more of these extra features towards the last semester hopefully, I bet it will be easier to do then once I get a grasp on Rust as well.

    Categories
    Uncategorized

    Project Blog

    Welcome! This picture is one I took in Switzerland, I took it on top of a mountain outlook!

    Hello! My name is Brant Cass. I am currently 23 years old and live around the Dallas area in Texas. My hobbies include playing video games from time to time, but I most enjoy being active and outdoors. I love camping, fishing, and traveling! I have backpacked around Europe and Indonesia, and I’m getting ready for a trip to Japan in November for 16 days, which I am very excited about. I also enjoy rock climbing, working out, and Brazilian Jiu-Jitsu.

    What got me started in software was my childhood curiosity about how things work. This interest extends to almost everything, but computers particularly fascinated me. I always wanted to figure out how applications function and how they can accomplish so many different tasks on various computers.