The more I read the more skeptical I became, but at the same time, you acknowledged all of the criticisms I was building up in my head. You have a realistic timeframe (years, but public access this year), and you acknowledge building a game, not an engine.
Your writing is clear and easy to follow, and your intelligence definitely shines through.
I never thought I'd say this, but you may actually have a shot at pulling this off. I mean the next Minecraft, Angry Birds, etc is going to come from somewhere/someone, why not you?
Keep it up! And looking forward to the next update.
One afternoon at Ikea and 40 bucks will buy you a nice standing desk. I know it's become a cliche, but if you really do sit 80 hours a week, it may be worth the initial inconvenience.
If you're interested I'll send you links to the components on Ikea
Honestly, the only incredibly disappointing part of this project is that there currently doesn't exist a way for me to throw my money at you through the internet.
In case you missed it, a link to be notified for the Kickstarter:
Thanks, I currently take pigeon delivery though. :) Yeah, I am holding off on preorders until Kickstarter so that people are fully aware of the terms, conditions, risks, etc. Also, I sincerely promise not to pull an Oculus.
If somebody offers you two billion dollars, yeah you will.
People just need be clear on what Kickstarter is: a way of raising enough money to achieve a startup target goal by selling trinkets/products/services/recognition/facetime. Reaching that goal isn't necessarily the totality of fundraising, and sure doesn't mean the company/product won't be way more valuable at that point. If your Kickstarter campaign nets you enough money to complete development, nobody should feel betrayed if someone else decides your product is very valuable and gives you a giant pile of cash for it.
Yep, I don't really blame the Oculus guys per se (if there were any blame that could be placed). I blame Andreesen Horowitz, which put $75 million in. It was basically an old fashioned pump and dump; when you put in that kind of money, you know where a company is headed: acquisitionville. :)
I do question if I would take $2 billion, because I'm not really in this for the money, so long as I have enough to survive. I actually passed up an opportunity for acquisition not that long ago (with another company) because I did not want the golden handcuffs, which would have been 3-5 more years of work I hate. Basically, I see this as almost my last chance to do something interesting with my life (its very tiring and I am getting "older"), I don't know if I could put a price on that. That said I'm not trying to act like I'm above money or something, I'd enjoy a billion dollars just as much as the next guy. :)
I think it'd be ok to sell a game engine to a game company, so long as the openness promises are maintained.
Oculus had the dev community rallied around them. They just had to create a platform and standards, sponsor the open metaverse and they'd be in a great position to make billions from portions of transactions / marketplaces / convenient ad services / etc, just like Google does with Android. Instead they sold to FB, who will no doubt pull an Apple. In an instant they destroyed the vision, and now we have to wait for the next Google to come along and prevent any one company from gaining too large a stranglehold in the mean time.
That is true. I'm sure they were not that naive, but maybe I will give the benefit of the doubt; either way, the situation is kind of a mess, and could have been side stepped but $2b, (or $75m) is a lot of money, can't say I'd have the willpower to necessarily turn either offer down if I were in their shoes...they are a bigger company with lots of employees...not exactly a one man decision and I guess you have to think about what is best for the group. If I were offered a huge sum of money, it would not be worth it for me to take it unless I could be guaranteed total freedom, which usually is not the case - I'd rather have enough money and freedom than a buttload of it and some handcuffs. :)
I really want to warn each and one of you against giving Gavan Woolery any money for this.
I was a big fan of him as a kid when he created a huge following around his game project genesis. It was an open-world, sandbox voxel rpg.
As far as I remember he received thousands for development of the game (admittedly much of it was from close friends and relatives, but I donated money as well).
At the nearest opportunity Gaven abandoned the project, using it to get a job at a game company and not even bothering to develop the project in his spare time.
His brother tried his best to keep the project alive, and many lurked around the forums generating hype and designing the game.
The updates from Gavan became less and less as if his heart was not in it any more and years later people began giving up hope-- little by little people left.
Eventually Gavan shuttered the site.
I understand that the project was overly ambitious, but looking through your life I believe you have a tenancy for creating vaporware and not finishing any you start.
I really believed in you Gavan and you were an inspiration for me to become a programmer and to start projects of my own, but I will never forgive you for abandoning the project the way you did.
I received about $700 total, and I was living with my parents (most of that $700 was from my family, but there were several other people who donated). I actually still have a list of the donations, and I covered this topic in my Kickstarter page (which is not yet public). I probably should have returned the original donations as it was not a huge amount of money, but I was planning to surprise my original backers with something -- cat is out of the bag now I guess. I still remain friends with many of the original Genesis fans like David Sahlin, Collin Popel, and Seiji Tanaka.
My parents were very supportive, but at the same time I had been living with them 8 months post college, and it came to the point where they were hinting more and more that I get a job and move out. After I launched, it became pretty clear that I was not going to support myself off of Genesis even though the reception was very positive (there was no equivalent of Kickstarter at that point in 2006, unfortunately). Not more than 2-3 months after launching I got an offer at my the startup my brother worked for (which was not lucrative, just $35k year to work 80 hour weeks). I put in 10,000+ hours of work into Genesis, no one was more disappointed than me to shut it down. I did what I could and released the source code, hoping that I could return to it later. I made several attempts over the next couple years to make Genesis-related projects (most of my failed game engines) or make something that could support me to do so. For the most part, I've been working 80 hours or more trying to make up for it for the past decade.
The only situation in which my current project will become vaporware is if I run out of money and have to get another job, and I am really hoping this does not happen because I have put so much work into it again. Thank you for bringing this up, if I can do anything else to make up for Genesis please let me know.
Also, the silver lining in this is that it led to where I am now. My honest opinion of Genesis is that it was doomed from the start: I was a young, naive coder and did not know enough to make a project that ambitious work (even now, I still have my doubts in myself). I learned a lot over the following decade that hopefully puts me in a more capable position now. Also, for a bit of further clarification, my first job was at Goowy Media (not a game company), although I got job offers from EA and a few other companies but I did not want to work in the game industry (it is fun if you are independent, but mostly pretty bad conditions otherwise)...
All of that said, I myself am going to warn people against giving me money. This is obviously a very ambitious, very risky project and I want everyone to have a very realistic idea of what I am up against. Some people are willing to take that risk for the chance of producing something new and interesting, but not everybody.
I'd say go for it if it will support you to finish the project. I think now that kickstarter is common people are a bit more accustomed to giving money to projects and not necessarily expecting immediate results.
Thanks! Yes, unfortunately many people have differentiating ideas about what Kickstarter should/shouldn't be, so I really have to tip toe through a minefield not to piss anyone off.
Just for posterity, here is the list of backers from Paypal; I have removed the names and other sensitive information. $500 was from my family ($100,$200, and $200 entries). The total gross is $759...totals are at bottom.
Even if it were thousands, giving someone money before something done is an investments, and investments can go bad. Especially if it's just a few thousand, what did you expect, that he'd continue to slave away at the project for the few bucks you gave him?
Perhaps, but I still hold myself accountable even under the circumstances mentioned above. If any of the original Genesis backers are reading this and want their money back, please let me know and I will gladly return it, with interest (just let me know the email address or alias you donated under and I have a record of the amount you gave (thankfully Paypal keeps history that far back)).
I have no problem with people pulling an oculus so long as they take money while still retaining control. Mark was able to retain control when he took money from investors. I don't see why it would not be unreasonable to make the same demand of Mark when he comes a knocking with a term sheet.
If Oculus had stated that they secured certain protections for their users as terms of the acquisition, such as:
(1) No requirement to use the Facebook login system, not no or ever.
(2) No sharing of private information of oculus users and developers with facebook.
... I don't think many of us would have been nearly as disappointed.
Very very pretty graphics. I love that it doesn't look like voxels.
I wonder if you could use this to import and export meshes from a physics sim?
If you could turn the brick wall, for instance, into a Havok mesh, simulate knocking it down, and then convert the results back into voxel land you could do some really neat turn-based persistent-world destruction stuff.
That would be cool...there is some 3D Studio Max Pluggin IIRC that does a lot of pretty cool voxel destruction stuff...don't remember the name. I have thought of doing more interesting fractures though, could be a cool effect (i.e. use a voronoi point cloud to fracture a wall into several sharper pieces).
The memory requirements make it sound like you're not using hierarchical decompositions (sparse voxel octrees, etc), is there a reason for that?
How well-supported are dynamic features like animated characters or destruction? (Voxatron-style)
I'd hold off on your claims on AWESOME EMERGENT AI before you actually have it up and running. The capabilities are simple to describe, but actually implementing them in a way that's performant and not horribly buggy has stumped well-funded teams of experienced developers.
Yes, no SVOs, but in a way sparse trees are used to store higher level information, only they are not octant-based.
Dynamic stuff is not up to the level of Voxatron, partly because it is just a lot more data to deal with, but you can have objects that move dynamically (as seen with windows and doors). That said, I may use old fashioned polygons for somethings like character animation, TBD.
I agree on the AI, I only want to discuss that I have plans to do some stuff with AI, and like I say on the site please be skeptical until you see anything. :)
One easy optimization I saw was that your fill order was rather arbitrary. Ideally you want to fill away from the camera, since the closer you are to the camera the more of the screen you are impacting.
Might want to look into a sparse system since storing 100% of the detail is great for demos like this but will result in huge amounts of wasted performance in most real applications, especially when working with mostly filled objects.
yah, my eyes rolled on the AI as well. Toady has being trying to develop exactly this for years and years and years with dwarf fortress, and he's by no means a dumb individual.
My own eyes rolled preemptively when I started talking about AI. :) The main reason I talked about it a bit is because a few people have asked me to discuss it in the past. But yeah, for now it is just talk, we will see what comes of it. Even if I fail in that respect, there is enough room for a game in other areas.
Wow, great work, this reminds me of a lot of demoscene stuff where, when faced with space limitations, programmers aggressively used procedural generation combined with prerendering and caching.
The most iconic example I can think of is .kkrieger, the 96kb first person shooter that has (relatively) amazing graphics: https://en.wikipedia.org/wiki/.kkrieger
I have kept in contact with both of them a tiny bit (through twitter, blogging, etc); both Bran and Miguel are very talented people and I consider them some of the top in the field of voxel engines -- Ken Silverman as well.
I started watching your video and what you have so far looks neat but you lost me when you started talking about how proud you were of the emergent AI when you haven't even started coding it yet. Yeah, you might have some good ideas about how you want the emergent AI to work but that's very different from having it working. Execution is the hard part.
My point is, talk about what you've done more than what you intend to do. Everybody can talk about what they intend to do, almost nobody does it. What you've done so far is interesting enough, talk about that for now.
You are actually probably right. I was tired so did not plan this video too well. :) I kind of just wanted to hint at what I had planned for AI but I got carried away. I agree that talk is not worth much. :/
No, usually talk is not worth much, but seeing what you have achieved so far without help increase the value of your talk, even if awesome talent for coding gfx not automagically = awesome talent for coding AI.
Really great work! A few quick questions - is the engine restricted to rendering from a fixed viewpoint as in your demo, or is that just a facet of the game you want to build with it? Also, would it be possible to speed up rendering by identifying occlusion from the viewpoint and not rendering those voxels as opposed to the "building up" demoed in the video?
Thank you! Yes, no occlusion culling yet, that could speed it up quite a bit (but additionally the user can cut away at any predefined layer interval, so maybe everything needs to be rendered?).
Rendering does not have to be fixed point, I've thought up ways to do first person view, but it would require projecting each chunk onto a sphere and wouldnt work well for non convex chunks. Anyhow for now I have to pick my battles so only isometric at the moment :)
Does it support rotating around the main viewpoint at 90 degrees? I can imagine some really cool tactical battle sims, since the buildings have interiors, but things getting hidden by buildings might make it a bit fussy. Being able to quickly rotate around a building, even at fixed angles (a la sim city) would solve that.
Come to think of it, a simcity + simtower combo game would be great. Zone out an area, then choose what goes in each building and slice away sections of buildings to watch the ants go about their business.
Could do 90 deg rotations fairly easily, but it would require a rerender (or rendering several views simultaneously). Right now you can cutaway at several levels so I guess it kind of works for seeing behind buildings.
This is really cool, but I fully expect you to fail.
Something simple to say like emergent AI can be ridiculously complex in practice. I bet you really have all the experience you claim to have, but I still don't expect you to get very far.
You have quite a few descriptions of how the game will end up, but saying things like "it will be fun and all these other things" dismisses how you're going to make it that way.
I think the coolest promise was that the game would be deterministic.
I'm not sure if you have lots of experience making games, but in my experience games written from the ground up never really become complete games.
If you're not already, you may want to consider hiring a team or getting help developing this so that you can focus on the things you think you can do most effectively or that are most crucial to the final gameplay.
Anyway, I really hope this is going to be all you say it will be.
You are definitely right - the odds are severely stacked against me (and I say this with no hint of sarcasm). So why am I doing what I am doing? Well, I feel that someone has to try. Big companies don't seem to be trying much. Maybe I can rally enough of a team and financing that there is less risk, but I also want people to be aware of the risk.
Trust me, I doubt myself more than anyone else, every day, but at the same time I really just want to try, even if it means failing. :)
Even if the AI isn't 'emergent' or whatever overly ambitious goal you have, you still have a lot of stuff left that can make a great game. Hell minecraft AI is randomly generate monsters as you move and make them beeline towards you.
You're definitely right. A lot of people don't fully understand how difficult what he's trying to do here is - and there have been many, many teams trying to do what he's talking about and have failed. Not to say he won't succeed, just that if he does succeed it's a bigger deal than it sounds and would probably propel him into the league of the few programming giants. Here's hoping!
This is true, but I have also shot myself in the foot by perhaps making it seem like I'm taking on a bigger task than I actually am. Hopefully soon I can show more in detail what I have planned for AI, it is relatively simple overall. (In shorter words, I am building a very crude AI that just does a bit of deduction combined with score maximization, not something that can comprehend english sentences). :)
Sounds good. Sometimes a simple solution works much better than a complex one simply because it interacts with everything else really well and creates the impression that it's smart. Looking forward to seeing it. :)
This has lots of useful applications. E.g Do you know those graphics about a submarine of the WW2, or a Spanish galleon in which you could see what is inside, like in the book "incredible cross sections"?
With your tech you could make this but dynamic and alive!! peering what you are interested in. While most of the scene is static, you could move some things a little and make it alive.
You should contact one of those amazing artist and show them what you have. There is no way they would resist an offer of working on something like this.
I was expecting more minecrafty looking, totally unexpected and awesome. I thought it was all bitmaps at first until you started sectioning through the buildings. Really awesome stuff. The world sizes are amazing.
It enables you to make the players feel like "back in the days", but also to surprise them with state of the art concepts.
Games that are made like this create the feeling most people hope they get, when they play old games. They think about the times they had, play it again but often isn't as good as in the past, because over time they got used to much more stuff, which is missing in the old games.
Really, many of the NovaLogic games (Comanche, the Delta Force series, and there were jet simulators and tank simulators as well.) I think they all used the same (or at least, a related family) of voxel + polygon engine(s).
Does NovaLogic still develop new games? They announced Delta Force: Angel Falls in 2008. Their website looks quit dated too. A new Delta Force, Comanche, Joint Operations or F22 game would be great. Sadly RAH-66 Comanche has been canceled in real life.
Gavan, this is amazing. Im trying to learn game development and graphics myself. Could you give me pointers on how to get started (tools, books, online tutorials, etc)? I want to get to this level of skill one day.
Hi - my advice is probably cliche but you are your own best teacher. That, and Google. I did not really have Google when I started game dev (resources were very poor 20 years ago, at least). Build things yourself if you are interested in how they work, otherwise I advise prebuilt engines like Unity or GameMaker. I used to be very poor at math in school but gamedev helped me learn it. I started out on the DirectX tutorials that came packaged with the DirectX SDK (I had done other stuff prior, but DirectX was where I really got into 3D programming). There are plenty of good OpenGL tutorial sites out there but Google will know the links to everything better then me. :) If you want to really learn 3D programming, write a software renderer, you will learn a lot and its not as difficult as it might seem (although it is quite hard).
Thanks! The lighting is actually quite inaccurate, but to the average player it looks "ok" I think. There is a kind of faked scattering effect on the windows -- if a light is behind a window, it lights it up a bit. If you stuck a light in the glass house, you would see shadows but they would likely be cutoff by the screen space errors.
Is it a case of "Source (will be) Available to Licensees?"
If so, I think trying to call it, "open source," puts you in the position where you might be perceived as being disingenuous. I also think it's less clear that way.
Good. I think you're saving yourself a potential headache. BTW, Good stuff! Looks like a fun project. Pardon me if I missed it while skimming, but what is your development platform?
Ooooh this is absolutely gorgeous, it's like a moving painting! I love the style, I was very impressed by the video so now I'm going to read all about it because this is the first time I hear about it. ;)
Good ear! The music is inspired by Star Control 2, and I composed it in a old fashioned tracker similar to what might have been used to produce the SC music. It is the first song I have made, mostly because I had an impulse to learn at least a little bit about music.
Bah, my comment on your site went to an error page on submit.
It was: any plans to give an opening for player written AI to function in game - writing your own group companions sounds fun too, could even use a similar codepath as multiplayer
Maybe this appeals to the younger gamer community, but having been involved back in the 90s with Renderware (which got eaten up by EA), a competitor to Rendermorphics that became (sort of) DirectX I would expect graphics engines to be much further along. This still looks like things we were playing with in the 90s. I'm sure its not, and I'm sure these voxels are clever, but when will rendering engines stop looking like Sonic The Hedgehog. Having switched to other areas of software development I haven't paid any attention to these engines.
I had no idea that was your intention and I get the volumetric pixel thing, since I moved into working on other areas I haven't stayed current. Texture mapping on low poly count models was where I left things, back then the hardware didn't have the horsepower for anything much. Best of luck with the project.
The irony is that back then we thought if we could just get more than 50 polygons per second we'd be in with a chance of making something good and now flappy bird with 80's style sprites captures the whole world's attention. I got out of that world when MSFT was ruining sw dev by turning the nice simple apis into COM.
It looks great. It bothers me a bit that the game is named after the rendering technology. It's fun to create a game engine that renders stuff but it takes way more than that to design a game.
Have you set fire to any of the materials in your generated world yet? It would be interesting to see a fire spread through one of your houses ... fire is usually one of the things either done well or done horribly in a game (in my opinion, anyways) ...
That's an interesting idea (are you a pyromaniac ;)? Right now I have so many things prioritized above types of destruction, but if I ever have time or other employees I will think about that.
I love these stories of lone (perhaps obsessive) developers laboring in seclusion for months, only to emerge with some awesome new thing that we can all get excited about. Must be a great sense of accomplishment, and a strong incentive to keep grinding away.
There are actually a lot of people that doubted me, some very close to me, and above all, myself. I have had positive reactions in the past, but you never know when people might be "over" your work. There is no feeling quite like seeing people light up when you reveal something that you have poured your life into, and that feeling is multiplied by the inverse of your confidence.
joy = timeSpent * positiveReaction * (1.0-selfConfidence) :)
I was like what's so special about another vocal engine. after watching the video I see now that if you can have a super super detailed voxel engine all other engines corps be rendered irrelevant.
In my days of playing with voxels in Blender I never thought something like this was even remotely a valid usecase. Incredible work Sir, I'm speechless!
Thanks - I started in QBasic when I was maybe 15 and made a solid volume in Mode 13H. It ran at about about 1 frame per minute.
I am mostly self taught, which is good and bad. Bad, because it takes way longer, good because you learn how to derive solutions yourself and learn why things work the way they do. My recommendation is to either start with a set of OpenGL/DirectX tutorials or just get some pixels on the screen any way possible, and build a software renderer from there -- that is if you want to learn. If you want to make a game, your best bet is to use an existing engine, although I'm hardly a shining example of that.
Other perspectives are possible. Some work would need to be done to change the perspective, but it is doable. For now, only isometric because it is ideal for tactical games and board games (I think?), and I need to limit what implement.
A single GTX 780, which is...I know, very yikes. It runs on far less, but you have to sacrifice visual detail. That said, if current patterns are an indication, a GTX 780 or equivalent will cost about $200-$250 or less (right now about $500 on Amazon, $700+ when it came out), in a few years when the game is released.
Ah, so it's GPU bound. So we'll have to wait quite a while for the tech to appear on mobile devices -- the smaller viewport might help, though given the current device resolution soon overtaking monitors...
How low level is the rendering/generation, is there potential for 5x optimization if you get closer to hardware?
Right now its just OpenGL, glsl, C++ - most of the generation occurs in GLSL, and the rest is basically rendering fullscreen quads. There is a potential for improvement with something like Mantle because there are so many requests sent to the GPU.
Thanks! Map generation was actually far more complex than I thought it would be (in particular, generating meaningful networks of roads that don't criss-cross too much).
Your writing is clear and easy to follow, and your intelligence definitely shines through.
I never thought I'd say this, but you may actually have a shot at pulling this off. I mean the next Minecraft, Angry Birds, etc is going to come from somewhere/someone, why not you?
Keep it up! And looking forward to the next update.