Archived

This topic is now archived and is closed to further replies.

Grizwald

Game Programming Language..

Recommended Posts

I don't want any crazy "my language is better than yours" posts in here (bishop_pass, sabreman) *cough* but I think we all can agree that for every task there is an ideal language. but what about game programming. I have yet to see an *ideal* language for game programming. built in vectors, algebraic sets. a syntax that easily allows creation of trees and lists. what features would be useful in a game - oriented language? I don't want any remarks about any language in exsistence..as far as i care there are no other languages. If a feature that you like is in a language, state the feature specifically, not the language. -cody [edited by - Grizwald on April 29, 2003 10:43:05 PM]

Share this post


Link to post
Share on other sites
quote:

I have yet to see an *ideal* language for game programming.



... this can only end badly.

quote:

If a feature that you like is in a language, state the feature specifically, not the language.



But in spirit of the post I'll participate.
I like the way .NET encapsulates the Windows GDI and gives you a nice and easy-to-use class library for quick and dirty 2D programming. Sorry I can't be more specific then that.

[edited by - wyrd on April 30, 2003 1:26:09 AM]

[edited by - wyrd on April 30, 2003 1:26:34 AM]

Share this post


Link to post
Share on other sites
if your serious about it i would say C/C++ or something that
compiles into efficient code like delphi.

also depends if you want to use directx, its alot easier in
visual c++ than any other compiler

but gl can be done from anything but not as much documentation, sure lots of examples out there but the dx sdk comes with these.

thats about it


A GOOD friend will come bail you out of jail...
but, a TRUE friend will be sitting next to you saying, "Damn, we fucked up."
Ingite 3D Game Engine Home -- Just click it

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Variables HTML! a game programming language probably shouldn''t have any complex types built in to allow for freedom.

Share this post


Link to post
Share on other sites
quote:
Original post by Grizwald
I don''t want any crazy "my language is better than yours" posts in here (bishop_pass, sabreman) *cough*

I already prejudiced against this thread. I really don''t think it''s as interesting as it could be.


_______________________________

"To understand the horse you''ll find that you''re going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses


ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | LANL | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.

Share this post


Link to post
Share on other sites
would this include only the pure and naked language or the available libs too? as i always thought thats the idea behind libs.. being more or less ideal for a certain task and potentially available for different languages.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
also depends if you want to use directx, its alot easier in
visual c++ than any other compiler

easier than any other directX compiler? not easier than blitz3d.

ill just post a link intead of posting the features. you can click on "features", (after reading the quotes of course)
http://www.blitzbasic.com/Blitz3D/index.php

Share this post


Link to post
Share on other sites
SabreMan, bishop_pass and others have said this before so I''ll probably sound like a me too! poster, but what I like about Lisp is that it lets you fit the language to your problem, not vice versa. It''s not a me too! post because I say it from experience. In the relatively short time I''ve been using Lisp (roughly a month or two) I''ve personally found virtually every claim SabreMan et al made about Lisp to be true.

So my answer to what do you like about Lisp pertaining to game programming? Everything.

Share this post


Link to post
Share on other sites
It depends. Noobies like BASIC. It is very easy to learn, and it works with DirectX. Otherwise, most people use C++. It has a ton of libraries. java is common, but is slow. Lastly, is scripting and ASM. It really is jsut time, budget, and preference.

Scott

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Can someone justify learing and using C++ so you can make games, when you already have blitz3D?

Share this post


Link to post
Share on other sites
quote:
Original post by Anonymous Poster
Can someone justify learing and using C++ so you can make games, when you already have blitz3D?


I am sure many can. My question to you is, how many companies use blitz3D to develop commercial games?

If you want to get a job sooner or later, I think C++ will open a few more doors than blitz3D...

Share this post


Link to post
Share on other sites
so a language that is moldable to the problem at hand...i like this
i have a lisp compiler, and i've checked out some source, looks ok...kinda wierd at first, but every new language is to me. But what allows LISP to mold like that? what specific features?

[edited by - Grizwald on April 30, 2003 10:07:13 PM]

Share this post


Link to post
Share on other sites
quote:
Original post by Grizwald
But what allows LISP to mold like that? what specific features?

Guess what? This thread is probably going to be the next Lisp thread. There''s always one going, and now it''s going to be this one. The cat''s out of the bag.

To answer your question in one paragraph is hard to do. The language of Lisp is not exactly a traditional programming language; in some ways it''s more, and in some ways it''s less.

Consider: Lisp is really a core of programming features providing access to the already parsed code structure which exists in the pipelined stage of compilation of any compiler. That stage is the stage after the code has been parsed, but before it has been converted to native machine code.

Think of a C compiler which reads C code, and then parses it into syntax trees (right term?). This data (the syntax trees) is Lisp, both as data and code. Lisp then provides both sides of the pipeline process: the reader stage, and the compiler stage as functions within the language.

Lisp data is lists and trees. Lisp code is trees (the intermediary process of any language compiler). Lisp provides the mechanisms to manipuluate, create and dissect the intermediary stage that exists within any language compiler. And Lisp provides the mechanism to work the process before that intermediary process (the read) and Lisp provides the mechanism to work the process after that intermediary process (the final compilation to native machine code).

Combine the above features with the following datatypes: integers, strings, floats, complex numbers, ratios, bignums, structs, arrays, bitfields, hash tables, and the symbol.

The symbol is the final triumph in Lisp, letting variables not only be useful when assigned, but giving variables utility without assignment: The idea is that a variable has a name, and the name of the variable itself has meaning as a symbol.

_______________________________

"To understand the horse you''ll find that you''re going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses


ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | LANL | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.

Share this post


Link to post
Share on other sites
So again, imagine yourself not programming before the parse stage in an IDE such as a C compiler, but instead imagine yourself programming with the internal state of the compiler's data as it is running, having access to the code while it is in that state, and being able to call the funcionality of the compiler with code that is either produced by yourself or by the very program you've written.

Furthermore, realize that since Lisp code is Lisp data, and we have access to the compile function at runtime, it is trivial to (at runtime) take virtually any data (scripts, infix syntax, postfix data, or any language we have dreamed up) and dynamically, at runtime, rearrange it into straight Lisp code, and compile it for execution, and then discard it if we so desire, or have the end user change the code, and recompile, or even provide the end user with the ability to grow and redefine the language declaritively...

[edited by - bishop_pass on May 1, 2003 12:05:48 PM]

Share this post


Link to post
Share on other sites
I personally don''t think such a language exists just yet. Personally, I''m a believer in bytecode JIT/VMs. I think they''re the future, as overhead is becoming smaller thanks to faster machines and threading allowing for painless and easy garbage collection I think languages need to move in this direction.

LISP is nice, but I''m not a fan of recursion. I think my main issue with it is that it maybe easy to understand for the programmer making the interpretor/compiler, but that doesn''t mean it''s a good language. I think there might be more straightforward languages out there or being made or being thought up or what have you which are as abstractable.

I like how LISP can build up to your needs, but I''m still no convinced it''s the "right" way to do things.

Then there is Java, which probably has one of the most advanced VMs around, but there are many issues with how it''s versioned and so on. Not to mention, Sun needs to let go in some areas till it can really improve. Besides which I don''t believe in purely OO languages. I think multi-paradigm languages are better.

Then there are the Aspect based languages on the horizon, but since I don''t know much about them, I''m not going to go any further than mention that they''re around.

In closing, I think a new language might be in order. I''m not particularly keen on blitz, especially since it''s not free and is D3D centric. I''m pro ogl for more than just political reasons.

Ultimately, I think a new language needs to be created which takes the plus points of the languages out there right now and keeps clean syntax. I don''t think you need low level access to get high performance, so long as it''s design by contract, you can specify the minimalist needs and the code can then be optimized to run as fast as possible using the optimization routines built into the VM/JIT compiler for the specific hardware.

Some of you might be interested in the following, http://sourceforge.net/projects/open-mind/

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:

I am sure many can. My question to you is, how many companies use blitz3D to develop commercial games?

If you want to get a job sooner or later, I think C++ will open a few more doors than blitz3D...



I said to make games. (I see why it might seem like you need to work in a company to finish one if you use C++)

What percentage of people who can program a game with the right tools, work for a commercial game company??? 1%?

Share this post


Link to post
Share on other sites
Fodd3r: "Then there are the Aspect based languages on the horizon, but since I don''t know much about them, I''m not going to go any further than mention that they''re around."

They''re mostly in the "pre-compiler" stage that C++ was in back in the late 80''s. It''ll get there. Aspects are cool. Not sure how useful they are for games, but for debugging it''s amazing.


Fodd3r: "Ultimately, I think a new language needs to be created which takes the plus points of the languages out there right now and keeps clean syntax. I don''t think you need low level access to get high performance, so long as it''s design by contract, you can specify the minimalist needs and the code can then be optimized to run as fast as possible using the optimization routines built into the VM/JIT compiler for the specific hardware."

You need a compiler that enforces design-by-contract. There aren''t many.

And for games, it''s more the choice of d3d/opengl/whatever model. In theory, the game logic part of the code could be in whatever language you wanted -- code the UI engine separately from the logic engine. Harder to optimize, though.

Share this post


Link to post
Share on other sites
I believe Eiffel is one.

On the contract side of things, one could setup contracts which dictate precision, range of values all sorts of things. These as you probably know could lead to quite a few optimizations. I think this is eventually where languages need to head.

I''m not totally convinced that C/C++ are the only way to get super speed. I believe there are a lot of ways to screw up with these low level things and not just bugs. I''m talking about using them improperly and then running into performance issues.

There is a lot to be gained from algorithmic and data structure optimizations. I think this is where programmers should be spending most of their time, I believe compilers and run time optimizations with the appropriate hints can fine tune your code to the host machine much better than you could for various possible hardware. Just a matter of making the investment in the compilers, VMs and so on.

Share this post


Link to post
Share on other sites
quote:
Original post by Grizwald
I don''t want any crazy "my language is better than yours" posts in here (bishop_pass, sabreman) *cough*

Smiley or not, I''d appreciate it if you didn''t associate my name with ``crazy "my language is better than yours" posts''''.

Share this post


Link to post
Share on other sites