{"id":665,"date":"2015-01-26T19:05:33","date_gmt":"2015-01-26T20:05:33","guid":{"rendered":"http:\/\/www.tamats.com\/blog\/?p=665"},"modified":"2015-01-27T09:34:34","modified_gmt":"2015-01-27T10:34:34","slug":"globalgamejam-2015-we-won-at-our-local-jam","status":"publish","type":"post","link":"https:\/\/www.tamats.com\/blog\/?p=665","title":{"rendered":"GlobalGameJam 2015:  We won at our local jam!"},"content":{"rendered":"<p>This past weekend I assembled some friends again to participate in the Global GameJam 2015. I&#8217;ve\u00c2\u00a0participated <a href=\"http:\/\/www.tamats.com\/blog\/?p=160\">since 2011<\/a> with more or less luck.<\/p>\n<p>At the end we made a party-game up to 5 players in local, totally based in the theme of the Jam: <strong>&#8220;What do we do now&#8221;<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<p><video poster=\"uploads\/ggj15.png\" controls=\"controls\" width=\"520\"><source src=\"uploads\/ggj15.mp4\" type=\"video\/mp4\" \/>\u00c2\u00a0<\/video><\/p>\n<p>If you want to play it <a href=\"http:\/\/tamats.com\/games\/ggj15\">click here<\/a>, but you will need to have a gamepad and several other players.<\/p>\n<p>If you want to read the Post-mortem keep reading.<\/p>\n<p><!--more--><\/p>\n<h2>Post-mortem<\/h2>\n<p>This year I didn&#8217;t expect to do anything special, I came for the sake of participating but the stakes were very low.<\/p>\n<p>I told two close friends, Miguel (programmer) and Esteban (artist), to participate with me (both had experience in Game Jams) but I wasn&#8217;t sure if Miguel was going to join our team or participate on his own.<\/p>\n<p>When the theme was unveiled I was a little bit disappointed of it, but as soon as Miguel showed interest in joining the team I thought we had a chance, then we all started doing brainstorming.<\/p>\n<h3>Brainstorming<\/h3>\n<p>Miguel suggested to start by doing\u00c2\u00a0a brainstorm session by ourselves. I came up with some vague ideas, but during that session I had the impression that every team was going to end up doing\u00c2\u00a0the exact same game, because the theme seemed so constrained, but to\u00c2\u00a0my surprise the other team-members had totally different ideas. After\u00c2\u00a0sharing our ideas we started making suggestions and end up with three different potential games, but only one of them seemed feasible in time and complexity, so we choose that one.<\/p>\n<p>Our\u00c2\u00a0idea for\u00c2\u00a0the game was that a narrator tells a story, and in every sentence he foretells something dramatic, but some\u00c2\u00a0words are missing. Players have to guess which are the words missing to anticipate what is going to happen and avert the consequences. Every eight\u00c2\u00a0seconds the sentence on the screen is completed and players face the consequences.<\/p>\n<p><a href=\"http:\/\/www.tamats.com\/blog\/wp-content\/uploads\/2015\/01\/ggj15_screen.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-672\" src=\"http:\/\/www.tamats.com\/blog\/wp-content\/uploads\/2015\/01\/ggj15_screen.jpg\" alt=\"ggj15_screen\" width=\"800\" height=\"479\" srcset=\"https:\/\/www.tamats.com\/blog\/wp-content\/uploads\/2015\/01\/ggj15_screen.jpg 800w, https:\/\/www.tamats.com\/blog\/wp-content\/uploads\/2015\/01\/ggj15_screen-300x179.jpg 300w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>The degrees of freedom of the players were limited, they only could run around the screen and pickup objects, so we make some situations were having or not an item could save your life.<\/p>\n<p>This idea was ideal for a Gamejam. Besides\u00c2\u00a0having\u00c2\u00a0little replay-ability, its simple concept and the fact that many people can play together against the\u00c2\u00a0game narrator had a high laughs-factor, which would\u00c2\u00a0work very well in front of an\u00c2\u00a0audience.<\/p>\n<p>Also I knew Miguel is good writing rare jokes, so I wanted to have a game where his jokes could be part of the gameplay itself.<\/p>\n<h3>Planning<\/h3>\n<p>I usually prefer to code alone during the Jams, it is hard to coordinate with another\u00c2\u00a0developer in such a short time, but Miguel is also a developer, and he has a totally different way or programming (he and I do not agree in any coding language). So that was going to be a problem. Esteban on the other hand would focus in doing backgrounds and sprites for the game.<\/p>\n<p>My suggestion was that Miguel would design the game levels in a document and coordinate with Esteban to create the items we need for the different levels. Meanwhile I would develop the engine in Javascript and as soon as possible have a character moving around the screen. Miguel agreed with me, but instead of just creating a document he would create a parseable file with all the info so I can read it and put it straight inside the game.<\/p>\n<p>Because he had a better mental image of how the game was going to be, I told him to feel free to put as much info as he wanted.<\/p>\n<h3>Development<\/h3>\n<p>Friday was almost gone and\u00c2\u00a0I didn&#8217;t have anything running, I was using an old Javascript library I created to code 2D games but it wasn&#8217;t working at all so I decided to call it for the day, an start again on Saturday\u00c2\u00a0from scratch.<\/p>\n<p>Every\u00c2\u00a0Saturday I go to a drawing course and I couldn&#8217;t skip the class, but because everyone had his own goals, it wasn&#8217;t a problem for the rest of the team. When I came back to the Jam around mid-day, they already had envision different levels,\u00c2\u00a0so I started putting everything together using another library I created for 3D games, the performance wouldn&#8217;t be so good but because we didn&#8217;t have too many sprites in the screen I thought It wouldn&#8217;t be a problem.<\/p>\n<p>Miguel\u00c2\u00a0told me\u00c2\u00a0that instead of creating a parsable file with our own format he could write\u00c2\u00a0a valid JSON file so it would be much easier for me to integrate it with the code, and thanks to that I didn&#8217;t have to waste time parsing a text file, it was as easy as using the built in features of the browser.<\/p>\n<p>Around midnight we already had one character\u00c2\u00a0running around the screen, picking up objects and making funny faces.<\/p>\n<p><a href=\"http:\/\/www.tamats.com\/blog\/wp-content\/uploads\/2015\/01\/Screen-Shot-2015-01-24-at-18.50.53.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-675\" src=\"http:\/\/www.tamats.com\/blog\/wp-content\/uploads\/2015\/01\/Screen-Shot-2015-01-24-at-18.50.53.png\" alt=\"Screen Shot 2015-01-24 at 18.50.53\" width=\"800\" height=\"399\" srcset=\"https:\/\/www.tamats.com\/blog\/wp-content\/uploads\/2015\/01\/Screen-Shot-2015-01-24-at-18.50.53.png 800w, https:\/\/www.tamats.com\/blog\/wp-content\/uploads\/2015\/01\/Screen-Shot-2015-01-24-at-18.50.53-300x149.png 300w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>At 3 o&#8217;clock I coded the bears attack, and we were very happy with the result, that gave us a moral boost, so I polished more effects and situations while Esteban was creating more items and characters.<\/p>\n<p>At 4 o&#8217;clock I was still fresh and could keep coding but Esteban was falling sleep\u00c2\u00a0on top of his computer so I decided that it was time to go home. We had enough already to do something funny.<\/p>\n<p>On Sunday morning we had to start chopping\u00c2\u00a0the game content, I\u00c2\u00a0didn&#8217;t have\u00c2\u00a0enough time to code\u00c2\u00a0several levels (although Miguel had already planned all of them and Esteban had made most of the art).<\/p>\n<p>I was afraid that having more levels could meant not having the game mechanics working well so I focused on having one single level with everything very tested.<\/p>\n<p>I still had to code the\u00c2\u00a0multiplayer aspect of the game, I needed to code a lobby where players could jump in\u00c2\u00a0the game, and also some basic features like visual feedback of what was going on in the game.<\/p>\n<p>Meanwhile Miguel was improving the level file, adding audios, more puzzles, etc. It was very funny for me to test the game without knowing the solution to every puzzle, so I could experience\u00c2\u00a0what other players would face.<\/p>\n<p>Around one o&#8217;clock\u00c2\u00a0I had the multiplayer already working so I decided to do the first test. We assembled some players and started a match, and\u00c2\u00a0while playing that match\u00c2\u00a0I realize the game had some chances of winning. While we were playing we were laughing and cursing and\u00c2\u00a0enjoying the match.<\/p>\n<p>20 minutes prior to the deadline I was still coding some important features (like the time bar, the title, more endings, fixing bugs, etc) but I was happy because everything was working better than expected.<\/p>\n<p>It was very good to have Miguel on the other side doing all the boring stuff about the game (taking screenshots, uploading our info in the official website) so I could scratch the latest minutes of the game.<\/p>\n<h3>Presentation<\/h3>\n<p>We were one of the teams to present the game first.\u00c2\u00a0I decided to ask the audience for some player testers, and three guys decided to jump to the game.\u00c2\u00a0I had some introductory text thought but because there were\u00c2\u00a0some technical difficulties to plug the gamepads and the computer to the screen, I totally forgot about them. I didn&#8217;t say\u00c2\u00a0the names of the group members either! I was afraid for a second that\u00c2\u00a0I wasnt going to be able to show the game in its full potential. I could show the game played by one player at the keyboard but that\u00c2\u00a0defeated the complete purpose of the game.<\/p>\n<p>Luckily everything got fixed by restarting the computer so we\u00c2\u00a0could show the game, and while playing\u00c2\u00a0the audience started laughing and enjoying all the silly situations that Miguel had coded, they were fun and allow the audience to participate by trying to guess what was going to happen next.<\/p>\n<h3>Results<\/h3>\n<p>We end up winning <a href=\"https:\/\/gamejambcn.com\/es\/resultats-danys-anteriors\/resultats-2015\/\">the best game of the competition<\/a>, just 0.02 points above <a href=\"http:\/\/globalgamejam.org\/2015\/games\/waapdoobeedoo\">another game<\/a> that was amazing in all aspects.<\/p>\n<p>My point of view is that we created a game totally focused in the Jam itself, instead of trying to do\u00c2\u00a0that game that we have been thinking for a long time. We didn&#8217;t risk much in the technological or artistic aspects but we went straight to make a game fun\u00c2\u00a0to play with your friends, and we succeeded.<\/p>\n<p>Thanks again to my two great team-members, it was a pleasure working with you.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This past weekend I assembled some friends again to participate in the Global GameJam 2015. I&#8217;ve\u00c2\u00a0participated since 2011 with more or less luck. At the end we made a party-game up to 5 players in local, totally based in the theme of the Jam: &#8220;What do we do now&#8221;. &nbsp; \u00c2\u00a0 If you want to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,3,25,29,26,24],"tags":[],"class_list":["post-665","post","type-post","status-publish","format-standard","hentry","category-coding","category-devlog","category-gamedev","category-html5","category-javascript","category-webgl"],"_links":{"self":[{"href":"https:\/\/www.tamats.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/665","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tamats.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tamats.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tamats.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tamats.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=665"}],"version-history":[{"count":11,"href":"https:\/\/www.tamats.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/665\/revisions"}],"predecessor-version":[{"id":678,"href":"https:\/\/www.tamats.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/665\/revisions\/678"}],"wp:attachment":[{"href":"https:\/\/www.tamats.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tamats.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tamats.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}