Archive for the ‘Development’ Category

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!

Regards,
Wracky

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!

Regards,

Wracky

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!

Regards,
Wracky

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.

Regards,
Wracky.

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!

Regards,
Wracky

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!

Wracky

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!
Wracky.

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,

Wracky.

 

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!

Wracky.

Progress! Rendering and Thread safety.

Wednesday, December 28th, 2011

Hey people!

Here’s a small development update!
So the holidays gave us some good time to work on Piko3D, and we thoroughly enjoyed it πŸ˜€ Even though Star Wars: The Old Republic is out now, and I absolutely love the game, we managed to make some good progress πŸ™‚

Paramike is working on threading. Piko3D already supports some multi-threading. We have a thread pool, and the scene and physics are done multi-threaded, but there is more to be done! The threadpool with which we limit the amount of threads started on a PC, is now LOCK FREE! and runs a LOT faster. Alongside that, Paramike is working on a thread-safe memory pool, which should improve Piko3D’s performance quite a bit (not that it’s slow now, just saying).

I have started restructuring part of the engine to make a basis for our new OpenGL 4.1/4.2 Renderer, and I’m making good progress! Window and camera updates are now properly taken care of, and as per SDL 1.3, we support MULTIPLE WINDOWS! We’ll probably never use it, but hey πŸ˜‰
This also means that script determines what events are handled at what window, and that every window is updated separately.

Here’s a little screenshot for your enjoyment πŸ˜‰

Till next time!

Wracky.