Archive for the ‘Development’ Category

Development update: Render to texture

Wednesday, March 13th, 2019

Hi Peeps!

So a little while back, I got inspiration to do another feature: Render to Texture. A RenderTexture is basically a window, but instead of it being a window, it renders to a texture of a specified resolution!

I made a little monitor to demonstrate the effect, and we used camera layers, to add the scan-lines πŸ˜‰ I had a lot of fun making it.

Oh right!

A while ago, we also uploaded another video that demonstrates our character controller, but I forgot to make a post for it! It isn’t perfect, but none the less, it is basically what we used to make our demo “KillVector”!

We’re working on another game/demo, but sadly, it won’t be done in time for this years Revision Demo party We’ll still be there! I do hope we have something again next year!

Hope you like the videos!


Work in Progress: Inverse Kinematics

Thursday, April 19th, 2018

Hi Peeps!

We’re back at it! It’s not that we haven’t been working on anything. Its just that we haven’t posted about it πŸ™‚
Time to make up for it! We’ve created another video about some work Micron has been doing on Inverse Kinematics. It’s not completely done yet, but it’s a nice bit of progress to show you.

This video shows how our character tries to reach for the red cube while observing the limits of his left arm, and the joints-limits in his wrists and elbows.

We’ll try to be a bit more active over here! We already have another video planned πŸ˜‰
Hope you like the video!


Switched to VS2013 and 64bit

Thursday, January 8th, 2015

Hey everyone!

Nothing big yet! We’re still gaming too much it seems πŸ˜›
Anyway, Paramike took the time to convert Piko3D and all it’s dependencies to Visual Studio 2013!
We’re using Visual Studio 2013 Community edition right now! It’s free an pretty awesome πŸ˜€

I was hard at work on a map/dictionary addon for Angelscript. I was making good progress, but when I asked Andreas (The man behind angelscript) for some tips, he pointed me to Sami Vuorela’s “Angelscript Addon: Template Containers“, or AATC! It’s a set of angel script addons that provides implementation and bindings for the most familiar C++ stl container types! Seems like he beat me to it πŸ˜‰ Since it nicely shares code between the different containers, we decided use AATC instead of building our own.

Meanwhile, Micron has been working on his character controller class from time to time, and it’s shaping up to be a really nice thing.
Hopefully we can show you more of that, in the form of a new video, soon.

Alas peeps! Progress is slow, but we’re making nice stuff, and we’re enjoying ourselves πŸ˜‰
Talk to you later!



Pixel Perfect Picking in OpenGL 4.2

Sunday, May 25th, 2014

Hey everyone!

This video is long overdue πŸ˜‰ I implemented picking in the fall of last year πŸ˜‰ But for the video to look nice, I wanted to show that we could pick through transparent objects.
So I had to implement those first, since we didn’t support alpha rendering yet πŸ˜› We still don’t support translucency btw. More on that later πŸ˜‰

Aside from transparency, we now also support additive blending on object level, and emissive rendering on object level. This allows for more visual effects, which our scripters love πŸ˜‰

But back to picking! We first cast a 3D ray through the scene to see which objects we potentially hit. We then render the objects that intersect with the ray, to an offscreen frame buffer object, using some very basic shaders. In this buffer object, we encode an identifier for the object, so that if 2 objects are hit by the ray, we can later figure out which one was rendered in front of the other. We also render the distance from the pixel we render, to the camera, in the frame buffer, so we can calculate the exact world coordinate of the point where we “hit” the object.

We also use a scissor technique to only render the single pixel we hit on the screen. This makes the picking “query” very efficient.
We then read the pixel value back from our frame buffer, to see if the object was hit, and where it was hit. The system does support multiple cameras, view ports and scenes overlapping without issue.

Hope you like the video!


So.. eehmm… Yeah! Progress report!

Monday, March 10th, 2014

Hi everyone!

Thank you for still reading this after we haven’t updated for almost half a year πŸ˜›
We’ve been doing a lot of boring stuff lately! A lot has changed and we have nothing to show for it -_-
Hence the lack of updates.

Here’s what we did:

  • We’ve switched over from ODE physics to Bullet physics. Simply because we were looking for a physics engine which is better maintained, and is more mature in many ways.
  • We’ve implemented FreeImage. Piko3D is growing, from something small into a full fletched game engine. The renderer is getting better, we have positional 3D sounds, and ragdoll physics. We found that it was time to support more than just png files, and picked FreeImage for the job.
  • We’ve refactored part of the render and resource handling to make future features easier to maintain and implement. Font rendering was broken since deferred lighting was implemented, so we fixed that πŸ™‚
  • We’ve moved from SVN over to Mercurial for our version control

Meanwhile, the game folks have given us a lot of feedback on how they are using Piko3D for surprise surprise, their little game prototype! We’ve been working with them in optimizing/fixing Piko3D’s script interface too, but HAH! We’re not showing you the game yet. We want to polish it a bit further before we put it out there.

So there! A whole lot of stuff we did, in the few hours of spare time that are not consumed by gaming πŸ˜‰ and nothing to show for it!! How disappointing! This is kinda how we feel as well, but soon it will be time to show off some of the new features we’re planning in Piko3D.

So stay tuned! and thanks for reading.


Physics: Animation and Ragdoll

Monday, July 1st, 2013

Hey everyone!

We have another video for you to watch. Micron worked his ass off to get animation and physics to work together! We’re still improving, but we now have support for Bone animations with Physics, and Ragdoll support! And it looks awesome πŸ™‚

Currently, this is all done with ODE, but we’re thinking about switching to Bullet physics, since ODE seems a bit dead in the water.

If you paid attention, you can see that the video also shows the real time spotlight shadows I implemented. They’re very simple at the moment, but they look good already. I’m currently working on Directional lights and I hope we can have a new lighting video up soon πŸ™‚

Keep ya posted!


Basic OpenAL Implementation

Thursday, January 3rd, 2013

Hey everyone!

No we’re not dead. Just didn’t have a lot to show you πŸ˜‰
But here’s some new stuff! And more is on the way!

I’ve been doing some debugging recently, started working on our own file format, but most of all,
debugging is a lot better now! I wrote a logger, and a better exception handler, and error messages.
Piko3D now writes logs, and it no longer crashes upon error πŸ˜›

In the mean time, Paramike finished the first part of our OpenAL implementation! And it’s awesome πŸ˜‰
Everything you see in the video is done in Angelscript. We added things like a camera “Look at” option, and “join”, which
syncs 2 object positions πŸ™‚ Useful for attaching sound sources to objects πŸ™‚

In the mean time! Micron has been working on a debug renderer, so that he could actually see what he was doing while implementing bone animation, and I have to say it is coming along nicely! We’ll show you more next time!

Sorry for the delays guys. I hope we can do more updates soon. If I can keep myself away from star/mine craft for long enough πŸ˜›
But things are looking good!

For now! Enjoy our OpenAL: Doppler effect video!

Talk to you later!


Deferred Lighting: Point- and Spotlights

Thursday, August 2nd, 2012

Hey everyone!

Time for another update!

I’ve implemented spotlights, and optimized the light rendering a bit. Point- and spotlights now have proper falloff, and can be animated.
We’ve put a video together for thisone, showing you the state of our renderer up until now.
It is possible to set the “shininess” for separate object, so you might notice our little spaceship to be a bit more shiny than the rest
of the scene.

This is all just simple test models and geometry I had laying around. Perhaps for our next video, we’ll have some more eye candy models,
and I hope proper textures, to show you. πŸ˜‰
Next up: Shadows and Transparencies!

Until next time!

P.S. Oh yeah, and we’re all kinda hooked on minecraft.. so progress is slow atm πŸ˜›

First steps in Deferred lighting!

Tuesday, April 24th, 2012

Hey everyone!

deferred lighting

Deferred lighting with position, normal and diffuse buffer.

Got some news for ya!
We’re still hard at work, and I actually have some screenshots to post! Hurray!Β The new renderer is starting to work nicely, and we actually have a half decent structure for drawing stuff now!

Aside from that, Our OpenAL implementation is almost finished, we have support for bones, just no animations yet πŸ˜‰Β So we’re working on animations and I believe Micron is looking into Inverse Kinematics, so should be exciting.

Our deferred renderer is currently in the stage of just simple lights. No transparencies yet, and no shadows or any post filter effects. Post filtering should be fairly simple to add to it later though.

Well that’s it for now! Hope you enjoy our new screenshots πŸ˜‰

Best regards,



Pixel shaders!

Monday, January 23rd, 2012

This movie requires Flash Player 9

Shaders baby!

Hey everyone!

Here’s another progress report!
Got some basic shaders to work! Actually the shaders weren’t that much work,Β But Piko3D now has a proper resource management system around them too!
I’m currently working on an OpenGL renderer, but if we ever build a DirectX one too, it should be possible to switch between OpenGL and DirectX in runtime!

Anywayz, next up for me is testing, and pushing parameters to the shaders. I’m currently working in OpenGL 3 which allows me to phase out static functions gradually. This means that I can set up a static function pipeline, and than swap out the shader pipeline bit by bit, which makes testing a breeze πŸ™‚ When everything is done, I’ll switch to OpenGL 4.2 entirely.

The little video you see here is basically a fragment shader “Hello World” that was made a bit fancier πŸ˜‰ It renders BRICKS!

Anywayz, Talk to you later!