New to Game Development but not Programming

Started by
9 comments, last by Pufixas 11 years, 1 month ago

Hello,

Before I get started let me tell you a little bit about myself. I've been programming for years now and have a degree in Computer Science where I studied mostly Java. I currently hold a web development position where I work with .NET and C#. I am now proficient in Java, C# and many web languages.

However, I have never done any type of game programming and really want to see what I can do. I should definitely have the programming knowledge to put something together now, but I am just not really sure where to start. I have a few questions and maybe you guys can help.

My biggest concern is graphics. I have absolutely no concept of graphics and am not exactly an artistic guy. What do you do for graphics?

Of C# and Java, which would be best? (I know, I know.. the generic no language is best answer). What's positive/not-so positive about each of these languages in game development terms?

I really am a complete beginner in terms of game development, but I am looking for a response that isn't geared to the programming new guy. I don't need to know how to learn Hello, World. I just need to put it all together!

Thanks!

Advertisement

My biggest concern is graphics. I have absolutely no concept of graphics and am not exactly an artistic guy. What do you do for graphics?

First, which platform you want to program for? If you know C# and Java. You can choose from Android, Windows Phone, PC, Linux and Xbox 360 (although I heard that Microsoft no longer support XNA framework). You didn't specify on which platform you want to develop, so I will assume that you will be developing for PC.

Second, you will need to choose your graphics library.

Here are some choices: SFML, SDL, OpenGL, Allegro.

Ok, so SFML, SDL and Allegro use 2D graphics, but not JUST graphics. They also give you tools for sounds, input, network.

Pluses of these libraries is that they are easy to learn. SFML is probably easiest to learn, is fastest, and has real-time scaling and rotating, while other 2 don't. Also, SFML is based on OO Design, while others aren't. SDL and Allegro is kind of outdated. But with SDL you can make games not just for PC, it's cross-platform.

My recommendation would be SFML. It has bindings to C# and Java.

And now comes OpenGL it's a hardcore graphics ONLY library. You can do 2D, and 3D graphics. For 2D graphics you should know basic trigonometry. But 3D is little bit more involved. So if you will go with OpenGL I recommend you to start small, and don't just dive in 3D right away.

OpenGL is supported by both C# and Java.

Oh I forgot to mention that you can use SFML + OpenGL. So that you will use OpenGL for graphics, and SFML for sounds, input, etc. That's a really great way to go.

Of C# and Java, which would be best? (I know, I know.. the generic no language is best answer). What's positive/not-so positive about each of these languages in game development terms?

I myself use Java for android game development. I had no problems with it. I have never used C# so I don't have opinion on it.

Ok, we have programming part sorted out.

am not exactly an artistic guy

Me neither, but you can always find free sprites and graphics on the internet for starters, and later on you could hire someone to do the graphics for you.

For more in depth game development I recommend watching Extra Credits on youtube.

">

">

">

There's alot more, I recommend subscribing him, he uploads great videos every week.

I hope this post helped you at least a bit. By the way, sorry for my imperfections in English, and for stupid grammar mistakes.

“There are thousands and thousands of people out there leading lives of quiet, screaming desperation, where they work long, hard hours at jobs they hate to enable them to buy things they don't need to impress people they don't like.”? Nigel Marsh

Given your background I think you might want to look at Unity as a starting point. It gives you graphics, sound, etc and while the free version doesn't include a lot of the fancy features it will get you started with the game focused side of things. You can write your code in C#/Javascript/Boo and do pretty much whatever you want without having to worry too much about the backend details.

On the other hand, if you want to get into the lower level details you might look at the .NET bindings for Irrlicht, it just gives you a graphics engine you can call from C# without a lot of infrastructure to rely on so you are free to setup your game objects and AI in anyway you see fit.

Beyond that, I can't suggest anything Java personally. I avoid Java like the plague in general, I hate working in the language compared to nearly any other language. I know you can write good games with Java, I just won't ever being so personally, there are better "game" languages such as C#.

My biggest concern is graphics. I have absolutely no concept of graphics and am not exactly an artistic guy. What do you do for graphics?

If you're talking about assets (player/enemy sprites, tilesets, etc.), you can either harvest some of the free stuff floating around the internet, or throw together your own "programmer art." It doesn't have to be pretty if you're just using it for testing. I've gone with the latter thus far, although I do have somewhat of an art background (Protip: don't get a degree in architecture. Ever.).

Of C# and Java, which would be best? (I know, I know.. the generic no language is best answer). What's positive/not-so positive about each of these languages in game development terms?

C#: XNA exists. Microsoft may have dropped their official support, but it's still great. There's also MonoGame, an open source XNA implementation, which is cross-platform if you're into that sort of thing. As far as I know, the guys behind it intend to keep going despite Microsoft's bizarre loss of interest in XNA.

Java: I can't think of a reason to recommend Java over C# for game programming if you're equally comfortable with both. Err... Minecraft is Java. So... there's that, I guess.

When you can do some basic programming and winforms, layout of 2D objects on a form or webpage, jumping into full on 3D programming isn't that bad. Just remember you will have to learn a lot of mathematics if you aren't current with linear algebra and linear transformations (although most 2D stuff should use this math as well). And read up on shaders, as they replaced the fixed function pipeline and actually made graphics development easier, no more fixed equations to deal with.

You can find art resources on the web for free turbosquid is one such place, I used this when I was doing my masters programming course to get models for my desent like level. Pretty much any image you find on the web can be used as a texture but these can also be found on these free websites.

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion

I'm actually not sure if you meant 'graphics' as in 'design' or programming libraries.

You have a lot of replies that name programming libraries so I won't add to that other than, just pick one and run with it...You can always pick something else if you're not happy with it.. Since it's easier to steer in a moving vehicle...

Regarding design .. Just 'Just do it !' applies as well..

I recently got into the game (development, that is :) ) myself and I'm actually pretty happy with my results after just downloading 'Paint.NET' and playing with it. I know it's not excactly what the 'big guys' use but it's easy and allows me to really focus on experimenting with the basics of colors, shapes and proportions.. :)

I found that after a couple of months of practice things start to go really fast and find a creative side to you that you probably never new existed .. but it will take a couple of months.. at least ..

There are many projects "our there", looking for programmers (see http://www.gamedev.net/classifieds/category/5-hobbyist-projects/). Look at them, select one that looks nice, and explain what you can contribute with. You will probably start with a simple detail, then move on to the next, and continually learn more and more.

[size=2]Current project: Ephenation.
[size=2]Sharing OpenGL experiences: http://ephenationopengl.blogspot.com/

My biggest concern is graphics. I have absolutely no concept of graphics and am not exactly an artistic guy. What do you do for graphics?

Start with a game that does not need refined arts. Remember when computer and game console had very few graphical possibilities (think about Pong...)

Then, like any skill, find tutorials to obtain better assets (pixel arts, color theory, gimp/photoshop, 3D modeling... ) and if you need more stuff like drawing realistic things (objects and beings), consider taking art lessons.

Space Zig-Zag, a casual game of skill for Android by Sporniket-Studio.com

y biggest concern is graphics. I have absolutely no concept of graphics and am not exactly an artistic guy. What do you do for graphics?



Of C# and Java, which would be best? (I know, I know.. the generic no language is best answer). What's positive/not-so positive about each of these languages in game development terms?



I really am a complete beginner in terms of game development, but I am looking for a response that isn't geared to the programming new guy. I don't need to know how to learn Hello, World. I just need to put it all together!

Hi,

Java or C# makes probably no difference. Both have been used alone or with other languages to make fantastic games, some popular sold titles. Some make a convincing case that Java coding targeting the Java Runtime Environment or other cross-platform implementation is going to be a growing trend with more games made for PC, Mac, and mobile devices. On the other hand, C# is simply a joy to use and quite powerful in its own right. Using Mono or SharpDX to get C# games cross-platform is realistic, such as how the Unity 3D was created on Mono, for example. Really, pick your preference or flip a coin for it, makes no difference at this stage in my opinion.

I highly recommend in your case that you choose a language and then a game engine which uses it.

List of Game Engines (Note: Only a partial list but important)

http://en.wikipedia.org/wiki/List_of_game_engines

Game engines like Unity 3D (Open Source version) or Torque 3D (MIT license) have big communities which can support you, so look for an engine with that. The big names have a lot of dedicated art assets which you can buy or get for free. Some you can customize. Besides that, there are thousands of people providing art assets online in every category.

I personally am a 2D/3D artist, IT Consultant in the industry, and hobby developer, so I kind of know what I am talking here. wink.png

1) Choose a language to start

2) Pick a game engine using that language which meets all your needs, including art assets available and community support

3) Make 3 to 5 simple 2D games using the game engine such as these:

Pong

Tetris

Asteroids

Pac Man

Defender

Mario Brothers

Galaxy

... or other simple 2D games. Yes! You can use a 3D engine to make a 2D or 2.5D game! For example, Torgue 2D release is focused on 2D and you can grow to 3D version of Torque 3D after a few months. Make each game well and add your own features before moving to the next. Respect copyrights, but you can make your own version for your private purposes.

Making your own game engine would take years by itself to create a powerful one, so I recommend using an existing engine. Some of them allow quite a lot of customizing of graphics once the time comes.

Once you begin to make unique games, then the open source or MIT license permit you to publish or even make money from your game, depending on license! biggrin.png

After you get skills and something to show for it, you probably can find artists who want to join you.

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

Thanks for all of the replies, guys. I plan on primarily developing for the PC for now, so I think I am going to stick with C# and go that way (I've enjoyed working with C# a lot more than Java, honestly... so that plays into it also). I'm looking into the Unity3D engine and hopefully can pick up on how to use that.

Does anybody have some good tutorials to point me to for this specific route?

Thanks again for all of the advice. Helped a lot and I'm really looking forward to getting started.

This topic is closed to new replies.

Advertisement