{"id":22562,"date":"2017-11-06T08:00:52","date_gmt":"2017-11-06T16:00:52","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=22562"},"modified":"2017-11-14T10:30:39","modified_gmt":"2017-11-14T18:30:39","slug":"a-masterclass-in-video-game-design","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/a-masterclass-in-video-game-design\/","title":{"rendered":"A Masterclass in Video Game Design"},"content":{"rendered":"<p>The <a href=\"https:\/\/digilent.com\/shop\/zybo-zynq-7000-arm-fpga-soc-trainer-board\/\">Zybo development board<\/a> has been getting some recognition recently, making its way into amazing projects like this Halloween themed <a href=\"https:\/\/digilent.com\/blog\/the-walking-zybo\/\">Zombie Containment Unit<\/a>\u00a0featured last week on the blog. Since then, we have discovered another great use of the Zybo in an exceptional academic project developed at the <a href=\"http:\/\/www.compute.dtu.dk\/english\">Technical University of Denmark (DTU)<\/a>. This project for the Hardware\/Software Programming Course 02321 invites students to\u00a0use the Zybo FPGA and Vivado to develop <a href=\"http:\/\/www2.compute.dtu.dk\/courses\/02321\/projects_jan2016.html\">a unique video game<\/a>\u00a0within a three week period of full-time work.<\/p>\n<p>While the student creations are quite impressive, we were even more impressed that these projects represented the\u00a0first generation of IT-Electronics Diplom students at DTU! After only three semesters these students were able to develop the fantastic video games presented below. On their <a href=\"http:\/\/www2.compute.dtu.dk\/courses\/02321\/projects_jan2016.html\">student project website<\/a> you can find more information about the class project and materials used, as well as posters, interviews (in Danish), and gameplay videos describing each group&#8217;s creation.<\/p>\n<p><a href=\"http:\/\/www2.compute.dtu.dk\/courses\/02321\/projects_jan2016.html\"><strong>Brutalus\u00a0<\/strong><\/a><\/p>\n<p><iframe loading=\"lazy\" width=\"735\" height=\"413\" src=\"https:\/\/www.youtube.com\/embed\/bp2egmjQblc?feature=oembed\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen><\/iframe><\/p>\n<p>The first video game presented on the DTU project page begins with each player being awarded 100 health points and three lives. Each player enters the arena and proceeds to engage in battle to the death with each hit earning 5 damage points until only one player remains. Using the 16-bits per pixel VGA output port on the <a href=\"https:\/\/digilent.com\/shop\/zybo-zynq-7000-arm-fpga-soc-trainer-board\/\">Zybo<\/a>, the game is displayed onto a nearby monitor while an analog-to-digital converter connects two custom game controllers. With these controllers each player is able to navigate multiple maps with fluent animations while monitoring visual health bars and game statistics. Watch <a href=\"https:\/\/www.youtube.com\/watch?v=XnSFgqkNgB4&amp;feature=youtu.be\">a video of this gameplay<\/a>\u00a0as the creators lead you through their imagined world in Brutalus.<\/p>\n<p><a href=\"http:\/\/www2.compute.dtu.dk\/courses\/02321\/projects_jan2016.html\"><strong>Spitfire<\/strong><\/a><\/p>\n<p><iframe loading=\"lazy\" width=\"735\" height=\"413\" src=\"https:\/\/www.youtube.com\/embed\/CXRe6w2vq0A?feature=oembed\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen><\/iframe><\/p>\n<p>The next game featured on the <a href=\"http:\/\/www2.compute.dtu.dk\/courses\/02321\/projects_jan2016.html\">DTU project page<\/a>\u00a0uses the <a href=\"https:\/\/digilent.com\/shop\/zybo-zynq-7000-arm-fpga-soc-trainer-board\/\">Zybo development board<\/a> and a Wii controller to guide a fighter jet across the screen. Game objectives include firing explosive missiles to destroy enemy combatants while simultaneously avoiding collision with fired missiles. <a href=\"http:\/\/www2.compute.dtu.dk\/courses\/02321\/Images\/Jan2016_Posters\/Spitfire.pdf\">Project designs are included<\/a> to show how this team developed their game, highlighting different hardware features and communication protocols used. Watch the game in action as the students run through <a href=\"https:\/\/www.youtube.com\/watch?v=akY_3JQld-A&amp;feature=youtu.be\">a live gameplay<\/a> on the DTU YouTube channel.<\/p>\n<p><a href=\"http:\/\/www2.compute.dtu.dk\/courses\/02321\/projects_jan2016.html\"><strong>Bomberman<\/strong><\/a><\/p>\n<p><iframe loading=\"lazy\" width=\"735\" height=\"413\" src=\"https:\/\/www.youtube.com\/embed\/6gNzrcACffE?feature=oembed\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen><\/iframe><\/p>\n<p>Yet another group of students created a unique game where four players begin by entering an arena together and attempt to explode their way through the game to victory. Using power-ups like different types of explosives and more explosion power help each player blast through tiles while attempting to destroy their opponents. Players can use the green arena tiles to protect themselves against dangerous explosions until one player triumphs and another round commences. <a href=\"http:\/\/www2.compute.dtu.dk\/courses\/02321\/Images\/Jan2016_Posters\/Bomberman.pdf\">A hardware diagram<\/a> is provided showcasing the\u00a0hardware and keyboard setup, which the students then program using C programming language. <a href=\"https:\/\/www.youtube.com\/watch?v=Ews5JTgvtuk&amp;feature=youtu.be\">Watch the gameplay<\/a>\u00a0video and learn more about how the students&#8217; imagination was brought to life on the <a href=\"https:\/\/digilent.com\/shop\/zybo-zynq-7000-arm-fpga-soc-trainer-board\/\">Zybo development board<\/a>.<\/p>\n<p><a href=\"http:\/\/www2.compute.dtu.dk\/courses\/02321\/projects_jan2016.html\"><strong>Chess<\/strong><\/a><\/p>\n<p><iframe loading=\"lazy\" width=\"735\" height=\"413\" src=\"https:\/\/www.youtube.com\/embed\/6CwnZqlup4s?feature=oembed\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen><\/iframe><\/p>\n<p>A classic game of Chess is next introduced with a variety of gameplay options programmed into the project. In this game, players have the option to play against each other or try their best to defeat the computer in a single player game. At the top of the screen, players can find a timer to keep track of how long the game has lasted and games can be restarted with the quick press of a button. This version of chess is written in C programming language, using VHDL to program the provided <a href=\"https:\/\/digilent.com\/shop\/zybo-zynq-7000-arm-fpga-soc-trainer-board\/\">Zybo development board<\/a>. Watch the students test their peers in a <a href=\"https:\/\/www.youtube.com\/watch?v=aSfHO-hgYhA&amp;feature=youtu.be\">live gameplay<\/a> of the final chess game.<\/p>\n<p><a href=\"http:\/\/www2.compute.dtu.dk\/courses\/02321\/projects_jan2016.html\"><strong>Tetris<\/strong><\/a><\/p>\n<p><iframe loading=\"lazy\" width=\"735\" height=\"413\" src=\"https:\/\/www.youtube.com\/embed\/QLhKvXk8E8o?feature=oembed\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen><\/iframe><\/p>\n<p>The final game presented on the DTU course website used the <a href=\"https:\/\/digilent.com\/shop\/zybo-zynq-7000-arm-fpga-soc-trainer-board\/\">Zybo development board<\/a> to develop a game of Tetris. This game comes complete with <a href=\"http:\/\/www2.compute.dtu.dk\/courses\/02321\/Images\/Jan2016_Posters\/Tetris.pdf\">an in-depth write up<\/a> of the project stages accomplished by student developers including a description of their hardware choice, the process for writing and implementing the software, and the project end result. Check out the <a href=\"https:\/\/www.youtube.com\/watch?v=QZWSbUuxq8o&amp;feature=youtu.be\">live gameplay<\/a> to see the project results and begin to dream about what you can accomplish with the <a href=\"https:\/\/digilent.com\/shop\/zybo-zynq-7000-arm-fpga-soc-trainer-board\/\">Zybo<\/a>!<\/p>\n<p>Now that you know what can be accomplished with the original Zybo in just three weeks we challenge you to create your own video game. Whether you prefer the original Zybo or the <a href=\"https:\/\/digilent.com\/shop\/zybo-z7-zynq-7000-arm-fpga-soc-development-board\/\">newly released Zybo Z7<\/a>, you can find our handy <a href=\"https:\/\/digilent.com\/reference\/programmable-logic\/zybo-z7\/migration-guide\">migration guide<\/a> to get you quickly on your way to developing the next big game!<\/p>\n<p>Let us know which game was your favorite in the comments below and don&#8217;t forget to share your creations with us on social media!<\/p>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-22562 jlk' data-task='like' data-post_id='22562' data-nonce='202d78e1e0' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Like' \/><span class='lc-22562 lc'>0<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-22562 jlk' data-task='unlike' data-post_id='22562' data-nonce='202d78e1e0' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Unlike' \/><span class='unlc-22562 unlc'>0<\/span><\/a><\/div><\/div> <div class='status-22562 status align-left'>Be the 1st to vote.<\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Quinn profiles some Zybo-powered video games&#8230; built in just 3 weeks!<\/p>\n","protected":false},"author":37,"featured_media":22879,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1561],"tags":[1662,453],"ppma_author":[4483],"class_list":["post-22562","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-applications","tag-fpga","tag-vivado"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-14-at-10.29.50-AM.png","authors":[{"term_id":4483,"user_id":37,"is_guest":0,"slug":"quinnsullivan","display_name":"Quinn Sullivan","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/215dce3bd1420d6a78ee4888156d9c6aecad8fc0f3a8dba45316bf4e00c5a38b?s=96&d=mm&r=g","1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","9":"","10":""}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/22562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/users\/37"}],"replies":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/comments?post=22562"}],"version-history":[{"count":0,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/22562\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/22879"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=22562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=22562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=22562"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=22562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}