AI 1

AI for Games In my recent life update post I mentioned my goal to start the AI for Games book by Ian Millington and after a solid week of progress I managed to get through the first 2 chapters and the first couple of sections of chapter 3. That might sound like a lot but really it's not, the first 2 chapters were roughly 20 pages each and the entirety of chapter 3 is roughly 150 pages. Additionally the first 2 chapters were more or less just lecture material about what AI is and how it is applied in games. Chapter 3 is where I also started implementing the material so that slowed me down as well. I could probably talk at great length why I think we are safe from AI for a while, but I really just want to limit the scope of this to what I learned reading this book. Chapter 1 Summarized The topic of AI is pretty deep and mysterious right now given the popularity of tools such as ChatGPT, deepfakes, AI generated art, and billionaires reassuring us that current AI is not a problem but t

Life Update

 Back to business So it's been quite a while since the last blog post which I fully intended to keep doing weekly as my IOS class progressed, but it started to become difficult to manage mentoring, school, blogging, side projects, and general house chores so I quietly swept this under the rug until I was ready to pull it back out. The reason I am able to blog again is because I finally finished school and completed my Masters degree (queue Master of Puppets). I feel a great pressure has been removed from my shoulders and my life can begin for the first time again for the fourth time (the first first time being when I finished high school, the second first time being when I finished my undergrad, and the third first time being when I left my internship). I enjoyed the weekend celebrating and now that it's over I am ready to get back to it. There's still 1 tiny bit of stress I'm waiting on and that's for the very last class to submit the grades which will determine if

Learning Native IOS Week 2

Week 2 Here We Go Ok week 2 has started for this class and it's already done, in terms of things I need to do... It's only week 2 so the material is still trivial, however I expected it to be not as basic as it is. The focus of this week was practicing Swift programming (which I already got a jumpstart last week) and this was done using XCodePlaygrounds. Playgrounds is a quick to setup environment to do quick programming. I believe you can play around and setup an visual interface as well, especially given that I saw that Swift Playgrounds can be run directly onto your mobile device which is pretty insane. The professor said that Apple has an explicit rule that apps cannot compile code, however they break their own rule with this app which makes me wonder if there could be another class action lawsuit similar to the one that Epic enacted against Apple some time ago in the future... The class lecture itself was interesting going over some history stuff, but the actually programm

Learning Native IOS Week 1

New Year New Blog Post It's the first week of January of the new year and my classes have already begun for the second to last quarter of my master's program and I could not be any more anxious to be done. This quarter I've decided to take the capstone class which I have a good idea of what I want to do, but will wait for the first session before pitching that idea. In addition to that I decided to pair an easier, albeit beneficial, class which involves something that I am quite experienced in and also have no experience at all... building IOS (iOS? ios? iOs???) apps. I've released several apps on the app store but they've all been developed using Unity which didn't make it any easier than I wished it would have been. I can immediately recall the dread of those long nights staying up until 4am trying to figure out how to get Bluetooth headphones to work with our app and deal with all the different states or when I first started and I was told to figure out Apple

Tips For Optimizing Collision

Collision In Computers In the world of games the logic for detecting collision can either make or break your game. There are many different methods for detecting collision which are dependent on what you are trying to collide. For instance, if you try to collide two squares then you can just see if the left/right/top/bottom side of either shape simply overlaps the sides of the other which is known as AABB collision detection. The same logic applies in 3D space except instead of having to deal with an XY point you have to handle the Z dimension as well. On the other hand, if you want to collide two circles or spheres then you need to check to see if the distance between the centers of each circle (or sphere in 3D) is less than the radius of the two shapes.  These are pretty simple scenarios, but collision can become rather complex when you have to begin dealing with collision between different shapes such has colliding a square with a circle. You cannot use the circle collision logic be

Tips For Working In The Database - Tip 1. Always Write It Down

Every now and then I have to shift my entire work flow from my standard day-to-day programming to focusing entirely on database queries and performance monitoring. This can be a welcome break from scratching my head as to how to solve applying an alpha change to the parent object of a composite object that doesn't affect any of the children in a reasonable amount of time. However, each time I have to make the switch I have to shake off the cobwebs. Any skill that you aren't actively practicing will slowly move to the back of the line in your brain. For me that's SQL and HTML. Fortunately the amount of SQL I do, albeit not nearly as much as my regular game programming, far exceeds the amount of HTML I do because HTML is the bane of my existence. Whenever I have to get in there and start writing those queries, it's because we have a large amount of data that we suddenly have to look at and we don't know exactly what we're looking for. What I mean by that is we mig

Making a Controller Editor in Unity

As I mentioned very hastily at the end of my "Hello World" post I have a YouTube channel where I provide tutorials. The problem is I don't actually have any concrete content to back up that statement. I started a Sudoku series roughly 10 months ago and stopped working on it because my Architecture of Real-Time Systems class was taking every second of time I had at the time. That class ended up changing my perspective on building games for the better (as every single class I've taken has *eyes emoji*) because, I immediately wanted to start the series over and do it proper instead of on the fly and improvised. Doing the planning for such a small game still takes time and I keep getting swamped in work from school to actually want to sit down for a week or 2 straight and do the planning. Fast forward to this week where I suddenly had the itch to program a system based on Robert Nystrom's example for the Command Pattern in his Game Programming Patterns  book which he