-
May 21st, 2003, 02:20 PM
#1
Thread Starter
Addicted Member
Game Programming!!!
Choices, Choices, Choices!!! What is best?? Hi-res 2D, or a more popular (it seems) 3D??? What engine to use... what code??? I have pretty much decided that C++ is the best choice for code ( for a commercial game ). What engine do I use then? Direct X? Open GL? Help!! Comments, Ideas??
To protect time is to protect everything...
-
May 21st, 2003, 02:36 PM
#2
Addicted Member
Ahem...
What kind of game do you want to make? Will you sell it? What's the planned audience?
If you can't tell us more about the game, you shouldn't expect us to give you a good answer...
-
May 21st, 2003, 04:32 PM
#3
Addicted Member
Stick with what you know. 3d is too advanced for me; I don't understand the Euler transforms for rotating points, .. all kinds of things. You will find that if you actually figure things out on your own, what you figure out becomes something you 'never have to look up on the net'. With a name like Virtual24, sounds like you'd like truecolor 3d graphics, in which case I would learn perspective math, ie how points closer to 'you' move faster on screen
-
May 22nd, 2003, 02:45 AM
#4
KING BODWAD XXI
-
May 22nd, 2003, 05:39 AM
#5
So what do you know. DX or OpenGl or neither....Dx has more then jus the graphical part..so I would probably use DX.
You have to choose 2D/3D after what kind og game it is. 3D is more math and stuff, but it isn't to difficult, just takes some more time to make it. Have you made many games before?
-
May 26th, 2003, 12:46 AM
#6
Thread Starter
Addicted Member
Well... I do, or rather did know some DX w/ c++. I haven't a clue about OpenGL except that its an option. Yes the kind of game I envision will be 3d, and i would sell it of course, if it was good enough . I just wanted to know if anyone has had some experience with using wither and knows which is the best way about it. When I attempted to mess around with/learn DX it got very confusing and seemed almost primitive ( it was very poor graphics and slow when compared to commercial games ). How do they go about making something as complicated as a PS2 game? I know they must use computers to do it, they probly don't write it in c++/DX, but perhaps they do and it is converted. I don't know...
To protect time is to protect everything...
-
May 26th, 2003, 12:55 AM
#7
Nearly up untill today. Most games have been written in C and ASM. But the last two years they have startet to use C++. A lot og games are both using OpenGL, and DX. Becuase both are standards for the graphics cards now days. Jhonny Carmack (SP?) (the creator of Doom) and some of the big guys are most often using OpenGL. But they have all said that with DX8 out, and now even DX9 they can't be to sure that OpenGL is the best alternative anymore. So C++ and DX is really the way to go. It is only the programmer that can get the most out of a language. So you better study it hard, before starting something like a game....
-
May 26th, 2003, 01:49 PM
#8
Member
Virtual24 how long have you worked on your games when you say that it were poor graphics and very slow. Professionals make their games in a year or more with a team of at least ten fulltime programmers and artists. Don't expect to be able to create a proffesional game in a year or so.....
if you do make something interesting, perfect its all yours and you should give yourself a big applause!
Jordi
-
May 27th, 2003, 02:38 AM
#9
KING BODWAD XXI
-
May 27th, 2003, 07:12 AM
#10
DX is probably the way to go if you don't care about Cross-Platform. OpenGL's (+ OpenAL etc.) main advantage is that it exists on *nix.
But of course you can simply ignore this particular choice to some extent and use an engine that hides most of it - you'll probably end up doing that anyway. There are some excellent OpenSource engines on sourceforge.
All the buzzt
CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
-
May 27th, 2003, 06:36 PM
#11
Fanatic Member
I personally like OpenGL better because it has better support on older graphics cards. Its easier if you have a descent book on it (Prima Tech has some good stuff). That's only for graphics though. The rest should really be done using DX minus DirectGraphics.
The code could easily be done in C++, Java, or VB, but if you worrying about FPS, then stick with C++ (that is if you can code efficiently in that language.) and for time sensitive parts, do inline assembler.
For your environment, stick with a purely 3D world. This way you can change your camera angle without changing the artwork.
If you use a pre-assembled engine, then the issue is moot, but if not, this is what I would use. I'm sorry if I reiterated what others have said, but I only glanced over the posts.
-
Jul 7th, 2003, 06:38 PM
#12
Hyperactive Member
If a Visual Basic game was good enough to sell, would one be allowed to sell it? Say if it was a MMORPG, that you could play to a certain extent until you payed $5 - $10 for a lifetimes use. Graal does something like this. I'm very curious as to what language it was programmed in...
-
Jul 8th, 2003, 12:13 AM
#13
Fanatic Member
Game Developers use one of 5 languages to program an application: VB, C, C++, assembly, and/or Java. All of these have the capability of creating the same MMORPG.
The problem is that all of these languages have pros and cons. If we were to rank these by efficiency, for example, we would get the following (in descending order):
assemby, C, C++, VB, Java
If we were to rank these by implementation speed, we would get:
VB, Java, C++, C, assembly
Therefore, as the programmer, we must decide which "tool" we should use for the project by judging the resources we have at hand. Now if that application was marketable, you could sell it.
"Can't" and "shouldn't" are two totally separate things.
All questions should be answered. All answers should be true. That is why I post.
-
Jul 8th, 2003, 12:22 AM
#14
Frenzied Member
Originally posted by Darkwraith
The problem is that all of these languages have pros and cons. If we were to rank these by efficiency, for example, we would get the following (in descending order):
assemby, C, C++, VB, Java
If we were to rank these by implementation speed, we would get:
VB, Java, C++, C, assembly
Therefore, as the programmer, we must decide which "tool" we should use for the project by judging the resources we have at hand. Now if that application was marketable, you could sell it.
How do you define efficiency? If you mean code speed, yes, GOOD assembly will outstrip C or C++. If you judge efficiency by, say, the ease of code re-use, or the ease with which a section of code can be replaced, or maintained, etc, assembly is a nightmare, and C++ or Java will rank at the top of the list.
Z.
-
Jul 8th, 2003, 01:10 AM
#15
I would put Java before VB in both execution and implementation speed. The Java3d API seems very well thought out to me.
Add to that things like proper classes, the collection framework (does VB even have anything beside arrays?) and many other things and you have easier, faster and better maintainable implementation.
All the buzzt
CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
-
Jul 8th, 2003, 01:30 AM
#16
KING BODWAD XXI
-
Jul 8th, 2003, 01:43 AM
#17
As I said, Java has proper classes, not like those things in VB which are limited to the capabilites of ActiveX objects (i.e. no inheritance).
VB.Net is ok there, but I guess you are still talking about VB6.
All the buzzt
CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
-
Jul 8th, 2003, 02:03 AM
#18
KING BODWAD XXI
-
Jul 8th, 2003, 02:26 AM
#19
Hyperactive Member
Why does Java take donkeys years to load a little chat-applet? And what's with these 'classes'? I still don't see what is so special about classes... everyone keeps talking about them... saying how important they are in RPGs and games... Yet I've never used them in any of my games.
-
Jul 8th, 2003, 02:53 AM
#20
It takes donkey's years because a chat applet might be more complicated than you'd think, the network connection might be slow and the JVM needs a little bit to start.
For you, that is . For me it doesn't take donkey's years.
Classes enable better code structuring and reuse. Very useful for projects such as games.
All the buzzt
CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
-
Jul 8th, 2003, 03:54 AM
#21
KING BODWAD XXI
-
Jul 8th, 2003, 01:10 PM
#22
Noone programs games in assembly! 99% of ALL games commercially developed today are in C++, few in C.
It's almost impossible to do it in assembly! If you wanted to make a windows form appear on the screa, god it would probably take literally thousands of lines of codes and probably several months making it. Do you have any idea how long it would take to use direct x or opengl and draw a box with assmelby?
it hurts my head thinking about it!
-
Jul 8th, 2003, 01:47 PM
#23
Frenzied Member
Originally posted by kasracer
Noone programs games in assembly! 99% of ALL games commercially developed today are in C++, few in C.
It's almost impossible to do it in assembly! If you wanted to make a windows form appear on the screa, god it would probably take literally thousands of lines of codes and probably several months making it. Do you have any idea how long it would take to use direct x or opengl and draw a box with assmelby?
it hurts my head thinking about it!
Untrue. MASM Assembly is very clean and concise, and provides methods for calling functions in a manner that is closer to higher level languages (if you choose). Your basic "create a window" application will be comparable in length to one written in C.
Z.
-
Jul 8th, 2003, 01:50 PM
#24
But if I remember right there is no "normal" method to use DX with ASM, but if you tweek it a bit it is possible. I have seen it done.
And BTW you could alwasy throw in some ASM code into your C++ code.
-
Jul 8th, 2003, 02:25 PM
#25
Originally posted by Zaei
Untrue. MASM Assembly is very clean and concise, and provides methods for calling functions in a manner that is closer to higher level languages (if you choose). Your basic "create a window" application will be comparable in length to one written in C.
Z.
MASM uses MACROS developed by microsoft to act like a higher level language similar to C. If you're using pure assembly, my statement still stands. if you're using the MACROS microsoft made, then God help you. C is a ***** on memory management and no company uses MASM or ASM to develop games.
-
Jul 8th, 2003, 11:25 PM
#26
Fanatic Member
Java is so slow because it is implemented as a hybrid implemented system. This means that the code is complied (a lot like C and C++) and then the intermediate code is then interpreted (like LISP).
If we were to rank these by efficiency...
efficiency as in speed and code length (NOT what you type, but the PL generates including all components of VMs so you can't cheat with Java )
(Just as reference, I was referring to good code, and not garbage that hacks generate.)
Furthermore, a lot of us program in assembly, albeit not whole applications. That's why C/C++ has the asm (or _asm or __asm) command.
Sorry for playing catchup.
"Can't" and "shouldn't" are two totally separate things.
All questions should be answered. All answers should be true. That is why I post.
-
Jul 9th, 2003, 02:35 AM
#27
Addicted Member
To be precise...
Java generates a byte-code, which is then read andinterprated (executed) by the java virtual machine. This way, system compability is assured (you can run the same java code on an apple, windows-pc, linux-pc,...)
Today, you can compile some versions of Java like C/C++, however, they only run under the system they were written for, then.
-
Jul 9th, 2003, 03:27 AM
#28
The modern VMs use a technology called Just-In-Time (JIT) compilation which gives a huge advantage over interpretation. JIT means that the bytecode is compiled to native code while the program runs. The resulting native code runs much faster than the interpreter and can be cached, so that repeated calls run nearly as fast as native language applications, at the expense of higher memory requirements.
The Sun HotSpot VM for example interprets the first execution of a piece of bytecode, but JITs the next and caches the code. So every subsequent call runs twice as fast as previous calls!
Today, you can compile some versions of Java like C/C++, however, they only run under the system they were written for, then.
Some versions? What do you mean?
There are native compilers for Java, e.g. gcj which is part of the gcc suite.
All the buzzt
CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
-
Jul 9th, 2003, 06:33 AM
#29
Addicted Member
Versions
There are diverse native code compilers for java out there. Not VM's but real compilers. Just search gogle .
-
Jul 9th, 2003, 02:09 PM
#30
Re: To be precise...
Originally posted by CodeRonin
Today, you can compile some versions of Java like C/C++, however, they only run under the system they were written for, then.
Dude... java is it's own platform... it runs on anything...
-
Jul 9th, 2003, 04:02 PM
#31
Fanatic Member
Say for example you have a Mac and a PC. (Same is true for Windows and Linux if you do not want such and extreme example.) If you compile the Java code on the PC, the application will not work for Mac and vice versa. It's said to be "architecture neutral" (and I think "platform independent") if you use the bytecode and the Java VM.
"Can't" and "shouldn't" are two totally separate things.
All questions should be answered. All answers should be true. That is why I post.
-
Jul 10th, 2003, 01:09 AM
#32
Re: Re: To be precise...
Originally posted by kasracer
Dude... java is it's own platform... it runs on anything...
You didn't listen, right?
All the buzzt
CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
-
Jul 10th, 2003, 03:52 AM
#33
I have even heard rumour about it beeing possible to compile Java code into EXE....but then why use JAva in he first place...
-
Jul 10th, 2003, 07:44 AM
#34
Uhh... that's what we're talking about...
All the buzzt
CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
-
Jul 10th, 2003, 02:13 PM
#35
Sorry for miss undersanding....but I can't see one reason to do that. The biggest reason to wirte apps in Java is that it is cross platformed. If you compile it to an EXE, you will lose that, and you could write it in C++ or anything in sted and increase the speed.
-
Jul 10th, 2003, 04:52 PM
#36
Hyperactive Member
So the only reason why Java is so 'big', 'fancy' and has lots and lots of fans... is because it's not dependant on the OS? If you can't compile it into an EXE or anything... how on earth do you market such programs? My main experience with Java is that my friends give me links that lead to these irritating little immature Java scripts.... They quite frankly suck. And you have no warning what so ever... From what I've seen... Java is more for little annoying 10 year old programmers who find the opening and closing of a CDROM hilarous. But then there's also good Java... I've played a nice 3D aircraft game, with great music... and Chat applets are handy as well... But there's also places like Outwar... that use this to actually copy their popups onto your computer... resulting in getting an add every 30 seconds!!
Not even adaware programs can stop that crap.. you've gotta find and delete 'Winservn' or something.
This is just my opinion and 'the facts' of this 'ever so helpful' not dependant on OS language.
-
Jul 10th, 2003, 06:31 PM
#37
Fanatic Member
Java is more for little annoying 10 year old programmers who find the opening and closing of a CDROM hilarous...
This is just my opinion and 'the facts' of this 'ever so helpful' not dependant on OS language.
The programmer is the creator, not the PL. Therefore you have to look at the language objectively and not judge on what has came from it. If we use your line of logic for assembly, it would look like it comes from the depths of hell to wreck havoc on all of cyberspace.
Java is an excellent language if you have an application that needs to run on many different platforms and speed is not an issue. It is another tool for the programmers of the world. Platform independence is one (and the biggest) of the reasons that it is so popular. Another is that you can incorporate a lot of web stuff into it (sorry about my lack of knowledge of what it exactly can do, but I haven't gotten a chance to explore that area yet.)
It is the programmer's responsibility to create apps that are to the public's liking.
"Can't" and "shouldn't" are two totally separate things.
All questions should be answered. All answers should be true. That is why I post.
-
Jul 10th, 2003, 09:12 PM
#38
PowerPoster
Remember: Java Script is not Java.
Remember: Java Applets are not exactly Java Applications.
Note: You can compile Java Applications but you'll lose platform independency.
-
Jul 10th, 2003, 10:03 PM
#39
Fanatic Member
I use the term "application" loosely because you can create a Java program or you can run it in a web page depending on how its programmed.
"Can't" and "shouldn't" are two totally separate things.
All questions should be answered. All answers should be true. That is why I post.
-
Jul 11th, 2003, 01:23 AM
#40
If you can't compile it into an EXE or anything... how on earth do you market such programs?
I've seen three approaches:
1) jar archives can be associated with the Java VM in Windows (and other OSs too).
2) Batch files or shell scripts. Tiny scripts that simply call the Java VM.
3) Small launcher exes, one for each platform. jEdit and NetBeans use that approach.
All the buzzt
CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|