Dorian's Blog
This is the awesome blog of Dorian Snyder a.k.a Mobius R
Tuesday, November 20, 2012
Physics Demo & God Rays
This is a physics and graphics demo written in C# using XNA.
It demonstrates a number of point-based physics techniques in the form of force generators.
These generators apply forces to objects in forms such as collisions, gravity, springs, bungees, cables, and rods.
The first video demonstrates most of the physics techniques in their simplest form, so you can see what each one does. In order of appearance, the demos in the video are:
1. Orbiting planets (small ones orbit large one)
2. Objects connected by a spring
3. Objects connected by a bungee
4. Objects colliding in gravity (two demos)
5. Objects colliding in zero gravity
6. A pool ball demo
7. Objects connected by a cable (cables have a max length but can be compressed)
8. Objects connected by rods (rods cannot be stretched or compressed at all)
9. A Newton's cradle demo
The second video is just me showing off the gravity and collisions, and a demo of my favorite feature, what I like to call THE CLUMP. Essentially, it's a giant ball of planets all attracted by gravity. Just watch and enjoy it!
As for the god rays, they are a post-process shader written in HLSL.
God rays are cast whenever an object is in front of a light source (in this case the sun).
You can see them most clearly in the second video.
These particular god rays are an implementation of the light rays described in GPU Gems 3.
p.s. Sorry, but YouTube destroyed the quality of these videos :(
Wednesday, May 2, 2012
REST API & DLL Demo
The REST API I used is "The Cat API" by Aden Forshaw.
Check his website out here:
http://thecatapi.com/
I made this mostly for fun, because who doesn't love cats?
What it does is: it makes a web request using the Cat API for a user-specified number of cat pictures.
It then attempts to download all these pictures and sets them as your desktop background.
Why? I have no idea, but it's pretty funny.
Also, the main program makes use of a DLL, which does most of the work behind the scenes.
If you don't know what a DLL is, think of it as a kind of pseudo-program or set of instructions that are called by another program. The main idea behind DLL's is that instead of having to update an entire program during or after development, you can just update a DLL, which makes the whole process much nicer by compartmentalizing things.
Anyway, check out the video on YouTube to view it in HIGHER THAN HD! (so you can see what's going on)
Also, if you're wondering why there were only 96 pictures, it's because some links might be dead or couldn't be downloaded. You may also be wondering why not all the images get set to the desktop. That's because some of them are .gif images, which cannot be set as the desktop in Windows 7 by default.
Anyway, if you want to check it out for yourself, here is the link to the VS2010 project and source code on GitHub: https://github.com/MobiusR/REST_dll_cats/
There's also some pretty dirty string conversion in there, so brace yourself.
Friday, April 27, 2012
Android Mouse
It turns your phone into a wireless computer mouse!
You can control the mouse in two ways:
1. Tilt Mode: this mode moves the mouse pointer when you tilt the phone.
It uses the accelerometer, so most phones should be able to support it.
2. Touch Mode: this mode turns the touchscreen into a wireless trackpad.
You use it just like you would a laptop trackpad, although it's designed to be
easy to control with just your thumb so you can hold the phone in one hand.
It also has two virtual mouse buttons (left and right click) which operate as
you would expect any mouse to operate.
Lastly, it works via wifi, so when you're at home you can just sit back and relax with it,
and if you're away with your laptop you can tether your phone to your laptop, and use it anywhere.
I may post a download of the app later; however, it still needs testing on more phones.
Anyway, check out the videos in 1080p on YouTube.
The first one is me demonstrating tilt and touch mode plus the mouse buttons on the desktop.
The second one is me playing Audiosurf in touch mode. The song is Pop Culture by Madeon.
Friday, April 20, 2012
The Return
The story begins with a child's rite of passage, as he is introduced to battle for the first time. During the battle, his father is killed, but unbeknownst to him, his father's ghost remains to lead him home safely. Throughout the game, you play as the ghost of the father as you attempt to atone for your mistake, and lead your son back home.
This first video is the official trailer, shown at the 2012 Champlain College senior show.
Credits (in alphabetical order):
Lucas Annunziata - Artist
Zachary Bohn - Designer
Matthew Brand - Programmer
Marguerite Dibble - Producer/Artist
Michael Hopke - Programmer
Scott Moretto - Designer
Steven Nelson - Artist
Timothy Robertson - Programmer
Dorian Snyder - Programmer
Samantha Tow - Artist
Imago
The game is about bring your kid to work day. You are the kid, and your dad is an evil scientist. While at your dad's evil lab, you find an old chem-bot and you use its remote control to explore the laboratory. In the end, you put yourself in danger to battle your dad's evil master robot. Realizing his creations put his son in danger, your dad changes his evil ways and everyone lives happily ever after. This level takes places approximately half way through the game.
The gameplay revolves around your chem-bot's ability to mix useful chemical compounds. As you explore, you will pick up chemical elements, which you can use to craft things like freezing compounds or burning acid. You then use these compounds to solve puzzles blocking your path. You will also find chemical journals which shed some light on the backstory and also keep a log of all the chemical compounds you know how to mix.
Although the official title of this game is Imago, the production title and spiritual true name is:
Adventure Chemist Deluxe
Anyway, you can check out this video in 720p on YouTube
Credits (in alphabetical order):
Ethan Akey - Producer/Designer
Benjamin Cavallari - Voice Actor
Keith Doherty - Programmer
Scott Moretto - Designer
Daniel Quinn - Artist
Dorian Snyder - Programmer
Tyler Steele - Programmer/Technical Designer
Thursday, April 19, 2012
Lazr Möl
This was a team project made for a production class.
It's a unique (albeit strange) co-op game made with XNA.
One player controls the top portion of the game, and must place mirrors to deflect a laser around obstacles and to the destination, as well as place amplifiers to replenish the laser energy before it dies out. This player must also make sure the laser strikes properly colored mirrors to allow it to pass through colored light-gates.
The other player controls the bottom portion in which they direct a mad scientist mole to collect mirrors and amplifiers to catapult up to the top player. The mole must also collect wood resources to build boats, ladders, and bridges to traverse the terrain.
Honestly, I don't remember the whole backstory behind this one, but in the end, you manage to build the mole's telescope using pieces you get in each level (something like that anyway).
So, here's a video of me playing the first two levels (in fashionable programmer style). I then proceed to fail level three...
Credits (in alphabetical order):
Tyler Crocker - Artist
Ryan Kenny - Artist
Timothy Robertson - Programmer
Dorian Snyder - Programmer
Dylan Spurlock - Designer
Nicole Thayer - Designer
Pathfinding
It is written in C++, and uses Allegro.
Made in collaboration with Tim Robertson.
In this demo, a pink arrow starts in the top left, and then pathfinds its way to the bottom right.
You will see the search algorithm in action each time as it finds a path to the end.
Once the path is found, the arrow will travel along it. For the sake of time, I left this part out.
There are five different search algorithms used. They appear in the video in this order:
1. Depth-First
2. Dijkstra
3. A* (A-Star)
4. Node-Array A*
5. Iterative Deepening A*
You can read about all of these on Wikipedia if you're interested in learning more.
The difference between normal A* and Node-Array / Iterative Deepening is as follows:
Node Array: this variation is designed to be extremely fast at the cost of memory usage by manipulating how data about the path is handled in the backend.
Iterative Deepening: this variation is designed to use as little memory as possible, however can take a long time to find a path if the destination is far away. It is extremely fast for short paths.
Also, this program runs at 120 fps, but my recording software only records at 60, so this video is sped-up to 120fps to match its realtime speed. Note that drawing takes a relatively long time, and with path-drawing turned off, all these search algorithms are nearly instantaneous.
Subscribe to:
Posts (Atom)