Re-doing the game but better

Making the genetic algorithm to be able to become smarter (and more complex).

Overview

Well, hello again đź‘‹. I hope you know me by now because you are about to hear about my plan of the semester. As I mentioned earlier (in web-dev post), the whole semester is devoted to one major project that needs to have a good outcome. I am struggling to find ideas for data science, so this may not be the final concept that is going to be done. But anyway, I hope you continue to read about my progress and like my end result.

What was completed

Because I am lacking ideas on what to do, I will just extend last term’s project into a more complex and better game. This still will include the same concept of a game that the AI can become smarter based on stats via genetic algorithm. I will try and make more balance with the users and add different races (for more factors to learn), and many more things. I haven’t decided whether to start from scratch (with the concept and old code as inspiration) or to just improve the existing (and hope I have made it good to extend).

The purpose will still be to have the AI to learn the best combination of stats but it may be also to learn from the player to make more educated guesses on what to do. My capabilities of Python (and some other programing languages) will help produce this. I don’t think it is that necessary to know HTML/CSS/JS for this, so I didn’t think it was needed to mention.

The outcomes are for the game to become very smart (and not self-aware). I will try and make goodish UX to display the project as well (it needs to look good to be-able to be used). As such, my initial scope will be adding advanced options (such as multi race) but not far advanced things like looking like a game (Its purpose isn’t to be a game as much as it is to become smart). I believe that I can make these outcomes well because I have done this before (the earlier project) and like the concept.

As most assignments, my timeframe is going to be completing it before the assignment is due. I will want to finish my requirements earlier then due date for other people’s feedback on how to improve it.

I am the only person involved with this, unless you are counting library devs and/or peers helping to test/ some ideas. I will try my best to make the useable for other people.

Aside from time, the major constraint is processing power. I need to process lots of things to have the algorithm work as intended, and as such I need to have the time to process everything. But development time is still a huge constraint with any project. As I have a large amount of time (the whole semester), I believe that it is feasible to do (and I have the capabilities to do it). I many need to do research into implementation details, and I understand enough Python to know how to implement the reading.

I luckily have a good computer (i7 with 16gb ram), so I will be-able to do everything mentioned above even if it is slower then it could be (with better specs). I also know how to make sure data isn’t lost into the void by using GitHub (because it has worked well with no issues). But another issue could be my learning data to be lost/corrupt and as such waisted time.

The dependencies are going rough order: (hopefully the first ones can be done fast)

  • Look at current code (to see what exists)
  • Brainstorm how to implement proposed features
  • Make the application smarter
  • Do some UI and UX
  • Testing… and then submit

Reflection

You had so many options, why did you choose to be boring?

Well, last term’s project went well, so I know that I can do this. You could ask how I am extending myself because it is already done, but I would say that I am using similar concept but way more advanced and featureful. There also is an element of decision making, but I believe that until a better idea (sooner than later) is really decided on, the game is a good project to work on (and hopefully make good)

How did you feel about last term’s project?

I feel positively about last term’s project, but it felt a bit basic. This is why I am “fixing” it to try and improve the floors with the previous implementation. That isn’t to say that I didn’t like it as it did feel good to see it working at the end, but I have some feedback for really extending my abilities (making a really good thing can be better then lots of smaller things). However, my presentation was lacking. I didn’t spend time for making it and I had a basic project to talk about (it didn’t feel like there was much)

How will you best optimise time?

As mentioned earlier, time is a very important thing and needs to be optimised. I can try better time management for programming but the more important things to do is optimise the simulations (they will be getting more advanced this time). I will try to run then when doing other things like dinner or going outside as well as other homework with a resource limiter (I have to see I that possible though). I will even try cloud computing, but I don’t know how well they will work (github actions could be used).