tag:blogger.com,1999:blog-83586819108446770892024-03-05T13:31:39.828+01:00AbyssusAnonymoushttp://www.blogger.com/profile/00092654113248271372noreply@blogger.comBlogger25125tag:blogger.com,1999:blog-8358681910844677089.post-89663715657384241812014-02-01T20:33:00.000+01:002014-02-01T20:33:04.340+01:00And the winner is...Rejoice! Our game was nominated for the projects Best Game Award among 4 games made by other university students. Therefore, on January 31st a jury consisting of a member of Abbey games (of Reus fame), a member of Digital Dreams, known for the upcoming game Metrico, and a former teacher at the university of Utrecht took a good look at all nominated games. A bit later in the afternoon every team had to do a short 5 min presentation about their game. After a long debate the jury voted unanimously for.....<br />
ABYSSUS!!!!! Woohoo!<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/AVvXsEhPWfpy5zYri_4nG8iFehFumwtk467PKkQSP7R1Udz7t36swO0syV2qNLyOgB-EikEWzC0LzeY8Jh4_weJS_Nq_gqjA7hGrQILbaz3bGHKqRLGv4Jb7mCX_uMBGQ0xybgshZiiXJjKvEGA/s1600/75933_10201428564703092_1198210232_n.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPWfpy5zYri_4nG8iFehFumwtk467PKkQSP7R1Udz7t36swO0syV2qNLyOgB-EikEWzC0LzeY8Jh4_weJS_Nq_gqjA7hGrQILbaz3bGHKqRLGv4Jb7mCX_uMBGQ0xybgshZiiXJjKvEGA/s1600/75933_10201428564703092_1198210232_n.jpg" height="480" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The beautiful certifacte we won</td></tr>
</tbody></table>
<br />Anonymoushttp://www.blogger.com/profile/11565004711517315399noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-91154609483123693342014-01-27T14:57:00.000+01:002014-01-27T14:58:41.482+01:00The end is nigh<div class="separator" style="clear: both; text-align: left;">
At last, our little journey has come to an end. The technical side of it, anyway. This morning we committed our last-minute bugfixes, most notably Alex who fixed a little bug at 14:00 exact (not knowing this was the deadline).</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The game can be downloaded on <a href="http://pgt13-5a.blogspot.nl/p/download.html">this page</a>. Just download the zip and run the installer, and let us know what you think!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Wednesday we will have to present our game to the jury and our fellow students, and we might just have a chance to get nominated for an award. The accompanying award ceremony is on friday, during the <a href="http://www.cs.uu.nl/docs/vakken/b1pgt/2013-2014/pgt_symposium.html">symposium</a>. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
For now though, Abyssus rests among its new friends.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXbaoGHsbizk5v8o00h6Rzl0FhT176-YZtB_Y3fP9LQWlXEaFLCSndde_deMDdJsBNPv_He4zCZazxGxsAhRjv0lgKVWARImfwmBqOzx3CSkwdjbEOpbJvTZtRs2i1KoYwW_hFhg-JMQ0L/s1600/abyssus.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXbaoGHsbizk5v8o00h6Rzl0FhT176-YZtB_Y3fP9LQWlXEaFLCSndde_deMDdJsBNPv_He4zCZazxGxsAhRjv0lgKVWARImfwmBqOzx3CSkwdjbEOpbJvTZtRs2i1KoYwW_hFhg-JMQ0L/s1600/abyssus.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<i>It looks like it belongs there</i></div>
<br />Timon Kniggehttp://www.blogger.com/profile/02374689065052001140noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-63383614163631588572014-01-26T20:35:00.001+01:002014-01-26T20:42:11.320+01:00TrailerWith great pride we present to you the trailer for our game.<br />
<br />
Enjoy!<br />
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/LPyyDrpD-AU?feature=player_embedded" width="640"></iframe></div>
Anonymoushttp://www.blogger.com/profile/11565004711517315399noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-88063237226042586282014-01-24T15:54:00.001+01:002014-01-24T15:59:45.224+01:00Panic. PANIC!Time for another blogpost! When looking at the <a href="http://www.cs.uu.nl/docs/vakken/b1pgt/2013-2014/pgt_vereisten.html#blogposts">schedule</a> detailing when you should make a post, it becomes apparent that whoever made the schedule, probably picked the dates very carefully to match certain phases in the project.<br />
<br />
The <a href="http://pgt13-5a.blogspot.nl/2013/12/shadowcasting.html">6 December blogpost</a>(<a href="http://pgt13-5a.blogspot.nl/2013/12/graphics-are-maybe-actually-important.html">s</a>) were meant for us to prudently show our baby steps in the world of game design. <a href="http://pgt13-5a.blogspot.nl/2013/12/midterm-update.html">20 December</a> was a good time to <a href="http://pgt13-5a.blogspot.nl/2013/12/do-not-forget-ai.html">chat a little bit about our (probably technical) progress</a>. Next up, 10 January (split up into <a href="http://pgt13-5a.blogspot.nl/2014/01/grrr-cough-grrrr.html">1</a>, <a href="http://pgt13-5a.blogspot.nl/2014/01/music-monday-6-sound-design.html">2</a>, <a href="http://pgt13-5a.blogspot.nl/2014/01/stop-graphics-time.html">3</a>) was just after the holidays, when we had begun to realize the scale of the project we had taken upon us.<br />
<br />
And now comes 24 January. Conveniently positioned just before the weekend that's just before our deadline. We are probably expected to write about how much we still have to do in so little time, or show our intelligence by reflecting on our progress. Or maybe write a panic-post about how we'll never get it done.<br />
<br />
But here at Graile Games we're different. We carefully constructed an illusion of (almost apathetic) professionalism, and we mean to uphold it, until the bitter end. Because of that, this blogpost will be about boring technical details. You can't <b>make</b> us write a panic-post!<br />
<br />
<h3>
To the point!</h3>
So what <i>are </i>we going to talk about? Ah, how about the collision checking? Sounds good? Let's do it.<br />
<br />
When we began developing Abyssus (or Roguelike, as we called it back then) we had to start from the scratch, and obviously, we'd need a collision system. We could have opted to just blatantly copy Tick Tick's, but this would most likely create more problems than it would solve, since it was made for a platform game, and its pixel-perfect collision checking was what a gamer might call 'overkill'.<br />
<br />
<h3>
The basics</h3>
Instead, we decided to make a simple yet effective collision engine using very simple shapes: squares, lines and circles. After all, that's all we needed. We could represent walls and other decoration in the game using squares, players and other entities using circles, and weapons as lines.<br />
<br />
Using a set of light-weight methods we were able to implement all the bumps and impacts that were necessary.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZHAPVBGWwEqsVAV775MQfvjNeidn2MU2wR9JlcOyi7i-ZSMKWGK1veKWMg2Cief1QW6BFSsjwVTMet4nQPBx2Ep6okKzLMy7j5TReiLiIym0vimiqC3p6fxuevsTWlbXSf_HWosteDamJ/s1600/blog1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZHAPVBGWwEqsVAV775MQfvjNeidn2MU2wR9JlcOyi7i-ZSMKWGK1veKWMg2Cief1QW6BFSsjwVTMet4nQPBx2Ep6okKzLMy7j5TReiLiIym0vimiqC3p6fxuevsTWlbXSf_HWosteDamJ/s1600/blog1.png" height="155" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<i>Live footage</i></div>
<br />
The aspect 'light-weight' was important, because our game needed to do a lot of collision checks. While this may not seem necessary in a simple topdown game, in the end it was probably for the best we didn't go for pixel-precise collisions. Otherwise we wouldn't have been able to implement the destructible enviroment the game has now, or projectiles hitting each other in mid-air.<br />
<br />
<h3>
Smoooooth</h3>
So collision <i>checking</i> is one thing, but <i>handling</i> it is another. You can't just do something like:<br />
<blockquote class="tr_bq">
if(collisionAtCurrentPosition()) { position = previousPosition; }</blockquote>
.. as that would result in the player getting stuck in walls, which is especially a problem in a game with lots of tunnels, like ours. Because of that, we do it a bit differently. The problem with the above system is that it fails to compartmentalize the velocity into components orthagonal with the object we are colliding with, and parallel to it. Let me explain it using this image:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoqnvO_ScAkhcx7Hgx43QKxPi2SrJoVxXAzCXGBl60VhTYv5_fxHugG5pscLnjTd-nDFyLEE4KHPd8DfGY7RC7bK1owLlEp7T54TpQskFXcAPAl44NOmaP5d8MqwnrFk1wyr8lcMK0cY3j/s1600/blog2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoqnvO_ScAkhcx7Hgx43QKxPi2SrJoVxXAzCXGBl60VhTYv5_fxHugG5pscLnjTd-nDFyLEE4KHPd8DfGY7RC7bK1owLlEp7T54TpQskFXcAPAl44NOmaP5d8MqwnrFk1wyr8lcMK0cY3j/s1600/blog2.png" height="185" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<i>Evidence no. 1 as to why I am not this teams graphical artist</i></div>
<br />
We are in luck because as it turns out, all squares in our game are <a href="http://en.wikipedia.org/wiki/Axis-aligned_object">axis aligned</a>, which makes collision checking a lot easier! Essentially, first we check whether moving to (position + velocity) will result in a collision. If not, all good! If it does result in a collision though, we can do a seperate checks for the component of the vector that is parallel to the square.<br />
<br />
Since the square is <i>axis aligned</i> we don't have to worry about splitting the velocity, we can just check the X and Y components! One of them has to be parallel! So if adding just the X component, or just the Y component will not result in a collision, we'll do that. The result is that the player slides smoothly along the walls.<br />
<br />
<h3>
Combat</h3>
Obviously there are other checks that don't require us to handle collisions like above. For example, when doing checks for the combat, all we have to do on impact is do damage, apply a little knockback, a few gore particles, and that's it.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfrgmBw3i0Kb1aIIDN_C_SnM4XsX68TTi04XUMu6BY3KQcNDemaQ9cP-i34aEFaeskld73hIAvGIfYlzSGoypes6HCHlsgExJKq6AlBDhK9CIZEj9F54gfXpaOcnupU932Y9MS1SzNvWLK/s1600/blog3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfrgmBw3i0Kb1aIIDN_C_SnM4XsX68TTi04XUMu6BY3KQcNDemaQ9cP-i34aEFaeskld73hIAvGIfYlzSGoypes6HCHlsgExJKq6AlBDhK9CIZEj9F54gfXpaOcnupU932Y9MS1SzNvWLK/s1600/blog3.png" height="233" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<i>More live footage</i></div>
<br />
Combat collision checking brought it's own problems though. We can't just check if the distance between the player and an enemy is under a certain arbitrary limit when the player presses the left button, and then apply the damage. After all, the game has to make sense, we need to uphold <i>suspension of disbelief</i>.<br />
<br />
Because of that, the weapons of the player and enemies get <i>their own</i> collision checks and protocols. This is where the line-circle intersection script you saw above comes in handy: we'll just run it for the circle that represents the player/enemy, and the line that represents the weapon! But here comes the trick: Every weapon is different.<br />
<br />
We can't use the same line for the halberd as we use for the dagger, or the same line we use for the mace as for the sword. The 'stick' part of a weapon shouldn't do any damage, only the pointy ends. For that, we used simple dictionaries that 'described' what parts of the weapon actually did the damage (i.e. had to be checked for collisions), and what parts could just be ignored.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC5xm15WgDk5aQtwrbyeWWTlyp8CeipviVSA_rhBcl4JOCPg2Q0uU2QogIHaQJBwCaBwfei5paeeT1cyyd-eqfOT7hDq0K3T-z-xKN7dX2LRiWmcSawSwb1loROicUW6pB6lqPLyL8VV1i/s1600/blog4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC5xm15WgDk5aQtwrbyeWWTlyp8CeipviVSA_rhBcl4JOCPg2Q0uU2QogIHaQJBwCaBwfei5paeeT1cyyd-eqfOT7hDq0K3T-z-xKN7dX2LRiWmcSawSwb1loROicUW6pB6lqPLyL8VV1i/s1600/blog4.png" height="79" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<i>Trust me, it makes sense</i></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Maybe you're now sitting there "well that's inefficient" or "it makes no sense to do it that way", but hey, we're just a bunch of rookies, after all.Timon Kniggehttp://www.blogger.com/profile/02374689065052001140noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-74893609864747654222014-01-17T10:33:00.001+01:002014-01-17T10:33:21.425+01:00Join us in the Abyss!We are proud to announce that we now have a final name for the game we're creating. We left "Roguelike" behind, from now on it's called Abyssus and it is set to be released on January the 29th.Anonymoushttp://www.blogger.com/profile/11565004711517315399noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-49995525470759751832014-01-09T23:35:00.003+01:002014-01-10T14:47:42.218+01:00Stop. Graphics Time!Hello world!<br />
<br />
A few weeks ago in the Midterm Update, we mentioned that we had to continue this game-project with only 4 members left. Unfortunately, the guy who left Graile Games was responsible for creating all the graphics. In the same blogpost, we also said it would not be too hard to think of another option regarding the graphics. However, this turned out to be more difficult than expected. I came up with the idea to ask my brother for creating graphics, since he has always liked drawing. With crossed fingers I asked him, and it was a huge relief when he said he wanted to do it. From now on, my brother will be creating sprites on his iPad, and I would be responsible for editing (scaling, disassembling image parts, etc.) the multilayered images he sends me and getting them into the game. Graile Games’ Art Department has been founded, only consisting of two twin brothers. This had some serious consequences...<br />
<br />
Positive ones to be precise! Over the past few weeks, because new sprites incessantly kept coming and coming, we were able to add a lot of content. Enough said, there is A LOT to show, so here it is (saved the best for last):<br />
<br />
First, dungeon decoration. Until now, the dungeons felt very empty, static and repetitious. We needed dungeon decoration, and lots of them, here some stuff you will see while discovering dungeons:<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiomTLnnpLmyVkSGIj9aLhVjKLeVJoyeQhXL0UiuJnBDB0Zo_sj_qo83Hump_okhAubuxQPbg7nUOPLK3ntYwQKf5aIy310HOljhCueg-s6nXlAtIl0xXJz1kmjXIA-UN6lU_0Mu3DmMQ/s1600/decoration.png"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiomTLnnpLmyVkSGIj9aLhVjKLeVJoyeQhXL0UiuJnBDB0Zo_sj_qo83Hump_okhAubuxQPbg7nUOPLK3ntYwQKf5aIy310HOljhCueg-s6nXlAtIl0xXJz1kmjXIA-UN6lU_0Mu3DmMQ/s1600/decoration.png" width="320" /></a></div>
<br />
We also created the first few "templates rooms", which is an extra option featured in Emile's Generation system. This let us design our own rooms in a textfile which will randomly appear in some dungeons. An example of a template spawning-room:<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0s16sDxXw6yGkJwRnTlAiwk8ArMfuV0jejuuhLS-HUcaDNuAijEW3nm_MlbFO46SehUnsgHHgBnj_3k8pABSF-l2Bf-hDFquUhqxPTe4TKn_55skygt2PDij9weDWjHsknJdQ18NgWg/s1600/spawn.png"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0s16sDxXw6yGkJwRnTlAiwk8ArMfuV0jejuuhLS-HUcaDNuAijEW3nm_MlbFO46SehUnsgHHgBnj_3k8pABSF-l2Bf-hDFquUhqxPTe4TKn_55skygt2PDij9weDWjHsknJdQ18NgWg/s1600/spawn.png" width="320" /></a></div>
<br />
We have also added some interactive objects in the dungeons, like turrets that spit fire:<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcHYy8a9rggDcCat1defzgBuuIuf4Pp8QqwFPnX9Gcip2m_j3IW-ZVQbYPlrhMtWoh2Bg_MsuiXGSZ3PedxR1qWG2QMTETXmyzhKNUdVT9BYnhXKRsPHcpFFQiFJVHkihVYzTwFCqU8g/s1600/turrets+and+fire.png"><img border="0" height="137" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcHYy8a9rggDcCat1defzgBuuIuf4Pp8QqwFPnX9Gcip2m_j3IW-ZVQbYPlrhMtWoh2Bg_MsuiXGSZ3PedxR1qWG2QMTETXmyzhKNUdVT9BYnhXKRsPHcpFFQiFJVHkihVYzTwFCqU8g/s1600/turrets+and+fire.png" width="320" /></a></div>
<br />
Puzzles also had a makeover: (also, more types of puzzles have been created, but I will leave those to discover them on your own)<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilb3IpXfweHd-WhuLiWpgwZSYJAsRyjvB04hpCeyduyfA3_ljPbUnbk5pgcL8JHw8pwAU7UiMHvGi6am-VC44ZUMT-W7CARMNtOorVrrXG8_ZCOCtE-eVh82vq9XhIudtyZ4M7XppmDw/s1600/puzzel.png"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilb3IpXfweHd-WhuLiWpgwZSYJAsRyjvB04hpCeyduyfA3_ljPbUnbk5pgcL8JHw8pwAU7UiMHvGi6am-VC44ZUMT-W7CARMNtOorVrrXG8_ZCOCtE-eVh82vq9XhIudtyZ4M7XppmDw/s1600/puzzel.png" width="320" /></a></div>
<br />
The dragon, partially seen in the previous post, now fully visible. It already has some nice special unique attacks but it's not completely finished yet...<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXdgAJZDHjZUvLjhzn9Pq_KgkLexAFlZjjUMb6pcSXIbTm5F70xIvqwZ9eoO1OLODew_qMIKFZVRDPmwAhbwSRkz7UAxlu5g6ve9x5XqHrBdkEaELfmied7cuTTO35JVF3k4rPKIw9ww/s1600/dragon.png"><img border="0" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXdgAJZDHjZUvLjhzn9Pq_KgkLexAFlZjjUMb6pcSXIbTm5F70xIvqwZ9eoO1OLODew_qMIKFZVRDPmwAhbwSRkz7UAxlu5g6ve9x5XqHrBdkEaELfmied7cuTTO35JVF3k4rPKIw9ww/s1600/dragon.png" width="320" /></a></div>
<br />
<div>
And yeah, more enemies! Goblins and zombies have joined the game!<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2zIwXaulUkc6uYPfxHKZEkmDUHUF_TXKpkuPkS8cPbZWrk7tBGgPXPEo6_XGbBYcpb6xEkzPl_BGeZUg9NJSkiVYsKR0gj-V-ZlzTSqj5jrbOosnO771o2F706qUsJXgOFt8AJRcsbg/s1600/enemies.png"><img border="0" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2zIwXaulUkc6uYPfxHKZEkmDUHUF_TXKpkuPkS8cPbZWrk7tBGgPXPEo6_XGbBYcpb6xEkzPl_BGeZUg9NJSkiVYsKR0gj-V-ZlzTSqj5jrbOosnO771o2F706qUsJXgOFt8AJRcsbg/s1600/enemies.png" width="320" /></a></div>
<br />
And like promised, best for last. The new HUD. We've added a compass feature to our game now, which points to the direction of where the exit of the dungeon is. Styled in the same way as the inventory and the hotbar, it looks very awesome! Exp- and lifebar are not finished yet :P<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKRbzKFBJhr2ydAlJ9ChiEeVvCnKh6G_RAcO28QRroXcxMGmRDnfPtkl1N2pufhbekGq0olUQM86TREtOv1sAczGh3x73lriQSN0ksZxJLm7-qwRUKICsi6uBP7wK0B7sIUH0iTE9uhg/s1600/HUD.png"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKRbzKFBJhr2ydAlJ9ChiEeVvCnKh6G_RAcO28QRroXcxMGmRDnfPtkl1N2pufhbekGq0olUQM86TREtOv1sAczGh3x73lriQSN0ksZxJLm7-qwRUKICsi6uBP7wK0B7sIUH0iTE9uhg/s1600/HUD.png" width="320" /></a></div>
<br />
Well, I think that was enough to show you in this blogpost, stay tuned for more!<br />
<br />
I would also like to take this opportunity to credit my brother Raymond, who made all this nice stuff. Thank you very much!</div>
<!-- Blogger automated replacement: "https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F3.bp.blogspot.com%2F-U62wCISrSZg%2FUs8hXEd4kyI%2FAAAAAAAAADk%2F5ObE2D0bO4Y%2Fs1600%2FHUD.png&container=blogger&gadget=a&rewriteMime=image%2F*" with "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKRbzKFBJhr2ydAlJ9ChiEeVvCnKh6G_RAcO28QRroXcxMGmRDnfPtkl1N2pufhbekGq0olUQM86TREtOv1sAczGh3x73lriQSN0ksZxJLm7-qwRUKICsi6uBP7wK0B7sIUH0iTE9uhg/s1600/HUD.png" --><!-- Blogger automated replacement: "https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F1.bp.blogspot.com%2F-mkFIk9H_vcI%2FUs8hXLSOTHI%2FAAAAAAAAADg%2FJKQfRL2S4so%2Fs1600%2Fdragon.png&container=blogger&gadget=a&rewriteMime=image%2F*" with "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXdgAJZDHjZUvLjhzn9Pq_KgkLexAFlZjjUMb6pcSXIbTm5F70xIvqwZ9eoO1OLODew_qMIKFZVRDPmwAhbwSRkz7UAxlu5g6ve9x5XqHrBdkEaELfmied7cuTTO35JVF3k4rPKIw9ww/s1600/dragon.png" --><!-- Blogger automated replacement: "https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F1.bp.blogspot.com%2F-wVJ8LZwk9fs%2FUs8hWwdeN5I%2FAAAAAAAAADc%2FKIAy0F4i8M0%2Fs1600%2Fenemies.png&container=blogger&gadget=a&rewriteMime=image%2F*" with "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2zIwXaulUkc6uYPfxHKZEkmDUHUF_TXKpkuPkS8cPbZWrk7tBGgPXPEo6_XGbBYcpb6xEkzPl_BGeZUg9NJSkiVYsKR0gj-V-ZlzTSqj5jrbOosnO771o2F706qUsJXgOFt8AJRcsbg/s1600/enemies.png" --><!-- Blogger automated replacement: "https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F4.bp.blogspot.com%2F-oZL4u58_qXc%2FUs8hYP74NFI%2FAAAAAAAAAD4%2FMpOIdx7TvGg%2Fs1600%2Fturrets%2Band%2Bfire.png&container=blogger&gadget=a&rewriteMime=image%2F*" with "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcHYy8a9rggDcCat1defzgBuuIuf4Pp8QqwFPnX9Gcip2m_j3IW-ZVQbYPlrhMtWoh2Bg_MsuiXGSZ3PedxR1qWG2QMTETXmyzhKNUdVT9BYnhXKRsPHcpFFQiFJVHkihVYzTwFCqU8g/s1600/turrets+and+fire.png" --><!-- Blogger automated replacement: "https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F2.bp.blogspot.com%2F-GHEsHR0igeY%2FUs8hXtgNGII%2FAAAAAAAAAEA%2FEffTalOdIVA%2Fs1600%2Fpuzzel.png&container=blogger&gadget=a&rewriteMime=image%2F*" with "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilb3IpXfweHd-WhuLiWpgwZSYJAsRyjvB04hpCeyduyfA3_ljPbUnbk5pgcL8JHw8pwAU7UiMHvGi6am-VC44ZUMT-W7CARMNtOorVrrXG8_ZCOCtE-eVh82vq9XhIudtyZ4M7XppmDw/s1600/puzzel.png" --><!-- Blogger automated replacement: "https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F2.bp.blogspot.com%2F-nT-1t3GMDWo%2FUs8hUd-lYUI%2FAAAAAAAAADU%2Fh4dbom6cgZ4%2Fs1600%2Fdecoration.png&container=blogger&gadget=a&rewriteMime=image%2F*" with "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiomTLnnpLmyVkSGIj9aLhVjKLeVJoyeQhXL0UiuJnBDB0Zo_sj_qo83Hump_okhAubuxQPbg7nUOPLK3ntYwQKf5aIy310HOljhCueg-s6nXlAtIl0xXJz1kmjXIA-UN6lU_0Mu3DmMQ/s1600/decoration.png" --><!-- Blogger automated replacement: "https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F4.bp.blogspot.com%2F-Xa51C2XKu9g%2FUs8hXzd9dII%2FAAAAAAAAADw%2F_REeYEY463I%2Fs1600%2Fspawn.png&container=blogger&gadget=a&rewriteMime=image%2F*" with "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0s16sDxXw6yGkJwRnTlAiwk8ArMfuV0jejuuhLS-HUcaDNuAijEW3nm_MlbFO46SehUnsgHHgBnj_3k8pABSF-l2Bf-hDFquUhqxPTe4TKn_55skygt2PDij9weDWjHsknJdQ18NgWg/s1600/spawn.png" -->SuperrrrAlexxhttp://www.blogger.com/profile/05882360004621834500noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-89118546799877991022014-01-06T22:59:00.001+01:002014-01-06T22:59:21.302+01:00Music Monday 6: The Sound DesignHey all! For today no music, but some details about the way we are doing audio. We are using a program called XACT, which is included with the Game Engine we are using, XNA. It provides many options for dynamic audio to further immerse yourself in the experience. All sound effects are positioned, so you hear them in surround precisely on the position they are. It also has a function that makes sound fit in the room by adding more "echo", which is better known as "Reverb". In larger rooms, the sounds echo longer, to further increase realism and immersion. Lastly it provides functionality to randomize the pitch and the volume of the sounds, so it does not sound identical all the time.<br />
<br />
This game is also my (Emile van Krieken) first go at Sound Design. Some of the sounds I have recorded myself and others I have taken from the wild interweb and edited them to fit the game better. It has been a lot of fun, and has motivated to get a field recorder so I can record every sound for future games myself!<br />
<br />
The music will play in a semi-random way. When there is no song playing, it will sometimes choose a random track from the atmosphere collection. Certain places in the world, however, trigger a song that is more energetic and suited for combat, so the music fits what happens on the screen. We use a nice fade-out to make everything sound smooth!<br />
<br />
Well that is it, simple but it works. Stay tuned for more cool stuff!Emile van Kriekenhttp://www.blogger.com/profile/04747868148476957259noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-12953414992292887572014-01-04T21:02:00.001+01:002014-01-04T21:02:23.017+01:00Screenshot Saturday VIIIn case you didn't get <a href="http://pgt13-5a.blogspot.nl/2013/12/screenshot-saturday-vi.html">last week's reference</a>, it was from the Lord of the Rings: <i>"The ground shakes, drums... drums in the deep. We cannot get out. A shadow lurks in the dark. We can not get out... they are coming."</i><br />
<br />
Obviously a reference to the Troll you could see in the distance. Luckily, you can get a better look at it now in our <a href="http://pgt13-5a.blogspot.nl/2014/01/grrr-cough-grrrr.html">blogpost about enemies</a>.<br />
<br />
Speaking of Tolkien, have you seen the Hobbit yet?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghn8S2UBaON9CQ836JjtIhhKjCKoVThC4AEUEnLAbdVMyGL91bkbVd-v-fwDXEzMNHZG9mhKdGh78c_xvdrHu0wb7gF0LXEW_Kru-M8U_qxxJ7NK_BWsyqmGL7hcfE_X7PklowvxVGKVo9/s1600/sss6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghn8S2UBaON9CQ836JjtIhhKjCKoVThC4AEUEnLAbdVMyGL91bkbVd-v-fwDXEzMNHZG9mhKdGh78c_xvdrHu0wb7gF0LXEW_Kru-M8U_qxxJ7NK_BWsyqmGL7hcfE_X7PklowvxVGKVo9/s320/sss6.png" width="320" /></a></div>
<br />Timon Kniggehttp://www.blogger.com/profile/02374689065052001140noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-32678735590444626682014-01-02T12:58:00.000+01:002014-01-02T12:58:43.596+01:00Grrr.. *cough* GRRRRAs you were able to see in the previous Screenshot Saturday’s, we have been adding a few monsters to the game. We figured it would be interesting to tell you a bit more about them. A week or two ago Dwight wrote <a href="http://pgt13-5a.blogspot.nl/2013/12/do-not-forget-ai.html">this blogpost</a> about our AI, in which you can read some of his more technical remarks on how the monsters ‘think’. I’d like to look at our monsters from a different, but equally interesting perspective: the perspective of a game designer.<br />
<br />
As a start, we decided to divide our monsters into a few categories:<br />
<br />
<div>
<b>Regular Melee units</b><br />
These units will make up the backbone of Enemy Hordes. They are moderate in everything: numbers, speed and strength, but they are persistent and not to be thought of too lightly.<br />
<br />
They are meant to keep you on your toes: while you deal with the more specialised units in the game (see below), they will be there to catch you off guard, or to prevent you from attacking that tank from behind. They will not linger in the chambers but pursue you into the tunnels.<br />
<br />
An example of this unit is coincidentally also the first unit we added to the game: the bandit. Armed with various cheap weapons, these vagabonds use the top floors of the Dungeon as their hideout.<br />
<br />
<div style="text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP6XWN8QWmsGDQXAJFrk3ZO2VZE8dWVfotl2_ZgBgFH3XZbwIYZL9Gk9XTs_ka7dhDpcIhDYYqbwCjKnV7_Q3-c9_eALX9MSoHWqgVYnK0VsaJFgqGqSNLn0l8v5XuedBT2NKFjTarg7g2/s1600/bandit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP6XWN8QWmsGDQXAJFrk3ZO2VZE8dWVfotl2_ZgBgFH3XZbwIYZL9Gk9XTs_ka7dhDpcIhDYYqbwCjKnV7_Q3-c9_eALX9MSoHWqgVYnK0VsaJFgqGqSNLn0l8v5XuedBT2NKFjTarg7g2/s320/bandit.png" width="320" /></a></div>
<br /></div>
<b>Ranged units</b><br />
The archers and mages of the Dungeon are few in number, but still very dangerous. They can easily reach you with their poisoned arrows and dark spells, while they hide behind the melee units.<br />
<br />
Alas, no screenshot for this unit yet.<br />
<br />
<b>Tank units</b><br />
These often colossal creatures are slow and dumb, but incredibly strong. A frontal attack is almost always fatal - instead the player should search for their weak spots or take them out from a safe distance using ranged attacks.<br />
<br />
Our first tank unit was also featured in <a href="http://pgt13-5a.blogspot.nl/2013/12/screenshot-saturday-vi.html">Screenshot Saturday VI</a>: the Troll. <br />
<br />
<div style="text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUHkfPs2dvBrmoZKF0f5u0DgcnDT1boHoTrvT_Vg2sipQdY4cLHMDOev9JCD_MS3BDw4cju0MatNoVrite8Wc1-pEW5vskh33zVn9HXJAI5enQBmunUcbYMOzbVLgXQrNCvW_SSN0-dDzN/s1600/troll.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUHkfPs2dvBrmoZKF0f5u0DgcnDT1boHoTrvT_Vg2sipQdY4cLHMDOev9JCD_MS3BDw4cju0MatNoVrite8Wc1-pEW5vskh33zVn9HXJAI5enQBmunUcbYMOzbVLgXQrNCvW_SSN0-dDzN/s320/troll.png" width="320" /></a></div>
<br /></div>
<b>Swarm units</b><br />
Swarm units are small, weak creatures. But their name probably tells you enough: They appear in large numbers, and will surround you if you don’t watch out - leaving you demobilized and vulnerable to other, stronger units.<br />
<br />
Our first implementation of this type of unit is the bat. Don’t let the friendly squeaking fool you - they can be fatal.<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGBwxH_0i50IIiuylFaZ3NyEcy1Y3Whb3hobqBnUzFc0HQajSI3nJpIEmUXOuPFfwnLMB3Y7HakOsRyrOKKylIXNfThubAVhKPG-XndGlvuH2ooqHrrAVdVmZglQvM7iCoDW-gSTfXTUrP/s1600/bat.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGBwxH_0i50IIiuylFaZ3NyEcy1Y3Whb3hobqBnUzFc0HQajSI3nJpIEmUXOuPFfwnLMB3Y7HakOsRyrOKKylIXNfThubAVhKPG-XndGlvuH2ooqHrrAVdVmZglQvM7iCoDW-gSTfXTUrP/s320/bat.png" /></a></div>
<br />
These (admittedly rather abstract) descriptions are nice, but the real fun begins when you run into a combination of the above monsters. Sure, a single troll is not that hard, but if it is supported by a mage, some bandits and a dozen of bats, you may actually have to turn off the automatic pilot and devise a strategy.<br />
<br /></div>
<div>
In addition to the aforementioned units, we are also considering a few other, ‘special’ units that do not really fall into any of the above categories, such as units whose visibility or strength depends on the light level they are exposed to, or units that are able to navigate through walls. But more on that later.</div>
Timon Kniggehttp://www.blogger.com/profile/02374689065052001140noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-4549425172788941622013-12-30T22:14:00.002+01:002013-12-30T22:14:43.014+01:00Music Monday 5: The Release (Full)Hey guys, finished The Release this week! It is going to be used in the combat rooms of the game.<br />
We hope you had a Merry Christmas, and wish you a Happy New Year!<br />
<br />
<br />
<iframe frameborder="no" height="166" scrolling="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/127169622&color=660707&auto_play=false&show_artwork=true" width="100%"></iframe>Emile van Kriekenhttp://www.blogger.com/profile/04747868148476957259noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-19504617122515554982013-12-28T22:27:00.000+01:002013-12-28T22:27:08.398+01:00Screenshot Saturday VIDrums, drums, drums in the deep.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi37BETr0OfExzrij1M6hIL2mHXIMHmmrm4kMs4WdobVpcLOxsa8B9rj2Uv_kPllPk9JRER38pb5xf4ckxttVDwTz-Q7UkIvq6fCwM3RO6iZ_XIf2EBJFszputn7oPxZSFeiMzrQJLctmhd/s1600/sss6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi37BETr0OfExzrij1M6hIL2mHXIMHmmrm4kMs4WdobVpcLOxsa8B9rj2Uv_kPllPk9JRER38pb5xf4ckxttVDwTz-Q7UkIvq6fCwM3RO6iZ_XIf2EBJFszputn7oPxZSFeiMzrQJLctmhd/s320/sss6.png" width="320" /></a></div>
<br />Timon Kniggehttp://www.blogger.com/profile/02374689065052001140noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-46099471032464095022013-12-23T21:36:00.001+01:002013-12-23T21:36:51.954+01:00Music Monday 4: The Release (WIP)Time for the next Music Monday! This is a Work in Progress version of a track that will play during heavy combat. If you have some criticism, tell me and I will improve that for the final version!<br />
<br />
<iframe frameborder="no" height="166" scrolling="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/126217883&color=870d0d&auto_play=false&show_artwork=true" width="100%"></iframe>Emile van Kriekenhttp://www.blogger.com/profile/04747868148476957259noreply@blogger.com1tag:blogger.com,1999:blog-8358681910844677089.post-8704501686777621602013-12-21T21:36:00.001+01:002013-12-21T21:36:35.048+01:00Screenshot Saturday V<div class="separator" style="clear: both; text-align: left;">
We know that you, the player, are not only a bold adventurer but also a stunning intellectual! Because of that, we have also added challenges that test your genius.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhit04uNk-gwL-5l9aNR7nUPNmuXETA_5bui6NPBsYkmLXaf7W0abZSpkNihmt287SDvMvReFbLBP-8PFmzzesXpPF7VYErNh5sHYZNADHrgdR4xnQoGNU0Y2UE9cCR2BeY9qgq0PzsM8Pg/s1600/sss5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhit04uNk-gwL-5l9aNR7nUPNmuXETA_5bui6NPBsYkmLXaf7W0abZSpkNihmt287SDvMvReFbLBP-8PFmzzesXpPF7VYErNh5sHYZNADHrgdR4xnQoGNU0Y2UE9cCR2BeY9qgq0PzsM8Pg/s320/sss5.png" width="320" /></a></div>
<br />
<div>
<br /></div>
Timon Kniggehttp://www.blogger.com/profile/02374689065052001140noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-9306732441491643442013-12-20T17:44:00.000+01:002013-12-21T17:19:56.071+01:00Do not forget AIIn one of our earlier blog posts you could read about textures being very, very important. Now I do not disagree with that but another important aspect of our game is Artificial Intelligence, or AI in short. AI is a big subject, it contains every action the enemies can perform. From when and how and where to attack to a simple where do I go now. We do not think AI should be too smart but we also want it to be realistic. I do not think I have to tell you that it will be hard to make such an AI. <br />
<br />
We will implement a system that uses the shadow casting (seen in one of the earlier blogs) to enable the player to go by enemies unnoticed or even ambush them. Now I know that this is a really big goal we are setting here. However, for our game to be successful we need a good and solid AI. One that doesn’t see you enter their room and then simply start running towards you and attack. At the moment that is exactly what they do because I have been busy making an algorithm for our path finding. <br />
<br />
That is right, meet the new lead AI programmer: ME. <br />
<br />
We need pathfinding for navigating the tight corridors in the levels. I want to make pathfinding work first because we cannot have enemies trying to look for the player while they get stuck every time. Now there are a lot of powerful pathfinding algorithms but our game does not need an algorithm that strong so we agreed to use the A* algorithm. While I will shortly explain the A* algorithm.<br />
<br />
<div>
We begin at the Playertile (the grid location of the player) and we look at all the Tiles (blocks in grid) neighboring it. If none of these Tiles contain something we cannot walk through we go to the next tile. Once we find a walkable tile we calculate its F value. The F value is calculated by taking the cost of moving to that tile from the Playertile: G (we use 10 for vertical and horizontal movement and 14 for curved movement) and adding the estimated movement cost to the enemy: H. We then add this Tile to our Open list. <br />
<br />
If all the adjacent Tiles have been looked at we add the Tile with the lowest F to a list we call Closed. We also save which Tile this Tile was looked at from (its Parent Tile) we will need this later. <br />
<br />
Now we look at all the Tiles surrounding the Tile we just saved in the Closed list. Apart from the procedure above we now also need to check if the Tile we're looking at is in the Closed list. If it is we should look at the next Tile because we already looked at those and they are already on our path or lead to a dead end. Also we need to make sure it is not in our open list because we already have data for those tiles, however if it is in the Open list we must check if the G value of that Tile is higher than what we calculated from the new Tile. If it is higher then there is a better path to that tile via the Tile we now look from. <br />
<br />
We continue this until either we run out of possible tiles or the Tile with the lowest F is the Enemytile (Grid location of the enemy) we then take this Tile and add it to the Path list. Then we add its Parent Tile, and the Parent's Parent Tile and so on until we add the Playertile. Now the enemy simply has to go to every location on the Path list and it will arrive at the Player.<br />
<br />
Pathfinding is really cool and all but here in the Netherlands we have a saying "waarom moeilijk doen als het makkelijk kan" which means "why do it the hard way if you can do it the easy way". Now this also applies to Pathfinding because if there is no obstacle between the player and the enemy, then why should we use pathfinding? The answer is simple: We do not. We use a Raycast written by Timon to check if there are obstacles in the way. If there are no obstacles we simply make the enemy go directly to the player.</div>
<div>
There is just one more thing i would like to add. We now have a new enemy: THE BANDIT<br />
<br />
He will club you to death if you do not watch out!</div>
Anonymoushttp://www.blogger.com/profile/11565004711517315399noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-43416321544325698502013-12-20T17:15:00.000+01:002013-12-20T17:16:26.303+01:00Midterm Update<b><i>Thom</i></b><br />
Unfortunately, it seems Thom has decided to leave us. Though he has not ‘officially’ stated he is abandoning the project, he has been very inactive over the past weeks, did not attend wednesday’s presentation (see below) and removed all of us as skype contacts yesterday.<br />
<br />
Since Thom had been reluctant to do anything for the last month, for a while we already spread our tasks in such a way that his inactivity would not hamper our progress. The only exception to this were the graphics. Really, none of us are any good at creating graphics so we attempted to avoid the subject and gave it to Thom. <br />
<br />
Alas, now that Thom is removed from the equation, we will have to get our graphics elsewhere. Don’t worry though, we found we still have a lot of options left and you can definitely expect a great looking game from us!<br />
<br />
<b><i>Wednesday’s presentation</i></b><br />
Wednesday was presentation day. We had all come early to the university campus to do a last-minute meeting about the presentation, and then headed to the .. well, some random building. <br />
<br />
Anyway, when we got there, we were all excited that we could finally present our progress to our colleagues. When our turn came, we went to the front, and got ready to present ..<br />
<br />
.. and couldn’t get the projector working. Well, if you weren’t yet questioning our legitimacy as computer science students, now is the time. All joking aside, we ended up doing the presentation without the game and the slideshow we had prepared, and just used images from this blog. <br />
<br />
In the end, it went pretty well and I’d like to think we made a pretty decent impression. Even then, come January, we’ll have another opportunity.<br />
<div>
<br /></div>
<div>
Stay tuned, because later today Dwight will post here to tell us about the AI!</div>
Timon Kniggehttp://www.blogger.com/profile/02374689065052001140noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-70103736729262677822013-12-16T22:02:00.001+01:002013-12-16T22:02:46.159+01:00Music Monday... 3!I thought Enigma from last weeks Music Monday was a bit short, and started way too abrupt to really work in a game, so I decided to double the length with a nice new "intro". It's almost like I planned to make it like this and didn't accidentally upload only half of the song!<br />
<iframe frameborder="no" height="166" scrolling="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/125156446&color=830000&auto_play=false&show_artwork=true" width="100%"></iframe>Emile van Kriekenhttp://www.blogger.com/profile/04747868148476957259noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-82809870440581521882013-12-14T22:07:00.000+01:002013-12-14T22:09:59.403+01:00Screenshot Saturday IV<div class="separator" style="clear: both; text-align: left;">
At last, screenshot saturday actually occurs <i>on a saturday</i>.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIzA8cG2SL3WMn0ud4ZDkFQu6X_7i9eyu8zORv8YZfWCuTp5RSzpUj4MBVXkG011riaTTi1bzeA1xIF-YzRcDcyxcjO4LZHqhznq6A0jaRPHR0xvqgM7h7kMGJlyAyS8tmXz2ex29jGe07/s1600/sss4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIzA8cG2SL3WMn0ud4ZDkFQu6X_7i9eyu8zORv8YZfWCuTp5RSzpUj4MBVXkG011riaTTi1bzeA1xIF-YzRcDcyxcjO4LZHqhznq6A0jaRPHR0xvqgM7h7kMGJlyAyS8tmXz2ex29jGe07/s320/sss4.png" width="320" /></a></div>
<br />
<div>
<br /></div>
Timon Kniggehttp://www.blogger.com/profile/02374689065052001140noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-15467062791555062312013-12-09T20:05:00.001+01:002013-12-09T20:05:59.728+01:00Music Monday 2: EnigmaTime for the second Music Monday. For today is a slightly more atmospheric track called Enigma. Check it out:<br />
<br />
<br />
<iframe frameborder="no" height="166" scrolling="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/124024500&color=a81717&auto_play=false&show_artwork=false" width="100%"></iframe>Emile van Kriekenhttp://www.blogger.com/profile/04747868148476957259noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-47262144785614704562013-12-08T20:33:00.003+01:002013-12-08T20:33:38.837+01:00Screenshot Saturday IIINo, screenshot sunday is not turning into a thing.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIoM_cEmyGu-Yi2NWY0m3eqPfnwb-v3-EC7zQTjkG6RFfzFvaVhzQ5ssiVY12uQpb4qobCl3I4M-5W7dnOjJh4ZRJQ3m9LLLbGXFUbmmcUs3fwAoIFiz45m1LXRpvW8zGqJMcrNz2sxR0T/s1600/ss3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIoM_cEmyGu-Yi2NWY0m3eqPfnwb-v3-EC7zQTjkG6RFfzFvaVhzQ5ssiVY12uQpb4qobCl3I4M-5W7dnOjJh4ZRJQ3m9LLLbGXFUbmmcUs3fwAoIFiz45m1LXRpvW8zGqJMcrNz2sxR0T/s320/ss3.png" width="320" /></a></div>
<br />Timon Kniggehttp://www.blogger.com/profile/02374689065052001140noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-51005617402385926262013-12-06T20:35:00.001+01:002013-12-06T20:35:17.190+01:00Graphics are maybe actually importantIt has happened! We finally started replacing those wretched sprites used in the first test builds! As everyone knows there can't be a game without graphics, these can range from very minimal (like rogue) to very complex and high definition (like crisis), with unlimited possible styles in between.<br /><br />We settled for using 2D sprites, seen this is the most doable within a reasonable timeframe for people who are all new to making graphics and aren't super artistic.<br /><br />When we started this project we quickly found out that none of us was any good at drawing sprites or any other form of graphics. We were unsure if we should look for outside help on this one, seen without graphics there would be no game, or one with all the random sprites we pulled of the internet or made in ms paint (ooh the horror, all the non-transparent sprites!). But a true game studio doesn’t outsource anything they might be able to do themselves, so before we contracted an artist we figured that at least trying to do it ourselves would be the way to go. And sure thing, the next meeting we decided it would be an inhouse project, after some discussion the group appointed me (Thom) to do the graphics, seen I was the only one who was willing to do so without drawing straws or some other form of picking at random. Quickly I came to realize that I took on quite an important task: making the game look good, which is important for the immersion (which is really important for us).<br /><br />So now there is a big point: we know what type of graphics we are going to use (2D sprites) but what art style (is it going to be cartoony rainbow unicorns, or realistic), what resolution are the sprites going to be (is it going to be pixel heaven, or eye melting HD) and most important: what will the main character look like?<br /><br />The art style was an easy one, we wanted to immerse people in horrors of the dungeon, so we went for a grimm realistic art style. It is hard to be scared of what lays beyond the next dark corner when the ground is in all the bright colours imaginable and you are playing a cartoon character.<br /><br />Choosing a sprite’s resolution seems easy enough, but is actually quite tricky, if you start out with super low resolution it looks a bit bad (to say it in the most polite way possible), if you start with super high resolution it takes ages to make, it eats away at your memory and you will most likely have to downscale it which makes it look like someone stepped on it (not desirable). To not get ahead of ourselves, we stuck with the respectable 64 x 64 resolution for standard sprites (which is the same used in many indie games). This is a very manageable format, seen it looks quite good, isn’t too time consuming to make and doesn’t cause optimization issues. <br /><br />It is also important to pick a resolution that is a power of two, since some older graphics cards can only handle those types of textures. 32x32 is just a bit too small, we don’t want to force our audience to lean over so they can see what’s actually going on, while 128x128 is evidently a bit too big - the player still has to be able to see his surroundings.<br /><br />Now choosing who will be the protagonist of this epic adventure down the dungeon is a hard one. And seen we do want to keep some things a suprise I can’t tell you much about the main character yet… Some say it will be a space orc, some say it will forever be Mr. Broke, all I can tell you is that you might get a sneak peak next screenshot saturday, so stay tuned for that.Timon Kniggehttp://www.blogger.com/profile/02374689065052001140noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-20686472326087477262013-12-05T15:21:00.000+01:002013-12-05T15:21:23.816+01:00ShadowcastingWe just implemented shadowcasting into our game, and while the funky looking sprites are still here (who cares about graphics anyway), the game looks a lot more thrilling than it did before.<div style="text-align: center;">
</div>
<div>
<br /></div>
<div>
So what is shadowcasting, and why are we putting it in our game? Basically, shadowcasting is a technique were you let objects in your level cast a shadow on everything behind it (from the light's perspective), rendering it invisible to the player.</div>
<div>
<br /></div>
<div>
The thing with topdown games is that they give the physical player a bird's eye of view, which allows him to see things the character in the game really can't see. By using the player as a 'lightsource' in our shadowcasting algorithm, we can combat this 'visual omnipotency' by simply drawing shadows over anything the in-game character wouldn't be able to see.</div>
<div>
<br /></div>
<div>
This really gives a special feeling to the game. To show this to you, I have selected a few 'before' and 'after' pictures. Again, the sprites are still funky so you'll have to imagine the blood on the floor and the monstrous enemies yourself, but here you go:</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNrn8n28PU6gmffYbjQ7avBPg1hFzQPDuhaMZXYnS53URjzgbsWbX-8Hvg_joR8QCZMjKWpJTStsvxK2c9CVOMTVzkUOsAWaxwW6_CRfeBSkJA7FSsTpfiSusXPqeXVrb2FFExBxJxSL3u/s1600/shadowcasting_image2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNrn8n28PU6gmffYbjQ7avBPg1hFzQPDuhaMZXYnS53URjzgbsWbX-8Hvg_joR8QCZMjKWpJTStsvxK2c9CVOMTVzkUOsAWaxwW6_CRfeBSkJA7FSsTpfiSusXPqeXVrb2FFExBxJxSL3u/s320/shadowcasting_image2.png" width="320" /></a></div>
<br />
And another one:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7eHr9uVEtE-ETqw3h0AvFJYqrj3w2y8mOrB2DOdUAdkpNFTpqKeAPNMx4MMElI2-BtOGz4F2Ws0oARGV8uqY2kIJMAA23_6kbietYzL6qyAFcZPmUNb_d2-3R0mq6lqex5jyzFjPDRNIb/s1600/shadowcasting_image5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7eHr9uVEtE-ETqw3h0AvFJYqrj3w2y8mOrB2DOdUAdkpNFTpqKeAPNMx4MMElI2-BtOGz4F2Ws0oARGV8uqY2kIJMAA23_6kbietYzL6qyAFcZPmUNb_d2-3R0mq6lqex5jyzFjPDRNIb/s320/shadowcasting_image5.png" width="320" /></a></div>
<div>
<br /></div>
<div>
The last one is my favourite. Rather than already getting a pretty good vision on everything that is close to the door or getting distracted by some tunnel that is next to the one you're in, you have to slowly creep into the room - but wait, what if there's a monster standing right around the corner?</div>
<div>
<br /></div>
<div>
This selective reduction of the player's field of view turns hearing into a more 'legitimate' sense. You can't fully rely on your eyes anymore. You may not see the monster, but that doesn't mean there isn't one close to you.</div>
<div>
<br /></div>
<div>
Didn't you hear the scraping of claws over granite right there?!?</div>
Timon Kniggehttp://www.blogger.com/profile/02374689065052001140noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-46348623641103739462013-12-02T21:07:00.001+01:002013-12-06T10:10:36.889+01:00Music Monday 1!<span style="color: white;">Oh yes, welcome to the first Music Monday! I, Emile van Krieken, have worked on some nice creepy music for this game. We're not very sure how it's going to be used yet, but we hope it'll greatly help immerse the player into our frightful dungeon crawler having a smiley as protagonist. ...Is this working? It isn't? D'aww :(</span><br />
<br />
<iframe frameborder="no" height="166" scrolling="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/122915669&color=950c0c&auto_play=false&show_artwork=false" width="100%"></iframe>Emile van Kriekenhttp://www.blogger.com/profile/04747868148476957259noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-46968385063382261552013-12-01T13:37:00.000+01:002013-12-06T10:10:20.291+01:00Screenshot Sat- I mean, Sunday 2!<span style="color: white;">Welcome back again! Here's another screenie for you to enjoy. The sprites still need some (a lot) of work, but we managed to load in the dungeon generation from last saturday, and we added a randomized item system with sprites that absolutely have nothing to do with Minecraft. </span><br />
<span style="color: white;"><br />
</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDc4-d16kcAvZ8ZllA1vyWTlu7QnJFAFAdpydf9eaoPk8lV5uOgkYthUX4gWf8-OpLgCWCizg-fDoimpopxmxPrEkqw_TpmkkrGhRBDAQbhJO9UjfOeMb0qzcFjrKH1r8ZDU4t8dTcz2Q/s1600/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: white;"><img border="0" height="425" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDc4-d16kcAvZ8ZllA1vyWTlu7QnJFAFAdpydf9eaoPk8lV5uOgkYthUX4gWf8-OpLgCWCizg-fDoimpopxmxPrEkqw_TpmkkrGhRBDAQbhJO9UjfOeMb0qzcFjrKH1r8ZDU4t8dTcz2Q/s640/ss.png" width="640" /></span></a></div>
<span style="color: white;"><br />
Come back tomorrow for the first Music Monday!</span>Emile van Kriekenhttp://www.blogger.com/profile/04747868148476957259noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-50025040179878371202013-11-23T22:07:00.001+01:002013-12-06T10:09:49.601+01:00Screenshot Saturday 1!<span style="color: white;">Hey folks! Something we want to do with this blog is the Screenshot Saturday column. Every saturday we will share a screenshot of our progress with you, so you can see how we progress over the months. This week we will share you a small example of the amazing procedural (random) generation of the dungeons that Emile has been working on. If you are not afraid of ASCII art, take a look!</span><br />
<span style="color: white;"><br />
</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib-y1MINQqFi_9DwM48YqFMTquh8ADhzcITwWnEYE7Xt_KhLbfdXfZSt3SIIJPrb6mEunerB5kDuhnB-Mwku75bxA-mbfwbpc3u44F7g3E-dh4OniqP9GRjSRjFtyO1a-EuvAhcrzjZAU/s1600/9cf7fa6969f4aa5a18387ab5185a2f34.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: white;"><img border="0" height="457" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib-y1MINQqFi_9DwM48YqFMTquh8ADhzcITwWnEYE7Xt_KhLbfdXfZSt3SIIJPrb6mEunerB5kDuhnB-Mwku75bxA-mbfwbpc3u44F7g3E-dh4OniqP9GRjSRjFtyO1a-EuvAhcrzjZAU/s640/9cf7fa6969f4aa5a18387ab5185a2f34.png" width="640" /></span></a></div>
<span style="color: white;">How is that for a nice deceitful maze?</span><br />
<span style="color: white;"><br />
Be on the lookout for more news next week!</span>Emile van Kriekenhttp://www.blogger.com/profile/04747868148476957259noreply@blogger.com0tag:blogger.com,1999:blog-8358681910844677089.post-86260053271716331372013-11-20T22:56:00.000+01:002013-12-06T10:13:48.001+01:00Well hello world.<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"> </span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: white; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">First they were just five students at the university of Utrecht but then one day they got an awesome assignment. Timon, Alex, Dwight, Emile and Thom became........ Graile Games!</span><br />
<span style="color: white;"><span style="font-family: Arial; line-height: 1.15;"><br /></span>
</span><br />
<span style="color: white;"><span style="font-family: Arial; line-height: 1.15;">We are small studio trying to make you (the gamer) relive the joy you had years ago. How do we want to achieve this? Well very easy, we "upgrade" a very old game and make it fun again in this age of technological wonders. The game we are using as inspiration right now is a game only the most veteran of gamers might know, Rogue.</span></span><span style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="color: white;"><img height="371" src="https://lh6.googleusercontent.com/1aLB2aRk5G5JWBPdUqKQ9_XoNe2qKuZFey_LGigBNDDGJUy6DOO4nXP9rOgqdeYTutUapV72iOGKMXQ3jPs_0eYPXrZ7bJASvUu8gPPDcs7EOzRQiA-mAtQfrg" width="640" /></span></span><span style="color: white;"><span style="font-family: Arial; line-height: 1.15;">Well we are about to change that. Our game will give rogue a much needed graphical overhaul. Instead of dots and lines we will be using sprites for the environment. Also we are planning on integrating a full on lighting system that will make the game about as dark and scary as its predecessor was in its time. The original Rogue had no sound so that is also a point we wish to expand on.</span></span><br />
<span style="color: white;"><span style="font-family: Arial; line-height: 1.15;">Stay tuned for more.</span></span><br />
<br />
<span style="color: white; font-family: Arial; line-height: 1.15;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: white; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">This baby used ASCII and as you can see needed a lot of imagination to make it come to life.</span></div>
<span style="color: white;"><span style="font-family: Arial; line-height: 1.15;"><br /></span></span>
<span style="color: white;"><span style="font-family: Arial; font-size: 15px; line-height: 1.15;"><br /></span></span>
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span>Anonymoushttp://www.blogger.com/profile/11565004711517315399noreply@blogger.com0