How to start making the game?

Started by
9 comments, last by Gian-Reto 8 years, 4 months ago

Hey guys!

So I together with a few friends want to make a game, but none of us has got any experience in game-making, and we don't know where and how to start. Since none of us has experience we need to make very small games at first and then finish a big project that we have in mind(It's a pretty big one, an open-world RPG, and we know it's not going to be easy). So we were wondering, what should we make our games in? Should we learn an engine like CryEngine or Unity? Should we learn a programming language like C++ (from what I understood we have to)? At some point we even wanted to make our own engine from scratch and we're still open to that idea. So can you guys help us? Tell us what we should learn. It has to be something that can create small games as well as big ones.

Advertisement

1. You and your friends recognize that even an openworld RPG without the MMO monicker in front of it is going to be a HUGE project. Good. You seem to be more realistic than many inexpierienced beginners coming here...

2. Start with small games: very good idea. You guys will need to learn A LOT to even make small 2D games, let alone a modern 3D game. You will spend months and years learning the needed skills. Having smaller milestones you can work against before you embark on your journey to your dream game can keep you engaged and give you a morale boost whereas the merciless grind of trying to work on a way too large scope with too little expierience can burn you out quickly.

3. Write your own engine... do you want to create an engine or a game? Writing your own engine, as in fully featured 3D game engine is pretty pointless nowadays, unless you a) do it as a learning expierience, b) want to create a very special niche engine or c) just do it for fun. Not to mention that it takes A LOT of time. Time that would be better spent on your game, if that is what you want to make in the end.

Your chance of being able to create a business around your own Indie engine is most likely nill, so don't even try. And there are so many GOOD professional 3D engines available for free that there is no point in creating an engine for your own game.

4. Which engine: either Unity or Unreal Engine 4. From my own expierience, Unity 5 is easier to start with, giving you a slightly more powerful engine editor and better structured documentation. Unreal Engine 4 seems to be the better runtime engine to me, and more forgiving about accpeting 3D models of differing quality. Unreal comes with more rendering power and tools out-of-the-box, but the asset store of Unity is much better equipped and can fill these gaps, if you have the money.

I personally had a short, but pretty bad first impression of Cryengine when I gave it a spin. Outdated editor, horribly buggy example project. Add to that the fact that community size and available tutorials are nowhere near the one of both Untiy and Unreal, and I cannot recommend it really. But YMMV.

If you want to start with smaller 2D games there are many simpler 2D game engines out there that might help you more than big, fat 3D engines that can be abused to also produce 2D games.

Game Maker gets mentioned a lot, I haven't tried it myself though.

Or you might find it a good learning expierience to write your first few games from scratch, using DirectX or OpenGL directly, or frameworks like Mono or SDL.

5. Programming Language: Depends on the Engine you will use. Programming language is C++ for Unreal Engine 4, C# for Unity 5.

I find the C# API in Unity easier to get into than C++ in Unreal (having worked in Unity for 3 years but just started in Unreal might contribute to that though), but Unreal Engine 4 comes with a Visual Scripting tool, Blueprint, which allows you to drag-and-drop most stuff together without having to know any formalized programming language...

Don't get your hopes up to soon though, you will still need to know some technical stuff and the basics of programming, else you will not get far in Blueprint. Or produce horribly inefficient "Code".

Unity also allows you to use UnityScript, which is basically JavaScript, instead on C#... but really, Unity's C# API is so easy to learn there is little point in choosing that over C# (as long as you can live with the whole Object Oriented shebang).

C++ is what most bigger studios use for their games... though if you just want to create your own game, you can use any language you want if you roll without using an engine. C++ is said to be more efficient and faster than other languages, I would argue that depends on the compiler and also there are enough other downsides to it. You will find game engines and frameworks for almost any language out there by now, and really, a good programmer will have no problem switching one language for another.

It is not so important what you choose as your first language, you just need to pick a language and stay long enough with it to learn the basics of programming.

If you're gonna work up to that project, may as well pick tools capable of it. Unity SHOULD be capable of this kind of stuff. Unreal definitely is. Unity is C#, which is much easier than C++. You're probably gonna lose a member or two. Programming is hard. Lots of people give up. Once you cross the great filter, it'll be easier to understand code (I haven't done this yet, and I've been at it for a year) and you'll be able to do cooler stuff. Unity will be overwhelming at first. There's a ton of stuff in it.

Just stick with one thing. I started with C# and Monogame, then moved to C++ and SDL, and have now come back to C# and Unity. I wish I had put all that time in Unity, but the C++ experience was great for learning.

What will you make?

If you want to start with smaller 2D games there are many simpler 2D game engines out there that might help you more than big, fat 3D engines that can be abused to also produce 2D games.

So you mean we don't have to choose one engine and stick to it? We can start with smaller ones and then go to more complex ones? I always imagined a 2D game engine is totally different from a 3D game engine.Thank you for your quick and informative reply!

The above suggestion are good, but I'd add a few of my own, more along the lines of expectations, and what to try.

You're first steps should follow Gian-Reto's advice. Find an engine, decide on a language. I would also recommend Unity with C# over Unreal. I've used both, unity is easier to get started in, which will help you skip over some beginner pitfalls.

The next logical step I imagine you would do is get together and think of an idea for a game. Have this really creative jam-session, jotting down ideas, bouncing ideas around, feeling really productive. Don't. None of you have experience, so you might as well be discussing how to engineer a hover-car. The only real thing you might want to decide upon is "2d or 3d?" "Platform, racing, or FPS". This is just because you can focus on what to learn.

The next step is will be to mess around with the engine you chose and start figuring it out. This probably won't be a very "do it together" type of activity. Once you've got the engine somewhat figured out, you can start trying to modify existing example games. Maybe meet once in a while in person or over Skype to chat and share some things.

If you've got people that are artistically inclined, it would still be helpful for them to be playing with the engine and maybe learn the basics of coding, but they should focus on getting models/textures/etc to function in the engine. They should not focus on making models for the future game. They should get models, art, animations, etc that they already have or freebees they downloaded to function in the engine.

Only after you've got some pseudo-games working, should you even start to try to think of a real game idea. Build the idea around your limitations and the engine's limitations. Even if your design encompasses only what you already know how to do, you will quickly find yourself in a situation where you don't know what you're doing. A game design is sometimes like chaos math.

My own endeavors with teams netted a lot of lofty-creativie ideas with maybe only about 10-20% of team members actually doing any work. Most aspiring designers only want to be idea people, but not get their hands dirty with any work - so beware of this pitfall with your team. Cull anyone who isn't willing to work. If they just want to be an "idea person" boot them. Everyone has a brain. Ideas are worth nothing.

As a beginner myself I would strongly recommend either Unity or Monogame and C# atleast for now anyways. C# and Unity or Monogame are very beginner friendly, and powerful.

I would also strongly suggest choosing one and sticking with it. Switching around while you are first learning is a bad idea. Just pick one and stick with it until you understand it enough to either make the things you want or realise that its not what you need. Since your end goal is making 3d games I would suggest Unity. The community behind Unity is very big and helpful. Lots of tutorials and quite a few books too. And its free (for the most part). If you don't want to use an engine and would rather do it yourself from scratch there is Monogame, SharpDX,SlimDX,CocosSharp,SFML.NET to name a few. All for C#. Hope this helps and Good luck!

the only thing i would add is that there's technically two ways to do it: ramp up (recommended) or dive in (only for 1%'ers).

the only reason why i mention this is because you seem to have your act together re: expectations and whatnot.

to dive in, you'd determine the engine to use for your "dream game", and focus on that. cull the chaff from the wheat when it comes to personnel, and be brutal about it. with a logical progression of learning and implementation, diving in would probably get you to the brass ring sooner. but it will require drive and tenacity. you may end up the only one working on the game. so scope becomes an issue. too big, and you never get it done in a _profitable_ amount of time.

your 1%'er quote for the day: "achieve while others sleep"

a second one:

"i've already forgotten what you'll never even know" - from my roomies' quote of the day calendar back in college. i love that one - but its such a put-down.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

whether you choose ramp-up or dive in, the process is the same:

1. determine game type, based on what you think you can accomplish, and potential profitability (if its a for-profit vs for-learning venture - i suspect this is a for-learning project).

2. determine the engine that will "getter dun" quickest. off the shelf - home rolled - whatever. whatever gets you to "gone gold" (as they say) quickest.

http://www.urbandictionary.com/define.php?term=Gone+Gold

3. the engine will dictate the choices for programming language, graphics file formats, etc.

4. find compatible tools (2d paint, 3d modeling, wav editor, etc) that can "talk to" each other and your engine (IE: share common file formats - either directly or via conversion)

5. learn whats needed - _as_needed_ ! don't waste you time learning skills / languages / engines / algos / systems / APIs / tools / libraries, etc until you know you have to. if its not in the direct path from you to the brass ring, then.....WTF?

6. stick with it. its a commitment, like a job, it will take time out of your life. adjust accordingly, and get rid of those who don't.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

Wow thank you all for your answers! It really helped us.
My share:
- develop and more importantly FINISH a smaller game first, with the same team
- go through the full Development cycle
-- starting with a game design document and choosing the target platform, engine etc.
Here's an example of a small game project I did myself

http://crealysm.com/downloads/documents/booh-game-design-final.pdf

And ofcourse, Good luck. Good that you've managed to get a team and follow the dream

Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me

This topic is closed to new replies.

Advertisement