Open world 3D game without a specific game engine

Started by
42 comments, last by Chirieac 10 years, 6 months ago

Fir the word you just used are unacceptable.

Also the OP got his answers. He is satisfied with the advices he got. Lay down the arms(and bad language).

Be friendly and civilized, please.

I am quite friendly, Do not know about which word you are saying but probably the dumb - i had to chose between crazy/insane/dumb (got somewhat weak english) and imo the word dumb is just most appriopriate - The approach to work on big 3d learning big open source engine etc without just learning the basics first is insane/dumb. Also this choices/conclusions of original asker are crazy - To clearly state it imo ist most constructive

I find good the answers if he would like to see some game

he should focus on drawing content only but it seem obvious that he wont do much here to, so it all is just insane talking, what else to say

Advertisement

^ crazy/insane/dumb are all insulting words in English.

In polite conversation it would be better to use a more descriptive word, such as "unwise", "based on an uninformed viewpoint", "foolish" (although that might be too close to calling them a "fool", which again might be insulting).

In any case, it's better to describe the person's actions or choices rather than the person themselves. "Your plan is foolish" is much less of an insult to "You are a fool".

^ crazy/insane/dumb are all insulting words in English.

In polite conversation it would be better to use a more descriptive word, such as "unwise", "based on an uninformed viewpoint", "foolish" (although that might be too close to calling them a "fool", which again might be insulting).

In any case, it's better to describe the person's actions or choices rather than the person themselves. "Your plan is foolish" is much less of an insult to "You are a fool".

Unwise would be appriopriate to something that is unwise,

not dumb and insane. You are not reading carefully I do not find the pleasure in calling the asker insane but was saying that the approach to want to do something advanced without learning the basics is terribly (simply) crazy. (after all it is also getting boring somewhat, and not on technical topic, so do not matter)

I'll put it this way: 6 months of hard-core coding in C++ won't get you as far as like a week of scripting in Unity.

That said, there is value in doing what's been done before and learning how everything works. I highly recommend the book Game Coding Complete, if you want a breakdown of a lot of what goes into making a game engine. If what you want to do is just build something for the sake of building it and learning how to do it, doing it all from scratch can be fun! Being able to say "I wrote every part of this" is really satisfying.

If your goal is to make a product that eventually gets released, you really ought to just use a game engine. If you want something to do for fun as a hobby, go crazy with learning all of the lower-level stuff that goes on in a game! Though, even if you want to build your own "engine," I'd recommend working with other ones a bit just to see how they work and to get some ideas on how you might structure things.

In any case, the scope of your project idea is way too big as-is for something you would want to do alone. The content alone would take a loooong time, let alone the programming. Start smaller and work your way up from there as you build your skills. Given enough time and practice, you could conceivably achieve some cool results, but obviously whatever you make won't be able to compete with something that had dozens of people with expert knowledge working for years. If nothing else, build small tech demos before tackling a big project; 3D is hard.

Anyway, the only way to really appreciate the scope of work that goes into existing game engines is to try and do it yourself. Play around with different existing ones, and play around with implementing some of the concepts yourself. You may find yourself thinking "man, this is absurdly difficult and boring, I'm just going to use Unity," or you may find yourself saying "wow, this is awesome! I love graphics programming!". The only way to know what you'll like is to try it out and see.

In any case, the scope of your project idea is way too big as-is for something you would want to do alone. The content alone would take a loooong time, let alone the programming. Start smaller and work your way up from there as you build your skills. Given enough time and practice, you could conceivably achieve some cool results, but obviously whatever you make won't be able to compete with something that had dozens of people with expert knowledge working for years. If nothing else, build small tech demos before tackling a big project; 3D is hard.

I will not be alone for the entire process, but for now I will be the only programmer. In terms of the actual content I will receive help.

I'm planning to start small of course, I will not jump directly into this project. But, this game of mine is my final goal and I needed to find out what path should I follow to get there.

If I want to build a game engine myself, even if I could use many existing libraries, I will still need to learn many many things in order to do that.

If I decide to use an open source engine, maybe I do not need to learn as many things like DirectX, but I will need the 3D math and strong programming/C++ skills.

If I decide to use an existing engine, I do not need to learn the low-level stuff, maybe not even C++.

So, I've talked about such a big game/project because that's my destination and I wanted to find the path to it. From what I understand there are those 3 options and depending on what I choose my learning path would be different. I'm here to see in what direction should I make the first step.

On-topic: Use an open-source engine (some of the bests were already presented by the others) and make your dream come true. There is no point on making everything from scratch.

As you can see there are people around here that spent some years to do what they wanted to do and they did it (finished it). Good luck, "Superman".

Off-topic: Dear Fir, I can see where you're frustration comes from: "(I am working hard for years to make some decent/fine small game)". From how you're writing I understand why you talk like that. If you can't do it, that doesn't mean the others can't even try. And no, you are not "quite friendly".

If I decide to use an existing engine, I do not need to learn the low-level stuff, maybe not even C++.

You will still need a programming language. C++ is as good as any.

What I suggest you do is evaluate some of your options. Dont worry if these are not the exact technologies you want to try. This is research at this stage.

Try building a simple cube platform jumper using the following tech.

1) Irrlicht - To try out a basic open-source 3D engine (use Ogre 3D if you prefer)

2) OpenGL - Have a look at implementing what you have just created in Irrlicht without using a graphics API directly (use DirectX if you prefer)

3) UDK - Try out a commercial engine (use Unity 3D if you prefer)

Once you have implemented all of them. Run them all and decide which one you have the most enthusiasm to extend and use to implement your next project.

:)

http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

If I decide to use an existing engine, I do not need to learn the low-level stuff, maybe not even C++.

You will still need a programming language. C++ is as good as any.

What I suggest you do is evaluate some of your options. Dont worry if these are not the exact technologies you want to try. This is research at this stage.

Try building a simple cube platform jumper using the following tech.

1) Irrlicht - To try out a basic open-source 3D engine (use Ogre 3D if you prefer)
2) OpenGL - Have a look at implementing what you have just created in Irrlicht without using a graphics API directly (use DirectX if you prefer)
3) UDK - Try out a commercial engine (use Unity 3D if you prefer)

Once you have implemented all of them. Run them all and decide which one you have the most enthusiasm to extend and use to implement your next project.

smile.png


Yes, I know I still need a programming language, but I was referring to Unity that uses C# which is considered a more high-level language than C++. Of course, Unity offers the possibility to write plugins using C++, but it's not necessarily needed.

Your idea with "simple cube platform jumper" is very good to test all options, thanks. I have been playing around in Unity for a while and with it I think that will definitely be pretty quick to do.

First, I will start to learn the necessary math and intermediate/advanced C++ programming. No matter what option I will choose, these 2 will definitely be needed I think.

After I have some good C++ and 3D math knowledge, I think I will try and play around with an open-source 3D engine and with DirectX. After a year (maximum) I'll try to really decide what I want to do/use.

Meanwhile maybe UDK will get an update to Unreal Engine 4. If that happens, UDK will have a very high chance to be my choice for an engine, instead of using open-source or writing it myself.

If someone will want to create a 3D game engine for learning purposes, how much time should he spend on it?

I think a good answer could be until he touched all areas and have a basic working prototype. But, maybe he is not able to create a basic prototype in a decent amount of time and he should quit. When exactly should he quit because would be the best decision to take and not because of the overwhelming of the hard work?

It's hard to say when one should quit.

The best times to quit are:

  1. Right from the start; or
  2. When you admit you can't do it.

If you started and realized it was way harder or tedious and that it would not add that much to your learning, well, there's no reason to keep on doing it.

If you, later on, end up stuck for some time and you decide it is not for you, be it due to a initial big design flaw or maybe some hard to fix problems, you can consider quitting on this and or restarting.

But I am one of those who tries not to quit something I started, even if it means restarting it from scratch.

This topic is closed to new replies.

Advertisement