Categories
Projects Purdue School Technology

Free Time? What’s a Free Time? or Senior Design

Oh hey. Here, let me clear out these cob webs. It sure has been a while hasn’t it? I sure like your new sweater. It’s a bit chilly out there isn’t it.? Snow in November! Crazy, right? Wow! Really?! That is great to hear! Oh, my life? How kind of you to ask. Well let me tell you!

I finally started senior design for my engineering degree. Yes, that means I will be graduating soon! Finally! Amazing! Fin-mazing! One the other hand, this also means I have almost no free time. The few moments I do manage to carve out for free time, I am usually rendered useless due to the combination of work, school, and improv. These blips are usually spent watching Murphy Brown because if there is one thing I can do during my downtime it is watch old, irrelevant sitcoms (Cheers and Fraiser, check!).

It sounds like I am complaining, but that’s only is because I am. This is not all without an upside. The project I selected/was chosen for is engaging, challenging, and combines just about everything I’ve learned in school and then some.

We are trying to assemble a team for the Robotic Football competition put on by The University of Notre Dame. Basically, mobile robots that play a modified version of Football. Here is a sample video:

We have six members in total split between two groups of three. Notre Dame has quite a lot of people who participate in the designing, building, testing, and programming of these robots so we are at a slight disadvantage. One group is focusing on the quarterback, and the other on the receiver. Due to the sheer size of the project we are focusing on those two positions in particular and if time and funding allows we will expand from there. The ultimate goal is to compete with a full team in April.

Surprisingly, the hardest part now is location tracking, i.e., how far are the robots traveling, and where are they? There are many different methods: infrared, ultrasonic trilateration, odometery, acceleration, gyroscopic, and every combination in between. All methods have inherent flaws and many require prohibitively expensive equipment. The problem is that location tracking absolutely crucial to performing reliable passes between the QB and the receiver. As of this writing we are going with odometery using rotary encoders and using some advanced mathematic techniques in junction with initial calibration to hopefully yield a reliable, cost-effective solution to location tracking.

We have accomplished much as a group though and have a little to show for it now. The base has been designed to specification put out by Notre Dame. The parts have also been selected and ordered. Preliminary software tests for communication have been constructed and, well, tested. Since the group is made up of so few we are forced to wear many hats and as of now I have been 3D modeller as well as BeagleBone champion due to my Linux background and the fact that I learned how to program with net code this semester.

Here is a 3D Model of our base with the top lid removed. The parts have been ordered and the construction begins in mid to late December.

Since I have been the person pushing the group to use the BeagleBone Black as the microcontroller instead of the Arduino or Raspberry Pi, I took it upon myself to learn it. I am quite familiar with Linux. I run it on my servers, and try (whenever possible) to use it as my main OS (So I can keep my nerd cred, the primary reason I don’t use it all the time is due to software constraints. Adobe software doesn’t run well on Linux, even in Wine.). Wi-Fi is relatively ubiquitous and parts are cheap. Instead of going with a proprietary system like Xbee which is what most people use because they have Arduino libraries, we chose Wi-Fi. The plan is to use IP (same protocol you use for the Internet) using UDP for speed and if the connection becomes unreliable then use TCP.

A test created showcases the network in working order. The idea is the BeagleBone runs a server, written in Java, and waits for packets. A client, written in Java, running on a Windows machine transmits numbers to the server. The server then lights up four LEDs showing a binary representation of that number. All data is transferred over a networking using UDP/IP. Unfortunately, the Angstrom (BeagleBone Linux distro) repository was down at the time of the recording so the USB Wi-Fi adapter’s drivers and firmware could not be installed. Standard 802.3 Ethernet over Cat 6 was used in its stead.


I know this is all sounds very technical, and that’s because it is. Although this will be compiled into several papers outlining our exact reasoning, I wanted to get it out in my own words and will continue to do that as we go along, time permitting. Hopefully by the next update we will have a real world working robot to showcase, but for now this is what I can provide. I hope you found it fascinating despite the overly technical nomenclature. It’s all-consuming, but it sure is fun. I am really lucky to be doing what I enjoy.

Categories
Projects Video Games Website

An Update!

I’ve been meaning to update this blog more because I have a lot in the pipe I want to get out on here. As I finish college and get into the real world I want to make this a sort of interactive resume for potential employers. That also means you guys can look at all the neat stuff I have been working on.

Recently, I have built myself a new machine and can now edit video like nobody’s business so I want to get into vlogging again. Everyone loves vlogging!

In terms of my “Game Design Diary” the worst thing that could happen, did happen. A dude who is far more eloquent and well versed in the topic wrote about it – Jeremy Parish. He has been doing his “Anatomy of a Video Game” series for a while and he landed on Metroid right about the time I did. Anyway here is a link to the first article. It is really well done and worth the read.

http://telebunny.net/toastyblog/2013/04/the-anatomy-of-metroid-i-welcome-to-zebes/

I will come up with something else to write about. I just need to find it.

All I am saying is stay tuned for some neat stuff. It is coming. No take backs.

Categories
Projects Video Games

Game Design Diary – Metroid: Part 1

skitchI started Metroid as my prior post indicated I would do. I consider myself a fairly masochistic gamer (I have all 10 Mega Mans under my belt without any cheat or help), but I  never was a map maker. The furthest I have gone is Etrian Odyssey with the ability to “auto-map”. There is one concession I made with Metroid. I wanted a map. The one you see above is the map I have been using and marking off as I progress. I have not used any other guides or walk-throughs.

Metroid nails some things off the bat. The atmosphere is spot on. It feels desolate and alien and the sparse use of music and effects adds to the tone of the game. The learning curve in the game can be very daunting. This can be viewed in one of two ways, rewarding or overly-complicated. My take is that it’s learning curve discourages new player, to the point where they stop playing. Hell, I’ve started Metroid three or four times prior and never stuck with it. It drops you in without so much as ‘hello’. I would give subtle hints to get the player invested. These are fairly moot points in terms of the Metroid francise because they adress this concern in Super Metroid. That being said, this is for my benefit, not Nintendo’s.

In general I don’t care much about graphics in a game. The gameplay mechanics and motivation are far more important, but I should at least comment on the visual style. Despite many modern games with their muddied brown-grey-brown palette, Metroid uses high-contrast and stark blackness to create a very compelling color scheme.

368382-metroid_1_supermet_nes1

312617-metroid-nes-screenshot-you-can-use-bombs-to-reveal-hidden

Each area of the game has a color scheme that makes it feel distinct and packs a punch. Games shouldn’t be afraid of color.

One of the surprising things I encountered in the game is the run-and-gun strategy ala Mega Man just doesn’t work. The enemy placement and behavior has been thought through and punishes this action. For instance, there is this enemy called a Waver. It’s action is basically to move in a sine wave pattern and change direction when it bounces off things. They take a lot of hits, but their patterns are predictable so it’s best to avoid them all together if possible.

Here is when I first noticed:

waverWhen you first enter the door on the left you will see the enemy come towards you. Your initial instinct is to run at it guns blazing. The best strategy however is to stay put and let it get to the maximum height of its arc and then run under it. You can outrun it and avoid the encounter all together. This ladies and germs is smart enemy placement. They most likely figured that out by play testing and seeing people’s behavior. Play testing is imperative. I love that the game makes you think about what your doing instead of mindlessly running around. It becomes an immersive experience instead of a passive one. The games that I tend to enjoy.

That will finish up the first update. I still have more to play and more notes to take. This first session has been super helpful and I hope to continue this. More to come!