For the past few years I've been jumping between projects, but mostly distracted with surviving. I have been failing for so long that I think I might have learned how not to do it a little bit better. My goal is to get actually get a product out the door - a game or an engine (or both). I want to make it with volumetric/solid modeling and be able to generate pixel-art-esque imagery. The easy part is starting, as they say. But I really want to finish something. What I have learned over the years is all common knowledge, but I am stubborn and had to learn the hard way:
1) Premature optimization is death. An unfinished product that runs twice as fast is worth nothing.
2) Non-prioritization is death. You will want to work on the most interesting to build, trivial features, but should not.
3) Scrapping and rebuilding is death. You think you have learned so much, but the truth is you never stop learning.
4) Boredom is death. If a project is too mundane, it will die.
5) Too many features is death. Do a few things well, then expand from there.
I have worked on a number of platforms across Windows, Mac, and Linux. Windows was (by far) the easiest OS to program on (especially given the availability of tools and existing code), but it is also the hardest to develop cross-platform applications with. I also am ditching my PCs, I think, in favor of my newer Mac (I am not a huge fan of Macs, but I do most of my contracting work on them). So, after spending literally months of my little free time trying to settle on a platform, I am using Qt with OpenGL 2.x (3.x support is quirky on Macs, especially with Qt).
I have spent a fairly long time (10 years) working with polygons, I have decided that I hate them. I am using voxels because they are so much easier to do procedural generation with. You have a finite level of detail which means you can generate objects implicitly based on a given coordinate. I once wrote an engine with polygon-based Voronoi generation, with a month of hard work. Conversely, what you see below was generated in a few hours of work (After spending a countless amount of time trying to get the shaders, texture loading, etc. working on Qt). I am using volume rendering, although the underlying data can be rendered with any method (i.e. optimized for sparse voxel octrees).
So here is a screenshot: 128x128x128 Voronoi grid with my own special magic sauce algorithms. I have also implemented shadows and normals (normals not shown), but sampling still needs to be fixed. The sampling methods need improvement to get rid of stair-stepping and rotation artifacts.
1) Premature optimization is death. An unfinished product that runs twice as fast is worth nothing.
2) Non-prioritization is death. You will want to work on the most interesting to build, trivial features, but should not.
3) Scrapping and rebuilding is death. You think you have learned so much, but the truth is you never stop learning.
4) Boredom is death. If a project is too mundane, it will die.
5) Too many features is death. Do a few things well, then expand from there.
I have worked on a number of platforms across Windows, Mac, and Linux. Windows was (by far) the easiest OS to program on (especially given the availability of tools and existing code), but it is also the hardest to develop cross-platform applications with. I also am ditching my PCs, I think, in favor of my newer Mac (I am not a huge fan of Macs, but I do most of my contracting work on them). So, after spending literally months of my little free time trying to settle on a platform, I am using Qt with OpenGL 2.x (3.x support is quirky on Macs, especially with Qt).
I have spent a fairly long time (10 years) working with polygons, I have decided that I hate them. I am using voxels because they are so much easier to do procedural generation with. You have a finite level of detail which means you can generate objects implicitly based on a given coordinate. I once wrote an engine with polygon-based Voronoi generation, with a month of hard work. Conversely, what you see below was generated in a few hours of work (After spending a countless amount of time trying to get the shaders, texture loading, etc. working on Qt). I am using volume rendering, although the underlying data can be rendered with any method (i.e. optimized for sparse voxel octrees).
So here is a screenshot: 128x128x128 Voronoi grid with my own special magic sauce algorithms. I have also implemented shadows and normals (normals not shown), but sampling still needs to be fixed. The sampling methods need improvement to get rid of stair-stepping and rotation artifacts.