tag:blogger.com,1999:blog-58449916271499802422024-03-15T19:25:04.223+02:00CentureA blog about a game where a small guy is also a big guyDOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.comBlogger23125tag:blogger.com,1999:blog-5844991627149980242.post-24949311834451050462012-11-28T15:20:00.001+02:002012-11-28T15:20:36.832+02:00And so it endsOkay exams are done. I'll edit this post with whatever I manage to make in the next few days. Hohohohihihihhehehe<a href="http://www.neogaf.com/forum/index.php">.</a>DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com0tag:blogger.com,1999:blog-5844991627149980242.post-39754519811288181772012-11-11T18:55:00.000+02:002012-11-11T18:55:04.671+02:00ExamsThis game is on hold until I am finished with these 'exam' things. See ya in a few weeks!DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com9tag:blogger.com,1999:blog-5844991627149980242.post-17057982878008396002012-09-28T11:40:00.000+02:002012-09-30T22:52:09.531+02:00Animation - It continues Hey dudes. I made some more frames of animation for Centure. Found a really great program for it: <a href="http://www.humanbalance.net/gale/us/">Graphics Gale</a>. It's a little unwieldy at first but it's worth learning because it has some really useful features. I love my paint.net but I'll be using this from now on for animation at least.<br />
<br />
Here's some punching animations I made. If you want you can use 'em to play around with animation. Make a .gif, do whatever. I'll probably share a bunch of these by the time the game is done. Whenever that is. I need to edit these a tiny bit.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-VICLXcvztTY/UGVvipjGUZI/AAAAAAAAAXg/LD8WNTPQdsU/s1600/Image7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="101" src="http://2.bp.blogspot.com/-VICLXcvztTY/UGVvipjGUZI/AAAAAAAAAXg/LD8WNTPQdsU/s320/Image7.png" width="320" /></a></div>
<br />
I'm planning to make a little game in the console (command line window for the uninitiated). But it involves doing all the crap XNA was doing for me. I'll put it up here if I manage to get it running. It really shouldn't be hard to make after I get everything set up. But this is programming so it could be terrible :P.DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com3tag:blogger.com,1999:blog-5844991627149980242.post-29764131234751199732012-09-19T23:25:00.001+02:002012-09-19T23:25:59.767+02:00Animation - It BeginsI have the beginnings of Centure's animation set up. Have a look at this video that explains where things are at the moment:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/66K-oe_U6GA/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/66K-oe_U6GA?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="600" height="400" src="http://www.youtube.com/v/66K-oe_U6GA?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<br />
To give you an idea of what animating is like, here's what some of the frames look like:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-NKhH1_aWaog/UFo39UTD1xI/AAAAAAAAAXM/2E0heOb3pHE/s1600/centureframes.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-NKhH1_aWaog/UFo39UTD1xI/AAAAAAAAAXM/2E0heOb3pHE/s1600/centureframes.png" /></a></div>
<br />
I made 8 of these for the walking animation. That was a fun day. The game should be done in two days (lol).DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com0tag:blogger.com,1999:blog-5844991627149980242.post-23294043081222933752012-09-02T17:41:00.001+02:002012-09-15T21:46:21.401+02:00Your mom is a collisionToday I got rid of a few major errors in my collision detection system. I had a terrible one where collisions from the bottom refused to happen and another one that made the character bobble in and out of the platform slightly. Those are now gone. There are still a few that need to be worked out however. Somehow changing my movement class started creating bugs in my previously sublime collision detection system. Most of them have required me to add a little room for error to fix... once I've found the cause.<br />
<br />
I also worked on the camera for ages trying to emulate Cave Story's cool inertia effect. I think it was coded pretty simply it's just that that game doesn't have to account for the player speeding up a lot so it didn't have the issues I had when trying to code it. So I made my own version of things that I'm pretty happy with. Maybe I'll change it later.<br />
<br />
I also changed the size of the window on start up. We now have an interesting 1200x675 which is quite sexy but not nearly as sexy as full screen mode. The scale of Centure was a bit big for the standard 800x450 so I bumped up the screen size 1.5 times while keeping everything else the same.<br />
<br />
I don't think I should create the first level until I have all the collision stuff fixed. Urgh.<br />
<br />
Here's a screenshot of the platforms I've been messing around with to test out movement.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-QFKUHtcC7jo/UEN946Ypz4I/AAAAAAAAAW0/QjJ1QlcxPMA/s1600/test.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="185" src="http://4.bp.blogspot.com/-QFKUHtcC7jo/UEN946Ypz4I/AAAAAAAAAW0/QjJ1QlcxPMA/s320/test.PNG" width="320" /></a></div>
<br />
Lol I've just realised this entire blog is me talking about collision detection and not making a game haha! Well my original game was a complete mess so I'm glad I started again and now I'm ridiculously close to being done with collision detection that works on slopes! It's waaay better than what I started with!<br />
<br />
Here's a new To-do list so I can have fun crossing things off:<br />
<br />
<br />
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Fix up that gra</strike>vity (90% done)</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Fix collision issues</strike></li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Cut down on collision checking using some variation of intercepting rectangles</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Make sure collisions work in a way that the character can change size at any time</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Entering polygons via CSV (probably)</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Work out an animation class</strike> </li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Get all of Centure's animations back (70% done)</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Make a running animation for centure</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Figure out how Centure's tranformation will work in different contexts</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Create a better way to initialise levels</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Draw some clouds (Yeah! Clouds!)</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Create more platforms for the first level</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Design the background art for the first level</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Create animated and non-colliding objects</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Rework the camera class</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Make CenturePoly symmetrical since rare cases will cause collision issues</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Think of more stuff for this list</li>
DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com2tag:blogger.com,1999:blog-5844991627149980242.post-38705788194434922182012-08-29T21:44:00.001+02:002012-09-02T17:20:58.932+02:00A wild header appearsSo today I tried for like an hour to draw girl hair for Lera since I feel her design is missing something but I kind of suck and everything I make looks worse than how it is now. So I got bored of doing that and made a header for the blog. It's also basically what the title screen of the game will look like.<br />
<div>
<br /></div>
<div>
I'm hoping I can recreate this scene at some point in the game. Maybe Centure will be heading off into danger and ignoring Nybble's requests to turn back so he shouts out to him: "CENTURE!". This reminds me of the work I'm going to have to do to set up all the in-game text. I've never even done anything like that before so I'm going to have to figure it out from scratch. Shouldn't be too terrible though.</div>
<div>
<br /></div>
<div>
The idea is that the dialogue won't freeze you in place so you can just ignore it and keep on playing, hence the see-through text-boxes. It also means you can jump around like a lunatic while reading it if you care to do so. None of this text will be anything tutorial-related though. I'll leave it to the player to figure things out.<br />
<div>
<br /></div>
<div>
Tomorrow I have a crazy short university day so I'll probably get to work on the game. And by work I mean write some more code to fix some stuff from the previous post. Probably.<br />
<br />
EDIT: Just for reference here's my old to-do list:<br />
<br />
<br />
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Make sure collisions work in a way that the character can change size at any time</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Decide on how to determine when the character is on the ground</strike></li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Fix up that gra</strike>vity (90% done)</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Jumping</strike></li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Clean up the movement class</strike></li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Entering polygons via CSV (probably)</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Work out an animation class</li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Improve the camera</strike></li>
<li style="background-color: white; border: none; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Set up an option for 2x size graphics</strike></li>
</div>
</div>
DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com2tag:blogger.com,1999:blog-5844991627149980242.post-69867927949601570012012-08-26T00:38:00.001+02:002012-08-28T21:45:30.434+02:00I put in a good day's workStart of today:<br />
<ul>
<li>collisions broken</li>
<li>no gravity</li>
<li>no polygon flipping</li>
<li>no jumping</li>
</ul>
<div>
End of today:</div>
<div>
<ul>
<li>collisions less broken</li>
<li>gravity works</li>
<li>polygons flip</li>
<li>jumping works</li>
<li>fine-tuned movement</li>
</ul>
<div>
For tomorrow:</div>
</div>
<div>
<ul>
<li><strike>variable jump height</strike> done :)</li>
<li>fixing collision bugs</li>
<li>starting animation</li>
<li>cleaning up code</li>
<li>improving camera positioning and movement</li>
<li>and more!</li>
</ul>
<div>
If you like reading lists of things this post is for you! If not here's a gif for you:</div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-SAn4kIyQ_a4/UDlT0LhaDyI/AAAAAAAAAU8/fa6AKhXyklE/s1600/Untitled-3.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-SAn4kIyQ_a4/UDlT0LhaDyI/AAAAAAAAAU8/fa6AKhXyklE/s1600/Untitled-3.gif" /></a></div>
<div>
<br /></div>
<br />
<br />DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com0tag:blogger.com,1999:blog-5844991627149980242.post-52425979148011710192012-08-22T22:25:00.000+02:002012-08-26T00:39:20.627+02:00Minkowski Collisions - I Want My Game To Have Slopes!<div>
<div style="font-weight: normal;">
I'm going to outline how I did the collision detection in my game. I'm not going to provide actual code, just the idea behind each step. You have to code it yourself and work out the issues yourself. You can see a video of this system in action in my previous post.</div>
<div style="font-weight: normal;">
<br /></div>
<div style="font-weight: normal;">
First I'd like to recommend <a href="http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-1">this</a> brilliant article by David Rosen about using vectors in games. There's lots of interesting stuff there that can help you out and since I'm going to talk about vectors a tiny bit in this guide you can go and get the relevant info there.</div>
<div style="font-weight: normal;">
<br /></div>
<h3>
Taking the Minkowksi Difference:</h3>
<div>
<br /></div>
<div style="font-weight: normal;">
The idea behind my collision detection system is the Minkowski difference. If you're a boss at understanding things (unlike me) you can check out <a href="http://physics2d.com/content/gjk-algorithm">this guide</a> to Minkowski collision detection and ignore the rest of this post. I mostly used it for the flash app on that page to provide some intuition of what Minkowski difference actually does.</div>
<div style="font-weight: normal;">
<br /></div>
<b>Why use Minkowski? What is it?</b><br />
<b><br /></b>
The Minkowski difference takes two <b>convex polygons</b> and produces a third. The way it does this is by taking the coordinates of each vertex of the first polygon and finding the difference between that and the coordinates of each vertex of the other polygon. This produces a scattered array of points in space.<br />
<div style="font-weight: normal;">
<br /></div>
<span style="font-weight: normal;">e.g. The Minkowski difference of {<i>(1,1);(3,1);(2,2)</i>} and {</span><b>(2,1);(4,1);(3,2)</b>} is:<br />
<i>(1,1)</i> - <b>(2,1)</b> = (-1,0)<br />
<span style="font-weight: normal;"><i>(1,1)</i> - </span><b>(4,1)</b> = (-3,0)<br />
<span style="font-weight: normal;"><i>(1,1)</i> - </span><b>(3,2)</b> = (-2,-1)<br />
<span style="font-weight: normal;"><i>(3,1)</i> -</span><b> (2,1)</b> = (1,0)<br />
<i>(3,1)</i> - <b>(4,1)</b> = (-3,0)<br />
etc...<br />
<i>(2,2)</i> - <b>(3,2)</b> = (-1,0)<br />
You'll end up with 3*3 = 9 points.<br />
<pictureee><br /><b>We can create a shape using the outermost of these points. If that shape contains the origin, then we know we have a collision.</b> This is our goal. Using polygons for the player and every other object means we can use the Minkowski difference polygons to work out how collisions with these objects would occur.</pictureee><br />
<pictureee><br /></pictureee>
<pictureee><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="http://3.bp.blogspot.com/-gysaKSG9dFA/UDUlpJdCcEI/AAAAAAAAATA/D_b2-7njSeU/s1600/polygon.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-gysaKSG9dFA/UDUlpJdCcEI/AAAAAAAAATA/D_b2-7njSeU/s1600/polygon.PNG" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13.333333969116211px;">The polygon I currently use for Centure<br />
<a name='more'></a></td></tr>
</tbody></table>
</pictureee><br />
<h3>
<pictureee><picture><b>Bounding the points:</b></picture></pictureee></h3>
<div>
<pictureee><picture><b><br /></b></picture></pictureee></div>
<pictureee><picture><b>Remove duplicates and finding a start point:</b></picture></pictureee><br />
<pictureee><picture>So, as we know, the Minkowski Difference provides this array of points and something you'll notice if you play around with the flash app in the guide I posted above is that several of these points fall exactly over other points. You'll need to <b>remove all of these duplicate points</b>. At the same time it would be a good idea to get the value of the furthest left (or right) of the highest points. You can do both of these in one loop.</picture></pictureee></div>
<br />
<div>
We're going to use this top-left/top-right point as the starting point for this algorithm. I put preference on it being highest over it being furthest left. So it will find the highest point, and if there's more than one of this height it will take the one furthest left. This is just preference, all that really matters is that <b>you use any point that you know will be on the outside of the shape and at a vertex.</b></div>
<br />
<div style="font-weight: normal;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<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="http://4.bp.blogspot.com/-SEgNGp1ifFY/UDUptSHgEDI/AAAAAAAAATY/oCSjKjIqsl0/s1600/this+one.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-SEgNGp1ifFY/UDUptSHgEDI/AAAAAAAAATY/oCSjKjIqsl0/s1600/this+one.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The points from earlier make 9 dots but some overlap so it only looks like 7</td></tr>
</tbody></table>
<br /></div>
<div>
<b>Points on a line and lines dividing points:</b></div>
<div style="font-weight: normal;">
The idea of this algorithm is to see if a line between two points splits the other points into two groups. This is a pretty simple way to tell if the points lie on the outer edge of the shape we're trying to make.</div>
<br />
<div>
So we start with our top left point which we know will be a vertex in the shape and we make a line to some other point and see if this line subdivides the remaining points (at least one of those remaining points must be found on each side).<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><a href="http://2.bp.blogspot.com/-NdPythkTmlE/UDUqwiBMTZI/AAAAAAAAATg/D0gmYImcPd4/s1600/subdivide.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-NdPythkTmlE/UDUqwiBMTZI/AAAAAAAAATg/D0gmYImcPd4/s1600/subdivide.png" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13.333333969116211px;">Subdivides</td></tr>
</tbody></table>
<br />
<b>Once we find a line that does not do so, we can add this point to our new shape. </b>This is our first edge.<br />
<div style="font-weight: normal;">
<br /></div>
<br />
<div style="font-weight: normal;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="font-weight: normal; margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-4vcJAkAQL3k/UDUqzU5FNdI/AAAAAAAAATo/IsrpEt066zQ/s1600/notsubdivide.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-4vcJAkAQL3k/UDUqzU5FNdI/AAAAAAAAATo/IsrpEt066zQ/s1600/notsubdivide.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Does not subdivide - an edge!</td></tr>
</tbody></table>
</div>
<br />
<div style="font-weight: normal;">
We can continue to do this working from the next point we found and work our way around the polygon. You need to remember to check, after you have three points in the new shape, if you cannot make a line back to the original top-left point that does not subdivide the remaining points. If this occurs you have made your way back to the start and have defined your polygon as a set of points in order from top left all the way around.</div>
<br />
<div style="font-weight: normal;">
<span style="background-color: #cccccc;">Optional code?: I'm not entirely sure, but I added some code to remove co-linear points from the new polygon whilst creating it. I don't think these will affect anything other than having to keep track of more than the minimum amount of points needed to describe the polygon you have created. In theory it should work without doing this but I'd recommend doing it anyway since I know it works.</span><br />
<span style="background-color: #cccccc;"><br /></span>
The last thing you want to do when creating your Minkowski polygon is find a point that you know will always be inside it. I just took the average of all the points. As it is a convex polygon this point will always be inside the polygon.<br />
<br />
<h3>
Is this a collision?</h3>
<div>
<br /></div>
</div>
<div>
<b>Line in a shape:</b></div>
<div>
From the point we found inside the Minkowski polygon we create a line segment to the origin. If this line segment crosses any of the sides of the polygon then we know that the origin is not contained in the Minkowski polygon and that the two polygons the Minkowski polygon is created from are not colliding.<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><a href="http://2.bp.blogspot.com/-rG1HlZKaUYk/UDUvCJNg25I/AAAAAAAAAUA/mvUNNM_BFzY/s1600/nocollision.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-rG1HlZKaUYk/UDUvCJNg25I/AAAAAAAAAUA/mvUNNM_BFzY/s1600/nocollision.png" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13.333333969116211px;">This is not a collision</td></tr>
</tbody></table>
<br />
<b>If this line segment is contained within the shape however, we have a collision</b> and we should keep this polygon for later use. Any Minkowski polygons that are not the product of a collision can be destroyed and since it's pretty costly to make them <b>you'd want to only take the Minkowski difference when simpler methods of finding out if objects are near each other can't be sure if there's a collision or not.</b><br />
<div style="font-weight: normal;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="font-weight: normal; margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-1nqiZdUy7jQ/UDUu-7jJzTI/AAAAAAAAAT4/cDLbBQRkzI0/s1600/collision.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-1nqiZdUy7jQ/UDUu-7jJzTI/AAAAAAAAAT4/cDLbBQRkzI0/s1600/collision.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The line from our point (in red) to the origin does not hit an edge. A collision.</td></tr>
</tbody></table>
<div style="font-weight: normal;">
<br /></div>
<h3>
The direction vector</h3>
</div>
<div>
<br /></div>
<div style="font-weight: normal;">
The final piece of this convoluted puzzle is to work out what to do with the polygon we are using to represent the player to make it exit the polygon it has collided with in a realistic fashion. Here the Minkowski difference polygon becomes extremely useful. This is also the part when you need to think using vectors.<br />
<br />
In order to get into the collision your player will need to have had some velocity vector (an arrow the length of how far the player moves each frame).<br />
<br />
If you take the velocity vector from the origin and find out which edge of the Minkowski polygon it intercepts you can easily make the perfect exit vector.<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="http://3.bp.blogspot.com/-b6r1XijcQrw/UDU0ABd-J1I/AAAAAAAAAUQ/q-uk88HHzNo/s1600/vvect.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-b6r1XijcQrw/UDU0ABd-J1I/AAAAAAAAAUQ/q-uk88HHzNo/s1600/vvect.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Let's say this was the velocity vector in red.</td></tr>
</tbody></table>
<br /></div>
<div>
<div style="font-weight: normal;">
If we take the <b>velocity vector from the origin to the edge it intercepts with... </b></div>
<div style="font-weight: normal;">
<b><br /></b></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="font-weight: normal; margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-739tIdIpxSk/UDU0QolXwuI/AAAAAAAAAUY/2s0eav16a_Y/s1600/vvectbeforeedge.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-739tIdIpxSk/UDU0QolXwuI/AAAAAAAAAUY/2s0eav16a_Y/s1600/vvectbeforeedge.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">We take the blue vector</td></tr>
</tbody></table>
<div style="font-weight: normal;">
... and then find the <a href="http://en.wikipedia.org/wiki/Vector_projection">vector projection</a> of that vector onto the <b>edge of the Minkowski polygon it intercepts with</b>. </div>
<div style="font-weight: normal;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="font-weight: normal; margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-gvillv8v3QI/UDU0rAgBvLI/AAAAAAAAAUg/_2-AUbIRDc0/s1600/vectorprojection.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-gvillv8v3QI/UDU0rAgBvLI/AAAAAAAAAUg/_2-AUbIRDc0/s1600/vectorprojection.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Here is the vector projection in grey.</td></tr>
</tbody></table>
And then if we<b> take the vector projection onto the edge minus the origin-to-edge vector</b> we get the perfect exit vector for the particular collision. You then use this vector to move the player out of the collision in the same frame that he gets into it so it looks like he was never there and that the object he collided with is completely solid.<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="http://4.bp.blogspot.com/-6Yo2f6E1XGs/UDU1cxPSoMI/AAAAAAAAAUo/-7yV3HsJ7Ew/s1600/exit+vector.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-6Yo2f6E1XGs/UDU1cxPSoMI/AAAAAAAAAUo/-7yV3HsJ7Ew/s1600/exit+vector.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">grey vector - blue vector = green exit vector</td></tr>
</tbody></table>
</div>
<div>
Feel free to use any of the ideas in this post for your own collision detection system. This is certainly not the only way to do this and I'm sure it's not even a patch on the most efficient. I've tried my best to make this easy to understand. Use the sources at the top if you need more information. Now it's back to work for me. Happy coding!</div>
<div style="font-weight: normal;">
<br /></div>
DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com2tag:blogger.com,1999:blog-5844991627149980242.post-43512854472215112662012-08-19T17:34:00.002+02:002012-08-19T23:21:02.515+02:00So I did some stuff and now I can make a gameI worked on ironing out bugs in my collision detection system today and I think I finally have it working! Even if it is its simplest form. It's a miracle! Here's a video about it:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/MPychUxiXvQ?feature=player_embedded' frameborder='0'></iframe></div>
<br />
Go watch it <a href="http://www.youtube.com/watch?v=MPychUxiXvQ%20lol">on youtube.</a><br />
<br />
Here's some stuff I still need to do:<br />
<br />
<ul style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin: 0.5em 0px; padding: 0px 2.5em;">
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Make sure collisions work in a way that the character can change size at any time</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Decide on how to determine when the character is on the ground</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Fix up that gravity</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Jumping</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Clean up the movement class</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Entering polygons via CSV (probably)</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Work out an animation class</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Improve the camera</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Set up an option for 2x size graphics</li>
</ul>
DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com0tag:blogger.com,1999:blog-5844991627149980242.post-62272668295362336522012-08-10T07:44:00.002+02:002012-08-10T18:19:23.470+02:00I am doing stuff I promise!<span style="font-size: 100%;">Just so you know I'm not being (that) lazy, here's what I've done since my last post:</span><br />
<div style="font-size: 100%;">
<br /></div>
<div>
<ul style="font-size: 100%;">
<li><span style="font-size: 100%;">Designed and animated my first enemy. A very basic, canon-fodder type.</span></li>
<li><span style="font-size: 100%;">Designed and animated my second enemy. It's an extension of the first and I had to individually draw 15 or 16 frames of animation. Madness.</span></li>
<li><span style="font-size: 100%;">Designed Lab 17, Lera's base of operations.</span></li>
<li><span style="font-size: 100%;">Designed the first level of the game.</span></li>
<li><span style="font-size: 100%;">Designed the in-level textboxes. I made them semi-transparent for reasons you shall later see.</span></li>
</ul>
<div>
<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="http://3.bp.blogspot.com/-Gt_SIaaqdmc/UCShrpYms_I/AAAAAAAAASE/Tq3V4kIaaos/s1600/Untitled.png" style="font-size: 15.555556297302246px; margin-left: auto; margin-right: auto;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5774918393411318770" src="http://3.bp.blogspot.com/-Gt_SIaaqdmc/UCShrpYms_I/AAAAAAAAASE/Tq3V4kIaaos/s400/Untitled.png" style="display: block; height: 188px; margin: 0px auto 10px; text-align: center; width: 191px;" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">:\</td></tr>
</tbody></table>
<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="http://4.bp.blogspot.com/-DMHALvIGJtI/UCUyHRMivJI/AAAAAAAAASU/c4-xMNwqC4Q/s1600/Untitleddd.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-DMHALvIGJtI/UCUyHRMivJI/AAAAAAAAASU/c4-xMNwqC4Q/s1600/Untitleddd.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">ROAR!!</td></tr>
</tbody></table>
</div>
<div style="font-size: 100%;">
<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="http://2.bp.blogspot.com/-e59gjFBnTvo/UCU0X0HQ8YI/AAAAAAAAASc/qGOie2JSwPQ/s1600/whazzat.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://2.bp.blogspot.com/-e59gjFBnTvo/UCU0X0HQ8YI/AAAAAAAAASc/qGOie2JSwPQ/s320/whazzat.png" width="303" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">What's that you're standing on Centure?</td></tr>
</tbody></table>
<br /></div>
</div>DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com0tag:blogger.com,1999:blog-5844991627149980242.post-89299321812104523412012-08-01T18:30:00.000+02:002012-08-01T19:56:49.741+02:00Another conceptI just like updating this after I design something new. You can take guesses about what everything will be for.<br />
<br />
NB: This is an image of what the game will look like using the resources I've designed so far. It's not an actual screenshot. Yes there will be a background.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-1zGRVG_ZLtE/UBlYi5T5ASI/AAAAAAAAARs/IzDb7znYlds/s1600/concept.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="178" src="http://3.bp.blogspot.com/-1zGRVG_ZLtE/UBlYi5T5ASI/AAAAAAAAARs/IzDb7znYlds/s320/concept.png" width="320" /></a></div>
<br />
I don't have enough time or motivation to program collision detection after a day at university. But I don't mind designing or animating since it's less effort. The weekend should allow me to get to work on it properly.DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com4tag:blogger.com,1999:blog-5844991627149980242.post-54325893484476793422012-07-29T21:54:00.002+02:002012-07-29T22:00:44.965+02:00Concept of opening level platformsYep, an idea of what the platforms should be like in the first level and perhaps the first world. How specific is that? I'm surprised by how well this scales! I need to set up the game at double size sometime.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-g7bKZgrW_H0/UBWTzWVN8-I/AAAAAAAAARY/smLO_2dWbr0/s1600/concept.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="178" src="http://2.bp.blogspot.com/-g7bKZgrW_H0/UBWTzWVN8-I/AAAAAAAAARY/smLO_2dWbr0/s320/concept.png" width="320" /></a></div>
<br />
This is my idea so far. It'll be a world of levels that focus on jumping probably. I'm scared of how many platforms I may have to make. Maybe I'll cheat a bit.<br />
<br />
Today I programmed in the morning and worked on graphics in the afternoon (with loads of breaks because weekend). I could totally turn that into a habit. Making graphics is really relaxing after all that thinking.<br />
<ul style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin: 0.5em 0px; padding: 0px 2.5em;">
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Set the camera bounds when loading the level... (Have I done this?)</strike> Now I have :)</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Start work on collision detection before doing anything fancy </strike></li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Remeber to code it in such a way that the character can change size at any time</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Find a way to define all solid objects as polygons</strike> now i just need some convenient way to load them</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Figure out how to detect collisions between these polygons and the player</strike> and move the player out of them apropriately</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Decide on how to determine when the character is on the ground</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Jumping</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Flipping the polygon of the character</strike></li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Entering polygons via CSV (probably)</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Work out an animation class</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Improve the camera</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Set up an option for 2x size graphics</li>
</ul>DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com0tag:blogger.com,1999:blog-5844991627149980242.post-15367119738055011752012-07-28T13:30:00.000+02:002012-07-29T11:22:12.072+02:00Collisions are redPretty self explanatory. It only stutters like that in the video.
<iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/1gepX8uunZk?feature=player_detailpage" width="580"></iframe><br />
<br />
<br />
<ul style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin: 0.5em 0px; padding: 0px 2.5em;">
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Set the camera bounds when loading the level... (Have I done this?)</strike> Now I have :)</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Start work on collision detection before doing anything fancy </strike></li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Remeber to code it in such a way that the character can change size at any time</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Find a way to define all solid objects as polygons</strike> now i just need some convenient way to load them</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Figure out how to detect collisions between these polygons and the player</strike> and move the player out of them apropriately</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Decide on how to determine when the character is on the ground</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Jumping</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Flipping the polygon of the character</strike></li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Entering polygons via CSV (probably)</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Work out an animation class</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Improve the camera</li>
</ul>DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com0tag:blogger.com,1999:blog-5844991627149980242.post-57712618233611015412012-07-17T23:34:00.001+02:002012-07-28T13:18:30.983+02:00Mr. Minkowski what are you doing in here?So I've been back working on the game these last few days. I'm using Minkowski difference to figure out if two shapes are overlapping. I'm going to use it for collision detection. This should make it easier to do collisions on slopes and with different shapes than just rectangular platforms. I came up with my own algorithm for doing the Minkowski difference. Actually I came up with more than one and wrote it a few times before I settled on this one. I'm not sure this is the best way to do it but I'm quite happy I was able to come up with something that works and I guess I can replace it later or edit it a bit since I have a few ideas to make it more efficient.<br />
<br />
I'll make a video showing what it does. I've got a hazy idea of how I'm going to use it for collisions that I'm going to have to flesh out next. Once that's working (this could take me a while though) I'll be able to move on to things like animation and the full range of character movement. Only then will I design the first level. It may be slow but I'm making progress! I still have no intention of giving up on this project.<br />
<br />
Now get out of my house Mr. Minkowski! You're a function now and I'm done with you!<br />
<br />
Here's my to-do list from last time:<br />
<br />
<ul style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin: 0.5em 0px; padding: 0px 2.5em;">
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Set the camera bounds when loading the level... (Have I done this?)</strike> Now I have :)</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Start work on collision detection before doing anything fancy </strike></li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Remeber to code it in such a way that the character can change size at any time</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Find a way to define all solid objects as polygons</strike> now i just need some convenient way to load them</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><strike>Figure out how to detect collisions between these polygons and the player</strike> and move the player out of them apropriately</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Decide on how to determine when the character is on the ground</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Jumping</li>
</ul>
Here's a silly video about Minkowski difference:<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/Mq53RJ0weTE?feature=player_detailpage" width="580"></iframe>DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com4tag:blogger.com,1999:blog-5844991627149980242.post-13934765982129184562012-06-01T23:34:00.000+02:002012-06-13T10:32:18.602+02:00What's HappeningAfter a period off from working on the game I realised I've kind of made a mess. Literally. My code was all messy and inefficient and I found it hard to get back into working on the game. So I've decided to start from scratch and get things up and running again with a bit more planning this time and a more orderly structure so if I take a break it's not impossible to come back to it. To anyone who's thinking: "Why don't you just work on it like it was?" trust me it's for the best that I don't do that. I've got too much to fix on that old version for me to even consider it. The cool thing is that taking a step back for a little while means I can see that more clearly now.<br />
<br />
So anyway progress continues on the game. I have been back to work on the rewrite of late despite my loooming exams. I've written a sort of game structure and am working on making some code for moving characters around reusable so I can just use it for enemies and whatever else I decide to chuck in there. It's all simple in concept and then damn complicated when I actually have to do it. But a great thing about making a game is how many strange unexpected problems it throws at you. It's a great way to learn about programming without having to construct meaningless problems for yourself to solve. There are so many problems pre-built into making a game it's like a student's <strike>nightmare</strike> dream!<br />
<br />
I expect to be finished with the game in around 3 months. Lol.<br />
<br />
<br />
I'll just edit this post until something interesting happens. My word I'm working slowly. I can't wait for these exams to end!<br />
<br />
<i>Things done on the new version - update of randomness 13/06/2012:</i><br />
<br />
<ul>
<li>Created a system to handle loading the right graphics for each level. I tell it what level and it loads the graphics. Mostly just boringly designed platforms. Admittedly I only have one level but I have tested it. I think.</li>
<li>Created an input system that converts keyboard input into a direction vector (basically just keeps track of up, down, left, right, nothing, or any combination of those) and some other variables to keep track of other buttons. Oh and I made it pretty simple to change the controls for later. The reason for the whole conversion thing is because I...</li>
<li>Made a movement system that'll contain a bunch of functions (tools) to move the character (or indeed anything) around given the right input. But since the keyboard input is turned into this other form I can use the keyboard input for these functions or just give it input and it won't know the difference.</li>
<li>Made a camera that is restricted to certain bounds. I'm planning to make it able to follow any object I choose. That way I can switch it to random objects and amuse myself.</li>
<li>There's also something that defines everything in the game as an object - maybe I should have used the term sprite? - and stores the properties of that object and then a special version of that I made called a playerobject that's for the player. It was the first thing I made.</li>
<li>Made functions for movement for a topdown or sidescroller game. I could always use the topdown one for enemies that hover or something since I do intend to keep this a sidescroller. I also added inertia to these which you can set to anything you like.</li>
</ul>
<br />
And here's a little short term to-do list:<br />
<br />
<ul>
<li>Set the camera bounds when loading the level</li>
<li>Start work on collision detection before doing anything fancy</li>
<li>Remeber to code it in such a way that the character can change size at any time</li>
<li>Find a way to define all solid objects as polygons</li>
<li>Figure out how to detect collisions between these polygons and the player and move the player out of them apropriately</li>
<li>Decide on how to determine when the character is on the ground</li>
<li>Jumping</li>
</ul>
<br />
<div>
<br /></div>
<br />
<br />
<br />DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com0tag:blogger.com,1999:blog-5844991627149980242.post-80560329950921053972012-04-24T17:52:00.001+02:002012-06-21T11:31:13.638+02:00UpdateHere's a quick status update. The game has remained largely unchanged since my last post. I've had a series of tests in quick succession and haven't had a chance to update it. I'm happy to say I should be able to get back to work on it tomorrow. And I'm super keen to get back to it. I have a strange desire to... animate things. It's not very fun drawing each frame but when you're done and you see things moving and looking natural it's an awesome feeling.<br />
<br />
So in the mean time here's a skin I made of Centure for minecraft a while back. It's not exactly perfect so feel free to edit it and turn him into... a zombie or a goat version of himself or just make a better version if you're artistically inclined. I'm okay as an artist and I hope I improve while making the game. Half the fun of making this will be to improve all my skills.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-QorlE0KfYCk/T5bLGc2tWuI/AAAAAAAAANs/138jf0RwTK8/s1600/char+-+Copy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-QorlE0KfYCk/T5bLGc2tWuI/AAAAAAAAANs/138jf0RwTK8/s1600/char+-+Copy.png" /></a></div>
Minecraft skins sure are tiny. Now I need to study for another test.DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com1tag:blogger.com,1999:blog-5844991627149980242.post-91788529696006111312012-04-13T21:48:00.015+02:002012-08-29T21:49:31.320+02:00The Story<span style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">So today I took it easy on the coding and wrote a basic outline of the story. It's surprisingly sci-fi! I'm not even a huge fan of science fiction but there you go. I added a synopsis to the right of the blog there. I'm sorry if it's hard to follow. I want to tell you what's going on but also... don't want to tell you what's going on. If you know what I mean.</span><br />
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
Here's a description of the major players (so I don't forget haha). I'll add the character art as I design it:</div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<b>Centure</b><span style="font-weight: normal;">: Created by Lera, he's the newest Biological Creature and our protagonist. He doesn't say much but he knows more than you think.</span></div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<span style="font-weight: normal;"><br /></span></div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<a href="http://3.bp.blogspot.com/-Nwlbpa3_LWg/T4iMd4xpu_I/AAAAAAAAAMU/ZBWaF7b6mhc/s1600/centure.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5730984970913692658" src="http://3.bp.blogspot.com/-Nwlbpa3_LWg/T4iMd4xpu_I/AAAAAAAAAMU/ZBWaF7b6mhc/s400/centure.png" style="cursor: pointer; display: block; height: 150px; margin: 0px auto 10px; text-align: center; width: 300px;" /></a><br />
<div style="text-align: center;">
These are Centure's 2 forms</div>
</div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<b>Lera</b>: The creator of Biological Creatures. She's wanted after avoiding the police following a terrible accident that occurred during the creation of the Biological Creature she attempted to make just before Centure. Several people were killed in this accident - serious stuff!</div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
<a href="http://4.bp.blogspot.com/-er2LgGXhgi0/T4i3M2KG3QI/AAAAAAAAAM4/fbvstR_2juY/s1600/Lerafornow.png" style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5731031957153176834" src="http://4.bp.blogspot.com/-er2LgGXhgi0/T4i3M2KG3QI/AAAAAAAAAM4/fbvstR_2juY/s400/Lerafornow.png" style="cursor: pointer; display: block; height: 150px; margin: 0px auto 10px; text-align: center; width: 96px;" /></a><br />
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; text-align: center;">
Lera - early version - I might change her completely</div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<b>The Corha World Government</b>: They funded and powered the Biological Creatures operation but are now trying to wash their hands of it. And that means destroying every Creature Lera has ever made.</div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
<a href="http://1.bp.blogspot.com/-w4X0wcelodM/T4naLDuVe6I/AAAAAAAAANc/8rAma15_HUM/s1600/CWG.png" style="font-style: normal;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5731351884318735266" src="http://1.bp.blogspot.com/-w4X0wcelodM/T4naLDuVe6I/AAAAAAAAANc/8rAma15_HUM/s400/CWG.png" style="cursor: pointer; display: block; height: 238px; margin: 0px auto 10px; text-align: center; width: 300px;" /></a><br />
<div style="font-family: Georgia, serif; font-size: 100%; font-variant: normal; font-weight: normal; line-height: normal; text-align: center;">
I will never <i>ever</i> animate this - well maybe one day</div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<b>Biological Creatures</b>: Creatures created by Lera as requested by the Corha World Government. Lera wishes to save them and does not believe they deserve to be destroyed. They are slowly losing power as their power source has been removed by the Corha World Government. Centure, the newest, suffers the least from power-loss issues.</div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
<div style="font-style: normal;">
<a href="http://3.bp.blogspot.com/-I8FxgNUVdII/T4mZiTAeOfI/AAAAAAAAANE/fg58Q6VmLCs/s1600/LeraCenture.gif" style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5731280815302523378" src="http://3.bp.blogspot.com/-I8FxgNUVdII/T4mZiTAeOfI/AAAAAAAAANE/fg58Q6VmLCs/s400/LeraCenture.gif" style="cursor: pointer; display: block; height: 119px; margin: 0px auto 10px; text-align: center; width: 163px;" /></a><br />
<div style="text-align: center;">
Lera and Centure</div>
</div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<b>Nybble</b>: Lera's computer. A lighthearted A.I. who communicates with Centure by writing on the world around him using a new technology developed by Lera. In contrast to Centure, Nybble never <del>shuts up</del> stops talking.</div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br />
EDIT: I've since changed this idea. Though writing on the world sounds cool, I feel like it'll be basically impossible to read while moving which breaks the flow of the game. I have another idea though :)<br />
<br /></div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
Hopefully, armed with this information, you can more easily understand the synopsis.</div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com6tag:blogger.com,1999:blog-5844991627149980242.post-3521598063858245102012-04-13T00:02:00.006+02:002012-04-13T00:22:00.543+02:00Moon<a href="http://2.bp.blogspot.com/-0L29aYFMX20/T4dSM92BaaI/AAAAAAAAALc/m4dPfKcSb9w/s1600/moooon.png" style="font-size: 100%; font-family: Georgia, serif; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 292px; height: 320px;" src="http://2.bp.blogspot.com/-0L29aYFMX20/T4dSM92BaaI/AAAAAAAAALc/m4dPfKcSb9w/s320/moooon.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5730639433565301154" /></a><div style="font-size: 100%; "><div style="text-align: center;"><span>Moontastic!</span></div><div style="text-align: center;"><span><br /></span></div><span><span style="font-size: 100%;">Hey dudes! It's been a while. I've made quite a bit of progress since my last post. I worked on my new collision detection system (mentioned in the "plan" post) and managed to get it about 80% working. Enough to make it playable which is good enough for today since I'm tired of working on it. I also did my first background. It was a pretty hasty job but it looks pretty awesome! I can always go back to it and make it look even better later. It really adds to the atmosphere of this first level.</span></span></div><div style="font-size: 100%; "><span><span style="font-size: 100%;"><br /></span></span></div><div style="font-size: 100%; "><span><span style="font-size: 100%;"><a href="http://1.bp.blogspot.com/-ZmZt0wkON3Y/T4dU-aHCfUI/AAAAAAAAAL0/Z3cGsYIm8nA/s1600/tutback.png"><img src="http://1.bp.blogspot.com/-ZmZt0wkON3Y/T4dU-aHCfUI/AAAAAAAAAL0/Z3cGsYIm8nA/s400/tutback.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5730642481989713218" style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 90px; " /></a></span></span></div><div style="text-align: center; "><span>Click for a mini version of the background art</span></div><div style="font-size: 100%; text-align: center; "><span><br /></span></div><div style="font-size: 100%; "><span>The first level's aim is to teach the player the game mechanics as seamlessly as possible. See the "z" in the first picture? It's a puzzle of sorts since it's up to the player to notice it and press the corresponding key on the keyboard to see what it does or they'll be stuck falling into that pit forever. I'm certainly not going to tell you the controls!</span></div><div style="font-size: 100%; "><span><br /></span></div><div style="font-size: 100%; "><span>Next up is to complete the design for this first level (I'm about 50% done), work out the bugs in my collision detection system and finally finish the animations for the big character.</span></div>DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com3tag:blogger.com,1999:blog-5844991627149980242.post-39314228765656529302012-04-07T17:20:00.005+02:002012-04-07T19:12:50.569+02:00Moving Slowly Onwards<span><span style="font-size: 100%; ">Things are gradually moving along. I've added a box around my character to cut down all the collision checking the game has to do. So now if something's in the box it can worry about a collision in the next frame, if not it can just idle along. Yep I'm saving processing power on a 2D platformer.</span></span><div style="font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><span><br /></span></div><div style="font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><span>I uploaded a video where you can see what the box actually looks like and a nice glitch I've run into. I figured I'd be able to see why it happens in SLOOOW MOOOOOTIOOOON but no luck there. </span></div><div style="font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><span><br /></span></div><div style="font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><span>The box wont actually be visible in the game I just made it like that so I know it's working as intended. Good. Great. Now to fix those bugs.</span></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><br /></div><div style="font-family: Georgia, serif; text-align: center; "><span><iframe width="420" height="315" src="http://www.youtube.com/embed/Gx_eqcR-6X8" frameborder="0" allowfullscreen=""></iframe></span></div><div style="text-align: center; font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><br /></div>DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com4tag:blogger.com,1999:blog-5844991627149980242.post-21217581809794684692012-04-02T18:10:00.006+02:002012-04-02T20:52:13.762+02:00Minigame: Evil Eye<a href="http://3.bp.blogspot.com/-anJHL_4bWUQ/T3n0XCY_eLI/AAAAAAAAAJk/venrn7XpdB4/s1600/eye.bmp" style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 48px; height: 48px;" src="http://3.bp.blogspot.com/-anJHL_4bWUQ/T3n0XCY_eLI/AAAAAAAAAJk/venrn7XpdB4/s400/eye.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5726877077794158770" /></a><div style="text-align: center;"><span>This was designed in my car</span></div><div style="text-align: center;"><span><br /></span></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; ">So I made a little "game" I've decided to call Evil Eye to play around with per-pixel collision detection. Actually it's more of a toy than a game. I did half the coding while in the car! I'm on holiday now and may not be able to work on the game much in the next few days. But I'll get back to it ASAP. As for what I've been doing until now... getting my driver's license. Not even joking.<div><br /></div><div>So Evil Eye is a test. I'll put it up for download for you guys to mess around with. There's no goal to it and if you can't get it to work you're not missing much. Trust me. I'll put it up on mediafire and hope for the best:</div><div><br /></div><div><a href="http://www.mediafire.com/?jvegdj723t4l2iz">Evil Eye</a> - A per-pixel collision test program. Let me know if the download works.</div><div><br /></div><div>Next up is to implement this in the actual game, after that I have to complete character movement for the big version of the character and then I can start enemy and level design!<br /><div><br /></div><div><br /></div></div></div>DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com1tag:blogger.com,1999:blog-5844991627149980242.post-8658186204787462032012-03-28T20:52:00.011+02:002012-03-28T21:18:43.160+02:00Nice<div><span><div style="text-align: center; "><div style="font-weight: normal; text-align: left; "><span><b>The plan behind the plan:</b></span></div><div style="font-weight: normal; text-align: left; "><span><br /></span></div><div style="font-weight: normal; text-align: left; "><span>I'm writing this for myself as much as anyone else. It's a plan of action. I've been using an interesting (read wrong - at least I think) method of collision detection. I made it up myself. It works but it's pretty slow and causes loads of problems and it hurts my brain fixing them and my fingers typing them and my eyes looking at my ugly code. So. The new plan is another method of collision detection that may or may not work. I've made a copy of my game if all goes awry so I can go back to what I have now.</span></div><div style="font-weight: normal; text-align: left; "><span><br /></span></div><div style="font-weight: normal; text-align: left; "><span><b>So what are we doing eh, CentureMan?</b></span></div><div style="font-weight: normal; text-align: left; "><span><br /></span></div><div style="font-weight: normal; text-align: left; "><span>Short version: Better, faster collision detection.</span></div><div style="font-weight: normal; text-align: left; "><span><br /></span></div><div style="font-weight: normal; text-align: left; "><span>Long version: Welllll, I'm going to use the amount of overlap in collisions in addition to the speed the character was going, both vertically and horizontally just before the collision to decide where I will put him so he doesn't get himself stuck inside walls. That was my original problem: I can work out if he's in a wall now how do I decide where to put him to get him out? Where did he come from exactly? I think I can figure that out now.</span></div><div style="font-weight: normal; text-align: left; "><span><br /></span></div><div style="font-weight: normal; text-align: left; "><span>The other thing I want to do is use this per pixel stuff in conjunction with this new method. I've never done that before so it should be interesting. I think I'll start off by making a little program that does that just to test it out and learn the ropes.</span></div><div style="font-weight: normal; text-align: left; "><span><br /></span></div><div style="font-weight: normal; text-align: left; "><span><b>So how long will this take?</b></span></div><div style="font-weight: normal; text-align: left; "><span><br /></span></div><div style="font-weight: normal; text-align: left; "><span>Probably a few weeks, but in theory it'll be faster than my old method. We'll see how things go.</span></div><div style="font-weight: normal; text-align: left; "><span><br /></span></div><div style="text-align: left; "><span><b>I want a picture</b></span></div><div style="font-weight: normal; text-align: left; "><span><br /></span></div><span style="font-weight: normal; "><div style="text-align: left;">Okay</div></span></div><div style="font-weight: normal; text-align: center; "><span><span style="font-size: 100%;"><img src="http://www.nintendoza.co.za/forum/customavatars/avatar17700_12.gif" style="font-size: 100%; " /></span></span></div></span></div><div style="font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; text-align: center; font-family: Georgia, serif; "><span>This is what the game is about.</span></div>DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com1tag:blogger.com,1999:blog-5844991627149980242.post-30956708011347227042012-03-26T23:12:00.005+02:002012-03-27T01:07:23.303+02:00I see more collision detection<span><span style="font-size: 100%;">Check out this link: </span></span><a href="http://create.msdn.com/en-US/education/catalog/tutorial/collision_2d_perpixel" style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; ">http://create.msdn.com/en-US/education/catalog/tutorial/collision_2d_perpixel</a><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; ">Per pixel collision detection - very cool. My game doesn't have this yet but it's a priority now. It looks simple enough to add too. At the moment I have a block around my character that I'm using to detect collisions. The problem with this is that he's wider than his feet, so he can hover over the edge of platforms, standing on nothing because the square around him isn't over the edge yet. </div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; ">What per pixel collision detection does, is check every pixel in the image and see if it's colliding with the pixels on another image. It's on my to-do list. Now to do some real work :/</div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; ">Thanks to Evan for linking me to this.</div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><br /></div><div><span><span style="font-size: 100%; margin-right: auto; margin-left: auto;"><img src="http://2.bp.blogspot.com/-XXXqsJ9OvNc/T3Dedc_6O1I/AAAAAAAAAJY/A5B_NV0vT_Q/s400/look%2Bmom%2Bno%2Bground.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5724319723969723218" style="color: rgb(0, 0, 238); display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 260px; height: 253px; " /></span></span><div style="text-align: center;"><span>This is his true power. Or a glitch. Nice lack of background.</span></div></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><br /></div>DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com2tag:blogger.com,1999:blog-5844991627149980242.post-81102264350192082012-03-26T21:26:00.006+02:002012-03-26T22:30:39.205+02:00Let's get cracking<span style="font-size: 100%;"><a href="http://4.bp.blogspot.com/-yc_zrF1k-a8/T3DFtLqh2oI/AAAAAAAAAJM/smK8yZJKYSY/s1600/Untitled-4.gif" style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; "></a></span><b style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; ">What is Centure?</b><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; ">Centure is a game I'm working on in my free time. It's a 2D platformer (much like mario bros.) revolving around the idea of switching between two versions of the same character on the fly. You'll see more in due course.</div><div style="font-weight: normal; font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; "><b><br /></b></div><div style="font-weight: normal; font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; "><b>Who are you?</b></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; ">I'm that guy that made Centure.</div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-weight: normal; font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; "><b>Why that name?</b></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; ">I just made it up to have something to call this blog and I'm sticking with it. Seriously.</div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-weight: normal; font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; "><b>How far are you now?</b></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; ">Right now? I've been working for a few weeks now and I'm gradually getting the character movement down (together with collision detection). I've never made a game before and this is a spare time project so excuse the slowness of my work. Rest assured there's loads of effort going into making movement perfect so the rest of the game isn't hampered by it. I want it to be fun just to move the character around.</div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-weight: normal; font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; "><b>Are you going to give up on it?</b></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; ">No.</div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-weight: normal; font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; "><b>What's this blog for?</b></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; ">It's just a place where I can update anyone who cares about how development is going.</div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; "><b><br /></b></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; "><b>Can I help?/ Do you need help?</b></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; "><b><br /></b></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; ">Nope! Sorry, but I'm really interested in seeing how far I can take this on my own. It's sort of a challenge for myself. I'll be doing everything myself except testing. You can help with that when the time comes, I guess.</div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; ">If you have any other questions, just chuck 'em in the comments. I'm sure there'll be millions seeing as this is such a high profile game and all.</div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><a href="http://4.bp.blogspot.com/-yc_zrF1k-a8/T3DFtLqh2oI/AAAAAAAAAJM/smK8yZJKYSY/s1600/Untitled-4.gif"><img src="http://4.bp.blogspot.com/-yc_zrF1k-a8/T3DFtLqh2oI/AAAAAAAAAJM/smK8yZJKYSY/s400/Untitled-4.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5724292506403854978" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 100px; height: 102px; " /></a><div style="font-family: 'Times New Roman'; font-size: medium; text-align: center; "><span>A rough draft of a punching animation</span></div><b><br class="Apple-interchange-newline"></b></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div><div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><br /></div>DOUGhttp://www.blogger.com/profile/11476586045151511899noreply@blogger.com1