Some questions around game developement
Moderator: Coders of Rage
-
- Chaos Rift Newbie
- Posts: 10
- Joined: Thu Dec 01, 2011 11:15 am
Some questions around game developement
Hello people!
I had some questions i need answears for, Hope some nice people in this comunity can help me.
Note that all theese questions don't have a connection i just want to find the answear of all of my questions.
1. What languages does the Elysian Shadow team use for their game?
2. How can i use Lua together with C++?
3. What reasons is it to use Lua with C++?
4. Why do most programmers not recomend creating games in Java?
5. What library is best for creating C++ games (SDL, Allegro etc etc) ?
Thanks in advance guys!
I had some questions i need answears for, Hope some nice people in this comunity can help me.
Note that all theese questions don't have a connection i just want to find the answear of all of my questions.
1. What languages does the Elysian Shadow team use for their game?
2. How can i use Lua together with C++?
3. What reasons is it to use Lua with C++?
4. Why do most programmers not recomend creating games in Java?
5. What library is best for creating C++ games (SDL, Allegro etc etc) ?
Thanks in advance guys!
- THe Floating Brain
- Chaos Rift Junior
- Posts: 284
- Joined: Tue Dec 28, 2010 7:22 pm
- Current Project: RTS possible Third Person shooter engine.
- Favorite Gaming Platforms: PC, Wii, Xbox 360, GAME CUBE!!!!!!!!!!!!!!!!!!!!!!
- Programming Language of Choice: C/C++, Python 3, C#
- Location: U.S
Re: Some questions around game developement
0: C++ and Lua.
1: You would use the Lua C API (which you can link with your program like you would with SDL or any other library), and something like Luabind or ToLua++.
2: It makes things a heck of a lot easier, for example you dont have to deal with the overhead of your OO structure, and everything can be in one place.
3: The main reason is that Java is slow and games are performance intensive (that's why C++ is generally used or even C#) additionally it is more for business
applications, and web development (Also Java in my opinion is a poorly designed language).
4: It depends on your needs, here is some basic classification:
1: You would use the Lua C API (which you can link with your program like you would with SDL or any other library), and something like Luabind or ToLua++.
2: It makes things a heck of a lot easier, for example you dont have to deal with the overhead of your OO structure, and everything can be in one place.
3: The main reason is that Java is slow and games are performance intensive (that's why C++ is generally used or even C#) additionally it is more for business
applications, and web development (Also Java in my opinion is a poorly designed language).
4: It depends on your needs, here is some basic classification:
"Why did we say we were going to say we were going to change the world tomorrow yesterday? Maybe you can." - Myself
-
- Chaos Rift Newbie
- Posts: 10
- Joined: Thu Dec 01, 2011 11:15 am
Re: Some questions around game developement
Thanks for great answear for my questions!
Tho i wonder if Java still works to create some small browsergames lookalikes.. Im not into creating something big i just want to tinker a bit
Else i found C++ a little bit more complicated, I like the language but i still have much to learn.
Tho i wonder if Java still works to create some small browsergames lookalikes.. Im not into creating something big i just want to tinker a bit
Else i found C++ a little bit more complicated, I like the language but i still have much to learn.
- Ginto8
- ES Beta Backer
- Posts: 1064
- Joined: Tue Jan 06, 2009 4:12 pm
- Programming Language of Choice: C/C++, Java
Re: Some questions around game developement
I'd like to add a little bit of personal experience for 4.
Java is a decent language, but there are two big things that make it unsuitable for game development, and simulation in general.
1) Swing Graphics API. You don't have to use it, but this are the first readily available tool for drawing, and it SUCKS. Its speed is mediocre at best, and it's especially clunky when trying to draw images (e.g. sprites).
2) General Java Bloat. I could write essays on this. Everything in Java is bloated; RTTI is everywhere, EVERY non-primitive type is a heap-based reference capable of being polymorphed, and it seems to encourage doing as much work as possible at run-time. As an example, I wrote a 2D collision test with bouncing balls, and wanted my collision detection method to return the overlap as a vector. To do this I had to have EVERY collision test return a heap-allocated reference. Why? Because Java doesn't allow passing primitives by reference, or creating non-reference data types.
3) Control. When developing a game, you want control. Why? Because simulating hundreds, or maybe thousands, of game objects, with updates 20 or more times per second, is very resource-costly. You can't afford to deal with Java's preset, "one way to do it" system if it just isn't fast enough. If you are writing a game in Java and Java's "Right Way" just doesn't fit, be prepared to cut off a couple toes and sacrifice a goat to get what you want.
Java is a decent language, but there are two big things that make it unsuitable for game development, and simulation in general.
1) Swing Graphics API. You don't have to use it, but this are the first readily available tool for drawing, and it SUCKS. Its speed is mediocre at best, and it's especially clunky when trying to draw images (e.g. sprites).
2) General Java Bloat. I could write essays on this. Everything in Java is bloated; RTTI is everywhere, EVERY non-primitive type is a heap-based reference capable of being polymorphed, and it seems to encourage doing as much work as possible at run-time. As an example, I wrote a 2D collision test with bouncing balls, and wanted my collision detection method to return the overlap as a vector. To do this I had to have EVERY collision test return a heap-allocated reference. Why? Because Java doesn't allow passing primitives by reference, or creating non-reference data types.
3) Control. When developing a game, you want control. Why? Because simulating hundreds, or maybe thousands, of game objects, with updates 20 or more times per second, is very resource-costly. You can't afford to deal with Java's preset, "one way to do it" system if it just isn't fast enough. If you are writing a game in Java and Java's "Right Way" just doesn't fit, be prepared to cut off a couple toes and sacrifice a goat to get what you want.
Quit procrastinating and make something awesome.
Ducky wrote:Give a man some wood, he'll be warm for the night. Put him on fire and he'll be warm for the rest of his life.
- THe Floating Brain
- Chaos Rift Junior
- Posts: 284
- Joined: Tue Dec 28, 2010 7:22 pm
- Current Project: RTS possible Third Person shooter engine.
- Favorite Gaming Platforms: PC, Wii, Xbox 360, GAME CUBE!!!!!!!!!!!!!!!!!!!!!!
- Programming Language of Choice: C/C++, Python 3, C#
- Location: U.S
Re: Some questions around game developement
Hey no prob!TheCompBoy wrote:Thanks for great answear for my questions!
I can not agree more. Additionally no operator and/or method overloading, no non-pure virtual methods unless you inherit from an interface, enums = classes, no pointers, no function pointers, linar inheritance (I guess thats not too important but still ).Ginto8 wrote:I'd like to add a little bit of personal experience for 4.
Java is a decent language, but there are two big things that make it unsuitable for game development, and simulation in general.
1) Swing Graphics API. You don't have to use it, but this are the first readily available tool for drawing, and it SUCKS. Its speed is mediocre at best, and it's especially clunky when trying to draw images (e.g. sprites).
2) General Java Bloat. I could write essays on this. Everything in Java is bloated; RTTI is everywhere, EVERY non-primitive type is a heap-based reference capable of being polymorphed, and it seems to encourage doing as much work as possible at run-time. As an example, I wrote a 2D collision test with bouncing balls, and wanted my collision detection method to return the overlap as a vector. To do this I had to have EVERY collision test return a heap-allocated reference. Why? Because Java doesn't allow passing primitives by reference, or creating non-reference data types.
3) Control. When developing a game, you want control. Why? Because simulating hundreds, or maybe thousands, of game objects, with updates 20 or more times per second, is very resource-costly. You can't afford to deal with Java's preset, "one way to do it" system if it just isn't fast enough. If you are writing a game in Java and Java's "Right Way" just doesn't fit, be prepared to cut off a couple toes and sacrifice a goat to get what you want.
If that is all you are planning to do (say Mario, mega-man) then Java should work just fine, although I would watch out for what Ginto8 pointed out with the '' "Right Way" thing '' you may want to get another graphics libTheCompBoy wrote: Tho i wonder if Java still works to create some small browsergames lookalikes.. Im not into creating something big i just want to tinker a bit
Else i found C++ a little bit more complicated, I like the language but i still have much to learn.
"Why did we say we were going to say we were going to change the world tomorrow yesterday? Maybe you can." - Myself
-
- Chaos Rift Newbie
- Posts: 10
- Joined: Thu Dec 01, 2011 11:15 am
Re: Some questions around game developement
I decided to instead starting with something in Java i would go for something in C++.
I'll go with the SDL library for this game im creating.. This brings me another question tho!
Is Visual C++ still the number 1 IDE or is there something better out there?
I'll go with the SDL library for this game im creating.. This brings me another question tho!
Is Visual C++ still the number 1 IDE or is there something better out there?
- short
- ES Beta Backer
- Posts: 548
- Joined: Thu Apr 30, 2009 2:22 am
- Current Project: c++, c
- Favorite Gaming Platforms: SNES, PS2, SNES, SNES, PC NES
- Programming Language of Choice: c, c++
- Location: Oregon, US
Re: Some questions around game developement
matter of opinion, I happen to think so. But this has been coming into question lately, mostly because how bloated / slow VS is becoming.TheCompBoy wrote:I decided to instead starting with something in Java i would go for something in C++.
I'll go with the SDL library for this game im creating.. This brings me another question tho!
Is Visual C++ still the number 1 IDE or is there something better out there?
My github repository contains the project I am currently working on,
link: https://github.com/bjadamson
link: https://github.com/bjadamson
-
- Chaos Rift Junior
- Posts: 204
- Joined: Mon Nov 21, 2011 3:01 pm
- Current Project: Web browser from scratch
- Favorite Gaming Platforms: SNES, PSP, PS1 and 3
- Programming Language of Choice: C#
- Location: A house near me
- Contact:
Re: Some questions around game developement
If I was to go with a visual studio version, id go for 2008 (9) since it's less bloated and faster. I used to use 2008 just fine according to speed (on a netbook), but since my recent upgrade to 2010, I personally would not recommend it (unless you have a good PC) since it uses around 100mb of memory per instance of visual studio which just makes everything slower. But debuggin on 2010 is very fustrating with speed, so if you are going to do alot of debugging, go for 2008.
-
- Chaos Rift Newbie
- Posts: 10
- Joined: Thu Dec 01, 2011 11:15 am
Re: Some questions around game developement
Im only coding on a laptop at the moment so i would like the slower one, But is VC the only choise or is there other C++ compilers i can choose from that are fairly up to date?
- short
- ES Beta Backer
- Posts: 548
- Joined: Thu Apr 30, 2009 2:22 am
- Current Project: c++, c
- Favorite Gaming Platforms: SNES, PS2, SNES, SNES, PC NES
- Programming Language of Choice: c, c++
- Location: Oregon, US
Re: Some questions around game developement
All of the major compilers implement C++03 completely I believe, if you're looking for C++11 support then take a look at the various compiler's websites for which features they support. Each compiler vendor has picked/chosen features they thought prevalent to implement, so they're kind of all over the place.TheCompBoy wrote:Im only coding on a laptop at the moment so i would like the slower one, But is VC the only choise or is there other C++ compilers i can choose from that are fairly up to date?
My github repository contains the project I am currently working on,
link: https://github.com/bjadamson
link: https://github.com/bjadamson
-
- Chaos Rift Newbie
- Posts: 10
- Joined: Thu Dec 01, 2011 11:15 am
Re: Some questions around game developement
The Netbeans for C/C++ looks pretty good, I already have it installed since i did code some stuff in java, I'll check it out and see if it suits me.
- ismetteren
- Chaos Rift Junior
- Posts: 276
- Joined: Mon Jul 21, 2008 4:13 pm
Re: Some questions around game developement
Just out of interest, is this not the case for most languages, except for C/C++?Ginto8 wrote:To do this I had to have EVERY collision test return a heap-allocated reference. Why? Because Java doesn't allow passing primitives by reference, or creating non-reference data types.
- THe Floating Brain
- Chaos Rift Junior
- Posts: 284
- Joined: Tue Dec 28, 2010 7:22 pm
- Current Project: RTS possible Third Person shooter engine.
- Favorite Gaming Platforms: PC, Wii, Xbox 360, GAME CUBE!!!!!!!!!!!!!!!!!!!!!!
- Programming Language of Choice: C/C++, Python 3, C#
- Location: U.S
Re: Some questions around game developement
I would not assume it for all languages (especially for older ones such as Pascal).ismetteren wrote:Just out of interest, is this not the case for most languages, except for C/C++?Ginto8 wrote:To do this I had to have EVERY collision test return a heap-allocated reference. Why? Because Java doesn't allow passing primitives by reference, or creating non-reference data types.
Just my opinion on the IDE thing, I would choose Qt it is: fast, multi platform, and everything is integrated (even scripting!), although VC++ is more user friendly.
"Why did we say we were going to say we were going to change the world tomorrow yesterday? Maybe you can." - Myself
- JamesParkes
- Chaos Rift Junior
- Posts: 212
- Joined: Sat Jan 07, 2012 4:21 pm
- Current Project: Elysian Shadows
- Favorite Gaming Platforms: Nintendo 64, Xbox 360
- Programming Language of Choice: C++
- Location: Madison, Alabama
- Contact:
Re: Some questions around game developement
Qt for the Win
James Parkes
Computer Programmer, Graphic Artist
Email: parkesrjames@gmail.com
Twitter: http://www.twitter.com/parkesrjames
Facebook: http://www.facebook.com/parkesrjames
Portfolio: http://james.parkesnet.org
Computer Programmer, Graphic Artist
Email: parkesrjames@gmail.com
Twitter: http://www.twitter.com/parkesrjames
Facebook: http://www.facebook.com/parkesrjames
Portfolio: http://james.parkesnet.org
-
- Chaos Rift Junior
- Posts: 204
- Joined: Mon Nov 21, 2011 3:01 pm
- Current Project: Web browser from scratch
- Favorite Gaming Platforms: SNES, PSP, PS1 and 3
- Programming Language of Choice: C#
- Location: A house near me
- Contact:
Re: Some questions around game developement
Quick question, can I learn c++ using just qt? (with help from www for language). I mean, would you recommend me to learn c++ using just the QT IDE. Also, could QT Creator be used without the use of QT API's and only rely on Win32 api's