I'm trying to get better performance out of my robotic cubes. Using 4 levels of detail performance dramatically improved but I don't like the look as much on a large scene.Read More
For over a year I have been struggling with the art direction for the mechanical tunnels of Crystal Flux.
In early concept I didn't know the robots and their entire city would be made up of cubes that can break apart and rebuild into something different. Making a tunnel that fits with the theme would be challenging. All the tunnels up until the mech theme would be very organic but in this case they needed to seem like an advanced alien civilization hidden deep underground on Earth.
Snowboarding over a cubed landscape similar to Minecraft would look odd so I thought the tunnel could be a transparent tube with a backdrop of cubes.
The biggest problem with this is that it was CPU intensive if I wanted any of the cubes to move; and they are supposed to be robots after all. I basically shelved the idea and made a few bad concepts until someone asked how to do a wave of cubes in Unreal Engine 4.
Visit my tutorial on Wave Cubes to see the basic concept.
It quickly got me thinking that the cubes could "move" though a material shader which could be done on the GPU thousands of times quite easily. With this technique the cubes wouldn't actually move they would just appear to change positions. They can't have collision but this is fine since its supposed to be scenery anyway.
Instead of a flat plane of cubes I would spawn them in 3 directions. (The way I'm doing this for a concept is very slow and will have to be moved to C++ for the game)
Since we aren't dealing with an vector offset to a plane array of cubes, the "World Position Offset" input can be left blank. The Masked material option needs to be checked so we can input our 3d noise into the "Opacity Mask" of the material. I left the threshold at its 0.33 default and adjusted the mask with a 0.2 value. The noise is outputting black and white at 3d locations in space so if it drops below 0.33 the cube will be invisible! Neat!
After playing with the values all day I finally arrived at the look I'm going for:
The center of the grid must be masked to make it look like a tunnel, otherwise you would just run into the cubes. I still have a long way to go but this is finally something I am excited about and can work toward. The tunnels do curve around in various directions so it worries me that this idea isn't even feasible.
Questions and comments always welcome :)
Someone just asked on Unreal Engine 4 Developers' Community on Facebook how to make a surface of moving cubes.
After a quick discussion we determined that the effect can just be applied to the material shader of each cube rather than moving each one though the tick. If collision is needed than this technique doesn't work since its not actually moving the cubes.
First we need to create a plane of cubes. 21x21 cubes should be enough.
Keep in mind if you put large values in loops on the construction script of Blueprints you could be waiting a long time or crash the engine: start with small values and push it later. Moving this part to C++ would definitely help but we should be fine for now.
For the material shader we must first get the world location of each pixel in space. Since our cube size is 10x10 (you will have to change this depending on your cube size) we will divide that by 10 and then round each of the values. This will give us nice 10 unit steps of values later.
We didn't do anything to keep the position of the actor Blueprint that spawned the cubes at 10 unit increments so when you position that actor in the world make sure its a factor of 10 on both the x and y axis. i.e. 100, 0, 0 or -20, 50, 30.
You can play around with the noise values but these seems to work well. After the noise node multiply it by 100 to get some dramatic movement and plug it into a Float3 vector. We only want the Z channel to move so leave x and y blank. Plug that into the World Position Offset. This will then offset each vector of the cubeaccording to the amount generated by the 3d noise node. Color can be connected too for a more visible effect in case the position offsets aren't multiplied enough.
You can then save the material and apply it to the static mesh instance of our plane of cubes spawning actor Blueprint.
If all goes well it should output something like this. You might want to scale the cubes down slightly so it doesn't overlap any vertices.
Ahhh but the cubes aren't moving just yet, they are still static but offset. Well, go back to the material and add this on the x or y channel of that Float3 before the noise. This will add a value in the form of time and shift the noise in that direction.
AND THAT IS IT! Feel free to post comments, questions, or suggestions. I hope you enjoyed this exercise in UE4 materials.
By having no schedule and no boss, my development work seems to go from almost nonexistent to hectic depending upon what stage in a game I'm working on. In an effort to change that I've made a timeline for the next 11 months.
I am still an entry level computer programmer. Aside from my failed attempt to program some in college 10 years ago I've basically only been programming for 2 years now. Unlike CAD programs which take me a few hours to switch to something new, programming languages take me months if not years to master. With Microsoft's recent transition away from XNA/C# to direcX11/C++ in Windows 8 (and WP8) I have been flustered to say the least about which direction to take. Should I learn C++ with DirectX 11.1 to make some really impressively graphical games or stick with XNA for another year? On one hand I have exhausted the possibilities of Windows Phone 7 and I crave more, but on the other, Xbox 360 still has a lot of neat tricks I need to master. A couple features that really come to mind are reflections and point lights; neither of which can really be done on the current Windows Phone 7. My games may appear to have point lights but those are baked out textures done in Autodesk Maya, and are not calculated by the phone. To create a point light travels with the ball in Bonsai Golf, to make it appear like it was glowing, I would need to use custom shaders; and Xbox 360 can use them with the same XNA code I now feel comfortable with.
If there is still so much more than can be done in XNA, why switch at all? Three reasons: C++ is more industry standard on a professional level, C++ is faster, and DirectX 11 has tessellation. I will continue making games as a profession, why not learn the industry standard now? It might be a little too much for one person to handle. If I was in a team of 3-4 where one person could just be responsible for memory management or bringing in media assets it may make more sense. As a single inexperienced developer most of my time would be going to things like this which are taken care of automatically in XNA/C#.
This brings me to the wildcard: can a developer get high end features of DirectX 11 while still using managed C# code? Yes. Many development teams are working on bringing all of DirectX 11's features, including tessellation, into C#. SharpDX is one of those possibilities and the speed loss is nearly negligible. The problem however is that it is new and there isn't much documentation for it yet. Eventually I'll revisit SharpDX for Windows RT tablets but until then I will be taking the next logical step: XNA on Xbox 360.
Before I jump into that, I think it is time to polish up Bonsai Golf Coral and Hotsprings so I can get them into the marketplace. The original Bonsai Golf must also be updated to the latest Windows Phone 7.5 (mango). Once those are finished I can begin work on the game I've been dreaming of since I started game development. It will be called Flywheels and I will have 9-10 months to work on it before entering the Dream.Build.Play competition of 2013.
Flywheels will be a racing game on inverted planets with monocycles. I have not decided if the monocycles themselves will be alive or you will get to use your Xbox avatar to drive them (maybe both). Unlike most racing games which reward the driver for doing the same precise moves over and over again, Flywheels will be more about player interaction and finding a variety of paths to the finish line. My concept art 2 months from now should better illustrate these concepts. By December 2012 I should have a playable demo of Flywheels to test out with friends and family during the holiday season. I will try to have public betas up throughout development to get lots of feedback before the June 2013 deadline for Dream.Build.Play.
Until then, look forward to a steady release of all 3 of my current games (with updates and more levels) on the Windows Phone marketplace. It should be an excited year even though I'm holding off completely on Windows 8, Windows Phone 8, and Windows RT. Who knows, maybe by June next year there will be XNA 5.0 and everything I just talked about will be a moot point.
If this works well I will post more blogs in the future
Its now out of my hands and in the possession of the Microsoft Dream.Build.Play judges. Best of luck to all the other entries.Read More
This is the last screenshot that I am uploading before submitting my entry into Microsoft's Dream.Build.Play developer competition. Its down to the wire now, and still a lot to do in the next couple hours. Wish me luck!Read More
After way too many hours I'm nearing completion of hole 12 and it seems more like a climax or hole 18. I'm just happy that it works so I can go to be without thinking about it anymore.
While creating this level for Bonsai Golf Coral, I've realized it is actually an example of my vision for "Flywheels;" my first racing game. It marks the turning point from 'learning,' to something I might enjoy playing.Read More
Its now crunch time with Dream Build Play so I thought I'd show a video of how the game is looking. Still lots to do but the coding is pretty much completed.Read More
I wanted good clear underwater sounds and http://soundrangers.com/ just wasn't giving me exactly what I wanted for Bonsai Golf Coral. The bubbling and splashing were okay but I really needed some clear ambient underwater sounds. They were really hard to find until I came across www.sound-ideas.com it was a bit more than I wanted to spend but after listening to the first 20 sound effects I can say it is definitely worth it. Hopefully I won't have to compress them too much fit all I want into an over the air download for this game (20MB).
I have been working on the menu to Bonsai Golf Coral and I'm trying to blend "metro style" into my theme. It is getting pretty close but I have to work out all the coding. The hubs of Windows Phone have also inspired me to go more in that direction as the menu screen will pan from side to side to see the hole select or options. Sting rays move in the background and sun rays glisten in one of the 3 main colors of the water. I might add some bubbles or other fish if there is time, but I'm satisfied with it for now.
To add some depth to gameplay in Bonsai Golf Coral, I am implementing a points system based upon collection or "orbs." If the player's ball hits one of the orbs they will gain points. Each hole will have 4-5 orbs. Three of them will be one point each while the big one will be worth 5 points. Occasionally there will also be a star orb in an obscure location but it takes the player to a bonus level. The course will be set up in a way that getting all the orbs is not very beneficial. 3 points will be awarded for getting under par, so taking the extra shot to grab each of the 1 point orbs won't get the player anything other than a sparkly show of graphics. In adding this new style of play I've also increased the hole size so players are more focused on the orbs and less putting back and forth to get the ball in the hole. After watching a couple people play, it seems that Bonsai Golf Coral is a lot more fun and engaging than its predecessor. I hope everyone feels the same.
Just started working on a new game for Microsoft's Dream.Build.Play competition a few weeks ago. Its a spinoff from Bonsai Golf but this one is completely rewritten for Mango update on Windows Phone and will be themed underwater.
Stay tuned for progress updates as I've given full attention to this game until the DBP 2012 deadline in June.
Testing out the usefulness of this app. It seem great but I'm not sure if I'm going to keep WordPress because it does support disqus. :'(
Welcome to WordPress.com. After you read this, you should delete and write your own post, with a new title above. Or hit Add New on the left (of the admin dashboard) to start a fresh post. Here are some suggestions for your first post.
- You can find new ideas for what to blog about by reading the Daily Post.
- Add PressThis to your browser. It creates a new blog post for you about any interesting page you read on the web.
- Make some changes to this page, and then hit preview on the right. You can always preview any post or edit it before you share it to the world.