Search This Blog

Playing With Gravity to Learn CUDA: Hello, World

I have been interested in CUDA for a long time, and while I've read a few books on CUDA, I have not actually gotten my hands dirty with it, yet. It's time to remedy that situation with this new blog series where I explore CUDA programming with a purpose. The end goal is to create a CUDA program that runs a scalable, multi-body gravity simulation on my GPU. Maybe I'll even draw what's being simulated on the screen. I'm not sure at this point how big I'll be able to make this simulation, but I think it'll be a good way to dive into CUDA and see what it's all about. The real goal here is to experiment, fail, struggle, and learn while having some fun doing it.

Representation of Sun-Earth Gravity

Exploring Monster Taming Mechanics in Final Fantasy XIII-2: Dogfooding

This is it―the last post of this series on exploring the monster taming mechanics of Final Fantasy XIII-2 is finally here, and in it we're actually going to do what the title says. Now that we've integrated all of the tables of data that we extracted from the FFXIII-2 FAQs into a functional website, we're ready to use that website to explore how to optimize the monster taming as we play through the game. This exercise is known in the tech industry as dogfooding, where we proceed to eat our own dog food, so to speak, to see whether or not the product we're building is any good. During the course of using the website, we may find opportunities for improvement, missing features, and other things that could just be done better. It's an excellent way to iterate on a product to improve it.

Final Fantasy XIII-2 monster taming Odin

Exploring Monster Taming Mechanics in Final Fantasy XIII-2: Monster Characteristics

We've done something with just about all of the data we've extracted on monster taming in this series on exploring Final Fantasy XIII-2 monster taming mechanics—except for the monster characteristics. Last time we finally integrated the monster materials table into our website, so now we're ready to tackle the last orphaned data. But what should we do with these monster characteristics? They each consist of only a name and a description, so it seems kind of boring to just link their names in the monster table to the monster characteristics table. We should be able to do something more useful with them. Conveniently, Bootstrap has a tooltip component that would be a perfect use for this data, so we're going to explore that idea.

Final Fantasy XIII-2 Svarog

Exploring Monster Taming Mechanics in Final Fantasy XIII-2: Finding Monster Materials

We've started asking deeper questions of the monster taming data in this Exploring Monster Taming Mechanics series, but so far we've ignored the fact that these monsters can level up once we've tamed them. Their starting stats and abilities will not stay the same while the monsters develop, so we should take that into account when we're trying to find the strongest monsters. Monsters that can level up to higher levels are going to end up stronger than other monsters that may start out stronger but can't level up as much. And the way these monsters level up is by applying certain materials dropped by defeating other monsters in battle. We need to know when and where we can get those materials, so that is the subject of this post.

Final Fantasy XIII-2 Battle Scene

Exploring Monster Taming Mechanics in Final Fantasy XIII-2: Asking Deeper Questions

So far in this Exploring Monster Taming Mechanics series, we've parsed a bunch of data, built up database tables, and connected them together in a website with some filtering sprinkled in. This setup allows us to browse around the data pretty easily and ask some basic questions of the data. Now it's time to think about how we can ask deeper questions. Instead of just asking things like, "What monsters have the Auto-Bravery ability," we want to be able to ask, "Where is the earliest location where I can get a monster with the Auto-Bravery ability?" Sounds like a useful think to know, right? Let's figure it out.

Final Fantasy XIII-2 Narasimha tamed

Exploring Monster Taming Mechanics in Final Fantasy XIII-2: Filtering Monsters

We've finished building up views and controllers in the Rails MVC architecture for the various tables of monster data we have in this Final Fantasy XIII-2 monster taming mechanics series. However, some of the navigation for the latest monster details page and ability table pages is a bit clunky, so we're going to improve that today. First, when a link is clicked in the monster details page to go to the ability table, the clicked ability is highlighted, but the user needs to search through the table to find the highlighted row. We'll see how to go to the desired row directly. Then, we want to make the return trip from a link in the ability table take the user to a monster table that shows only the monsters that have that ability. Let's see how it's done.

Final Fantasy XIII-2 Battle Scene

Exploring Monster Taming Mechanics in Final Fantasy XIII-2: Viewing More Monster Data and Abilities

We've been building up views and controllers in the Rails MVC architecture for the various tables of monster data we have in this Final Fantasy XIII-2 monster taming mechanics series. We're now almost ready to finish off these table views with the ability tables, but before we do that, we need a place for the links to those ability tables to exist. The number of abilities for each monster is too much to put in the main monster table page, so we'll need to first build a details page for each monster before we can link up the monster abilities with the ability tables. Let's get started on that details page.

Final Fantasy XIII-2 Battle Scene