Tuesday, February 14, 2017

The Beginnings of a Great Adventure

For the six-week long Genius Project, I have decided to pursuit my passion in programming, specifically video game programming. There has always been something about programming that draws me in and intrigues me. If I had to define it, I would say that I have fallen in love with the analytical nature of coding. Everything you program has an algorithm. Tasks we normally think are simple, like walking from point A to point B, can only be implemented through well thought-out, logical commands. I love the challenge of approaching the problem logically and breaking it down into simple repeatable steps for a computer to execute.
At this point, you may be wondering why I chose video game programming as opposed to, let’s say, artificial intelligence or “useful” programs. Well, it’s partially because I just enjoy video games. I’ve spent way too much time gaming on my computer, and I need to put that time to use somehow. But besides, I like the idea of making a tangible, physical product. It is a great feeling to play a video game and know that you built that game from the ground up using your own code. I have never been good at building things with my own hands, but programming video games is an opportunity to create something on my own that doesn’t suck.
So, to the specifics of the Genius Project. Over the course of the next six weeks, I want to learn a Java-based game development library called libGDX. By the end of the six weeks, I want to create a fully functional video game. Specifically, I want to create a 2D zombie survival game where the player controls an armed character that has to fight off waves of zombies. The game must have all the components of a full game, including a playable character that can shoot and kill zombies, a shop/progression system to unlock new weapons, and “good” graphics like pixel art and animation. To track my progress, I will use the following timeline.

By the end of week 2, I wish to have the basic engine completed. This includes player and zombie movement, bullet movement, and being able to shoot and kill zombies.
By the end of week 4, I will have the shop/progression system created. This includes creating various weapons for the player to use and being able to switch between windows such as the shop window and the game window.
By the end of week 6, I want to learn how to implement animation so the movement of characters and the firing of weapons is dynamic.

These basic guidelines are my goals for the project. However, part of the game development process is making an experience fun for the user. To that end, I believe playtesting will reveal areas of my game that I want to implement or fix that I did not think of to begin with. So, be prepared for awesome features that weren’t even included in goals!
To make it easy for everyone to track my progress, I hope to embed weekly updates of my game to this blog. That way, you guys can play every iteration of my game and actually see how it improves. The code itself will also be controlled through my GitHub, so my entire process will be tracked online. Feel free to check it out, and I’ll post again next week!

4 comments:

  1. Have you considered outsourcing your graphic design to Bangladeshis? I've heard you can hire them for only a few dollars per hour.

    ReplyDelete
  2. I think that this is such a cool project, and is definitely right up your alley. I'm sorry if this was covered, code is not my thing, but will we be able to see any of your code for the game actively playing the game, or will you just post snipets in your blog post? I think it would be very cool to see the entire code at some point in its entirety, just to see how far you've come. This is super cool!

    ReplyDelete
  3. Personally, I am also very interested in programming. I would love to see how the program and code works to run a game. Will you design the characters and the visuals the the game by yourself? Or are you able to use an already existing design? I'm really excited to see this game of yours, good luck!

    ReplyDelete
  4. This is a good looking blog, but I would expect it from a seemingly talented programmer like yourself. The interactive element that you've already incorporated into the blog shows both your creativity and talent as you've already created a product within two weeks! That speed is remarkable and makes me excited for what lies ahead. Do you have anyone to interview? Learning from a master will definitely help you in the future.

    ReplyDelete