Saturday, January 15, 2011

So you want to be a vigilante?

If you want to fight bad guys sign up for the local police department. Then you actually get paid and won't be arrested.

That out of the way...

DISCLAIMER: This is meant for educational purposes only and the management does not accept responsibility for any actions taken with this information.


The problem with most bullet-proof vests is they will only stop handgun rounds. They won't stop knives, arrows, or any rifle rounds. I guess that's better than nothing, but still something to consider. They can be ordered online depending on where you live.

You need to work out. A lot.

There's a ton of running and jumping involved, and fighting. Make sure you're in shape and can hold your own in a brawl.

The most important part of your crime-fighting outfit is the SHOES. Most people focus on the aesthetics like the mask or the cape, but no, the SHOES are the most important. Think of all the running you'll do! You need to make sure your shoes and pants are comfortable and form fitting enough that you can comfortably run and jump over obstacles. Also speaking of capes, capes are actually counterproductive because it has a very high chance to snag on something, and not to mention gives the enemy something very easy to grab onto. Not good.

If you are going to wear a mask, make sure it's something that doesn't obscure your vision in any way. Soft rubber-like masks are probably best, as plastic might splinter and cause injuries to your face and eyes if someone hits you in the face. Again, avoid things that stick out. I am very sad that I had to omit my lengthy bunny ears from my costume, but otherwise it'd make it too easy for a bad guy to grapple me down.

The problem with being a vigilante is that you don't have the same legal freedoms a cop does; that means you need to restrict your arsenal to the least lethal means to avoid legal complications. It's a very unsettling thought to imagine people shooting you and you not being able to shoot back, but there are still options:
  • Short and Long range stun guns/tasers - this will be one of your best friends. The incapacitation lasts only as long as the device is on, so use it and quickly subdue the criminal. I advise using rope or handcuffs, the police will handle the rest.
  • Tranquilizer guns - An effect that lasts longer than a taser, however since it is harpooning a syringe at your target, you need to be very careful where you aim. Always aim center mass/torso, the sedative will quickly find its way through the blood stream.
  • "Tear Gas" - Useful as a distraction for either your entrance or your getaway

Do NOT use any blunt or sharp weapons such as: Baseball bats, knives, swords, chainsaws, sledgehammers, etc. These all inflict trauma that is potentially lethal, which would look bad for you legally. Plus they're cumbersome and leave a mess.

Do not use ANY firearms - even if it's loaded with beanbag or rubber bullets, within 20-50 yards or so, which will be your most common range of engagement vs the badguys, they still carry enough kinetic force to be lethal.

Tasers may not be legal everywhere, so you may have to improvise on finding one.

Make sure you have good health and personal item insurance.

Chances are, you'll get your hiney kicked now and then, maybe your car blown up, your house burned down, etc. Get it all insured! Shop around for the best rates, remember, don't reveal that you are a vigilante! Your monthly payments will skyrocket.

Tuesday, January 11, 2011

LittleBigPlanet 2 Beta servers are now offline. Bring on retail!

Well, that's it. That was pretty long for a pre-release, server stress test beta! So what did I do in the last hour? ... Well... http://www.youtube.com/watch?v=uoLshULoaEM

I've done my share to push the beta and squash bugs and I must say, I'm royally impressed with the game. The tools have so much more potential over the previous game. The first game warmed my heart instantly with its playful approach. It was very child-like in its approach and I felt some of this would be lost in LittleBigPlanet 2.  Not at all!

Although the new logic tools imply a sense of mechanical cerebrality, that couldn't be further from the truth. It is rare that a sequal absolutely improves on an original, especially when the original is something as unique as LittleBigPlanet, but this seems like it will be an astounding success.

I have been posting plenty of things on my blog about the game and will continue to, as well as discuss what I plan to do in retail.

I WILL make a full fledged version of my dungeon crawler, "Corridors of Madness" ... It will have better and more varied graphics, as well as much more varied gameplay.

I will continue the top down shooting series with improvements, since I've learned much since I made them.

Bunnies will make a return but in a way you might not expect. :)

The graphics are also greatly improved, the lighting engine is very welcome and easy on the eyes. I think my favorite features are the new logic tools and the holographic material. That of course includes the impact sensor.

Impact sensor + invisible hologram = super win!

I also promise a very in depth tutorial on creating the dungeon crawler after I create it in release. I promise - the techniques have been perfected and I'm saving it as a treat for you all. :)

Wednesday, January 5, 2011

More 3D android stuff - animated models

Ok I have barely been home in the past couple of weeks so couldn't work on this little android 3D engine side project much, but here's an example of my animation class so far:

http://www.youtube.com/watch?v=MTh6nbvCcZg

Uses Hierarchy type animation, as opposed to the skeletal animation in the PC 3D stuff I've been doing. Imagine each section of the model being devoted to one and only one bone instead of 4 bone weights per vertex, I figure this is the lowest cost on the hardware since I'm not sure how much I can push the android. The next step I guess would be to either use softskinning via direct vertex pos interpolation between keyframes, or bones with 1 or 2 weights per vertex.

This is all done with OpenGL in Java.

Each little section of the model can also have a unique material property which I guess I'll have to showcase next, but I need to get my hands on a real android so I can take video that isn't so choppy. Emulation sucks.

Friday, December 17, 2010

Here I come, Android - Trying out 3D on the android

Remember my "Foof Engine" for the PC? My ongoing 3D engine project which was seemingly surrounded in ridiculous characters? :) It was truly a prototype for bigger and better things, and I'm still not ready to showcase what's been going on with that.

BUT! Today I figured I should try my hand on 3D on the Android! I've been working on some Android apps lately (again, will showcase those when I'm ready) and figured it's time to tackle 3D. First vid here:

http://www.youtube.com/watch?v=LuMMCLcDVIA

 Not bad for a day's work I'd say. This was all from scratch and most of the work was spent on writing the mesh class and the math. I got a little spoiled by the D3DX and XNA math libraries. It's been a while since I touched OpenGL but it hasn't changed a bit, anyone familiar with it at all should feel at home with the implementation on the Android.

I rolled a custom model format based on the one I use in the Foof Engine tech demos, but watered down tremendously - no bone weights, no support for normal maps, etc. I think I'll use a simple hierarchy based animation system in favor of more processor intense ones like vertex tweening or bones.

I put all my models and textures into the /res/assets/ folder, this is where you should put all your raw data that you don't want the IDE to give built in ID codes to, so you can access them by name. 

Textures in the sample were borrowed from CGTextures.com, and the unicorns are actually a snapshot of ones I made in LittleBigPlanet 2. The mushrooms I drew, aren't they pretty?

Mushroom Mushroom

 But all that aside, the render function right now just consists of clearing the screen and then going through a list of meshes and rendering them. I'm going to create a system of hashes to catalog the textures and meshes like I do in Foof Engine. 

I think I can make something cool out of this, so stay tuned. I have some ideas and this, as usual, is just a prototype for bigger and better things.

Monday, December 13, 2010

Unicorns like to dance

Um... so there's a bug in 1.04 of the beta that prevents me from editing music online. Poop. So I loaded an empty level offline to see if I still could edit - and I could! So then one thing led to another...

 http://www.youtube.com/watch?v=nxm-p_MZoJU

The unicorns each have a recorded animation to just move their arms around, and their legs and movement is handled by movers, and they also have anti-gravity. So it just keeps emitting them to form the congo line sort of thing.

Saturday, December 11, 2010

Unicorn Nightmare - More LBP2 Ray Caster Fun



 So yesterday I worked on this wonder for the most of the day. http://www.youtube.com/watch?v=VthaIYW3OVA

This is NOT using the layer glitch. Although I've had plenty of ideas for using the layer glitch with the ray casting method. Raphael has published a level that uses my ray casting idea combined with his knowledge of emitting into glitched layers (Sackenstein 3D) and I will detail the key to both methods. Please see my other blog post as well: http://foofles.blogspot.com/2010/11/indepth-look-at-ray-casting-theory-and.html

First off, my ray casters, all of them, are entirely pseudo-3D. That means the perspective effect is just an illusion and is provided by a series of rays hitting walls at incrementing angles. It looks something like this:

Figure 1: Diagram of "shish kebab" or "Spider Web" Perspective Projection of rays.  


The calculations recursively travel down each line in the web, stopping when one piece intersects a wall. Due to the arc-like shape, we achieve a perspective effect in the same manner as Wolfenstein 3D or Ken's Labyrinth. This translates well to my methods of treating the rendering side of the equation as plotting 2D pixels. Thus, this method is best combined with either thin hologram or solid material in layers combined with a fully flat camera view. Note a fully flat camera view can still be mixed with depth of field or depth attenuation via hologram brightness or light by layer. If using holographic material or not using the layer glitch, microchip based early cancellation is necessary. This can be both a blessing or a curse. On one hand, it's good to be able to cut off all extraneous calculations in the chain. On another, recursion is slow. You must use a workaround to make sure the microchip recursion does not lag - such as wiring a "dummy" chain of inputs and outputs aside from the "NOT -> Activate" chain.  The full implementation of this style of recursive microchip logic is detailed here: http://foofles.blogspot.com/2010/11/indepth-look-at-ray-casting-theory-and.html





 Does not require knowledge/use of the 3D layer glitch.
 Full control over FOV angle


Naturally suited to 2D pixel mapping which is easier on the eyes.


Can be used with holographic OR solid material

Can be mixed with the glitched layers to provide higher res depth testing for game sprites.






Microchip based recursion has exponential latency - there will be bigger delays the further away on the chain you are. Unless you use workarounds.

Takes time and effort to get accurate angle increments in the rays.

Fixed camera height and orientation.

Works best with flat camera view. Texture mapping per distance must be simulated.


 
Sackenstein 3D is performed slightly differently. Perspective effect is slightly more 3D, it uses the glitched layers to provide a sense of depth and perspective. Therefore mixing it with an artificial perspective as in my arc based ray routine is unnecessary and may lead to strange results. Rather, an orthogonal projection is probably better.

Figure 2: Diagram of orthogonal "net" type setup. Recursion is not necessary.




Rather than simulate perspective with differently scaled slices of material, it uses the game's 3D graphics to do it with the glitched layers. In Sackenstein 3D and similar approaches, all the material is solid and emitted within a grid like figure 2 - imagine the Y axis of this grid to be further away in layers, and the X axis to be left and right.

Recursion is unnecessary - We are not trying to render a true orthogonal view, we don't want the rays to function in columns or that is the effect we will have. Rather, all cells in this grid have an impact sensor - just like the shish kebob method. Let's say it's set to read tag "WALL". Then all that happens is each cell is paired up with an emitter in the world, and when a cell impacts with wall the emitter is turned on. (Emit with 0.1 lifespan constantly to turn "on" solid material).  The slices of material each take up a thick layer.

 





Since it is 3D you can perform effects like the camera rolling or moving up and down.

Texture mapping for distance is handled by game engine.

Naturally clips against sprites well - put sprites in thin layer

The ray casting portion is extremely simple to setup.



Requires knowledge/use of 3D layer glitch.  




Wall Slices are solid blocks with fixed orientation relative to the camera. This makes for a visual phenomena that is very annoying to look at and confuses and give headaches easily.
Lack of early cancellation means all impact sensors are being calculated constantly.


Both have their strong points and weak points. Also, with character sprites, in Unicorn Nightmare I use holographic images for them - this leads to translucency and duplicate ray hits. Using layer glitch in either method will allow you to use a solid material for sprites - meaning that one cannot emit into the same space as the other, minimizing the ghosting effect.

Both however share one fatal flaw: too many impact sensors in one place will cause them all to stop working.

This ray caster concept I've started last month has really gone to town. I'm very glad I brought this idea to the community but it is beginning to reach its technical limits - for all simulated 3D, from now on I will use the 90 degree dungeon crawler style variant of my ray caster - stay tuned for full feature on it this weekend.



Sunday, December 5, 2010

Beaten to the punch, eep!

Anyone reading this blog or watching my youtube lately probably knows about how much time I've been putting into my ray casting techniques for the 360 degree raycaster and the dungeon crawler model, my attempts for full 3D with no layer glitch.

A couple weeks ago I was having a conversation with someone, discussing the limitations - namely clipping sprites against walls. Then it hit me - use the game's depth buffer! I might have to dabble in the layer glitch after all, but I decided to make it a surprise for the community.

But I was beaten to the punch! Checkout Sackenstein 3D by Raphael: http://www.youtube.com/watch?v=34S7h0k5oIY&feature=player_embedded

That's ok, at least I got to see what it'd look like in motion and it looks like the resolution can't be too great :( I think this ray casting idea is starting to reach its functional limitations.

Good job Raphael!