Game Development Discussion

  • (2 Pages)
  • +
  • 1
  • 2

16 Replies - 1400 Views - Last Post: 04 October 2012 - 01:58 AM Rate Topic: -----

#1 vishnukumarj  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 7
  • Joined: 24-September 09

Game Development Discussion

Posted 25 September 2012 - 08:53 PM

Good morning to all. I am Vishnu Kumar, MS (Software Engineering) graduate, fresher, 2012 passed out. And i am another one in your way with a dream to develop a game. I had gone through plenty of articles and topics (pinned in this forum too) but i find that, basic information i am looking for is missing. Also what i want is, someone or all putting their hand in my shoulder, sitting down and just discussing with me about the way i should go forward to fulfill my dream. I will keep it in short so you don't get headache :)

My Programming Knowledge:
I consider myself more than beginner in programming language and software development. I am pretty comfortably at C, C++, Java and .NET (C#). i was taught in hierarchy, so fortunately i know the basics very well. I know PHP too but i hadn't worked with real time servers and don't know CSS. So, working with website became difficult for me.

In simple, i am straight from doing academic projects, learning programming through books and doing some applications into game development (no prior experience).

My Game:
At short, i don't know how to categorize my game like RGP or Simulator. What i am going to develop is inspired from www.newstarsoccer.com . I should say it is role playing simulation game. Mine will be cricket not soccer. I had read plenty of people trying to develop the single player based cricket game but none is yet official came out. But irrespective of that, i am still interested in developing mine.

I won't be straightaway starting to do a 3D game. At first, i want to develop a text based game and release it. Through this process, i would have learnt lot. Then i will go for developing in 3D.

My questions:

I went along reading topics under "how to start game development" hours, but i am back to beginning point in the end. People said about helping tools, game engines, style of working and what constrains a long process of programming throws up.

1)But my basic problem is which language to choose? C++ or Java or .NET? which is better and good? (assume my knowledge in all is same)

2)Is using a Game Engine irrespective of the programming language i choose helps me out lot being independent developer? If i use one, then i must be doing all my coding stuff's in that Game Engine software/framework itself and finally a deployment .exe file will be generated (software package), right?

Platform: At moment, i target only Windows. If i use Java, then i think automatically the game will become platform independent but read that people in articles suggesting to use C++ though.

Game Style: Text-Based simulator.. No 3D but audio will be used.

Database: Knew MySQL, SQL and SQLite. So no worries in these area i think. But again which one is better?(SQL is not free right?)

Thats all for now, will raise more questions if needed as follow-up to the answers.

I am still waiting for Date of Joining, so in a way my hands at money is tied. I can't spend lots of money to purchase softwares too. Tried to send me game ideas to companies in an effort to get a job as game developer but none replied back. I named my game as "Dream Cricket" and i hope it won't die as dream itself.

If you need more details, i am ready to provide. Don't know why but i feel, i learn better through discussing with others than reading all by myself. Thanks, waiting for replies.

Is This A Good Question/Topic? 0
  • +

Replies To: Game Development Discussion

#2 BBeck  Icon User is offline

  • Here to help.
  • member icon


Reputation: 581
  • View blog
  • Posts: 1,290
  • Joined: 24-April 12

Re: Game Development Discussion

Posted 26 September 2012 - 04:49 AM

If I were you - with your background, I would develop the game in C# 2010 with XNA 4.0 (both free downloads off of Microsoft's website). Then if I decided to try and sell it or distribute it, I would then think about re-writing it in C++. (I'm not a Java guy, so I can't really tell you when that's the best solution.)

As ButchDean pointed out the other day, XNA has a questionable future, but C# doesn't. Microsoft has already said you will be able to program 2D games in C# in Windows 8. (The only real question is whether you will be able to do 3D in C# or if you will have all the capabilities XNA has provided.) But also XNA will help you get the project done more quickly. And once you get it done in XNA, it would be much easier to port it over to C++. If nothing else, all your art assets would be done at that point.

And incidentally, that soccer (football) game was in 2D. They are faking 3D in it.

I assume we are talking about the Cricket game here (which sounds like a really cool idea to me) and not the text based stuff. It would probably be about equally as easy to use any language to do something text based.

I don't think you need a database. If you have a whole lot of data to deal with, and especially if you want to modify it a whole lot or - even more so - if you want others to modify it, then a database may make sense. For example, if you wanted to have real world player stats that involve a lot of variables, then maybe you might want to use a database. Or especially if you wanted to make a game that the mod community would pick up and would want to make extensive modifications of the data.

I'm a professional Database Administrator, and I'm not sure I would use a database for this project.

SQL Server has two free editions. There is an Express edition that is almost a full version of SQL Server limited to one processor and about 1 GB of memory. Then there is the Compact edition that is more intended for mobile devices.

This post has been edited by BBeck: 26 September 2012 - 04:54 AM

Was This Post Helpful? 0
  • +
  • -

#3 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 1
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: Game Development Discussion

Posted 26 September 2012 - 09:46 AM

As a quick note from me I'd be more inclined to look into Unity for the following reasons:

1. It uses C# as BBeck rightly suggests as a good language to start with.
2. It isn't going to be obsolete anytime soon.
3. It is used for professional game development.
4. You can create good quality games with it.

It isn't my personal favorite environment, but you will be giving yourself a head start in becoming a good game developer with marketable skills if you take this route.

Good luck.
Was This Post Helpful? 1
  • +
  • -

#4 magius96  Icon User is offline

  • D.I.C Addict
  • member icon

Reputation: 71
  • View blog
  • Posts: 782
  • Joined: 15-April 09

Re: Game Development Discussion

Posted 26 September 2012 - 11:12 AM

Wow, that's one heavy questions your lugging around on your shoulders. Let's see if I can't make it a little bit lighter, eh?

Your first question was in regards to programming languages. To answer this, you first have to identify where your target market is. If your target market includes smartphones or tablets, you should definitely consider Java. If your target market only involves Computers, laptops, windows tablets, and XBox 360, then C# and XNA is the perfect match. If your targeting any other gaming console, chances are you'll want to go C++.

Your next question was in regards to game engine. The choice in game engine comes down to what time of game you want to build and what platforms you are targeting, but is further limited by the language you choose. It could be the other way around as well. You could choose your game engine, but by doing so you are also selecting the language to code in and limiting your target market to the respective devices. There are many game engines out there, and many of them are either free or offer a trial. Beyond that, you can (and probably should) build your own game engine.

Building your own game engine can be very rewarding, as you'll learn a lot as you go. If you go this route you'll have to decide what the game engine should provide. A game engine for an RPG (Role playing adventure game) is entirely different from a game engine for a racing game, however they both might share quite a bit of their functionality. For instance, both games might use a sprite manager to manage what sprites are being displayed and where they are. But only the RPG game engine will need a battle manager as there might not be battles in the racing game.

In terms of database, you now have to ask yourself, how is the game being accessed by your target audience? If your target audience is going to download the game and play it, you might want to steer clear of database engines such as MySql and Ms Sql, as you can't guarantee the target system will have it installed, or even that it'll have the right version. However, if your game is to be a browser based game, then a database engine is almost a must in order to provide all the extra bells and whistles our society has gotten used to.

If your game is a download style game, then you'll want to consider other data management options, such as XML files, CSV files, text files, and Binary files. Every option has it's own pros and cons, you just have to do a bit of research on them.

I know that I haven't really answered your question, but that's because there is no one correct answer. Don't let anyone tell you that there is, either. As with most things in programming, there is no one correct way of doing anything, but rather a bunch of different options. What's perfect for one person may be totally wrong for another.

Best suggestion is to start by planning your game completely. Write a game bible, then decide who your target market is and let that help in deciding the rest.
Was This Post Helpful? 0
  • +
  • -

#5 darek9576  Icon User is offline

  • D.I.C Lover

Reputation: 198
  • View blog
  • Posts: 1,692
  • Joined: 13-March 10

Re: Game Development Discussion

Posted 26 September 2012 - 12:15 PM

Do i understand it correctly? You have a MS degree and you consider yourself a beginner in programming.? I get it if your MS was in theory of computation but it's in SE.
Was This Post Helpful? 0
  • +
  • -

#6 vishnukumarj  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 7
  • Joined: 24-September 09

Re: Game Development Discussion

Posted 27 September 2012 - 07:23 AM

@darek

Haha... Just being modest is always a safe bet to have a good and long discussion. Truth is, in all my 5 years of course study, i was forced to switch between C, C++, Java, C# and PHP with requirements of semester subject thrown up. At the moment, i can code in all languages but if you ask me to choose one for in-depth programming like what gaming depends, then problems raises in my mind. For example, i didn't got a chance to touch on graphics in C and C++. But java, i was forced to learn Applets (I hate it completely). Then came Javascript (was really excited in learning it) but was never thought beyond than very basic like calling fn when a button is clicked. Then did my 7th semester project in MATLAB (Automatic cricket highlights generation)... IN 8th semester, setting with C# and in 9th semester, PHP.. Then again in 10th semester project, used JAVA Swing (cricket related project).

So in almost each semester i was learning a new language, thus i can't able to proceed further in previously learned language. Each semester had 6 papers, so hands are tied in extra time readings.
Was This Post Helpful? 0
  • +
  • -

#7 vishnukumarj  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 7
  • Joined: 24-September 09

Re: Game Development Discussion

Posted 27 September 2012 - 07:28 AM

@darek .... Between i said, i am more than a beginner.... not a beginner..
Was This Post Helpful? 0
  • +
  • -

#8 vishnukumarj  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 7
  • Joined: 24-September 09

Re: Game Development Discussion

Posted 27 September 2012 - 07:47 AM

Thanks Magius, ButchDean and Bbeck... After reading all your suggestion, i decided some things but need a little more details on Game Engine.

Can you tell me what are good Game Engines available as free? Also what language we have to use in it for coding? like x Game Engine and C++ language like that...

My friends wanted to go for smartphones since it is the hot market now.. But for me, PC is always best and thats where i am aiming.. So with Game Engine information, i will trim down my target audience and we will move to next step.
Was This Post Helpful? 0
  • +
  • -

#9 magius96  Icon User is offline

  • D.I.C Addict
  • member icon

Reputation: 71
  • View blog
  • Posts: 782
  • Joined: 15-April 09

Re: Game Development Discussion

Posted 28 September 2012 - 08:17 AM

I can't really provide any good references on game engines, but I'll tell you what I've used and what I think of them now.

FlatRedBall - A free game development engine. I loved it several years ago before they moved to their GLUE development application. It's got a lot of backing and is updated on a regular basis. Could be a really great forerunner in the game engine market. I don't use it anymore because I personally don't like the direction they've gone with it, but I can see the merit of it and how it could definately help even beginning game developers make massive projects. This is written on XNA

XNA - Ok, so this isn't really a game engine, but for me it provides everything I need. I prefer to stay closer to the code, which is why I prefer using XNA over a game engine built on top of it.

GameMaker - I personally consider this to be cheating, but it is a viable way to may games. I use it more for concept development game design as it's way easier and faster to setup and test those kinds of things in this. GameMaker is a program that allows you to make all kinds of simple games without ever writing a single line of code, but it does include it's own scripting language known as GML for doing more advanced stuff. The GameMaker is limited on what platforms it can support, but if your looking for windows only development it's a good fit along with the rest. This is NOT FREE.

There are lots of other game engine and game development tools. Your best bet is to break out your trusty Google or Bing or whatever search engine you use and start surfing. It may take a while, but you'll eventually find that perfect engine that seems to be made just for you...even if you have to make it yourself.
Was This Post Helpful? 0
  • +
  • -

#10 BBeck  Icon User is offline

  • Here to help.
  • member icon


Reputation: 581
  • View blog
  • Posts: 1,290
  • Joined: 24-April 12

Re: Game Development Discussion

Posted 28 September 2012 - 10:38 AM

I agree with Magius.

I don't really do 2D. So I don't know what the best option is there, especially for a game engine. Personally, I would stay away from game engines because I think you need to know how things work at the low level in order to use the game engine well. But once you get ready to turn out a commercial product, I think you almost have to use a game engine as an independent game designer. It can save you a tremendous amount of work, if you know how to use the game engine well.

I've only looked at 3D game engines. Unity is basically free. I think it costs some fairly serious money if you are using it to make money though. Torque used to likewise cost a lot of money if you were going to be making a lot of money with it. I think it just became 100% free recently. If I were considering a 3D engine at this point, that's where I would be going. I have a very old Torque license before they released the current version of Torque 3D. I played with their engine back then for about half a year. I like it, but I think you have to get under the hood and modify the C++ code to not only modify it and make something you can call your own, but also just to understand how the engine works. Back then I read 4 or 5 books on Torque and they barely scratched the surface of understanding it.

I'm definately an XNA evangalist even if that's not what I do for a living. If I were going to get serious about 2D game programming with the goal of writing something to sell by pursuing the shortest path to that, I would probably focus on learning 2D game creation in XNA. Then I would develop prototypes in XNA. And then I would look at developing the actual product in either HTML5 (because it seems to be where things are heading) or maybe C++ (because you just can't go wrong with C++ except that it's a bit difficult and time consuming).

If I were bound and determined to go beyond my capabilities with physics in the game, I would consider using a physics engine (although personally I feel confident enough with my own physics abilities to tackle it directly). But short of an engine that I think might help my development time and handle some things that I don't want to deal with, I would probably stay close to the code with XNA or C++ or something and generally avoid engines.

2D game development is VERY different than 3D game development. There's some overlap, but there's a whole lot that you can get away with misunderstanding in 2D that will later have to be addressed when you move into 3D. I say that to point out that the approach you take can be strongly influenced by the decision whether to pursue 2D or 3D. For example, HTML5 might be a viable solution for 2D games, but it's certainly not viable for 3D. Likewise, developing a a game like Angry Birds in C++ may be kind of over-kill when you could develop it in 1/10th of the time in HTML5.

I'm also still holding out the hope that C# will be at least a good choice for doing 2D games in the future, if not 3D. I'm hoping it will have a new version of something like XNA in it regardless of whether it's truly XNA or not. But that may be too much to hope for.

Anyway, you are absolutely correct that there is a huge difference between knowing how to program in C++ and knowing how to do graphics programming in C++. For 2D, it may not be that much more difficult than Windows programming in C++ (Windows programming in C++ is also an entirely different ability from C++ programming). But once you get into 3D graphics programming, you'll find that learning C++ was the easy part.

In 2D, you just don't do anything that's graphically complex. Basically, you just draw sprites on the screen, which is something you can learn in a single day. You can get a little more complex than that, but that's basically it for 2D graphics programming. But for 3D, it's about 10,000 times more complex than that. I can't even begin to describe how much more complicated it is. But my point is that, you can be cranking out a lot of 2D games without knowing much more than the absolute basics of graphics programming. I mean you're probably not even going to get into matrices or use vectors properly in 2D (unless maybe you do your own physics). You almost certainly won't be getting into High Level Shader Language and programming and getting into writing your own vertex and geometry shaders. For the absolutely most advanced 2D graphics you "might" get into pixel shaders, but that's almost certainly highly optional. Whereas even basic interior lighting in 3D absolutely requires you to have a solid understanding of the entire graphics pipeline.

Anyway, I don't know enough about 2D game engines to really make a recommendation. Personally, I would consider getting started in XNA, and then waiting a couple of months to see how Windows 8 is going to change the Windows "game". Hopefully, after the end of the year there will be a more clear picture of how Windows developers are expected to develop games for Windows 8. Within the next year Windows 8 should be running on phones, tablets, slates, PCs, and the new XBox. So, any program you design for PC will run under Windows 8 on all those devices that run Windows 8; you write one program and it simply works on all those devices without any seperate coding for them. (Although, I'm kind of guessing on that in regards to the new XBox. But Microsoft has already said that anything written for Windows 8 PCs will run on the new Windows Phone that's probably going to come out next year as well as Windows 8 tablets.)
Was This Post Helpful? 0
  • +
  • -

#11 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 1
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: Game Development Discussion

Posted 28 September 2012 - 12:00 PM

There is one thing that I personally don't understand. With all the effort in picking a game engine, then learning it, you could very well just pick up and API like DirectX or OpenGL and C++ and code something immediately! I wrote my first 3D game before I even imagined the existence of game making tools.

Just do it if you're going to code a game.
Was This Post Helpful? 0
  • +
  • -

#12 BBeck  Icon User is offline

  • Here to help.
  • member icon


Reputation: 581
  • View blog
  • Posts: 1,290
  • Joined: 24-April 12

Re: Game Development Discussion

Posted 28 September 2012 - 01:12 PM

View PostButchDean, on 28 September 2012 - 01:00 PM, said:

There is one thing that I personally don't understand. With all the effort in picking a game engine, then learning it, you could very well just pick up and API like DirectX or OpenGL and C++ and code something immediately! I wrote my first 3D game before I even imagined the existence of game making tools.

Just do it if you're going to code a game.


I have to kind of agree with that. Torque is really the only engine that I've ever really worked with to any extent. And I abandoned it years ago in favor of just learning how to do it myself. I mean there's definately an advantage to having several million lines of code already written for you, but they're not going to do you much good if you don't know how to write them yourself, because you are likely to either have to understand how the engine works under the cover - in order to really make use of it and understand what it's doing externally - OR you're going to need to modify it, which again will require a deep understanding of the code. Any way you look at it, learning an engine is likely to take almost as long as just doing it yourself.

I'm really excited about hearing that Torque is now free, but I haven't downloaded it just because I figure any time I spend with it is time I could have been learning game programming rather than learning more about the engine. I don't know. Maybe at some point I'll download it, but I really want to be pretty close to the point of knowing how to write the whole thing myself before going back to it.

Oh. I should add that when I said "I think you almost have to use a game engine" I meant for 3D and not for 2D. For 2D I don't think I would ever use one. But for 3D it would take a tremendous amount of time for one person to duplicate the amount of C++ code in Torque. And so it makes a lot more sense to me that you might take advantage of that code base to put you that far ahead as you "begin". On the other hand, you'll spend many years getting the knowledge to even understand the type of code in an engine like Torque, and then you'll spend probably a good year learning Torque after that.

Of course it also depends tremendously on what sort of game you're trying to produce. If it's 3D Pacman, I know of a guy who says he put that together in a week with the help of just a couple of friends (mostly to write the music for him I think) without an engine. So, you obviously don't need an engine for that. On the other hand, if you're trying to do something closer to a modern 3rd person shooter, I'm not even sure that's possible for a small team, but having the engine already written and just needing to mod it a bit and design levels and artwork could put you a whole lot closer to achieving the goal.

This post has been edited by BBeck: 28 September 2012 - 01:25 PM

Was This Post Helpful? 1
  • +
  • -

#13 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 1
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: Game Development Discussion

Posted 28 September 2012 - 04:11 PM

View PostBBeck, on 28 September 2012 - 09:12 PM, said:

Of course it also depends tremendously on what sort of game you're trying to produce. If it's 3D Pacman, I know of a guy who says he put that together in a week with the help of just a couple of friends (mostly to write the music for him I think) without an engine. So, you obviously don't need an engine for that. On the other hand, if you're trying to do something closer to a modern 3rd person shooter, I'm not even sure that's possible for a small team, but having the engine already written and just needing to mod it a bit and design levels and artwork could put you a whole lot closer to achieving the goal.

The problem here is that people who have no idea how to make games are trying to decide what they need to make a game. What they should be doing is make a few games first before they decide to attempt to make a title that is clearly well beyond their reach. No matter what they use, if they have no idea how to make a game and the title is ambitious it won't be done.
Was This Post Helpful? 0
  • +
  • -

#14 vishnukumarj  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 7
  • Joined: 24-September 09

Re: Game Development Discussion

Posted 02 October 2012 - 09:50 AM

Done some research in google and found some very very interesting suggestions.. Especially this article .... I am really leaning towards to XNA now.. It is now either C++ (Visual C++ Express) or XNA (C#)...

Thing here is... i just literally don't know what a Game Engine does, that's why i just asked which one is good and whether its good to use. I would have tried surely to read and code in C++ to create a window, background colors, menus, timers (triggering DB for creating fixtures, match results,etc.,)... But what i worried is, i don't want another break down in this attempt. I already began and broke down in my attempt to create this same game a year ago... ( I went for PHP & MySQL - online version)... Thats why i am extra careful this time.


Once i start doing atleast something, then i will start knowing more i think.... Then, we can have even more productive discussion..

I will just a do a simple game first through C++ and then through XNA... then, i will work out which one i find suitable for me? good? .... For C++, this tutorial will help me i think? or any other good one exist?.... C++ and SFML (SFML can be used in XNA too... so, kinda reduce my work)... okay?
Was This Post Helpful? 0
  • +
  • -

#15 magius96  Icon User is offline

  • D.I.C Addict
  • member icon

Reputation: 71
  • View blog
  • Posts: 782
  • Joined: 15-April 09

Re: Game Development Discussion

Posted 03 October 2012 - 08:24 AM

A game engine is basically a system of code modules designed to make game development easier by hiding all the more complicated stuff. Designing a game engine takes time, considerable thought, and some trial and error.

If your going to set out on the quest to develop your own game engine, and I agree that every game developer should try at least once, then you need to set your compiler aside for a bit. Wake up your mighty brain cells and get to thinking about what the game engine should do for you. Write down everything you think the game engine should do for you. At this stage, don't criticize any thoughts you might have, this is the brainstorming stage, so every thought is a valid one.

When you get to the point that you feel that you've written down everything the game engine should do, you should go back through and seperate every thought into categories and name these categories according to what they do. For instance, you could put all thoughts related to graphics, images, and drawing into a graphics category, and all music and sound effects into a sound category.

By the time you get that done, you've gotten the basic outline for your game engine comleted. There's still much to be done, but hey, it's a start.

For this next step you must realize that a game engine should be usable to create more than one game, sometimes more than one game type. With that knowledge, go back through each category and remove ideas that would relate entirely to only one game or game type. I call this the generalization phase. Don't destroy these ideas, instead they should go into your game planning, as we're leaving these to be handled by the game itself, not the game engine.

At this point each category should be considered a management object, the graphics category created earlier will now be a graphics manager. You should now go back through each management object and add functionality to make them easier to use, or to simply add more functionality.

If you understood and followed all the above, you should now have a well designed plan for your game engine. Now you start writing the code, one management object at a time. Keep a seperate game project going at the same time in which you can test your new management objects to ensure proper functionality.

Once you've gotten all the management objects built, the only thing left is to use it to create a game. I will warn you however, that your game engine will not be perfect the first time. Game engines always need updating to make them faster, easier, more streamlined, etc.

That's the underbelly of how to create a game engine, now for a fair definition of what a game engine is. A game engine tends to be a collection of asset managers written with the intent of making game development easier. Most game engines tend to focus on only a select few types of game genres. The more focused a game engine is, the easier it tends to be to build a game with it, and the less customization a game can take advantage of without directly modifying the game engine itself. Game engines designed to target larger quantity of game genres tend to be larger engines with steeper learning curves but offer much more customization and lots more features.
Was This Post Helpful? 1
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2