tag:blogger.com,1999:blog-62984564819981775482024-03-14T18:31:39.144+02:00Dense Games - BlogA place where density coincides with denseness.Johannes Hidénhttp://www.blogger.com/profile/06968608189131118506noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-6298456481998177548.post-4504670654147293642017-09-06T00:05:00.000+03:002017-09-06T07:58:19.592+03:00When will AR or VR mash up e-sports with regular sports?<div style="text-align: justify;">
A week ago <a href="http://www.nextgames.com/">Next Games</a> revealed that they will soon be releasing a location-based AR game based on the Walking Dead franchise. A promotional video for the game called <i>Walking Dead: Our world</i> can be seen here:</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/65p4btkTkMU/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/65p4btkTkMU?feature=player_embedded" width="320"></iframe></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
After seeing the video I started thinking how big a potential a game like this could have and tried to predict how well it will do once it's released. With the combination of mobile, AR and location-based technology the most obvious comparison is of course Pokémon GO, which has been a huge success and an unprecedented social phenomenon. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Zombies of course can't really be a similar family experience as Pokémon GO has been, but it should have its own strengths. One of them is undoubtedly Apple's ARKit offering a more advanced AR experience compared to the floaty Pokémons. Another one is that it is more action oriented and may thus feel more like a game for most of the target audience.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Then again, being more action-oriented may also have its downside. An AR game requires more from the player than a traditional mobile game, and as such can't be that easily played eg. when travelling by bus. And when for example out in a park, compared to casually catching a single pokémon many will probably feel more awkward dodging zombies looking through the mobile phone given there are other people around who are not playing the game. But having a friend or a group of friends playing along would take at least most of the awkwardness away. Therefore for the game to truly succeed, it probably needs to be social not just through online communities, but locally too. Compared to Pokémons, this may be more difficult to achieve with zombies as the violence limits the audience. Then again, within its target audience it might stir up a deeper interest than collecting Pokémons.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
So how will the game succeed? The question is a product of a plethora of factors ranging from the magnitude and longevity of its general appeal to ultimately also its monetization mechanic. How well it will do remains to be seen, but thinking about the social side of the game made me wonder when we will see the first serious mash-up of e-sports and regular sports. I mean even though participating in an e-sports event is truly intense and even somewhat physical for the competing players, the physical activity is ultimately pretty much limited to eye-hand coordination. But with VR and AR on the rise and also mobile games like Supercell's Clash Royale and Brawl Stars taking their steps into e-sports, I think it's only a matter of time when we will see the first significant e-sports games with big prizes, where the players have to get every bit (pun intended) as physical as one would in a traditional team sport like football. When that happens, it may very well also broaden the general interest in e-sports as a whole.<br />
<br />
A VR-based game may be likely to pioneer into e-sports before an AR-based one, but in principle the pioneering could happen even with teams competing in fighting AR zombies. Now although definitely not easily achieved, a mechanic making that possible would offer a truly social experience!</div>
Johannes Hidénhttp://www.blogger.com/profile/06968608189131118506noreply@blogger.com0tag:blogger.com,1999:blog-6298456481998177548.post-44581639144342676652017-01-24T22:47:00.001+02:002017-05-22T23:27:45.912+03:00Spare time development?<div class="separator" style="clear: both; text-align: justify;">
</div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhat2ZeRG_69UWmoVpqV4DLYXbFziGdXd3CZHTu_1qxobQoAignku_baJQfDKPnzjmXRsx4VIwJmpPywZxeK3q-3jJJXz1yr-sxZaaP18Lf31TTx3VsboYFX_5pItPJljM7GqClMZ5oqxHO/s1600/RevisionHistory2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhat2ZeRG_69UWmoVpqV4DLYXbFziGdXd3CZHTu_1qxobQoAignku_baJQfDKPnzjmXRsx4VIwJmpPywZxeK3q-3jJJXz1yr-sxZaaP18Lf31TTx3VsboYFX_5pItPJljM7GqClMZ5oqxHO/s1600/RevisionHistory2.PNG" /></a></div>
</td></tr>
<tr><td class="tr-caption" style="text-align: center;">Project TB revision history for the past two months <br />
(don't mind the broken Finnish)</td></tr>
</tbody></table>
<div style="text-align: justify;">
My game development projects can be characterized as a spare time endeavour. But what does that mean in practice when there are two small kids (0 and 2 years) and a regular job as regular responsibilities? Well, the revision history on the right says a lot (don't mind the broken Finnish, those words just stand for January, December and November). The dates and times show moments when I've done at least some changes to the project.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Not that I'm assuming this to be particularly interesting for a random reader here's a breakdown of the listing that contains the 50 revisions committed in 31 sessions divided into four categories according to the time of day in which they occurred:<br />
<br />
<table border="1"><tbody>
<tr><td><br /></td><td>Early Morning</td><td>Day time nap</td><td>Evening</td><td>Other</td></tr>
<tr><td>Sessions</td><td>18</td><td>5</td><td>4</td><td>4</td></tr>
<tr><td>Revisions</td><td>21</td><td>9</td><td>9</td><td>11</td></tr>
</tbody></table>
<br />
As the 0 year old came into the picture I took a new habit of going sleeping very early, and accordingly I've sometimes waken up very early. If I've then had the energy I've done something with my project. This is evident in the big number of early morning sessions, although as can be seen from the table too, the sessions have usually been a rather short ones with only one revision committed per session if even that.<br />
<br />
The second most common session time is the day time nap. What better time to work on a project when it's weekend and the bigger kid is having a nap?<br />
<br />
The third type are the evenings, which are slowly getting back and possibly replacing the mornings again.<br />
<br />
The fourth time category is "other" times. There have been two occasions when I've had the possibility to do stuff with the project while the 2 year old has been in the kindergarten for a 2,5 hour visit, and two other special situations when I've had some free time to spend on the project.<br />
<br />
So what was the point of this? I dunno, I guess I'm a geek who likes statistics. And the listing also goes to show what a hobbyist game programmer's time schedule may look like: even though I currently have quite a good flow and motivation for working on the project<span style="font-size: x-small;">(*)</span>, the time that's possible to spend on it is still pretty limited.<br />
<br />
<span style="font-size: x-small;">(* Can't help but admit that a couple of weeks ago I also got yet another idea I'm starting to feel an urge to build a proto for. This in practice would mean a pause for this current project, which could be justifiable due to the simplicity and assumed ease of developing and finalizing the other project, but still the prospect of having multiple projects on-going is... uff... pretty daunting 😯)</span></div>
Johannes Hidénhttp://www.blogger.com/profile/06968608189131118506noreply@blogger.com0tag:blogger.com,1999:blog-6298456481998177548.post-88123599490229160622016-10-28T17:25:00.000+03:002016-10-28T17:25:02.546+03:00Contest reward raised to 200$! Some time ago in an earlier post I announced a contest: whoever beats my record in Cubendor will receive a prize. Well, now I've decided to raise the reward to 200$! So <a href="http://densegames.blogspot.fi/2016/07/cubendor-challenge-win-100.html">check the rules from the earlier post</a>, test your skills and claim the prize! :)<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm9C9YQUachRzbnBL4RsuYaciMEsaBU6iuLLLOyHxQl0coAVsVz1yosm4TuNs4-o7FBH48D2i_iopM2NuBr9OOpG3WUSOza0oL-n_ePX0Ml-SVkc0oxIeg6owewYudQud0i-bcpGGR1vAU/s1600/IMG_4267.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm9C9YQUachRzbnBL4RsuYaciMEsaBU6iuLLLOyHxQl0coAVsVz1yosm4TuNs4-o7FBH48D2i_iopM2NuBr9OOpG3WUSOza0oL-n_ePX0Ml-SVkc0oxIeg6owewYudQud0i-bcpGGR1vAU/s640/IMG_4267.PNG" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Getting a <i>"double sider"</i> in Cubendor.</td></tr>
</tbody></table>
<br />Johannes Hidénhttp://www.blogger.com/profile/06968608189131118506noreply@blogger.com0tag:blogger.com,1999:blog-6298456481998177548.post-75363029492748276692016-09-25T14:56:00.000+03:002016-09-25T20:23:50.117+03:00Juggling projects<div style="text-align: justify;">
There are several starting points a game project may have. Some may originate from a beautiful artistic vision, around which a game is to be designed and built. Some may be specifically designed for a specific target audience, whether it's about going for casual gaming or being a pioneer in a small niche. Some may be about making a game the developers themselves would really like to play with the humble hope of others seeing that enthusiasm too and sharing the interest. Some may simply be sequels to existing game series or attempts to cash-in on some other game's success by making a clone of it.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
For indie developers making the most technically or visually impressive variation of an existing game concept is usually not that realistic a starting point when planning a game project. With the limited spare time, resources and graphical capabilities at my disposal, this is especially true in my case. Therefore whatever I create, it has to have its foundation around a concept that's at least somewhat unique. I believe Cubendor (the game that I released few months ago) does qualify as being pretty unique despite its obvious similarities with Tetris, but then again its difficulty combined with its simplicity of being just a hiscore hunt probably made it even more niche than I initially anticipated.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
So what am I about to do next? The basic starting point hasn't changed: any game has to be built around a core idea that's as novel as possible. Everything from platform to monetization is to be decided so that it supports this core idea. And one hurdle hasn't changed either: how can I make the game have a decent look visually? The latter in particular was one of the reasons why I made <a href="https://itunes.apple.com/us/app/cubendor/id998156617?mt=8">Cubendor</a> (and actually also <a href="http://www.densegames.net/navalanche.html">Number Avalanche</a>): a game based on blocks doesn't require much artwork nor resorting to someone else for doing the graphics.<br />
<br />
Other than that, plans have been changing a bit. The following table lists four projects along with their intended platforms, required workloads and vague estimations of their potential as games. I've done some minor prototyping on all four, but three of the projects have been on my mind recently. I will refer to these projects with acronym-based codenames here in order to avoid revealing too much about the idea. So if you're reading this, bear with me: it might not be that interesting a read with the limited amount of information I'm willing to share here. On the other hand, if you're reading this at a point where I've actually released one or more of these games, reading this might be an interesting throwback to how I looked upon the projects earlier.<br />
<br />
<table border="1" style="width: 100%px;"><tbody>
<tr><td><b>Project codename</b></td><td><b>Primary platform</b></td><td><b>Project size</b></td><td><b>Primary challenge</b></td><td><b>Estimated potential (1-5)</b></td><td><b>When</b></td></tr>
<tr><td>Project F</td><td>Desktop</td><td>Big</td><td>Technical/Visual</td><td><div style="text-align: center;">
<span style="color: #38761d;">5 (Very high)</span></div>
</td><td>After TB?</td></tr>
<tr><td>LL</td><td>Mobile</td><td>Small</td><td>Balancing/Visual</td><td style="text-align: center;"><span style="color: #cc0000;">2 (Too low)</span></td><td>Never?</td></tr>
<tr><td>TB</td><td>Mobile</td><td>Small</td><td>Visual</td><td style="text-align: center;">3-4</td><td><span style="color: #38761d;">Just started</span></td></tr>
<tr><td>L - The scifi game</td><td>Undecided</td><td>Big</td><td>AI design/Visual</td><td style="text-align: center;">4?</td><td>Not in a long time</td></tr>
</tbody></table>
<br />
<br /></div>
<h3 style="text-align: justify;">
Project F</h3>
<div>
<div style="text-align: justify;">
This is the project that I'm the most excited about. In fact, I'm sort of surprised that no one has yet made a game like this, and at the same time afraid that someone has or will have the same idea and will make a game out of it before I have the chance to do so.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Broadly speaking the game would be classified as a <u>First-person shooter (<b>FPS</b>)</u>, but more akin to puzzle games like Portal or <a href="https://en.wikipedia.org/wiki/The_Talos_Principle">Talos Principle</a> than eg. Doom. In any case, being an FPS means that being able to create a decent visual style and looks for the game may easily be even more of a challenge than with the other projects. Another challenge for this game is technical: there are some fundamental requirements the whole concept has that go beyond those of a basic FPS, but I did some prototyping and planning earlier and I think I've managed to tackle those to an extent that once ready to truly start working on the project, I can do so.</div>
</div>
<div>
<br /></div>
<div>
<h3 style="text-align: justify;">
LL</h3>
<div>
<div style="text-align: justify;">
A while ago I decided that as the Project F is so big, it's better to do yet another smaller project first. So I started with this small prototype. But then two weeks ago I decided that it's probably not worth the effort (see the Estimated potential of 2 in the table). Why? Well, the game would have been an <b><u>infinite runner</u></b>, which has been a pretty competed genre to begin with. The game would have had a somewhat unique characteristic to it, but I just didn't find that it would ultimately be much more than a shallow gimmick and as such wouldn't really keep the interest of players. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
On top of being a project with less estimated potential even when finished, I realized that one fundamental challenge in the development would be balancing the game's difficulty level so that it would offer a sense of progression while maintaining the feeling of reasonable challenge to the player. This is probably one of the most difficult things for a developer to assess by himself, as having worked on a game for long you get a lot of practice in playing the game, you get blind to a lot of the details, and you know things about the mechanics the average player just wouldn't know. Therefore it would require more intensive testing from outsiders and possibly at earlier development stages than some other projects would. And as the free-time project would drag on due to matters like this, it would take the fun out of it thus causing a vicious circle in the process: when the fun is taken out, things tend to drag on even longer. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
So as a summary: too little estimated potential to begin with + balancing challenges that would probably be emphasized in a one-man project like this = not worth the effort.</div>
</div>
</div>
<div>
<br /></div>
<div>
<h3 style="text-align: justify;">
TB</h3>
<div>
<div style="text-align: justify;">
I think TB is a good project to work on at this point. It's a lot smaller than Project F, and probably smaller than LL too. At least this project shouldn't have difficult balancing issues similar to what LL would nor the initial technical hurdles that project F had and may to some extent still have, and even the challenge of getting proper visuals shouldn't be as big either.<br />
<br />
Being a <b><u>physics puzzle</u></b> game though, its potential would have admittedly probably been higher several years ago, when games or game series like <a href="https://en.wikipedia.org/wiki/Cut_the_Rope">Cut the rope</a> hadn't been feeding the players' appetite for the genre for years, or in the best case even before the advent of Box2D engine that's fueled a lot of games (Angry birds being one of the most notable examples). Even so, I haven't seen the concept of TB used in any game, and even more importantly I think it has potential to be a pretty fun game. Of course I've only spent a few short evenings on it thus far, so we'll see how it progresses, but at the moment I have a pretty good feeling about this - better than I ever had about Cubendor.</div>
<br /></div>
</div>
<h3 style="text-align: justify;">
L - The Scifi Game L</h3>
<div>
<div style="text-align: justify;">
This is a project I tempered with quite a long time ago. It would be built around a sci-fi gameplay mechanic, and compared to the other projects, it would probably also have more of an actual storyline to follow. I haven't even decided what platform this would be (primarily) built for or how exactly the gameplay would work. Nevertheless, I've written a bit of the storyline already and designed a set of core principles around which the gameplay would be built around and which could possibly be introduced through the game's narrative. These core principles could be compared to Isaac Asimov's three laws of robotics, mine are just not related to robotics and also include a bit of dark humor in them.<br />
<br />
It's also clear that (apart from the visual challenge shared with the other projects) the challenges imposed by this project would be rather different from the other projects: there's no clear technical challenge, nor a challenge related to balancing. Instead the planned mechanic requires a combination of some sort of a pseudo-AI mechanic, designing the gameplay in a way that supports this AI mechanic while also making it possible to clearly communicate this to the players, and integrating these principles into the game's level design. All in all, the entirety seems like a really big design challenge that cannot be tested with just a quick prototype. Therefore I've at least postponed the project for until I'm done with project F.</div>
</div>
Johannes Hidénhttp://www.blogger.com/profile/06968608189131118506noreply@blogger.com0tag:blogger.com,1999:blog-6298456481998177548.post-87635227312916432012016-07-25T20:30:00.000+03:002016-11-22T13:00:42.540+02:00Dense Riddle - Three DoorsHere's a riddle I've written. Can you solve it? It's pretty tough, but believe me, it is solvable. :)<br />
<div>
<br /></div>
<div>
<i>There are <b>three doors</b> and <b>three guards</b>. </i></div>
<div>
<i><br /></i></div>
<div>
<i>One door leads to heaven.</i><br />
<i>Another door plunges you to hell, if you open it.</i><br />
<i>The third door doesn't lead anywhere.</i><br />
<i><br /></i>
<i><b>One guard</b> knows which door leads where and <span style="color: #6aa84f;"><b>always tells the truth</b></span> about it.</i><br />
<i><b>Another guard</b> knows which door leads where and <span style="color: red;"><b>always lies</b></span> about it.</i><br />
<i><b>The third guard</b> doesn't know which door leads where, but </i><i><span style="color: #6aa84f;"><b>always tells the truth</b></span></i><i><b>.</b></i><br />
<i>All of the guards know what the other guards would say.</i><br />
<i>None of the guards know what the other guards know or whether they speak the truth.</i><br />
<i><br /></i>
<i>You do not know the order of the guards nor the order of the doors.</i><br />
<i><br /></i>
<i>You may ask one question from one of the guards. The guard will then answer <b>"yes"</b> or <b>"no"</b>, or if truly not knowing the answer or faced with an inherently contradictory question that has no logical answer, he will just stay silent.</i><br />
<i><br /></i>
<i>How do you find your way to heaven?</i></div>Johannes Hidénhttp://www.blogger.com/profile/06968608189131118506noreply@blogger.com0tag:blogger.com,1999:blog-6298456481998177548.post-18860495605446648462016-07-17T22:40:00.000+03:002016-07-17T22:41:29.886+03:00Scoring rules in Cubendor<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihQd9GCkomOd0GPzPiLkfJFwxmrT-QJ4-T_xYI9abwA_wwIkhBGnOlrNeSyDW0cps8N-S095k5g8wjh_qXhjkb1YlgGUOgvJ8BBHkuB6GsfMzDif7tfyBxKv4W8S_Mqb3Ltq21w4I2wRmx/s1600/IMG_7579.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihQd9GCkomOd0GPzPiLkfJFwxmrT-QJ4-T_xYI9abwA_wwIkhBGnOlrNeSyDW0cps8N-S095k5g8wjh_qXhjkb1YlgGUOgvJ8BBHkuB6GsfMzDif7tfyBxKv4W8S_Mqb3Ltq21w4I2wRmx/s400/IMG_7579.PNG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Scoring rules in Cubendor</td></tr>
</tbody></table>
<div style="text-align: justify;">
To succeed in the <a href="http://densegames.blogspot.fi/2016/07/cubendor-challenge-win-100.html">100$ Cubendor Challenge</a> I announced a few days ago or to simply just get high scores in the game, it's good to know how the scoring works, right? So let's have a look at that!</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Like described in the in-game instructions of Cubendor, the score you get for smashing lines with one block drop in the game is the product of four multipliers:</div>
<ul>
<li>Number of blocks destroyed.</li>
<li>Number of lines destroyed</li>
<li>Current level in the game</li>
<li>The number of faces on which the lines were formed (or more specifically <i>the minimum number of faces on which the destroyed lines can be determined to belong to</i>).</li>
</ul>
<br />
<span style="text-align: justify;">Concrete examples make rules always easier to understand, right? So let's have a look at a few examples:</span><br />
<div>
<br />
<table align="center" cellspacing="0" cols="5" frame="VOID" rules="NONE" style="border: 3px; width: 100%;">
<colgroup width="100%"><col width="86"></col><col width="86"></col><col width="86"></col><col width="86"></col><col width="86"></col></colgroup>
<tbody>
<tr>
<td align="CENTER" height="17" style="border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 3px solid #000000; border-top: 3px solid #000000;" width="86"><b>Level</b></td>
<td align="CENTER" style="border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 3px solid #000000; border-top: 3px solid #000000;" width="86"><b>Blocks</b></td>
<td align="CENTER" style="border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 3px solid #000000; border-top: 3px solid #000000;" width="86"><b>Lines</b></td>
<td align="CENTER" style="border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 3px solid #000000; border-top: 3px solid #000000;" width="86"><b>Faces</b></td>
<td align="CENTER" style="border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 3px solid #000000; border-top: 3px solid #000000;" width="86"><b>POINTS</b></td>
</tr>
<tr>
<td align="CENTER" height="17" sdnum="1035;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000; border-top: 3px solid #000000;">1</td>
<td align="CENTER" sdnum="1035;" sdval="6" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 3px solid #000000;"><u>6</u></td>
<td align="CENTER" sdnum="1035;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 3px solid #000000;">1</td>
<td align="CENTER" sdnum="1035;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 3px solid #000000;">1</td>
<td align="CENTER" sdnum="1035;" sdval="6" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000; border-top: 3px solid #000000;"><b><u>6</u></b></td>
</tr>
<tr>
<td align="CENTER" height="17" sdnum="1035;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">1</td>
<td align="CENTER" sdnum="1035;" sdval="12" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><u>12</u></td>
<td align="CENTER" sdnum="1035;" sdval="2" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><u>2</u></td>
<td align="CENTER" sdnum="1035;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">1</td>
<td align="CENTER" sdnum="1035;" sdval="24" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000; border-top: 1px solid #000000;"><b><u>24</u></b></td>
</tr>
<tr>
<td align="CENTER" height="17" sdnum="1035;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">1</td>
<td align="CENTER" sdnum="1035;" sdval="16" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><u>16</u></td>
<td align="CENTER" sdnum="1035;" sdval="3" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><u>3</u></td>
<td align="CENTER" sdnum="1035;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">1</td>
<td align="CENTER" sdnum="1035;" sdval="48" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000; border-top: 1px solid #000000;"><b><u>48</u></b></td>
</tr>
<tr>
<td align="CENTER" height="17" sdnum="1035;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">1</td>
<td align="CENTER" sdnum="1035;" sdval="24" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><u>24</u></td>
<td align="CENTER" sdnum="1035;" sdval="4" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><u>4</u></td>
<td align="CENTER" sdnum="1035;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">1</td>
<td align="CENTER" sdnum="1035;" sdval="96" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000; border-top: 1px solid #000000;"><b><u>96</u></b></td>
</tr>
<tr>
<td align="CENTER" height="17" sdnum="1035;" sdval="2" style="border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><u>2</u></td>
<td align="CENTER" sdnum="1035;" sdval="24" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">24</td>
<td align="CENTER" sdnum="1035;" sdval="4" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">4</td>
<td align="CENTER" sdnum="1035;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">1</td>
<td align="CENTER" sdnum="1035;" sdval="192" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000; border-top: 1px solid #000000;"><b><u>192</u></b></td>
</tr>
<tr>
<td align="CENTER" height="17" sdnum="1035;" sdval="3" style="border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><u>5</u></td>
<td align="CENTER" sdnum="1035;" sdval="24" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">24</td>
<td align="CENTER" sdnum="1035;" sdval="4" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">4</td>
<td align="CENTER" sdnum="1035;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">1</td>
<td align="CENTER" sdnum="1035;" sdval="288" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000; border-top: 1px solid #000000;"><b><u>480</u></b></td>
</tr>
<tr>
<td align="CENTER" height="17" sdnum="1035;" sdval="3" style="border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">5</td>
<td align="CENTER" sdnum="1035;" sdval="24" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><u>22</u></td>
<td align="CENTER" sdnum="1035;" sdval="4" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">4</td>
<td align="CENTER" sdnum="1035;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><u>2</u></td>
<td align="CENTER" sdnum="1035;" sdval="288" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000; border-top: 1px solid #000000;"><b><u>880</u></b></td>
</tr>
<tr>
<td align="CENTER" height="17" sdnum="1035;" sdval="3" style="border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">5</td>
<td align="CENTER" sdnum="1035;" sdval="22" style="border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><u>38</u></td>
<td align="CENTER" sdnum="1035;" sdval="4" style="border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><u>7</u></td>
<td align="CENTER" sdnum="1035;" sdval="2" style="border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><u>3</u></td>
<td align="CENTER" sdnum="1035;" sdval="528" style="border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000; border-top: 1px solid #000000;"><b><u>3990</u></b></td>
</tr>
</tbody>
</table>
<br />
<div style="text-align: justify;">
The <b>first row</b> shows the basic case: one single row smashed on the first level of the game, which results in 6 points, the minimum for any smash. The <b>second row</b> shows two parallel lines, which gives 24 points, a quadrupled amount of points compared to the single line, as it has both double the blocks and double the lines.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The <b>third row</b> shows three lines, but notice how in this example the amount of blocks is 16 instead of 18 (3*6). This means that the three lines aren't parallel to each other: two of the blocks are used for more than one line. The <b>fourth row</b> shows what Tetris games call a <i>Tetris</i>, aka four lines formed in parallel. On level 1 you would get 96 points for this. <b>Fifth </b>and <b>sixth row</b> show how forming these four parallel lines would give you 192 and 480 on higher levels 2 and 5.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The <b>seventh row </b>is where things get interesting. It's still only four lines and on level 5, but now with two blocks less compared to the four-line Tetris. Does this mean that the resulting point amount should be less than with the previous? Nope. In this case the lines were formed on two different faces of the cube, 2 lines on one face, and 2 lines on another, so the player gets a face multiplier of 2, raising the points for that line blast to a pretty nice 880 points. This is what the game calls a <b style="font-style: italic;">Double Sider</b>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Although seriously not an easy task, it is also possible to form lines on 3 faces at once, in other words to get a <b>Triple Sider</b>. By getting multiple lines on multiple faces on a higher level, it is possible to gain thousands of points with a single smash (see the <b>eighth row</b> in the table).</div>
<br />
The example shows how, in addition to just surviving as long as possible, the scoring system is designed to encourage two things:<br />
<ul>
<li>smashing as many lines as possible at once.</li>
<li>smashing lines on multiple (two or three) faces of the cube at once.</li>
</ul>
<div>
<div style="text-align: justify;">
The first goal is pretty self-explanatory and fully intuitive, but the second one is also crucial when trying to get the best scores possible. The exact definition of the latter just isn't perhaps as intuitive as one could initially expect. This is due to the fact that a single line formed on the edge of the cube is in principle inherently located on two different faces of the cube. I'm guessing that this may be a source of confusion so I could elaborate that in a separate blog post later on.<br />
<br />
In any case, the above description and examples should show that just going for the easy lines here and there won't get you very high scores. But as surviving to high levels is pretty much equally important to getting those sweet combos, it's good to avoid getting too greedy in the hunt of those double or triple siders either.</div>
</div>
</div>
Johannes Hidénhttp://www.blogger.com/profile/06968608189131118506noreply@blogger.com0tag:blogger.com,1999:blog-6298456481998177548.post-52750666108227905352016-07-13T12:25:00.000+03:002016-10-27T13:04:10.168+03:00Cubendor Challenge - Win $200 !<div style="text-align: justify;">
Do you want to win <strike>$100</strike> $200 (in U.S. Dollars)? It's simple: just be the first to beat me at my own game! It's not easy, but it's entirely possible. In fact, I'd expect someone to be able to even double my current record score!</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
My current record in Cubendor is 10 802 so you need to be the first to get a score of over 10 802. And no, I myself am not eligible, so you won't lose the right for the reward even if I happen to beat that score first. Other than that, all you need to do is share a video of your gameplay online eg. through <a href="https://everyplay.com/">Everyplay</a> by using the game's Everyplay sharing feature, or by sharing it on YouTube. Also, in order to easily transfer the <strike>100</strike> $200 USD, you need to register for a Paypal account (unless you already have one), so I can send you the money. So a recap as a list of steps:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<ol>
<li>Get the game from <a href="https://itunes.apple.com/app/cubendor/id998156617">App store</a> or <a href="https://play.google.com/store/apps/details?id=com.densegames.cubendor">Google Play</a>.</li>
<li>Beat my score of 10 802. </li>
<li>Be the first to share a video of that hiscore breaking game session online either by just simply pressing the video sharing button in the game to share it to <a href="https://everyplay.com/">Everyplay</a>, or by using some other tool like QuickTime to record and share it on YouTube.</li>
<li>Let me know that you beat my score eg. by posting a comment to this blog post or sending me email to contact@densegames.net, so we can work out the details on where I can send the reward.</li>
</ol>
<div>
<br /></div>
<div>
Note: in order to avoid problems with sharing the gameplay through Everyplay, I recommend checking that there is something like 500 megs of free space available on your device for the recording, and also try to make the recording in one session (in other words not shifting to other applications in the middle of the recording or letting the device go to idle mode).<br />
<br />
Finally, here's a fast motion video of my hiscore session for inspiration:<br />
<br /></div>
<div style="margin: 0px auto; text-align: center;">
<iframe align="center" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/7smCF-0O1vw" width="560"></iframe>
</div>
<br />
Good luck in beating my score! :)<br />
<br />
<b>Update 28.10.2016: </b>Prize doubled to 200$!</div>
Johannes Hidénhttp://www.blogger.com/profile/06968608189131118506noreply@blogger.com1Helsinki, Suomi60.169855699999992 24.93837899999994159.917055699999992 24.29293199999994 60.422655699999993 25.583825999999942tag:blogger.com,1999:blog-6298456481998177548.post-1913645054612674892016-07-04T20:19:00.001+03:002016-07-04T20:19:28.851+03:00Cubendor out for Android!<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqIN0bHpNjJjNxmefn6H6WDnlM6AeLusBykHije-miqLpaBtvsuSJpdGxcmhzrrgJw0Ulqq0KDCvO8wVJRB6fj6NMi_d-2oiTwvnlhE1CzhQveJHQIiwZjbj1naRM8q8iq76rGDl2ivno8/s1600/Cubender_icon9i_googleplay.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqIN0bHpNjJjNxmefn6H6WDnlM6AeLusBykHije-miqLpaBtvsuSJpdGxcmhzrrgJw0Ulqq0KDCvO8wVJRB6fj6NMi_d-2oiTwvnlhE1CzhQveJHQIiwZjbj1naRM8q8iq76rGDl2ivno8/s200/Cubender_icon9i_googleplay.png" width="200" /></a></div>
<div style="text-align: justify;">
<span id="goog_1601465952"></span>Cubendor is now out for Android too! After the iOS release there have been a few small changes including small bug fixes, a visual improvement and a new icon. Otherwise the Android version is just like the iOS with the exception of the main menu having a slightly different look.</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
In any case, if you own an Android device, you can get the game <a href="https://play.google.com/store/apps/details?id=com.densegames.cubendor">from Google Play</a> and start smashing those lines and try to get some huge combos!</div>
<div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
</div>
</div>
Johannes Hidénhttp://www.blogger.com/profile/06968608189131118506noreply@blogger.com0tag:blogger.com,1999:blog-6298456481998177548.post-56152626306293313702016-05-17T09:13:00.000+03:002016-05-17T09:36:07.842+03:00The definition of dense?<div style="text-align: justify;">
Why the name Dense Games? What makes a game dense? Well, there are at least two answers to that, as the word itself has two meanings:<br />
<br />
<div style="text-align: justify;">
<table align="center" style="width: 750pxpx;"><tbody>
<tr>
<td align="left" valign="top" width="50%"><ol>
<li><i>informal</i>
(of a person) stupid.
<br /><i>"Am I being dense? I don't quite understand"</i></li>
</ol>
</td>
<td valign="top" width="50%"><ol start="2">
<li>closely compacted in substance.</li>
<i>
"as the storm cleared, a dense fog came down"
</i></ol>
</td></tr>
</tbody></table>
The meanings are in practice quite different from each other, but that's the beauty of it.<br />
<br />
On one hand, a game may have depth in its mechanics, ideas or even story, and do all this while also managing to avoid needless filler content, being sort of <i>"dense"</i> in that way. A game like this can be seen as having a high level of <i>"density"</i>.<br />
<br />
On the other hand a game may be downright goofy and have a retarded concept, and at the same time be entertaining for that reason exactly! This goofiness can be seen as the game being so dense that no sense can ever be forged into it. Even at the risk of potentially making a native English speaker cringe at the definition, I call this kind of a game as having a high level of <i>"denseness"</i> in order to separate it from the other homonymous characteristic.<br />
<br />
Although my current plans involve more around the "high density" type of games, in general I have an interest in both types of games - be it making them or just playing them. And who knows, perhaps there is or will be a game out there that is the perfect embodiment of both concepts!?</div>
</div>
Johannes Hidénhttp://www.blogger.com/profile/06968608189131118506noreply@blogger.com0tag:blogger.com,1999:blog-6298456481998177548.post-1662035926043707502016-04-27T13:05:00.000+03:002016-04-27T13:05:07.689+03:00Setting a scope for the blog<div style="text-align: justify;">
The release of <a href="https://itunes.apple.com/app/cubendor/id998156617">my first personal mobile game project</a> marked the beginning of this new blog. But what other purpose does this blog serve? Given the topic of the first post, one obvious purpose is posting blog posts about releases of new game projects, but as making games is currently just a hobby that has to fight for the limited free time available, there isn't going to be a lot of those. So the blog needs some additional goals as well.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The primary idea of the blog is to write about the game projects that I work on or have worked on previously, but this is not restricted to just writing a blog post as a game is released. It is also about going more in depth on how a game functions and how to play the game, and hopefully eventually writing a bit about the related phenomena, if a game happens to get some amount of attention from the players or from the media.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
A secondary purpose for the blog is making remarks about games in general, be it about specific single games (that I perhaps find particularly <i>dense</i>?), certain game genres, history of games, on-going trends or anything at all related to the industry. I don't currently have any such topics that I would definitely want to write about on my mind, so there might not be much activity on this front though. But we'll see about that.</div>
Johannes Hidénhttp://www.blogger.com/profile/06968608189131118506noreply@blogger.com0tag:blogger.com,1999:blog-6298456481998177548.post-21206977378557525352016-04-19T19:57:00.003+03:002016-06-30T23:45:54.382+03:00Cubendor - a new 3D block puzzle game is out globally!<div style="text-align: justify;">
I've just released my first mobile game globally for iOS! You can find the game here: <a href="https://itunes.apple.com/app/cubendor/id998156617"><b>Cubendor for iOS</b></a><b>. </b>The game is a truly unique take on the classic Tetris for a few of reasons, which I will go through in this blog post:
<br />
<br />
<br />
<h3>
1. It's all about the surface</h3>
<br />
Sure, the game is a 3D block puzzle game, which is less common than a 2D block puzzle game. Still, there have been some 3D Tetris variants around too. However in my experience they've usually had one somewhat fundamental problem: it's hard to see what the overall situation with the blocks is as you can't even see the lower blocks through the blocks in front. Also, if a game requires the player to fill out an entire plane of blocks, getting even just a single "smash" can feel pretty burdenous. This can be even more complex if the block group compositions are 3-dimensional by nature.
<br />
<br />
Cubendor is different in this sense, as you always operate on the surface of the Cube - which makes it a sort of middleground between many 2D and 3D puzzlers. This means that even though the player doesn't always see everything, he or she can easily rotate the Cube to check the overall situation: nothing is hidden behind the surface. The falling block compositions are also always 2-dimensional by nature and instead of having to form an entire plane, forming a line is in principle as simple a task as it is in Tetris: simply align 6 blocks in a line, whether it's on the horizontal, vertical or the depth axis.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnHE6ChkRm0St7l8dYFih6AiF0RWherYJomyFTxZJ1cn9vd8tKSaJoXOZSRC4ILuB7qODrxz6m7fuWywcbQ1Eh-mGaj6OKr-YtSGITrAznmDjP2y_CX8pEX-tA64P3sMgfytyYOZ5PL_N5/s1600/IMG_4975.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnHE6ChkRm0St7l8dYFih6AiF0RWherYJomyFTxZJ1cn9vd8tKSaJoXOZSRC4ILuB7qODrxz6m7fuWywcbQ1Eh-mGaj6OKr-YtSGITrAznmDjP2y_CX8pEX-tA64P3sMgfytyYOZ5PL_N5/s400/IMG_4975.PNG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Rotating the Cube in Cubendor.</td></tr>
</tbody></table>
<br />
<br />
<h3>
2. You do not control the falling blocks</h3>
<br />
The other characteristic that sets Cubendor apart from other Tetris-style games (and most other block puzzle games for that matter) is that the player isn't in fact controlling the falling block groups (such as Tetrominos in Tetris), but rather the canvas (the Cube in this case) into which they fall. This means that the "bottom" of the cube isn't constant, but can be changed by the player at will. In other words the user has a lot of control for what's going on.
<br />
<br />
<br />
<h3>
3. Scoring system that rewards planning ahead</h3>
<br />
Scoring systems in block puzzle games have one thing common (with no exceptions I can think of): the more you do with one move the more you gain points. Cubendor is no different in this sense, but compared to other games of the genre, I believe Cubendor requires more planning to get the best scores. It's not just a matter of getting the max amount of lines (like 4) smashed at once or having a good enough luck to get some "delicious" combo. It's also a matter of on how many faces of the cube you are able to do it, and to pursue this goal, some deeper planning is required - in fact the amount of points scored is a matter of four factors, but I might get deeper into that with a later blog post. This planning of course includes managing the risk: not getting too greedy trying to get the best points for a single smash, while also trying not to settle for the small scores. </div>
<br />
<br />
<div style="text-align: center;">
<iframe align="center" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/qqpZ_947gSg" width="560"></iframe></div>
<br />
<br />
<div style="text-align: justify;">
All in all, I hope these characteristics make the game stand out. I know I'm still learning to get better at the game and I hope someone will come and truly show how the game should be played - and in the process make my current personal record look pathetic. <img src="https://www.densegames.net/smile.png" /></div>
Johannes Hidénhttp://www.blogger.com/profile/06968608189131118506noreply@blogger.com0