tag:blogger.com,1999:blog-37646615180567378502024-02-07T05:18:10.587+00:00Catbox Beta BlogMikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.comBlogger60125tag:blogger.com,1999:blog-3764661518056737850.post-14663904215379252342013-07-02T00:27:00.003+01:002013-07-02T00:27:58.482+01:00Dragon game update: additive blending, contorted transformer and slender dragonHello again!<br />
<br />
This has been a pretty big week for my game.<br />
I've refactored the rendering engine simplifying some stuff and improving performance a lot. I've also added smooth shading to my dragon model and had a fight with blender over exporting models (I had to change roll of some bones which turns out isn't as simple as I though because all animations get screwed up).<br />
<br />
As for additions to the animation system:<br />
<ul>
<li>Additive and Subtractive blending. Allows me to create an animation I can lay on top of other animations (eg: small variations when running)</li>
<li>Skeleton masking: Allows me to select which bones get affected by a node</li>
<li>Triangular mesh node blending resulting in Head rotation: Ok, this isn't completely new but I did remove it for some time when I did the animation tree refactor</li>
</ul>
I also did another small anim tree refactor meaning it is no longer a tree and more of a graph with a root node and leaf nodes. This means I can now have one source animation node being used in several other places which is really useful.<br />
<br />
<br />
<b>Anyway, here's the latest update video:</b><br />
<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://i1.ytimg.com/vi/inW4FpsE_sE/0.jpg" height="384" width="512"><param name="movie" value="http://www.youtube.com/v/inW4FpsE_sE?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="512" height="384" src="http://www.youtube.com/v/inW4FpsE_sE?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<br />
<br />
<b>And here you can see what happens if you don't subtract animation from a reference pose:</b> <b> </b><br />
<b> </b> <br />
<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;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='512' height='360' src='https://www.youtube.com/embed/VLDBZVhmV7U?feature=player_embedded' frameborder='0'></iframe> </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: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>Also my dragon is apparently a transformer, here he is as a spaceship:</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_YkzW5bLIOLSleU7Q3hE4AWS8R-NH1I9KuGfFkDVdgTMSDd88G2Bw6Ltpvt-SLWMz0np74XozBUXgMmZJylRPqFJwdgsZZLdS3UFYZj1Jar1lMVvwjW0vgsKXdW3ytdnaXpNiysd5M9SF/s1024/dragon_debug_pose.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="449" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_YkzW5bLIOLSleU7Q3hE4AWS8R-NH1I9KuGfFkDVdgTMSDd88G2Bw6Ltpvt-SLWMz0np74XozBUXgMmZJylRPqFJwdgsZZLdS3UFYZj1Jar1lMVvwjW0vgsKXdW3ytdnaXpNiysd5M9SF/s640/dragon_debug_pose.png" width="640" /></a></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: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
That's all for this week. Next week I'll be working on leg IK, adding flying animations and I'll also work a bit on the texture. I'd love to do an IK tutorial eventually since it's a topic I already got myself quite familiar with, and there are a couple of techniques that are easy to implement that you don't need to know too much math to add to your own game.</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
Either way if you have any questions about animation blending/trees or IK feel free to contact me either by commenting or through twitter <a href="https://twitter.com/SpliterCBb">@SpliterCbb</a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
Cheers!</div>
Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-74551979776270552522013-06-22T03:32:00.000+01:002013-06-22T03:41:10.670+01:00Working on a new gameHey!<br />
I've been neglecting this blog for quite some time since I was thinking of moving to wordpress but without ever actually committing.<br />
<br />
So I decided that for the time being I'll keep updating this blog with the news of the game I;m currently developing.<br />
<br />
The end result I want is a game where the player is a dragon from the start of its life in the egg up to the end of the life. I want it to have a certain storyline but It'll be free-roaming/open world for the most part with story taking place in specific areas, one of the key focuses of the game will be the animation as I want to combine keyframed animation, IK, physics and procedural animation to have a dragon that controls great but still responds naturally to the world.<br />
<br />
I'm developing it on my own engine since I want this to not only be a great game but I also want to learn the hard technical parts as I'm making it.<br />
<br />
So far I have a basic resource management, a rendering system and the beginnings of a robust animation system.<br />
<br />
Here are the video updates so far:<br />
Update 1 <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='512' height='360' src='https://www.youtube.com/embed/AT-mGR9mF8g?feature=player_embedded' frameborder='0'></iframe></div>Update 2
<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='512' height='360' src='https://www.youtube.com/embed/Rg2WK7iaECI?feature=player_embedded' frameborder='0'></iframe></div>A funny bug related to my direction setting resulting in wobbling.
<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='512' height='360' src='https://www.youtube.com/embed/CkzzmKtF9iA?feature=player_embedded' frameborder='0'></iframe></div>Update 3
<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='512' height='360' src='https://www.youtube.com/embed/V2KG31SEhGQ?feature=player_embedded' frameborder='0'></iframe></div><br />
Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-49080007763798893212011-12-02T01:40:00.002+00:002011-12-03T01:57:43.004+00:00New Website is Up!Ok, so I was talking with the folks at the Ludumdare IRC the other day and they advised me to create a website to show off my stuff. And so for the last two days I've been working on it tirelessly almost every waking hour to get it up and running and I tell you: HTML, CSS and javascript are NOT nice to work with!<br />
<br />
Also as I'm writing this I'm talking to the guys at IRC and another suggestion of theirs that I think I'll follow is first to switch from blogspot to wordpress, then register a proper domain name, and finally change my hosting. But since I've only just created it and I'm really busy right now I'll do that next week if not later.<br />
<br />
Anyway, here's my Website:<br />
<a href="http://catboxbeta.x10.mx/">http://catboxbeta.com</a><br />
<br />
Any critiques in relation to content, design and anything at all are very welcome!<br />
<br />
Cheers!<br />
SpliterMikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com1tag:blogger.com,1999:blog-3764661518056737850.post-81000644715249949852011-11-29T07:40:00.002+00:002011-11-29T07:42:41.377+00:00Deferred LightingFirst a quick update on stuff that's been going on since my last post here:<br />
-I've been let go from my old job, looking for new one.<br />
<br />
<br />
And now back to our topic at hand.<br />
I always like to boast that I'm a graphics programmer, that there's little that can stop me in my way and even though I actually do believe that's true I don't have much to show for that. Be it because of work and being uninspired to program back at home, or because I've spent far too long retouching my engine and in the end I end up with a lot of hidden work and nothing visible, or because I was simply too lazy/distracted.<br />
<br />
Well, since I lost my job I decided It's time to boost my portfolio a bit, and prove to everyone and to myself that I can actually be a good graphic programmer. To accomplish this I decided to work every day on a small demo of a certain feature I never implemented before. The first one being:<br />
<br />
Deferred Lighting.<br />
<br />
Of course my first reaction was grabbing as much as I could from the internet in terms of research papers and tutorials. The most helpful I found are these:<br />
<br />
<a href="http://www.gamedev.net/page/reference/index.html/_/technical/opengl/creating-a-glsl-library-r2428">Creating a GLSL Library</a> - This was a good way to quickly sketch out a simple per-fragment lighting shader and apply it to a model lit directly. I've used this before so I simply copied most of the code<br />
<br />
<a href="http://www.codinglabs.net/tutorial_simple_def_rendering.aspx">Coding Labs Deferred Rendering Tutorial</a> - This is what I needed, though I decided to skip the tutorial and learn directly from source code since I already understood the concepts and implementation, but I didn't know which opengl functions to use.<br />
<br />
Normally Deferred rendering requires you to use the inverse of the modelview matrix and inverse of the projection matrix to get both the pixel position from projected screen space to camera-space, and to get the lights from world space to camera space, however the tutorial used a nasty inefficient hack to get the pixels in world space without the need for transformation: it simply recorded all x, y and z inside what in normal deferred lighing program would be a single-32bit float-value gbuffer.<br />
<br />
However with lights I did another nasty hack: instead of using the gl_LightSource[i].position in my shader I simply replaced it with an array of vec4 screen-space light positions I calculated outside using the modelview matrix from the first pass and passed to the shader.<br />
<br />
All of this just so I didn't have to write/find and de-obscure and test and debug a matrix inverse function.<br />
<br />
In the end I spend between 4 to 8 hours on this (how mach depends if you count the research time) over the course of 2 days.<br />
<br />
The results?<br />
Here:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLFDwfYECZ7mZ_MrJqar5ivXieIBX1Qo5Hw-zPzNCzBuoF9QHYI1zkG1NrQ6K7qNocnuCdBHaZm1LFWxiJg-2ycFldlp1HgvGVuXK_tHqlu0Sd6fxLvbLBY8COokTJlz1m39NPOxA0d9Mb/s1600/Deferred_Final.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLFDwfYECZ7mZ_MrJqar5ivXieIBX1Qo5Hw-zPzNCzBuoF9QHYI1zkG1NrQ6K7qNocnuCdBHaZm1LFWxiJg-2ycFldlp1HgvGVuXK_tHqlu0Sd6fxLvbLBY8COokTJlz1m39NPOxA0d9Mb/s1600/Deferred_Final.png" /></a></div>
<br />
<br />
All in all it wasn't that bad but the code ended up a horrible conglomerate mess, most of which was shoved into a single main.cpp file.<br />
<br />
If you're interested you can download the demo with the code here:<br />
<a href="http://bit.ly/rqfPks%20">Deferred Shading Demo</a><br />
<br />
Before you look at the source please note that this is terrible code, unoptimized and originally wasn't meant for viewing by other people, if I ever did the exact same demo again there would be ZERO similarity.<br />
<br />
Right now I'm working on another experiment, namely importing a model with animation using Assimp (which I still have to learn) and then use that data in my animation tree (similar to the one UDK has), in the end add some IK, but this experiment is much larger than the deferred shading one, so it'll take probably about a week or so before I post here again.<br />
<br />
Thanks for your attention! <br />
Laters!<br />
Spliter<br />
<br />Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-13558291597022404532011-08-21T00:09:00.002+01:002011-08-21T04:41:53.807+01:00Progress snippet<b>Hello!</b><br />
Ludum Dare 21 has started yesterday. Unfortunately I'm not participating but that doesn't mean I won't be doing anything this weekend!<br />
<br />
For the last month or two I've been working on my game engine. My little baby Litterbox has it's third rewrite from scratch ever since I've started making it. This time the key word is "Components"!<br />
<br />
Now, components are a very, very good thing, but the classical component-based engine design has it's flaws like component communication overhead, the lack of centralized control, and many more than would normally keep me away from it. However I couldn't just go back to using the traditional deep hierarchy design as it constraints the flexibility of the engine, and many times you have to use a super-complex base-object that I really don't want to have.<br />
<br />
So.. What's the sollution?<br />
<b>Hybrid</b><br />
<br />
My engine architecture is a hybrid one, having always a centralized game entity to which the components are linked. In most cases this means that I have a command center for my objects, but I can also add and new components easily. So if I have a 2D game engine where I suddenly would want one of my bosses to be fully 3D there wouldn't be a problem! I just add a lb3DModelComponent to my boss object, and handle all the special 3D code in the entity.<br />
<br />
So far I've moved from 2D animated sprites to 3D models (with Horde3D) without any problems, and if I want a 2D game on top of my 3D game then there's absolutely no problem!<br />
<br />
<b>So, here's my progress so far:</b><br />
-I have a fully functional Entity system with attachable components.<br />
-2D box-based collision system (with various iterations per frame)<br />
-2D graphic system, leftover from earlier engine testing, with support for animated sprites loaded from a sprite sheet.<br />
<br />
<b>My Game</b><br />
I also started thinking about the game I want to make. In my earlier days as a wannabe game dev I created a small demo in gamemaker, where you controlled a fiery guy, you had a selection of fire-based weapons and you were left in a small town full of squishy pink dudes and buildings to use your abilities on.<br />
Recently I showed it to a couple of guys at LudumDare IRC channel and the feedback they gave me really pumped me up so I decided to give that game another try.<br />
<br />
The basic idea of the game was that you were a Poyo, a little pink dude kinda resembling a Poring from Ragnarok Online. You would then acquire special powers that would let you transform into a version wielding 1 of 3 natural elements, namely: Fire, Water and Flora.<br />
<br />
The game setting was mostly based in a fantasy land with traces of advanced tech.<br />
<br />
Now I'm reworking the Idea. I'm planning for keeping the feature of 3 elemental transformations, and as planned before the game would be an Action-Adventure, though I might throw in some RPG elements in there too since it seems to be a good blend considering the fantasy setting.<br />
Anyway, here's the screenshot of how things are so far: <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img585.imageshack.us/img585/2420/poyoandtower.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="238" src="http://img585.imageshack.us/img585/2420/poyoandtower.png" width="320" /></a></div>
<br />
<br />
This also was a good excuse to go back to modelling in Blender.<br />
Importing these models to Horde3D was a real pain in the ass as the colladaConverter crashed when converting them, but the people on Horde3D forum had a nice workaround which works good so far.<br />
<br />
For comparison here's how the old PoyoAdventure demo looked:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img192.imageshack.us/img192/3383/oldpoyoadventure.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://img192.imageshack.us/img192/3383/oldpoyoadventure.png" width="320" /></a></div>
<br />
That's quite a sight there in all its 2D glory, however 2D constraints when it comes to depth and having object on top of one another really threw me away from it, that's why I decided to remake this game with 3D graphics (though with the same 3/4 view). I still plan on using 2D collisions though, just to work faster and have something done in less time.<br />
<br />
I won't finish this game but I want to have a fun to play prototype. If it's fun enough then I'll work on it more adding fully 3D collisions, proper story, and I'll invest more time into it. (Basically this version will be the proof that I can make a game, as well as a proof of concept for my engine).<br />
<br />
I'll be working on this most of the weekend, in a few hours I should
have the little pink dude walking around with a basic animation and
colliding with stuff. No idea what I'll do tomorrow but lately I've
found out that striding back and forth around my house, brainstorming,
gave me lots of good ideas as well as will/inspirations to implement
them.<br />
<br />
<b>Edit: For those interested, no I didn't get the animations playing. I have no idea how I export animations from blender to use in Horde. I'll ask on Horde forums but that place is pretty much a ghost town. I'm kind of starting to regret using Horde instead of Ogre3D. If I don't find anything reasonable soon I'll try making my own converter with the help of AssImp.</b><br />
<br />
That's all for now!<br />
<br />
Later!<br />
Spliter<br />
<br />
<br />Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-84463387312383144322011-07-11T02:10:00.000+01:002011-07-11T02:10:12.311+01:00Going socialYeah.<br />
As a mean to slowly start changing my life and become more social I joined Google+ and Twitter(SpliterCbb).<br />My life in the last few months has been almost nothing more than wakeup-watch videos on yt/play games-sleep and it's been a bit colourless lately (especially if I compare it to my academic life before I lost everything). But as a way to keep my sanity and keep myself minimally occupied in my free time (considering I can't bloody do anything creative as I have enough of programming at work) I decided to jump onto the latest social craze.<br />Whoopee frikin Do.<br />SpliterMikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-65726765711213932682011-06-01T15:17:00.000+01:002011-06-01T15:17:02.749+01:00The joints are turningHello!<br />Luck is not always on our side and so the animation tutorial will be delayed a little. I do have it completely planned out though so pretty soon you'll see the first chapter. The complete tutorial will have 9 chapters ranging from vector transformations, through skinning, blending animations IK and saving.<br />
<br />
It's the biggest such project I have got myself into so wish me luck!<br />
<br />
The first chapter will just talk about vectors and vector transformation so those that already know this stuff can skip it without much thought.<br />
<br />
In this chapter I will assume you've at least heard of vectors and I'll just speed through a few useful things like dot and cross products, and matrix transformations and some interesting applications, so even if you already understand vectors it'll be worth skimming though it.<br />
<br />
<br />
Later!<br />Mikolaj (Spliter) Kuta<a class="cssButton" href="javascript:void(0)" id="publishButton" onclick="if (this.className.indexOf("ubtn-disabled") == -1) {var e = document['postingForm'].publish;(e.length) ? e[0].click() : e.click(); if (window.event) window.event.cancelBubble = true; return false;}" target=""><div class="cssButtonOuter">
<div class="cssButtonMiddle">
<div class="cssButtonInner">
<br /></div>
</div>
</div>
</a>Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-25961900322301378382011-05-24T03:06:00.002+01:002011-05-24T12:15:04.472+01:00I'm back from the dead, and with some good news!Hello Ludum-Dare-ians and people who randomly found this blog on Google looking for game save tutorial!<br />
<br />
I'm back from my slumber, and what slumber it was!<br />
I did get the job at the company I was making those challenges for, I'm even on our company's page (<a href="http://www.covii.pt/">http://www.covii.pt/</a>) as software developer! (though everyone knows there I'm the Senior Graphics Engineer).<br />
<br />
Anyway, I've not been completely procrastinating! Since I've worked there for several months I've been programming everyday for almost 8 hours which shows in my code I write for my own projects. However! Even on my own hobby codefront I did not procrastinate (not entirely anyway).<br />
<br />
I am now announcing I'm working on a game. I'm not sure if it's gonna be commercial or not (probably not as the quality of many thing will be shit) but I'm making it with a long lived friend of mine MICL.<br />
He's going to write the story and make music, while I program and work on graphic art.<br />
<br />
But the point of this post is not that.<br />
<br />
My Litterbox engine is reaching it's 4th anniversary, and so I decided to make another step and make it fully 3D!<br />
<br />
But the point of this post is not that either!<br />
<br />
The point of this post is:<br />
<br />
<b>MY ANIMATION ENGINE</b><br />
<br />
So far I've created a working 2D prototype. but mainly it's a tree-based animation system, where the leaves can be either animations, physics, or anything that modifies a given skeleton. This system was larely based on UDK animation system, and because of it's tree-based structure it's possible to do the following things:<br />
<br />
1-Dozens of working animations , only the animations connected to the tree are updated so no wastes.<br />
<br />
2-Animation Blending, which allows for composed animations (eg: having a character with a walk animation composed of four different walk animations (eg: NSEW directions).<br />
<br />
3-Synchronized animations! Yes, this is one of the golden jewels in the crown of my engine. This means that you can have a 1.5 second running animation blended with a 4.0 second walking animation and the transition will be seamless as long as the movement is synchronized timely as well (eg: in both animations the left foot is on the ground at 50% mark, up on the 0 and 100% mark, etc)<br />
<br />
4-Easy to add nodes that depend on the current pose. Just pop an IK node between the root and the result of the animation and you have IK with the starting position of the animation.<br />
<br />
5-Bone masking! Don't want your "running animation" affect the hands and torso? No problem! you just disable all the bones you don't want animated!<br />
<br />
6-Adding new types of nodes is easy! if you just follow the node structure of the animation tree, you can add nodes or leaves that fill any necessity, from IK, Physics/conscious ragdolls to procedural or keyframed animation!<br />
<br />
Here's an example of the tree structure I've mentioned:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPGWVpKiH0ehTlGNG49nzQhRoQmm_G11yyAxisftYUTrFSoHjA7SLIAqDaymeTEh6BWqfNj6DoWFTFpms4iro_DbW07OJMRXc5rUl9mhyN1dcj9NKOp5JhlFmsBdoz2ser2BetYO0yna2D/s1600/animTree.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPGWVpKiH0ehTlGNG49nzQhRoQmm_G11yyAxisftYUTrFSoHjA7SLIAqDaymeTEh6BWqfNj6DoWFTFpms4iro_DbW07OJMRXc5rUl9mhyN1dcj9NKOp5JhlFmsBdoz2ser2BetYO0yna2D/s1600/animTree.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpBIIqEipEl5pu8owitIqvwfjuoxzGJdpCGgtVuhzg_o4rxjqFV7zBZU4rZZ7EQ84qQ0YmFWhXB8rGw3BlHb5Ah7N7lAuyvRZFrYePzSoKbxr0_dEjtqNhu9x38LEFQqCQq-g7Z-qG-hGL/s1600/skeletonBasis.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<br />
So! When can you use this fantastic animation engine?<br />
Well... that's the bad news: you can't.<br />
<br />
At least not for now. I've made a 2D prototype that works and now In the middle of porting it to 3D.<br />
I've got the skeleton working in 3D with quaternions using my handmade math lib. I've also got skinning working, but no texture loading and no normals so far.<br />
here's how it looks right now:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpBIIqEipEl5pu8owitIqvwfjuoxzGJdpCGgtVuhzg_o4rxjqFV7zBZU4rZZ7EQ84qQ0YmFWhXB8rGw3BlHb5Ah7N7lAuyvRZFrYePzSoKbxr0_dEjtqNhu9x38LEFQqCQq-g7Z-qG-hGL/s1600/skeletonBasis.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpBIIqEipEl5pu8owitIqvwfjuoxzGJdpCGgtVuhzg_o4rxjqFV7zBZU4rZZ7EQ84qQ0YmFWhXB8rGw3BlHb5Ah7N7lAuyvRZFrYePzSoKbxr0_dEjtqNhu9x38LEFQqCQq-g7Z-qG-hGL/s1600/skeletonBasis.png" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpBIIqEipEl5pu8owitIqvwfjuoxzGJdpCGgtVuhzg_o4rxjqFV7zBZU4rZZ7EQ84qQ0YmFWhXB8rGw3BlHb5Ah7N7lAuyvRZFrYePzSoKbxr0_dEjtqNhu9x38LEFQqCQq-g7Z-qG-hGL/s1600/skeletonBasis.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Not really impressive, is it?<br />
Well, it'll change in a couple of days. I've recently (about a month ago) mailed Chriss Hecker for advice on how to keep focused even if I really don't feel like doing anything.<br />
His advice?<br />
<br />
"15 minutes"<br />
<br />
Every day work for 15 minutes no matter what the mood, no matter how hard you don't want to.<br />
If you really don't want to do anything then hey, 15 minutes is like 1/16th of your free time if not less. After that go do whatever the hell you want.<br />
<br />
I've been following this advice for the last month, I've had occasional slips, but usually when I work I end up working far beyond those 15 minutes. (before writing this post I've been working for about 3 hours stopping occasionally to glance at a video running in the background).<br />
<br />
So, this is my official statement:<br />
<br />
<span style="font-size: large;"><b>Since Saturday I'll be making a tutorial on how to implement your own 2D or 3D tree-based animation engine with all the features I listed.</b> <b>And I'll be releasing this tutorials in several chapter, one chapter every 3 to 4 days.</b></span> <br />
<br />
I won't fail unless something really unexpected happens (like the second coming of Christ, or having to stay late at work for the entire weekend).<br />
<br />
Wednesday I'll release the list of chapters of the tutorial, but I know I'll be starting explaining the basics of vector math and a bit on matrices and quaternions. In the later chapters I'll explain on how to create a working IK system, and how it'll be integrated into the animation system.<br />
<br />
By Saturday I should also have my animation system completely working which should serve as a good proof of concept that I'm not just babbling madly.<br />
<br />
I'm out!<br />
Mikolaj KutaMikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-37529889622868286622010-12-24T03:20:00.000+00:002010-12-24T03:20:22.884+00:00Covii Challenge part 2 update log: Friday<b>Day 5-Thursday:</b><br />
<b>Update 1(2:12):</b><br />
<ul>
<li>The Final day! The Final Hour! The Final ... ok nvm</li>
<li>I finished the project about 15 minutes ago and sent it for review. I'm fairly confident they'll like it even though I personally would add some things like transition effects, DoF and Anti-Alias. I would probably rework my particle engine to allow particle area segmentation with which I could add some more realistic water effect to the second program (I ended up making two programs since I don't have much time and couldn't implement the transition effect).<br />And Here are the screenies!</li>
</ul>
<div style="text-align: center;">
As you can see I fixed the low saturation problem!</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img84.imageshack.us/img84/1475/challengecubes13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://img84.imageshack.us/img84/1475/challengecubes13.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Yeah, I know the trail doesn't look perfect, but believe me, it's not at all that noticeable when it's running.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img522.imageshack.us/img522/628/challengecubes14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="http://img522.imageshack.us/img522/628/challengecubes14.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<ul>
<li>In retrospect I feel like I wasted far too much time resting, even though this project was a bit strenuous, as I must get used to working under such pressure if they are to keep me in the company for more than a few days. I also made a few rules that should help me survive and lead a healthier lifestlye when working:</li>
</ul>
<ol>
<li><b>Sleep Early,Sleep a lot!</b><br />8 hours of sleep a day is a must, even if it means not playing my games or watching movies before going to sleep. Sleep deprivation and lack of a standard sleep hours were one of my biggest mistakes I did during this challenge. An afternoon nap and a night's sleep is a must!</li>
<li><b>Eat Healthy Food! (and longcat is long)</b><br />As obvious as this sounds eating healthy things is actually a problem for me. Not because I don't like it, as I do enjoy a salad every once in a while, but because I don't find time to prepare proper food and resort to eating tuna or chocolate cream sandwiches all the time. I've noticed that in days I went out to eat in a restaurant I actually performed an incredible lot better than in the days I eat what basically is unhealthy garbage.</li>
<li><b>A rest from programming is a rest from computer</b>I've learned that if I work for a few long hours and then rest by playing games or watching movies, I don't actually rest as well as if I have taken a walk, it's also a lot more difficult to come back to . I still fall into the trap of playing games or browsing websites when I should leave the pc alone for an hour or two, so it's something I'll have to work on.</li>
<li><b>Animation is Concentration! (but I'm programming!)</b>Anyone who ever read Richard Williams "Animators Survival Kit" probably knows the quote "Animation is Concentration" inspired by Milt Khals' angry outburst at Richard when he asked him if he listens to any music while working. This was Milt's response: "F-F-F-For Ch-CH-CHRIST'S S-S-S-SAKE, GG-G-GG-GODDamnit! WHAT A F-FF-F-FF SSSTUPID QUESSSTION!!! I'M NOT SMART ENOUGH TO THINK OF MORE THAN ONE THING AT A TIME!!".<br />Yeah, Milt Kahl didn't listen to music while he was working and neither should you!<br />Even though I'm a programmer this still holds. Music and any other sounds distract from work more than you realise and I've come to experience this first handed not only this week but along my life as well when I'm studying or working on my own projects.<br />Turn off Messenger (or put it on busy and disable all notifications), close any youtube tabs you have open, close Winamp and listen to the silence.</li>
<li><b>Get Inspired</b>My biggest problem when working is that I easily change focus, however this also comes with another trait of personality: I get inspired really easily. Every now and then I look for videos made by game "celebrities" like some of Chris Hecker's presentations where he talks about the tech they developed for Spore, or interviews with indie devs like the Wolfire team. Those videos always inspire me to work harder so one day I could achieve what those people have achieved. I also read a lot of tech presentations, especially those made by Valve. Those are also a good source of inspiration and you gain invaluable knowledge even if you can't replicate it at the moment.</li>
<li><b>Keep things mixed up!</b><br />There's one thing I'm prone to and that's fatigue. I can't work more than a few days on one thing. My solution to this problem was actually quite easy to come by: get a hobby in an area completely unrelated to programming. In my case I always liked to draw so this problem was solved by itself. Every now and then I grab Photoshop or Blender and just do something in it. Having activities spread in unrelated areas is really good for avoiding fatigue, and it even may bring advantages. I for example am more of an Game Engine fundamentals programmer, but being interested in modelling drawing and animation made me interested in graphical computing which in turn gave me this opportunity to work at CoVii!</li>
</ol>
<ul>
<li>I guess that's all of them. Those are the rules I set for the future. Some of them I've been following already, other will take a bit of time before I get used to them, but if I manage to follow them all I should perform my best at work and avoid procrastination while I'm home!</li>
<li>On Sunday I'll probably upload a video of the program in motion.</li>
</ul>
So, this series of updates is finally finished. I hope those of you that read it enjoyed it as well. From now on this blog is going to get a bit less active at least until Febuary which is when I'll move to a new apartement.<br />
This was Mikolaj Kuta, AKA Spliter<br />
Seeya!<br />
<ol>
</ol>Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-11656659087217951852010-12-23T03:39:00.002+00:002010-12-23T15:35:18.708+00:00Covii Challenge part 2 update log: Thursday<b>Day 4-Thursday:</b><br />
<b>Update 1(2:49):</b><br />
<ul>
<li>Almost 3 in the morning, I've been working for the last hour or so with brief rests to watch some youtube videos from my subscriptions. If I'm lucky Batman9502 will upload his LP videos for his Ocarina of Time and Megaman Legends 2 in less than half an hour, if not then it's off to bed without a good-night cartoon :(<br />Anyway, I digress. Here's what I've accomplished in the last hour and a half:</li>
</ul>
<ol>
<li>Cubes that light up softly </li>
<li>When the mouse passes them not too fast and not too slow, they fly in the direction of the camera missing it by just enough not to notice any clipping.</li>
<li>Trail effect on the cubes is finally noticeable.</li>
<li>Added a very nice looking background that changes softly over time(only noticeable without cubes on the screen), I did this using a simple gradient background texture</li>
</ol>
<ul>
<li>So, not that much done but these are the new accomplishments. As usual I also fiddled with the framebuffer order and some colour and opacity, the colours look too desaturated for me in the current state; changed the bloom effect settings so it's a lot more subtle; changed the way the particles render so the final image looks softer, but at the same time allows me to illuminate the particles I need above their texture color. I also removed the specular highlight. It was far too strong even on the lowest settings, so I'll just stay with the very subtle sphere map. </li>
</ul>
<ul>
<li> ANYWAY! Here's the product from few hours ago:</li>
</ul>
<div style="text-align: center;">
Randomly Lit cubes with random rotations FTW! </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img63.imageshack.us/img63/1008/challengecubes9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="http://img63.imageshack.us/img63/1008/challengecubes9.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<ul>
<li> And here's the product from a few minutes before I started writing this entry:</li>
</ul>
<div style="text-align: center;">
You see what I mean by too desaturated?</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img32.imageshack.us/img32/4527/challengecubes10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://img32.imageshack.us/img32/4527/challengecubes10.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<ul>
<li>The background has a very nice color but the cubes, even though they have the same hue<b></b>, are a lot more desaturated and I'm still trying to figure out why. I'll probably fiddle around with the light and the 2nd pass to add more red and blue</li>
</ul>
<ul>
<li>So! I'd say this part of the project is quite close to being done, all I have to add now is to make the cubes rotate when you pass over them with the mouse! Then it'll be off to the second part of the challenge where I'll have to add the same water-y effects to the particles as in the Yellow Submarine from the previous challenge and create another particle system that creates the particles near the mouse to give a similar effect to the one in the video they gave me. If I'm done in the early afternoon then I'll add some extra flavour like the screen shattering into a hundred of small cubes when changing from one effect to the other. This would be quite easy to do if I had the time since I render most of everything on Texture-bound FBOs.</li>
<li>I have one regret towards this challenge: I have to copy someone else's work. Not exactly, but since they gave me a reference I've been following it quite strongly so I don't sidetrack as I usually like to do. If I had more time I would've made some significant changes like adding Anti-Alias to the scene so it would look a lot more polished. I would've also added interesting physical effects to the particles, like visual effects like changing the hue of the scene or make the cubes actually behave "softer" using shaders (stretch them in the direction they're flying for example, and expand a bit when rotating really fast)</li>
</ul>
<b>Update 1(15:07):</b><br />
<ul>
<li>I sent my (hopefully) future boss two of the screens I had here on my blog and he liked it! In fact he liked it so much that he said he wants to close the deal! I'm going there to work with them for one day and if they like me I'll be working!! I'll be part of a team that makes awesome projects and lets me get better and better at what I love to do! YEAH!<br />Ekhem. Now we resume our scheduled programme:</li>
</ul>
<br />
<ul>
<li> I added mouse speed dependent rotation to the cubes using cross product between the mouse current, and previous positions and the particle coordinates. Now the cubes rotate properly, if you pass the mouse over them slowly they'll rotate slowly in the direction the mouse is moving, if you pass your mouse a bit on the side it'll rotate on an angle perpendicular to the mouse movement in relation to the particle.</li>
<li>I also render the trail above the particles but with much more subtlety. This gives them the appearance of delicate semi-translucency especially when they move fast around the screen, it also helps softening the scene giving it a more...uh... ethereal(?) look?<br />Here are the screenies:</li>
</ul>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img101.imageshack.us/img101/4757/challengecubes11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="http://img101.imageshack.us/img101/4757/challengecubes11.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img543.imageshack.us/img543/7002/challengecubes12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="http://img543.imageshack.us/img543/7002/challengecubes12.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<ul>
<li>There are still some thing I would like to try out like making a DoF effect using part of the blur shader but make the blur stronger the closer the particles get to screen, I'm not sure if I have time to do that since I still need to get working on the second part of this program which is making much smaller cubes that light up stronger the faster they go and behave like if they were in water. I would kinda prefer no to do that since I really need a good rest.<br />Also I would follow my friends advice and add some anti-aliasing to the scene since it doesn't look that good on screenshots. Luckily this isn't such a problem when actually playing around with the program so most passers-by wouldn't notice any difference.<br />One thing that popped up into my mind (even though unrelated to the challenge) is to make some effects using metaballs. I know it's made using the marching cubes algorithm but I'm curious how the actual mesh would be built from that.</li>
<li>I just noticed I wrote "Tuesday" instead of "Thursday" in the title.<br />Whoops!</li>
</ul>
<ul>
</ul>Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-49782485872503185332010-12-22T14:55:00.005+00:002010-12-22T23:05:57.629+00:00Covii Challenge part 2 update log: Wednesday<b>Day 3-Wednesday:</b><br />
<b>Update 1(2:10):</b><br />
<ul>
<li> Ok, I've spent three productive hours playing around with shaders, lighting, rearranging FBOs and generally playing around with everything. Here are the progress screenies:</li>
</ul>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Boring! </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img89.imageshack.us/img89/6258/challengecubes2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="314" src="http://img89.imageshack.us/img89/6258/challengecubes2.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Basic textures, yay! Also, my eyes kinda hurt, red+blue=bad >:(</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img31.imageshack.us/img31/4046/challengecubes3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="314" src="http://img31.imageshack.us/img31/4046/challengecubes3.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
The beginnings of bloom. AUGH MY EYES!!!</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img403.imageshack.us/img403/6067/challengecubes4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="314" src="http://img403.imageshack.us/img403/6067/challengecubes4.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
MY EYES! MY EYES! MY EYES!!!</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img689.imageshack.us/img689/9264/challengecubes5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="314" src="http://img689.imageshack.us/img689/9264/challengecubes5.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Ok, now it's not so bad, but still looks like crap.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img135.imageshack.us/img135/2919/challengecubes6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="316" src="http://img135.imageshack.us/img135/2919/challengecubes6.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<ul>
<li>As you can see I didn't do much. But only the last one is a true bloom effect. Even though it looks like crap, and isn't as strong/diluted as I would like it to be. I'm starting to get the hang of the shaders, since I've taken a nap I'll probably work another few hours before going to sleep, but I'll take a little rest now from the project.</li>
<li>Anyway, I updated my list of things to do. I also updated the list from the previous update here's the resume of what I did today:</li>
</ul>
<ol>
<li>Finally Added real bloom (even though I'm not completely happy with it)</li>
<li>3D model particles</li>
<li>Working quaternion rotation lib</li>
<li>Added lighting</li>
<li>Played around with various effects.</li>
</ol>
<ul>
<li>I can't say this is bad but I also would like to have made more both today and yesterday. Optimally I would have already achieved good looking bloom, added at least one of two physical particle effects and already added cube mapping. Still I'll probably achieve at least 5 out of 6 planned features by tomorrow noon so things aren't as hopeless as it seemed to me. However tomorrow is a big day since the basic functionality should be finished and I'll start making some more advanced stuff as well as fine-tunning.</li>
</ul>
<div style="text-align: center;">
Mini-update: Disco Ball!! Well, sort of.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img254.imageshack.us/img254/8080/challengecubes7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="http://img254.imageshack.us/img254/8080/challengecubes7.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
This calls for some awesome music:<br />
<a href="http://www.youtube.com/watch?v=Awzrax7UcV8">http://www.youtube.com/watch?v=Awzrax7UcV8 </a><br />
Only link since youtube won't let me embed the vid :(<br />
Watch it anyway :D<br />
<br />
<div style="text-align: left;">
<b>Update 2(11:44):</b> </div>
<ul style="text-align: left;">
<li>I fell asleep around 8:00, it's now 11:44. Damn cleaning ladies and their racket. Can't sleep now, I'll try to work, but probably I'll take a nap in the afternoon.</li>
</ul>
<div style="text-align: left;">
<b>Update 3(14:55):</b> </div>
<ul style="text-align: left;">
<li>So, after some time feeling dizzy and with a minor headache from sleep deprivation I started blaying around with various effects. The current state of things looks pretty close to the video they gave me as reference. I noticed though that in the video the presentation also used DoF shader. I made some additions on my own of course, like subtle sphere mapping to give a more glossy appearance to the cubes, I also added an overlay texture which scrolls slowly enough not to be noticeable but still gives a faint effect of movement to the scene. Most probably my final work won't look as good as the original but hey! I'm competing against someone sponsored by Toyota, with quite a few years of experience in the field and I'm not that far behind!</li>
</ul>
The scrolling effect I mentioned earlier: <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img822.imageshack.us/img822/2534/challengecubes8b.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="197" src="http://img822.imageshack.us/img822/2534/challengecubes8b.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img844.imageshack.us/img844/5470/challengecubes8a.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="197" src="http://img844.imageshack.us/img844/5470/challengecubes8a.png" width="400" /></a></div>
<br />
<ul style="text-align: left;">
<li>The sphere map is costing me some nasty bright seams on the chamfered edges I used to smooth the cubes, I'm not sure what to do, I'll either have to sacrifice smooth lighting or the sphere map... unless... hm... I might use the same model but with different normals for the sphere map pass, and a different one, with smoothed normals for the light pass!</li>
<li>Edit: No, I can't do that, stupid blender and its automatic normals!</li>
<li>Edit2: HAHA! being smart as I am I decided to export the cube model two times, first time with the chamfered edges but flat on the cube sides and another one with the rounded edges. Then I'll just copy the normals from the first one to the second one and voilà ! I have two types of cubes :]</li>
<li>Edit3: Once again: DAMN YOU BLENDER!!! I don't want any stupid optimizations! I want the normals and vertices exactly the same always!!! AGRH. Because of this I can't have fancy sphere map.</li>
<li>Edit4: The seams are caused by the light, now I'm mad >:(</li>
<li>Edit5: Ok! Finally got rid of the nasty seams, I removed some detail from the edges and it seems to work fine now and I didn't have to sacrifice neither the sphere map nor the smooth light!</li>
<li>Also: sorry for anyone stumbling upon this blog with a 56k connection. I really do feel sorry for you.</li>
</ul>
<div style="text-align: left;">
<b>Update 4(23:00):</b></div>
<ul style="text-align: left;">
<li>I ended up taking a longer rest than I wanted, it's 23:00 now<b> </b>and I haven't touched the program :(<br />I disappointed myself quite a lot with this, especially since I haven't even slept properly yet. I hope that I can at least have a productive night, or productive morning, anything as long as I can deliver the program by tomorrow afternoon!!</li>
</ul>
<ul style="text-align: left;">
</ul>
<ul style="text-align: left;">
</ul>
</div>
<div style="text-align: center;">
</div>
<ul>
</ul>
<ul>
</ul>
<ul>
</ul>
<ul>
</ul>
<ol>
</ol>
<ul>
</ul>Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-13374032654638094512010-12-20T15:51:00.025+00:002010-12-22T15:36:38.796+00:00Covii Challenge part 2 update logLong story short I'll be updating this post every now and then with the development info, thoughts and screenshots.<br />
<b><span style="color: red;">Edit:</span></b> <span style="color: red;">I moved the Wednesday updates to another post since the scrolling up and down to read anything is getting ridiculous.</span><br />
<br />
<b>Day 1-Monday:</b><br />
<b>Update 1(15:32):</b><br />
<br />
<ul>
<li>Started working on the project yesterday but only had half an hour for it because of uni projects, I added support for FBOs, it's pretty sweet, also added some basic trail effects.</li>
</ul>
<ul>
<li>Today I woke up at 12, that's what I get for sleeping only 4 hours yesterday, I started working on it almost immediately. Using a bit of tutorial help I made a blur shaders, works pretty sweet, today I should also be able to add true 3D objects to my particle system (so far it only supports 2D), this also means I'll have to rewrite the existing effectors. </li>
</ul>
<ul>
<li>Added the blur effect to my previous FBO rendering. My first post processing shader! It looks pretty sweet and it's quite close to the final look I'm going for in terms of trails.</li>
</ul>
<div style="text-align: center;">
Here's how it looks</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img96.imageshack.us/img96/9557/challengetrails1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="319" src="http://img96.imageshack.us/img96/9557/challengetrails1.png" width="640" /></a></div>
<div style="text-align: center;">
</div>
<ul>
<li> Damn, I noticed that if you look really close you can see a little crossing on the blur, it isn't noticeable in the movement through, but I'll once I finish the project I'll have to fix that.</li>
<li>Also wasted about one and a half hour trying to make the RECTANGLE textures to work... wasted because they still didn't work even though I used someone else's code. Either FBOs don't work with NPOT textures (which I think is odd since I've read somewhere they work fine) or my graphic card doesn't support them (which would also be odd since it's on the supported extension list) </li>
<li>When starting to work on the new particle system I realized the particle rotation need to be quaternions to avoid gimbal lock. I don't have a quaternion lib compatible with my current math lib so I'm sad because I have to make one :(</li>
</ul>
<b>Update 2(18:33):</b><br />
<ul>
<li> Added the quaternion support and supposedly the particle system should work with 3D objects (it still supports all the existing features so I didn't had to rewrite the 2D effectors). I'm starting to get worried I won't make it for some reason even though it's not that difficult. I've been trying to relax and stop working for a bit but having to do this project all day and then work on uni stuff all night isn't good for me. I really need this job so I can't just rest for a day or two, I want this working Wednesday midday at the latest, after that it's fine tuning and Thursday I'll probably deliver it at least to see what they want me to change. They liked the first program I made for them but if I don't get this job I'll have to go back to Poland since I don't have any money left. Yeah, I'm kind of depressed right now, it'll pass after I take a rest.</li>
</ul>
<b>Day 2-Tuesday:</b><br />
<b>Update 1(10:21):</b><br />
<ul>
<li>I just woke up and I'm feeling a lot better now! Yesterdays depression most probably was only because I've been working on it a lot of hours straight without doing anything else. This is something I've learned to avoid in the past since it clouds your mind and you get into an Idea loop. Normally I rest every few hours for an hour or two to watch a movie, play a game or go for a walk to completely get away from my PC and get refresh my head. The reason I didn't stop yesterday is because this challenge is letting me a bit nervous since my life depends on this and all, but I should be able to avoid making the same mistake today.</li>
<li>I made a small list of features I want implemented until tomorrow noon. Here they are:</li>
</ul>
<ol>
<li>FBOs ready to write Post Processing shaders (done) </li>
<li>Trail Effect (done)</li>
<li>Particle System ready for 3D with quaternion rotations (done)</li>
<li>Bloom (almost there)</li>
<li>Requested particle effects (quarter way there, I could use my previous effects and add 3D support for them)</li>
<li>actual 3D modelled particles (done)</li>
<li>background movement highlight (I'm waiting for confirmation if it's necessary, I'll probably implement it anyway if I finish ahead of schedule)</li>
</ol>
<b> Update 2(14:24):</b><br />
<ul>
<li>Finally added 3D, model loading, display, lights etc.</li>
<li>I discovered there's a problem with my quaternion lib and I'll have to redo most of it (on any rotation the entire scene disappears). I'm starting to wonder if I really need quaternions or would axis-angle be enough. Still I shouldn't have that much trouble since I know I had somewhere a working quaternion lib, I just don't know where. I'll have to go into my backup folder and spend some time looking....</li>
<li>Made a screenie so you can see how it looks now:</li>
</ul>
<div style="text-align: center;">
I know the cubes don't look like much so far but at least it's something! </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img510.imageshack.us/img510/1663/challengecubes.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://img510.imageshack.us/img510/1663/challengecubes.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Also I still have the grids I used to orient myself</div>
<ul>
<li>Can you believe me I spend over an hour before I could see anything? The beginning is always the hardest part for me when I don't know where I am and my references aren't drawn, since the problem could be anywhere from badly configured viewport with farclip too close, to camera orientation, to (in this case) drawing in a FBO instead of drawing to the screen!</li>
<li>I'm gonna take a break now. I need to eat and rest, luckily I don't have any uni projects today night so I'll have a bit more time to work later. I really hope I can finish this for tomorrow noon, otherwise I would be really disappointed with myself.</li>
</ul>
<b> Update 3(19:39):</b><br />
<ul>
<li>I feel sick. Headache high temp and nausea... ugh... I don't think I'll be able to finish things until tomorrow. I'll take a nap and if I feel better when I wake up then I'll continue making the program, if not I'll wait until tomorrow.</li>
</ul>
<b> Update 4(21:56): </b><br />
<ul>
<li>just woke up, I feel a lot better now even though still a bit drowsy. Time to work!</li>
</ul>
<b> Update 5(23:17):</b><br />
<ul>
<li>GOD. DAMN. PRECISION. ERRORS!</li>
<li>also stupid c=sin(aangle.angle*0.5); It's supposed to be cos @_@. Bot h of those have cost me over one hour of work that could have been spent making shaders or particle physics or anything at all other than rewriting my quaternion library!!</li>
</ul>
<br />Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-77722999167849547392010-12-20T01:48:00.001+00:002010-12-20T02:59:09.780+00:00Covii Challenge part 1 and other updatesHello!<br />
Another blog update (yeah, I've been doing that a lot lately haven't I?).<br />
If you've seen the video on my last post to the end you'd know I'm desperately looking for a job right now.<br />
With extreme amount of luck I've found a job offer for the C++/OpenGL programmer!!!<br />
The company name is CoVii from Computer Vision Interaction.<br />
Basically they develop applications that allow interactive surfaces like an interactive wall or floor where the content responds when a person walks by.<br />
I went to an interview there on Tuesday and apparently they liked me (either that or they pretended to like me), but they wanted to test my skills out since my portfolio isn't that impressive as I've let the university and lack of money consume my will and time to work on my projects little by little (if I didn't have any financial trouble I would probably have made by now a graphical equivalent of Crysis).<br />
<br />
They gave me two projects and so far I've completed one of them, it took me about 2 days. Considering I had classes during both of them and uni projects to do, I'd say I've done it pretty quickly. Maybe barely over 8 hours of coding.<br />
Anyway, I'm rambling. Here's the video of the project in motion:<br />
<br />
<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/6t19DklPm9E?feature=player_embedded' frameborder='0'></iframe> </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
As you can see it went quite well and I'm happy with the results (and luckily so are they) but they want me to do another one. Now the next one is a bit harder not only because I have a ton of uni projects to do, as well as being chrsistmass time for which I'll go spend a day or two with my friend and his familly (with whom I've spent last years' Christmas and it was awesome), but also the seconds project covers more advanced OpenGL topics such as post processing and shader effects.<br />
Now I've done some simple vertex and fragment shaders before, unfortunately what I've learned from them is not as much as I would need for this project (I really hope the boss isn't reading this blog right now, even though he said he's read it when he interviewed me...at least I think he's the boss, I forgot to ask him...).<br />
<br />
What will happen in the next few days is that I'll have a couple of day long working sessions during which I'll be furiously studying the advanced OpenGL aspects. Today I've learned how to use framebuffer objects (finally! I've been meaning to learn about them for weeks but the damn uni has me doing chat programs and encryptions and stuff). FBOs are damn useful, I've managed to create trail effects without even changing any existing code nor touching shaders!<br />
So far I've planned using cube mapping for very subtle reflections, shaders on models for stronger light effect, I'll also use shaders combined with FBOs to create post processing effects like depth of field, blur for the trails and bloom.<br />
<br />
That's a lot of things to learn in such a full week, but considering I've done kind of similar things before, and understanding how all of this works, I'd say I have a pretty good chance of making them want me in their team!<br />
<br />
oh... btw, I know this blog is displayed on the LudumDare through RSS, so sorry for the fellow LudumDarians that I don't make any actual game updates! I hope you're ok with life ramblings and mild programming stuff!.<br />
<br />
I'm off!<br />
~Mikolaj Kuta AKA SpliterMikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-17074400634910938602010-12-05T16:19:00.000+00:002010-12-05T16:19:29.704+00:00Urban StrollHello!<br />Just a quick blog update to show I'm not procrastinating as much as it would seem.<br />
This time it's actually a VIDEO blog update!<br />
sooo... yeah<br />
Enjoy<br />
<br />
<iframe src="http://www.youtube.com/embed/g6zjlUgLgdg?fs=1" frameborder="0" height="344" width="425"></iframe>
<br />
As I mentioned I'm looking for a job so until I get hired, or at least until someone will give me a job interview I won't be able to make a tutorial. I'm also extremely busy with university projects, If I want to do anything of my own it means to stay up till 4am.<br /><br />That's all for this blog post.<br />I'll see you next time!Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com1tag:blogger.com,1999:blog-3764661518056737850.post-37349189213736376102010-11-21T00:06:00.001+00:002010-11-21T00:07:23.610+00:00Desert Bus for Hope<a href="http://desertbus.org/"><img src="http://loadingreadyrun.com/blog/wp-content/uploads/2010/05/DB-blog-banner1.gif" /></a>
<br />
<br />
Visit Desert Bus For Hope <a href="http://desertbus.org/">Here</a><br />
Desert bus is a charity event created by <a href="http://loadingreadyrun.com/">LoadingReadyRun</a> in which they play the most boring game ever created: Desert Bus.<br />
You can see them play it live on their feed at the <a href="http://desertbus.org/">desertbus site</a> by clicking on the big Live Feed Drivercam button. I really suggest you do it.<br />
All of the donations are gonna go to the <a href="http://www.childsplaycharity.org/">Child's Play </a>foundation.Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-50598021771569790792010-11-08T01:52:00.001+00:002010-11-08T01:57:04.869+00:00Small engine updateHello!<br />
Sorry for the complete lack of updates (in case anyone reads this blog) but I've been dead busy with real life, most notably with my university and finding money to live. But never mind that.<br />
I have made a little upgrade in my engine, namely: it now supports polygon casting.<br />
What is poly casting you say?<br />
Poly casting works just like ray casting except with a poly. Basically it smears a (convex) poly along a line and looking for collisions along it, giving you the time each of them (if any) happened.<br />
In simple terms:<br />
Let's say you have a large 16px ball that's travelling at 200 px/frame. any wall that's in between the balls' current <br />
<br />
position and the next one is probably gonna be missed, and so the ball will glitch through them.<br />
frame 1: <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9YF7Ol-MbJEChVtL_PVcJJVOcwQ6FZVLeRj5syYdsENY64n2-9JybyXApnTlFAJkeFgirLKz9r-qMFP6EQFD6LOHkwNTXEXHLlx0Q2NuvIEpIP6jtKZTAkMLLLXO3Ee_kbjI__v7gmhob/s1600/staticCol1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="58" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9YF7Ol-MbJEChVtL_PVcJJVOcwQ6FZVLeRj5syYdsENY64n2-9JybyXApnTlFAJkeFgirLKz9r-qMFP6EQFD6LOHkwNTXEXHLlx0Q2NuvIEpIP6jtKZTAkMLLLXO3Ee_kbjI__v7gmhob/s320/staticCol1.png" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
frame 2:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmeKolJU-MdRUBtb-syHaL185Arj3e8T37L5XCJE5x8VDV5iwzEQd105a5sdzkAkYYNnFBdkev8puvmLQgtWvCSuENNtqpoFTDIFWD6oVKHY-F0faBaTnsEITLMo-tIMQ6BvBYAqggH4qQ/s1600/staticCol2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="58" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmeKolJU-MdRUBtb-syHaL185Arj3e8T37L5XCJE5x8VDV5iwzEQd105a5sdzkAkYYNnFBdkev8puvmLQgtWvCSuENNtqpoFTDIFWD6oVKHY-F0faBaTnsEITLMo-tIMQ6BvBYAqggH4qQ/s320/staticCol2.png" width="320" /></a></div>
<br />
<br />
<br />
<br />
Using polygon casting we can prevent that as it will detect all the walls the ball went through and also record the time at which the ball entered and exit each one of them, making this perfect for fast moving objects for which a simple ray cast wouldn't be enough for.<br />
<br />
Frame 1:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK-lDie1F5yf7nMA8ad5SKj4gQgcTcHPPMJN50J1bIijEo8iRJ_-nTOYUCn30nmtMnxzKrQZbw8n2lVmtYQankfzV8kX5htgvGc1lRlLmjNSepvVe9orjY0eeqgOitewNTAI5CEwZ4VCr7/s1600/castCol1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="53" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK-lDie1F5yf7nMA8ad5SKj4gQgcTcHPPMJN50J1bIijEo8iRJ_-nTOYUCn30nmtMnxzKrQZbw8n2lVmtYQankfzV8kX5htgvGc1lRlLmjNSepvVe9orjY0eeqgOitewNTAI5CEwZ4VCr7/s320/castCol1.png" width="320" /></a></div>
<br />
<br />
<br />
<br />
Frame 2:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnE6EwXmEwRLMsG5AhjGucv2nLvjPV-Y_d3E8tYcXizcjZeCNXMN8WJ2XyDLv5SINwrr2jYUUAeJFmTDeDt7jAe9mDbVPVqRAxivXyFm_7OZkNWuTWAkOB2IB9X0ER4ZqR8U2sAxnD8RG3/s1600/castCol2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="53" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnE6EwXmEwRLMsG5AhjGucv2nLvjPV-Y_d3E8tYcXizcjZeCNXMN8WJ2XyDLv5SINwrr2jYUUAeJFmTDeDt7jAe9mDbVPVqRAxivXyFm_7OZkNWuTWAkOB2IB9X0ER4ZqR8U2sAxnD8RG3/s320/castCol2.png" width="320" /></a></div>
<br />
<br />
<br />
<br />
Note how in the second frame the ball didn't get past the walls since it detected the collision beforehand.<br />
<br />
Here's a video in which I show the latest updates:<br />
1-Webs<br />
2-Lazer<br />
3-little demo of a triangle being cast from the player to the mouse position<br />
4-some bullets<br />
<br />
<br />
<object width="584" height="360"><param name="movie" value="http://www.youtube.com/v/DNx4uE7czic&hl=en&fs=1&rel=0&ap=%2526fmt%3D22"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/RF8H6owUIoQ?fs=1&hl=en_GB" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="584" height="360"></embed></object><br />
<br />
<br />
When I get some free time I'll make a tutorial on ray and polygon casting, in the meantime I'll also update my engine to support an entity IO system which will allow the communication between various entities. It'll prove to be mighty useful when I want for example a door triggered by a button, or to make explosions at specific events.<br />
<br />
Till next time!<br />~SpliterMikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-91953362606104575062010-11-02T00:41:00.000+00:002010-11-02T00:41:39.168+00:00Read this articleEurogamer hosted the following article: <br />
<a href="http://www.eurogamer.net/articles/2010-11-01-the-fall-of-realtime-worlds-article?page=1">http://www.eurogamer.net/articles/2010-11-01-the-fall-of-realtime-worlds-article?page=1</a><br />I think you should read it.<br />
<br />
It shows well that in the gaming world not everything is fun and games (no pun intended).<br />
APB wasn't on my hype list, and after seeing some gameplay I immediately recognized it wouldn't be as fun as it first sounded, but still it was made by people who love games and wanted to make a great game, which saddens me because it turned to be their demise. Even though I wasn't impressed in the game it's still hard to believe it destroyed a company and put over a hundred people on the street without jobs.<br />
<br />
<br />Good luck to everyone that used to work at RTW, I hope you won't give up.Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-15378815915991303532010-07-20T18:13:00.001+01:002010-07-20T18:13:56.577+01:00Results of MiniLD20: A little introspectionWarning: This blog post has a lot of introspection and very little technical things, you can skip it if you're just interested in how games are made by other people.<br />
<br />
As strange as it sounds I actually made a game.<br />
Well.. it can barely be called a game and I'm not proud of it in the slightest.<br />
I have to admit the theme kind of screwed me over since I'm no good with abstract themes, but still I probably could've done better.<br />
The "game" was a small non animated tank with a drill on it going through a series of letters that spelled "GREED" and they disappeared when it touched them. I didn't even add particle effects. After destroying all of them a big "you win" creen appeared and that's it.<br />
It was complete and utter piece of shit that would probably make this world better if it never existed.<br />
So... why I am blogging about it?<br />
Well... Once I made and submitted it it occured to me that it actually works as a poof of concept for my engine. I didn't have any problems making it. The coding party took only a few minutes and while I did it in an hour, most of that time was spent chatting on Ludumdare IRC channel and watching youtube videos.<br />
So... what does "proof of concept" mean to me? Well, I realized how easy is to add new mechanics in my engine, and I saw how all those time made my engine better and better!<br />
Then why didn't I made more games on it?<br />
The problem is with me getting caught in the details, and not being able to complete a project on my own. I have lots of Ideas for new gameplay mechanics and I can apply them quickly but that's about it for me. I love developing new stuff more than I like polishing it and working with it for longer periods of time. I also invent new mechanics without thinking of how they can be used in the actual game, rather than just a toy to play around with.<br />
For example: after spending some hours programming after I've released my miniLD20 piece of crap (AKA "game" ) I made a small prototype where you controlled a kind of protozoar with to tails.<br />
Here's a screenie:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img251.imageshack.us/img251/840/minild20screen2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://img251.imageshack.us/img251/840/minild20screen2.jpg" /></a></div>
<br />
And that was about it.<br />
I really can't think of any interesting gameplay for it, I'm only good in adding new feature/mechanic and then letting it go without using it again.<br />
<br />
Another new mechanic I added was kind of a gravity field, it's kind of a coming back to roots thing as I've done that already before on my old version of the engine (while it was still called El_Poho). But then I've lost my will to use it.<br />
<br />
So... why can't I continue working on something and then eventually turn it into a game?<br />
I have a few theories.<br />
The main one is that I need leadership. I've noticed that when I work in teams during classes I make a very bad leader, and a very bad follower, however being the right hand mand of the leader is the perfect spot for me: I get my share of power so I can expand my creativity,but the leader is always directing my actions so I don't get sidetracked so easily. Any other position for me ends up badly. I love to be where the action is and I love challenges but it's hard for me to know what to do next.<br />
<br />
Second reason is that I want to do new innovative stuff. But as soon as I implement the hardest part of it it stops looking so innovative for me and I get bored with it. And since I work alone on my project there's noone telling me "you need to finish doing this game/project". Although I shouldn't, I rely heavily on outside influence when I see other people stop caring about what I do I stop as well, and fall into procrastination.<br />
<br />
There's probably a few other reaasons to my lack of finished projects but This post is already long as it is.<br />
Sorry for making you read about myself but sometimes I need to vent my anxieties somewhere.<br />
<br />
Later!<br />
~Spliter<br />
<br />Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-39792175813368842472010-07-15T02:32:00.000+01:002010-07-15T02:32:10.951+01:00MiniLD CommitementHere's the log of the chat I had with the awesome people of Ludumdare IRC channel:<br />
<br />
<b>02:03</b> <b>Spliter</b> ok, I'm gonna try to do something this time<br />
<b>02:04</b> <b>Spliter</b> if I don't have anything at the end of miniLD I'll ....uh... what's a good compromise that's harsh but isn't oo harsh like quitting game deving?<br />
<b>02:06</b> <b>thedaian</b> hmmmm<br />
<b>02:06</b> <b>thedaian</b> hard to say, really<br />
<b>02:06</b> <b>mrfun</b> you have to watch the hannah montana the movie<br />
<b>02:06</b> <b>Spliter</b> D:<br />
<b>02:07</b> <b>thedaian</b> or any of the twilight movies<br />
<b>02:07</b> <b>Spliter</b> I said something that's less harsh than quitting game dev, not something worse than going to hell!<br />
<b>02:07</b> <b>Spliter</b> ok<br />
<b>02:07</b> <b>thedaian</b> and then write a blog post about it with a detailed review<br />
<b>02:08</b> <b>Spliter</b> It's decided, if I don't have nothing to show for after the end of miniLD I'll have to watch Hannah Montana the movie and then watch all of the released twilight movies!<br />
<b>02:08</b> <b>TenjouUtena</b> You have to make your next game in Brainfuck or something.<br />
<b>02:08</b> <b>Spliter</b> and then write a blog post about it<br />
<b>02:08</b> <b>Spliter</b><t> and you're all my witnesses!<br />
<b>02:08</b> <b>iFire</b> I spent like 20 minutes on circles and arrows >.< <br />
<b>02:08</b> <b>Spliter</b> If I don't do none of those things you'll call me weiner-butt for the rest of my life<br />
<b>02:09</b> <b>iFire</b> some people don't work under pressure<br />
<b>02:09</b> <b>thedaian</b> banned from channel until the full LD!<br />
<b>02:09</b> <b>Spliter</b> D:<br />
<b>02:09</b> <b>Spliter</b> when is it again?<br />
<b>02:10</b> <b>mrfun</b> but will you video blog about each movie dressed as a lead character?<br />
<b>02:10</b> <b>Spliter</b> mrfun: no camera, and no money for corsdressing<br />
<b>02:10</b> <b>Spliter</b> oh wait<br />
<b>02:10</b> <b>Spliter</b> I have a camera<br />
<b>02:10</b> <b>thedaian</b> mid or late august i think<br />
<b>02:10</b> <b>Spliter</b> it's shitty as shit but it works<br />
<b>02:11</b> <b>thedaian</b> no need to dress as a character from the movie, and no need to video blog, but some pictures of you with the movies would be good<br />
<b>02:11</b> <b>Spliter</b> ok<br />
<b>02:11</b> <b>Spliter</b> I'm commited then!<br />
<b>02:12</b> <b>thedaian</b> make a blog post documenting this would be good<br />
<b>02:12</b> <b>Spliter</b> ok!<br />
</t><b>02:12</b> <t><b>thedaian</b> so there's some more proof</t><br />
<t><br />
</t><br />
<t>tldr version:</t><br />
<t>I decided to do something in this miniLD and watch Hannah Montana and all Twilight movies if I don't, I'll also have to blog about the experience and post pictures.</t><br />
<t><br />
</t><br />
<t>So yeah, I'm commited for this miniLD or I shall suffer the consequences. This blog post is the proof, the participants of the chat are the witnesses.</t><br />
<t>Wish me luck!</t><br />
<t>~Spliter<br />
</t>Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-21533762712705963152010-07-11T15:52:00.004+01:002010-07-11T19:28:31.399+01:00The joy of prototypingOne of the biggest problems I face when doing tools for my game is the sheer size of it all and my general lack of experience doing usefull things (as oposed to screwing around).<br />
The biggest challenge I'm facing right now is making a level editor that be called a 2D version of Valve Hammer Editor.<br />
<br />
Yes. I'm that stupid to try making a huge editor on my own with barely any prior experience. How did it go? Well... I failed miserably before I even begun. The sheer number of features I want in my editor is daunting. Implementing them on their own is already quite a task, not to mention integrating them all into one big editor where every piece has to cooperate with the rest.<br />
<br />
<a name='more'></a>I've seen a number of GDC presentations in my day, one of them being the Chris Hecker's and Chaim Gingold's marvelous lecture on prototyping for such a huge project like the innovaive spore animation system. The lecture was so good in fact that I often take advice from it even without knowing it. One of these times was when I decided to create experiments instead of fully-functional programs. Those experiments Turned out to be really helpfull. They helped me understand how a saving system should work, helped me with my work on using the Macros in C++, I even did a small scripting language.<br />
About a week ago I decided to make a smaller version of the editor I want. A really basic level editor that wouldn't even use the wxWidgets UI and had some basic functionality like multiple selection, moving and scaling entities and saving/loading. At the time I wasn't aware that what I made was in fact a Prototype.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img571.imageshack.us/img571/3550/editorscreen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://img571.imageshack.us/img571/3550/editorscreen.jpg" /></a></div>
<div style="text-align: center;">
(My editor prototype.)</div>
After I finished the level editor experiment I made a small list of other experiments to do, and most of them turned out to be related to the future level editor I want to make.<br />
-Creation of diferent entities based on a GCF-like entity description file.<br />
-2D Geometry editor.<br />
-Small app for loading and testing how various map formats would work out.<br />
-And a another app for creating and testing out custom widgets.<br />
<br />
(Currently I'm working on the geometry editor and I'm tackling with DevIL's inability to load the textures into openGL.)<br />
<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="http://img243.imageshack.us/img243/3134/solideditor.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://img243.imageshack.us/img243/3134/solideditor.jpg" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img375.imageshack.us/img375/7551/solideditor2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://img375.imageshack.us/img375/7551/solideditor2.jpg" /></a></div>
<div style="text-align: center;">
(EDIT: I got textures working and I'm ready to go!)</div>
What I got from all this?<br />
-Prototyping is fun.<br />
It is really, really fun! You can do all that stuff you'd do in your major game editor or your game engine but on a smaller scale, and you don't have to worry about how you integrate that with other parts of the app. This means a lot less stress, and if you enjoy programming (if you don't then why the hell do you do it?) you'll have a lot more fun making prototypes, and only later figure out how to integrate them, than you'd have if you were implementing everything right into the engine.<br />
<br />
-Prototyping is easy.<br />
Prorotyping helps you divide the big problems into smaller problems and since you have no worries about how to integrate features with eachother and the engine you are free to experiment and fail as much as you want. I've spent over 2 weeks doing close to nothing because organizing an entire editor without any knowledge on how I'll make things, and without much prior experience was just too damn difficult. With prototyping of indifivial features it's a lot easier, and seeing them work in their own little contained environment very rewarding.<br />
<br />
-Prototyping is fast.<br />
"Well, duh!" Yeah, I know, that's a no brainer. When making a big project a lot, and I do mean A LOT!, of time is wasted on organizing things that don't yet exist, and you still don't know how all of them are gonna work. This means that not only the planning stage takes a lot more time, but the implementation itself is being pushed back until the planning is finished.<br />
<br />
-Prototyping adds variety.<br />
What I mean is: When you prototype you can easilly paus your current prototype to work on another one, or even on another project. It depends of the kind of programmer you are but It's difficult for me to work on only one thing at a time. Often if I postpone my ideas I either forget about them or don't feel like working on them anymore, so prototyping is Ideal for me since I have a array of smaller projects I can grab at any time I want.<br />
<br />
That's the end of my rant on prototyping.<br />
My diagnosis:<br />
Listen to what Chris Checker said, and see his presentation about it!<br />
Here's a free link to his page on Advanced Prototyping:<br />
<a href="http://www.chrishecker.com/Advanced_Prototyping">http://www.chrishecker.com/Advanced_Prototyping</a><br />
It has the slides and the mp3.<br />
<br />
Later!<br />
~SpliterMikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-81081890147432578532010-06-18T15:43:00.000+01:002010-06-18T15:43:07.717+01:00Not only procrastinatingHello!<br />
It's been quite some time since my last update and as crazy as it seems I didn't spend all this time sitting on my butt and farting. Only mostly.<br />
Yeah, college life is difficult, when you're not studying for finals you're looking for a job, or a place to live, or gathering documents or doing assignments.<br />
Still I've got some time free and I've been spending it mostly <strike>watching youtube videos</strike> making a small model viewer on wxWidgets and last two days I've spent making a nifty little 2D animation system for my game. All it does for now is draw a mesh on an animated skeleton.<br />
<br />
Anyway here's a screen: <br />
<a href="http://img266.imageshack.us/img266/7334/lbscreenanimation.png"><img src="http://img266.imageshack.us/img266/7334/lbscreenanimation.png" /></a><br />
Unfortunately it isn't animated here.<br />
<br />
So far it only animates a test skeleton with a test mesh using two merged test animations.<br />
Oh, that's right, one little feature is that there are two "blending" modes, a simple aditive, which is helpfull when you want use two independent animations (eg, legs running, and arms flailing around) and use them together, and a real blend between two animations with a certain ratio. Of course the stored skeleton pose can be blended again and again, so I can have a 50 tentacled monster with each of his arms having a diferent animation of its own, while the monster itself has its own animations.<br />
In future I plan to add IK and simple physics which will be blendable with the existing animations giving them a little more realism/naturality.<br />
Apart from the animation system I'm also gonna create an animation and mesh editor, and when I'm done I'll have pretty looking graphics in my game.<br />
<br />
That's all for now, I'll update this once I've finished some of the planned things.<br />
~SpliterMikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-2381371302949057412010-05-28T21:55:00.000+01:002010-05-28T21:55:36.661+01:00No more shenanigansJust a quick post to say that I'm putting my engine and GUI on hold. I'm getting really frustrated with the fact that I've been working to make games for 3 years already and I haven't made a single release. Therefore I'm now looking for an engine that will come with a nice collection of tools to use instead of making everything by myself practically from scratch. Right now I'm downloading Unity but if I find another engine that I'll like more I might go with that. So if you, who is reading this, has any Ideas It's time to post them!
I'm out.
~SpliterMikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-60373746790706669572010-05-09T16:37:00.002+01:002010-05-09T16:40:42.905+01:00More GUI ShenanigansOk, so following Blecki's suggestion I decided to try out the C# with VStudio 2010 and .Net:<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img263.imageshack.us/img263/1026/shenanigawhat.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="370" src="http://img263.imageshack.us/img263/1026/shenanigawhat.png" width="512" /></a></div>
<br />
<br>
Wait... That isn't C# with VStudio 2010!<br>
Oh.. right, So the installation of VStudio turned out to be quite harmful to my PC, harmful as in: Windows used to load in 20 seconds, and after the installation it took it's sweet 3 minutes every time. Neither uninstalling nor Restoring system could help, as a side effect Drag n drop also stopped working, so I decided to install windows xp again. Luckily I have 6 partitions 3 of them having the apropriate size of 20 Gigs for a windows instal. So now I'm dual booting winXP, the version I'm onright now is Service Pack 2, which I like more than my previous (SP3) which I'll reserve just for gaming.<br>
<br>
However one good side effect came from reinstalling windows from scratch: wxWidgets wxGLCanvas works! (as you can see on the screenshot)<br>
This is really great news, (though I kinda wish I worked with C# right now) I'll be able to finally get back on track to work with that editor!<br>
<br>
So yeah, See you soon with another Editor update!<br>
~SpliterMikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-38301334597764534002010-05-08T22:06:00.003+01:002010-05-09T00:32:55.793+01:00Editor GUI ShenanigansSo as promissed another small update on my editor:<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img442.imageshack.us/img442/3072/shenanigans.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="370" src="http://img442.imageshack.us/img442/3072/shenanigans.png" width="512" /></a></div>
<br />
<br>
Slowly but surely it's taking shapAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAAAAAAaa... ok, I'm sorry I really can't say that with a straight face, wxWidgets turned to be complete shite for me. I can't seem to add the most basic setup either for openGL or for SDL.
<br>First I've spend the entire yesterday's morning trying to get the thing compiling, it kept giving me a crapload of linker errors and whatnots, fast forward for today and I've got the application compiling and linking without any problem. The problem appears when I try to run it. It just crashes! FFS I've spent 5 days learning on how to work with this thing only to discover it's all for nothing????
<br><br>Anyway, if anyone has any Idea of why it would crash I'll highly appreciate it. I would post a screenshot but it's just that standard dialog asking if I want to send the info to microsoft (Does anyone even do that???).<br>
<br>
It wouldn't be a problem if it was just my app that crashed. Every single tutorial source I put up and running up to the point of launching it Simply Dies at start (No window even appears, just the stupid microsoft dialog), even the one given as an compilable example!.<br>
I'm using Code::Blocks which might be part of the problem but I say that the application should at least try to compile if I try to call the "mingw32-make -f makefile.gcc" in that directory. All it does is create an empty subdir and die.<br>
<br>
<br>
TLDR version: wxWidgets is shite for me, I need to learn Qt, maybe at least it'll allow me to use openGL UNLIKE wxWIDGETS!<br>
I'm out<br>
~Spliter<br>
EDIT: Qt is shite for me as well as FLTK, fox Toolkit, GTK would've been awesome if it wasn't in c<br>
EDIT2:Blecki, from LudumDare Chat convinced me to try C# with .Net framework... I hope I won't regret it.<br>Mikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0tag:blogger.com,1999:blog-3764661518056737850.post-64505561862980485642010-05-07T12:40:00.004+01:002010-05-07T12:47:14.074+01:00Learning GUIs and stuffsSo yeah, I decided to finally take learning a GUI seriously so I grabbed Win32 and started learning it:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://img697.imageshack.us/img697/3091/screenuoy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="370" src="http://img697.imageshack.us/img697/3091/screenuoy.png" width="512" /></a></div>
<br />
<br />
<br />
Huh? What's That you say? That's got the wxWidgets logo on it? Yeah, you're right. Win32 is shite to program in by my standards so I grabbed Qt!<br />
<br />
And so I started learning Qt. Unfortunately after one day trying to install it properly it still gave me errors about bad entry points for DLLs and shit like that so I decided to grab wxWidgets and the prebuild libs that you just instal and run (LIKE IT SHOULD ALWAYS BE WITH EVERY SDK!). But maybe it's just me that don't find the pleasure in compiling an SDK for half an hour then realizing it still won't run, and then comiling it again and again only for it to give you more and more elaborate error messages when you try to run your program.<br />
<br />
Anyway. The point is: I'm learning to work with wxWidgets which means Soon I'll start working on Litterbox SDK per se (Level editors, animation editors, exporters, importers and converters, all with a GUI!).<br />
<br />
There is a bad side to all of this: I'm gonna lose my scholarship for next year because of a new law that's been passed in detriment for immigrants like myself. So unless a miracle happens I'll have to quit University for at least one year and get a job, or two jobs.<br />
<br />
If anyone has any experience with job hunting as an experienced but not yet professional programmer I would gladly hear it.<br />
<br />
See you once I do something worth posting here like some progress on the editor.<br />
~SpliterMikolaj (Spliter) Kutahttp://www.blogger.com/profile/06216568605507086045noreply@blogger.com0