Advertisement

Starting my journey in game programming [need some professional opinion]

Started by March 12, 2014 03:25 PM
17 comments, last by Anri 10 years, 10 months ago

Hello,

First of all I would like to introduce myself, my name is Vytautas, I'm 2nd semester computer science student, currently living in Denmark.

I'm straight forward person so in that case I'll ask you one question: I want to dive into game programming and overall development, how do I do that ?

... and now more in detail:

1. Currently I'm playing around with 2D/3D engine basics in JAVA. As obvious it is - I need to start somewhere, somehow, but it's not that simple as it sounds, I want to make strong foundations for my knowledge pool how does everything works, In past few weeks I did a lot of research in this field and I have to say what I found really kicked me away from JAVA, so question: Does JAVA is that bad for game programing as everyone says it is ? For example - C++ vs JAVA it's like comparing Lamborghini vs Lada or it's more like Lamborghini vs Ferrari ? The main argument to defend JAVA is minecraft, a game that has no textures or physics ?

2. So I'm planing to make 2D game, I'll try my best to make something like Muramasa or Dust: the elysian tail , of course I'll fail and fail hard, but in the end I'll get what I want, now question is: Should I choose mainstream path and go with C++ or stick to familiar JAVA way ? It kinda depends on 1st answer though..

3. In my first question I separated game programming and game development, I really don't like all those reusable game engines, game makers and all stuff that make things their way for you, it's one of the most satisfying felling you can get to see your code growing from 1 line to 10'000 and finally after never ending debugging you make something from nothing, it's magic, but does this magic really effective ? Should I learn new things by re-inventing wheel ? Or maybe this already existing wheel is still square and there's wide room for improvements ?

Summary:

My goals are:

- To make 2D game similar to Muramasa or Dust (To reach next, more advanced level of programming / designing).

- To learn as much as possible about all aspects of game programming and later on focus on more specific subject like AI for example.

- Release my own project ? I've been developing plot for possible game/movie since I was 14 +-, now I'm 20 and still almost every day run through some aspects of this particular story in my head, all I need is to start refining it piece after piece and write it down, but for now I'm more concern about learning "mechanical" skills.

Well here goes my next 10-15 years plan for my carrier, of course things may change, but I have chosen the path and I'll go there no matter what.

I have my own head and will do things that seem right to me, reason why I write this long post is to get some guidance from experienced people, I'm not looking for shortcuts, I don't need easy way, what I want is right direction.

Thank you in advance for constructive response.

By yourself you won't be making a games like that. Look over the Murasama credits list, listing the names of 106 individuals plus four companies (listed only by corporate name) by my count. So you are looking at probably 150 work-years of effort. It is unrealistic to think you could do that by yourself.

Does JAVA is that bad for game programing as everyone says it is ? For example - C++ vs JAVA it's like comparing Lamborghini vs Lada or it's more like Lamborghini vs Ferrari ?

Java meets different needs that C++. Both are good languages. C++ works well at systems-level programming work. Java works well at application-level programming work. There are many games written in Java. The Android ecosystem revolves around Java.

I recommend that eventually you learn both and more. For now just learn whatever one you prefer, or whatever is recommended for your CS program.

So I'm planing to make 2D game, I'll try my best to make something like Muramasa or Dust: the elysian tail

Set your sights much, much, much lower.

Your first games should be along the lines of "guess the number" and "tic tac toe".

Then you will likely expand to games like Connect Four and Reversi. You can also write text-based adventures at this stage.

Eventually you will get up to animated games like pong.

After that perhaps some brick-based animated games like tetris or breakout.

In my first question I separated game programming and game development, I really don't like all those reusable game engines, game makers and all stuff that make things their way for you, it's one of the most satisfying felling you can get to see your code growing from 1 line to 10'000 and finally after never ending debugging you make something from nothing, it's magic, but does this magic really effective ? Should I learn new things by re-inventing wheel ? Or maybe this already existing wheel is still square and there's wide room for improvements ?

It depends on what you want to do.

Many people would rather spend their time making games rather than engines. Your first two posts certainly make it look like you want to make a game. If you want to write engines, I suggest you spend your time mastering linear algebra and discrete mathematics. If you enjoy writing shaders and rendering libraries then do so, but know they are just small parts of a much larger whole. Yes, the world needs programmers who are skilled in those areas, and if they interest you, go for it. If you are interested in network play, then do that. If you are interested in the interactions with objects, then do that. If you are interested in audio programmer, then do that. If you are interested in data management, then do that. If you are interested in tools, then do that. Games need all of them and more.



Since you are currently enrolled in a CS course, I suggest you pay attention to everything being taught. Games are large software engineering projects. They require lots of people with lots of knowledge in lots of areas. You need to know not just your core algorithms and data structures, but also understand how they fit together into a larger system of software required to build the games. ALL of the topics are important.

I often imagine the comments about learning in terms of other fields. Imagine a student training to be a doctor saying he wanted to be a heart surgeon and didn't want to waste his time with all the general medicine, all he wants to learn about are the heart muscles. Imagine a student wanting to be a Formula 1 Racing mechanic complaining about learning all the general car parts, all he wants to learn is the one specific engine. Imagine a student training to be an airline pilot complaining about studying navigation and mechanics, all he wants to do is be in the cockpit controlling the throttle.

Instead of wanting to jump ahead to only the specific things that apply to your field, learn the basics of the entire field paying special attention on the parts that interest you.

Advertisement


By yourself you won't be making a games like that.

I'd just like to point out that the other game mentioned (Dust: An Elysian Tail) was made almost entirely by 1 person.

...although it did take him almost 40 times as long as he thought originally.

But yeah, it's not something you'll make on your first attempt at making a game, like frob said.

Hello to all my stalkers.

By yourself you won't be making a games like that. Look over the

">Murasama credits list, listing the names of 106 individuals plus four companies (listed only by corporate name) by my count. So you are looking at probably 150 work-years of effort.

Seriously?

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy

Hi there,

I agree with the previous comments, do not expect much of your first game, and you won't be disappointed. However if you set your hopes too high, you will demotivate yourself by not making any progress.

I would advise you to start with exercises games, such as "the game of life", sudoku, minesweeper. If only to train yourself to game logic and behavior. Those simple games are also ideal if you want to pick up a new language.

If you want to start with a 2D platformer. I would suggest you start with a Mario-like in mind. Jump, walk, run, die, collect... everything one step at a time.

Finally, language wise, i think it depends what you want to learn. If you want to discover how things work under the hood, then c++/OpenGL will teach you how 3D api, memory management and things like that works. Although it may makes the simplest takes much difficult.

Or you can pick a framework/engine that suits you, with which you can quickly have stuff on the screen. You will worry more about gameplay logic, rather than technicalities. That's your call on that.

It wouldn't be fair if I didn't mentioned that the first step is much more difficult. You would be amazed how much needs to be done to simply render a cube in OpenGL/C++.

In anycase, patience is key. And that's why many small success is more motivating and will keep you going for longer than massive, unrealistic projects.

Good luck :)

If you want to start with a 2D platformer. I would suggest you start with a Mario-like in mind. Jump, walk, run, die, collect... everything one step at a time

Good advice


. . . then C++/OpenGL or . . .
You would be amazed how much needs to be done to simply render a cube in C++/OpenGL or . . .


. . . directx (though windows/microsoft only)

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy

Advertisement

By yourself you won't be making a games like that. Look over the

">Murasama credits list, listing the names of 106 individuals plus four companies (listed only by corporate name) by my count. So you are looking at probably 150 work-years of effort.
Seriously?

What part do you disbelieve? There is a video showing the names of the individuals plus the names of companies that provided QA and localization testing.

Assume a game with around 15-20 developers (combining all the programmers, artists, modelers, animators, sound engineers) for one year is 15-20 work years. Then throw in designers, producers, marketers, QA, and you're at another 50 work years, for convenience let's say 80. A localization team and their QA adds several more work years, especially if you are targeting more than EFIGS translations. Add in support staff and add another 10 or so.

A small professional game can cost $10M on the bottom line just to build. A very large professional game can cost $100M to build.

Many of the professionally built high quality mobile games pass the million dollar mark, some exceed the ten million dollar mark.

It is extremely rare these days that a one-person game is able to reach very high quality levels and becomes a commercial success. It does happen occasionally that someone invests a great deal of effort and love into a personal project, and that project takes off and becomes successful, but the tales are exceedingly rare.

One popularly-cited example was Roller Coaster Tycoon, mostly programmed by Chris Sawyer in assembly; most omit the details that he had over a decade of professional experience, the four years in development, and that other people provided support in areas outside of the code, such as audio, testing, marketing, and distribution.

Another excellent game with one-person developer is Cubistry. Again, note that the sole developer, Sangwoo Hong had worked at Disney, Pixar, Square, and EA before making the game, and that he relied on Unity rather than writing his own engine. It is fun to read his web site, it took him 17 months (8 Mar 2011 to 15 Aug 2012) to build a game he says was "created in a month", so I'll let you puzzle over that. The game itself is trivial in comparison to the RPG games mentioned initially. This is what I expect a one-developer game to feel like.

And finally, since the OP mentioned it, "Dust: An Elysian Tail" was designed and programmed by one person, ostensibly. Dean Dodrill had been a professional animator for about a decade, spent about 4 years developing his game, and when the prototype won several creative awards it was picked up by a publisher, had an additional professional writer, professional audio, QA teams, localization teams, voice acting, and many more people.

I'm not saying one person cannot develop a game, it has certainly happened many times in the past. Be aware that most "one-developer" programs are actually experienced professionals rather than beginners, and they usually get a lot of additional help near the end. Be aware that one programmer working alone is more likely to produce a game similar to the 1970's era with simple gameplay, simple graphics, and simple logic, such as Cubistry, rather than something like a modern era RPG.

For my native friend: Paklausk ? PM, jei kas neaišku, ar turi klausim?, pabandysiu pad?t :)

Deltron Zero and Automator.


So you are looking at probably 150 work-years of effort. It is unrealistic to think you could do that by yourself.

AKA if you could make Skyrim/GTA 5/Battlefield (etc.) from scratch in 2 - 3 years on your own, why are hundreds (if not thousands) of people employed working for years in order to create those games?

If it were feasible for a publisher to pay 1 guy for 2 - 3 years instead of all those people, they would have swapped to using demi-god programmers a long time ago.

Hello to all my stalkers.


Assume a game with around 15-20 developers (combining all the programmers, artists, modelers, animators, sound engineers) for one year is 15-20 work years. Then throw in designers, producers, marketers, QA, and you're at another 50 work years, for convenience let's say 80. A localization team and their QA adds several more work years, especially if you are targeting more than EFIGS translations. Add in support staff and add another 10 or so.

A small professional game can cost $10M on the bottom line just to build. A very large professional game can cost $100M to build.

Many of the professionally built high quality mobile games pass the million dollar mark, some exceed the ten million dollar mark.

It is extremely rare these days that a one-person game is able to reach very high quality levels and becomes a commercial success. It does happen occasionally that someone invests a great deal of effort and love into a personal project, and that project takes off and becomes successful, but the tales are exceedingly rare.
Again, note that the sole developer, Sangwoo Hong had worked at Disney, Pixar, Square, and EA before making the game, and that he relied on Unity rather than writing his own engine. It is fun to read his web site, it took him 17 months (8 Mar 2011 to 15 Aug 2012) to build a game he says was "created in a month", so I'll let you puzzle over that. The game itself is trivial in comparison to the RPG games mentioned initially. This is what I expect a one-developer game to feel like.

I'm not saying one person cannot develop a game, it has certainly happened many times in the past. Be aware that most "one-developer" programs are actually experienced professionals rather than beginners, and they usually get a lot of additional help near the end. Be aware that one programmer working alone is more likely to produce a game similar to the 1970's era with simple gameplay, simple graphics, and simple logic, such as Cubistry, rather than something like a modern era RPG.

I hope this doesn't come out wrong.
Why would it be comparable to 1970's era.
For example, you've spent a lot of time getting fans/audience (fanpage, blog, youtube, website, other sites etc.) then you spend 9 - 18 months making all the assets, 6 months creating mocap/animation and 9 - 18 months coding. That's 18 - 36 (1.5 - 3 years). You then spend an extra half a year cleaning it up and leading to a total of 2 - 3.5 years. All this in unity/unreal/leadwerks.
Won't this be more possible for a 2d game than a 3d game (and possible for a 3d game).

Is this impossible? You don't have to worry about paying the salaries of 160 people (producers, designers etc.) and feeding them, integrating their different codes into the single game, worrying about a deadline, mass marketing like Apple etc. It's only you.
What would make it so impossible that it would be comparable to a 1970's game and not 0.5% of an AAA/modern game?

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy

This topic is closed to new replies.

Advertisement