Just a 3D scene of space. But all programmed in HLSL! I have been inspired by Inigo Quilez's work and also his other website, ShaderToy with the impressive technical approaches to computer art, and wanted to learn a new way to put my shader coding abilities to the test. I still don't know how to do most of the techniques for all the most popular effects, but ray marching is no longer the intimidating dark magic I once took it to be, and I think I did well for the first week. It could come in handy in games, maybe like using the shader that made this particular image as a background for a space shooter/sim.
Also, I got the program to compile successfully with MonoGame. I finally got around the problems with compiling custom shaders and corrupt MGFX files, and figured out the build configuration needed to run them with Windows 7/8 on the SharpDX API. I mean, it's about time. Vulkan was just announced in detail to the public, and up until last week I was still using Shader Model 3.0. I think I needed to step beyond the limits of older graphics APIs and try at least learning something new.
Here's the project configuration I used for MonoGame on Win7, in case someone else is trying to figure it out:
This compiles the entire project perfectly and you don't need to use any external tools to build the shader content.
Going in a New Direction
And now back to Project SeedWorld.
This project, which I also talk about exclusively on my own blog, has been put on the side for a couple of weeks. What really happened is that I needed to reconsider the scope of my project. I felt out of my depth. See, what I really wanted to make all along is something like Cube World but with a different set of game features and more focused questing, and the added perk of being regularly updated by yours truly. But that didn't end up going the smooth trail I wanted it to be.
For most of the project I was working on getting the voxel generation and rendering engine to work well and mostly bug-free. It can now render large procedural landscapes. Physics is all custom made and I can make a player avatar walk and jump around in the world. I finished fixing the last major graphical bug that it had and then- well I have a large world. That I can run and jump in. Suddenly I felt overwhelmed with how much more I still had to do.
I started adding some GUI code to test rendering and controls, but I needed to add something that resembles gameplay, even if it were the most vague. I could throw in a bunch of objects into the world, what they are isn't important, but just to make the player pick them up. But I needed to add an inventory menu to track those objects. I felt that it wasn't interesting enough.
A Change of Genre
I have also been taking a look at other games (completed and in-progress) to inspire me, and in particular voxel games such as Staxel and The Deer God has been so influential for making the decision to scale down my game. So as of now Project SeedWorld will be a platform game in the vein of the 2D Super Mario games. It might still have item management and RPG-like progress elements, but most of the focus will be on run-and-jump platforming action. I think I would have more fun making a game of this genre, and also stand a greater chance of making the game fun.
But the voxels will stay. I am gonna keep most of my voxel engine as it is, just with changes necessary to fulfill the needs of making a platform game. Voxels will be reduced in size, so it will be like Staxel. I will probably restrict the movement to mostly 2D, but graphics will still be full 3D. Just now with the added benefit of being portable with MonoGame (possibly the next big challenge).
Will the worlds/levels be procedurally made? That depends on how easy it is to making procedural levels. I've researched a bit and read an article or two, and it's not like throwing a bunch of noise functions and tweak their parameters till you get something that looks nice. The world generation will depend greatly on the actions of the player and this could mean many, MANY hours of play testing.
So there you have it, and now begins my work with a new type of game. Guess I just needed a break again from the project to think more clearly on what I should do. Also, because I already have most of the voxel engine already made, hopefully the start will be a lot easier.