Game Programmer

By: James Keats | October 24, 2017

Weekly State of the Repo

This past week, we successfully passed into Proof of Concept, and are planning to challenge yet again to get into the Vertical Slice stage. At this point, we can all feel the pressure fully on--there are less than 4 weeks until the mid-year show presentation, which leaves about 3 weeks to actually work on the project if we want as much time as possible to prepare for the presentation itself.

Category: Capstone 

Tags:

By: James Keats | October 23, 2017

The results for the Gin Rummy tournament are in, and the results are... a little disappointing.

My AI performed extremely well during our first round of pre-testing, winning most of the games it played by a landslide. I think that might've made me a target; during the actual testing, my AI was knocked out very early, and ended up in one of the lowest tiers on the bracket. This was very surprising to me after the previous, very strong showing. I assume that at least a few of my classmates used my AI specifically to test against after the landslide win during the first test.

Category: Artificial Opponents 

Tags:

By: James Keats | October 18, 2017

Weekly State of the Repo

Category: Capstone 

Tags:

By: James Keats | October 12, 2017

General Approach

The general approach for the Gin Rummy AI closely follows what was outlined previously in my planning post.

Category: Artificial Opponents 

Tags:

By: James Keats | October 11, 2017

Weekly State of the Repo

It's hard to believe, but we're currently about halfway between the start of the semester and Thanksgiving, which means the mid-year show is coming up quick. Modulate is still on route to be a strong candidate to go forward next semester. Visible progress this past week was slower than usual due to a couple factors. Firstly, next sprint I need to refactor all of our code that touches networking--something that made the entire team weary of adding new features this sprint; secondly, this past weekend was Fall break, giving us a four-day weekend that the team has definitely earned.

Category: Capstone 

Tags:

By: James Keats | October 04, 2017

Weekly State of the Repo

During our last class, we successfully challenged Initial Concepts and are thus now in the Deep Dive stage! Of our three prototypes, we decided to move forward with the Arena game, with one important change: QA feedback was nearly unanimous that the splitscreen controller-based version was not cutting it for players. Thus, the first thing we did this sprint was one of the biggest challenges we've faced as a team yet: networking the game.

Category: Capstone 

Tags:

By: James Keats | September 26, 2017

Weekly State of the Repo

Work on Capstone has continued at a steady pace. This week was mostly spent putting "polishy" touches on our prototypes to make sure that we could take them to QA and get feedback on the items we actually wanted more information on, which sometimes requires a more complete experience than you really want to build this early on.

Category: Capstone 

Tags:

By: James Keats | September 23, 2017

Our next project for Artificial Opponents is to write a Gin Rummy player. Unlike Minesweeper, where our AIs played against the “game” itself, for Gin Rummy, we will be playing against each other—which makes the competition all the more intense. Also unlike Minesweeper, I have never played Gin Rummy before, so a lot of this intro period has been spent on researching the rules of the game and strategies that players take.

In order to get the best performance from the AI, I plan to use a Utility AI system that will be able to score a series of actions and then choose an action based on whichever has the highest score when a multitude of factors have been considered.

Category: Artificial Opponents 

Tags:

By: James Keats | September 18, 2017

Our competition for the Minesweeper AIs has concluded, and the results are in!

For this competition, our board sizes were:

Category: Artificial Opponents 

Tags:

By: James Keats | September 18, 2017

Weekly State of the Repo - v0.02.02

Last week's sprint was successful, and essentially all of the core mechanics shared between the different concepts have been implemented. We were finally able to complete some informal and formal QA testing and received good feedback about the direction we should be heading.

Category: Capstone 

Tags:

By: James Keats | September 11, 2017

Weekly State of the Repo – v0.01.03

The past week was spent implementing a couple different prototypes in Unity, each of which focused on a single mechanic with the plans to later build them out to full gameplay.

Category: Capstone 

Tags:

By: James Keats | September 08, 2017

General Approach

As was planned in the planning post, I approached Minesweeper in a similar way to what was outlined by Bai Li (luckytoilet) in the blog post "How to Write your own Minesweeper AI".

Category: Artificial Opponents 

Tags:

By: James Keats | September 03, 2017

Weekly "State of the Repo"

This first week was spent importing systems that I built over the summer, plus writing a build system.

Category: Capstone 

Tags:

By: James Keats | September 02, 2017

General Approach

My plan for Minesweeper is to follow the general approach outlined by Bai Li (luckytoilet) in the blog post “How to Write your own Minesweeper AI” which is also linked to in the references section.

Category: Artificial Opponents 

Tags:

By: James Keats | April 11, 2017

Before I begin, I want to give credit to whoever wrote the blog post that used to be located at the following link: http://www.nikumangames.com/dev-blog/unity-and-sourcetree-and-unityyamlmerge-exe-oh-my/

The only reason I'm writing this post is that it looks like their website is down and isn't available in the Wayback Machine. So thank you, mysterious vanishing developer(s)! Major credit also goes to Tim Pettersen (@kannonboy) for his GDC 2017 talk on incorporating Unity with git which is what got me started down this path.

Category: Uncategorized 

Tags:

By: James Keats | December 05, 2016

Before anything else, credit where credit is due: the basis of this blog post comes from this blog post by Andrew Fray as well as the GDC talk he gave, which was then expanded upon in this post by Mike Lewis.

Category: Artificial Intelligence 

Tags:

By: James Keats | August 08, 2016

This is a blog post I've been meaning to write for quite some time. My summer engine project is winding down and, due to a lack of time, never quite reached the level I wanted it to (although I'll probably make a post about what I did achieve shortly). Still, one of the best aspects of what I was able to complete was the Coroutine system. This doesn't use proper concurrency to run (although I will talk a bit more about that in a future post), but somewhat emulates the way a lot of really common coroutines work.

Needs: Common Use Cases

Category: Uncategorized 

Tags:

By: James Keats | June 08, 2016

Since writing my post about Allegro input handling, I've learned a lot more about bitwise operations, setting and masking bits, and how this can be useful. Most importantly, I've learned a bit more terminology than I knew when I started (thanks, Professor Brian Hall).


I'm still quite a ways from being able to show off my main project for the summer, but I'd like to get this one helpful, data-saving piece out there. That would be my series of Flag classes (which is really just one class).

What Are Flags Useful For?

Category: Summer Dev 2016 

Tags:

By: James Keats | May 18, 2016

The semester is wrapping up, and so I've been writing postmortems for pretty much every project I've been working on. I'm getting ready to update my portfolio with some of the projects I've worked on this past year; I'm a little tired of my website making it look like all I've worked in is Flash. One of my favorite pieces I worked on during the last piece of this semester was my UI system for my Game Architecture final, which is written in C++ using SFML.

UI System Needs

Category: Game Architecture 

Tags:

By: James Keats | February 07, 2016

For our most recent assignment in Game Architecture, we had to build some wrapper/abstraction classes for an Allegro framework. The important key was that this not be a leaky abstraction--that the outside user not require any knowledge of Allegro or its functions in order to use our code. Technically this assignment only required us to have very basic input, allowing the outside code to determine if the user was pressing "F", "S", and the location of the mouse cursor. I decided instead, having finished the rest of the assignment quite quickly, to write a full input handler.

Determining Our Needs

Category: Game Architecture 

Tags:

next>>
<<prev