Forum Discussion
Celetaris
12 years agoHonored Guest
Oculus Rift development.
.
7 Replies
- aiwaldmeisterHonored GuestOn 1:
If you want to prevent having to switch right after learning the basics of one language, it mainly depends on the engine u are going to choose.
C, C++ and Java are not very hard to switch between in my opinion. I dont really know what javascript can do in terms of VR-development.
On 2:
Reading this Forum, i have a feeling Unity is the most popular Engine of the community so far. I would personally prefer UE4 due to the licence-model (and being a UE-Fanboy for years). The 19$ are not too expensive to just grab it and try it out.
If you are concerned about C++ with UE4 you can also start of with using their "blueprint"-System without traditional coding.
For modeling i am all for blender. Maya is just not an option for hobby usage, because its really really expensive.
I might be biased because i am already used to it and dont see the initial usability-flaws anymore...
Gimp is another story for me, as i personally find it even far more confusing for new users than blender.
You might get away without really "learning" or "mastering" it, but doing quick google-searches for the specific task you try to acomplish at a time ;)
On 3.
If you consider doing coding/VR-development for a living and not just as a hobby, you should be really really serious about it. If this is the case, i recommend a decent education in that sector as noone will hire you without developed skills or experience.
If you just want to fool around with all of it as a hobby, just go on and do it, of course. :D
On 4:
A general Tip for getting better in almost anything: (By blender-grandmaster Andrew Price if i remember correctly)
Always try to aim for a project/target that is slightly out of your comfort-zone.
Then stick to it and bite through it until u did it.
So my suggestions: Get UE4 -> learn C++/Blueprint or both -> learn Blender -> learn what u need in Gimp when u need it - gigajoshHonored Guestjust wanna say, great question/post. I'll be following this topic keenly for any other advice given.
- TwitchmonkeyExplorerMy advice would be pretty similar to aiwaldmeister. Blender may not have some of the high end features that a program like Max or Maya has, but you're not making Avatar, you're making a game that has to be rendered twice at 60+ FPS on consumer hardware, so keeping it simple is generally a good idea. Some of the design choices they made this Blender are a little counter-intuitive like making the selection button right-click by default, but you can work your way around them with a little bit of tweaking and education. I would also recommend looking at Sculptris, it's a lot like a program I use a lot called Zbrush, but it's free. Of course it's also has fewer features, but it still has a pretty robust set of sculpting tools and polypainting if you don't have a grasp on UV-mapping yet and want to be able to have a textured model. You can also import the created texture into a painting program. Again, not as good as manually laid out UVs, but it works well enough in a pinch.
GIMP is fine, Photoshop has quite a bit more to it, but a lot of those features are going to be wasted on you if you're just painting textures. So long as you can use layers, change opacity, and alter the hardness and shape of your brush, you should be fine. For both this and programs like Sculptris you're going to want to have a graphical tablet. The Wacom Intuos is kind of the standard, but I think you can get a Bamboo for cheaper and it will work well enough. Just don't try to paint or sculpt with a mouse, it does not work.
As for getting an education, it can certainly help if you find a good one, just don't get yourself caught up in school with an outdated curriculum and end up with student loan debt and no job prospect. At the end of the day you're going to need to have the necessary skills and they'll probably want you to have some work under your belt if you want to work for an established developer, so get your skills to a good point, then find an indie team to work with and actually finish something you can put in your portfolio. That or just stay an indie and depend on Kickstarter to fund your projects, then you just need the skills. - bluenoteExplorerThe most important question is: Is it necessary for you to have photo-realistic graphics or not? There is a huge difference between trying to deliver a graphical experience that is close to reality (including effects like proper shadows, reflection, global illumination, hdr, ...) or whether you are presenting an "artificial world" (think of Minecraft, Antichamber, Ciess, Greebles, Bouncervr, ...). If your VR project is supposed to be close to reality than you probably should use an existing engine like UE4 or Unity. Writing your own photo-realistic engine is, well, possible but really tough, and probably requires to study many SIGGRAPH papers along the way. But if your world is artificial anyways, then writing your own engine is possible. Regarding the required technical knowledge, an engine like Minecraft is pretty straightforward to develop. Which doesn't mean that is no work at all. If you start from zero than it will definitely take a few months from you first OpenGL tutorial to the point where you have all the basic features of your engine implemented.
If you consider writing your own engine: The following online book is a very good starting point (or actually all you need for a basic engine): http://www.arcsynthesis.org/gltut/
The second important question is: Do you want to have cross platform support?
Regarding the choice of language the answers to these two question will narrow down your options. To illustrate the considerations in my case:
1. I do not require photo-realism (thus writing my own engine)
2. My scenes are simple I do not have to worry too much about performance.
3. I absolutely want cross platform support (just because of being able to develop in Linux).
4. It should be fun writing code.
Under these circumstances my language of choice clearly is Scala, which is like the successor of Java. In terms of performance it's not too far away from C/C++ (unfortunately your only choice if you expect your project to be really performance critical) and it runs a JVM so I get cross-platform out of the box. And apart from, I just don't want to torture myself with C/C++ in my spare time anymore, I hate the extremely limited syntax of Java, and I'm sick of screwing up every Python project once I get close to the 10k LOC mark just because the lack of static typing suddenly becomes a curse when you forget how your own types work... Maybe I've just spent too much time with these languages at work to fulfill the "fun writing code". But even for a novice I think it makes sense to pick up an advanced language right from the start. - mxer14Honored Guestaiwaldmeister's post hits it pretty well but I'll toss in my 2 cents since more perspective is always nice. I'm a programmer at one of the larger game companies and have been programming in both unity and UE4 for a few years now (on separate projects):
1. You're totally right in some languages are a lot easier to learn than others. More than just being difficult to adopt, some languages will really discourage you and possibly slow development to a crawl(nothing worse than having an awesome idea that you're dying to implement but being blocked for days by some seemingly insignificant coding exception that you can't wrap your head around). That being said the language is very much dependent on your engine choice. Engine agnostic, I found C# to be my magic bullet for languages to learn. Its similar enough to the other C variants that you're not completely lost while being simple enough for non-programmers to pick it up and experiment with.
2. Since Unity and Unreal are the only engines I use nowadays, I can't speak to anything else. Unity is great because you can use C# to build your game. Gameplay elements or objects are almost trivial to make because C# is so fast to design/protype and build in. Unity offers you a LOT of flexibility to do what you want, where you want and how you want. They've made some good strides in the last couple years to be a matured engine and they have a lot of great improvements coming in the pipe soon that people are going to love. They also have a lot of documentation on their site and a growing indie community that is usually very helpful. The downside to VR development with Unity is, I believe they still require a Pro license to integrate with.
Unreal's newest version 4.x is pretty amazing so far. Not without its bugs for sure but the level of support Epic is offering its customers is insane. The engine programmers themselves (not just representatives) post answers on their site. I've had a few calls with them and even had some of their tech artists come to our office for Q&A.. You don't technically need to do a code project at all with Unreal (their blueprint visual scripting system is extremely powerful) but you can absolutely mix in C++ and blueprints along the way as you feel comfortable. I made a C++ project from scratch, added my own custom skysphere, planets, sun, material shaders, spaceship, spaceship controls, hud and menu's last weekend in my own unreal project and I haven't written a single line of code yet.
I, personally, would recommend Unreal because of their subscription model more than anything but I don't think either would be a wrong choice.
3. Depends hugely on your own personal ambition. No matter what you do, you have to prove you know the concepts and you can solve the basic coding problems and know the design concepts that go into an application (not just the syntax).
If you go the school route they'll teach them to you but school alone isn't always enough. Lots of smart people i know, went to school, got the degree in CS then started as sdet's or testers because they couldn't get a programming gig. Some of the best programmers I know didn't go to school at all. Tinkerer's that just put everything they have into coding. Working at home, nights, weekends, whatever it takes because that's what they love. That's not to say the tinkerers dropped right into programming jobs. Most of them started at the bottom (at or below the guys that went to school). School is the safer route but by no means guaranteed.
I, myself, was a tinkerer. At 23 I was a car mechanic. 24 I got a jr level test job and advanced from there. After 10 years in the industry and writing code I can say, there are times I wish I'd gone to school. There are plenty of concepts that I never learned because I was too busy doing the actual work to see the big picture. I spend a lot of my spare time making up for that fact.
Hope this helps. - vrinfinityHonored GuestGreat post. Thank you all who have and will contribute!
- GeraldExpert ProtegeJust a word to your requirement of "streamlined" and "no roadblocks" ... the less relevant experience you bring into this, the more roadblocks you will hit. I was already decent with Photoshop, a full-time .NET developer, toyed with XNA in the past ... and still I hit so many roadblocks and had so many steep learning curves that I have to say if you are not willing to fight them on a permanent basis you do not want to go into solo game development.
Making games is the most fun I ever had, but it also requires a ton of learning and there is no clear path.
If you can, then just have a look at Unity and UE4 - both allow you to experiment without deep knowledge. After a week or so with each you can make an educated decision what you liked better (not after a couple of hours - a normal indie gamedev 60h workweek!).
And it will give you a good idea about what you are trying to do. Give yourself a goal like "recreate tetris" and try to achieve that. You will soon notice it takes a lot just to finish a simple game.
After you made your decision for an engine a lot of other decisions fall into place - you go with Unity you learn either C# or JavaScript, you go with UE4 you either go C++ or stick to visual programming.
Blender is the universal truth I guess - at least if you are on a budget. Though I managed to not even touch it so far and instead use alternatives that allow me to model from inside of Unity (one tool less that can cause trouble and eats resources).
But whatever you do - expect this to be about 10 times as hard as you imagine so you are not surprised when it turns out to be 100 times. ;)
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 4 years ago
- 4 years ago
- 3 years ago
- 2 years ago