comp.lang.ada
 help / color / mirror / Atom feed
* Game Programming / Graphics
@ 2005-04-02 19:54 jsnX
  2005-04-02 22:35 ` Luke A. Guest
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: jsnX @ 2005-04-02 19:54 UTC (permalink / raw)


I'm interested in learning Ada for game programming. Right now I'm
learning C++, a necessary step, but I don't like it - the language
seems to encourage disorganization. What resources for graphics and
game programming does Ada have? What is Ada's numerics model like? I've
heard that it's better than C++'s, but I haven't seen any specifics.




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-02 19:54 Game Programming / Graphics jsnX
@ 2005-04-02 22:35 ` Luke A. Guest
  2005-04-03 15:01   ` jsnX
  2005-04-03  8:53 ` Dmitry A. Kazakov
  2005-04-10 10:05 ` step_y
  2 siblings, 1 reply; 17+ messages in thread
From: Luke A. Guest @ 2005-04-02 22:35 UTC (permalink / raw)


On Sat, 02 Apr 2005 11:54:40 -0800, jsnX wrote:

> I'm interested in learning Ada for game programming. Right now I'm
> learning C++, a necessary step, but I don't like it - the language
> seems to encourage disorganization. What resources for graphics and

It does, but if you want a job in the industry, expect to be forced into
using C or C++.

> game programming does Ada have? What is Ada's numerics model like? I've
> heard that it's better than C++'s, but I haven't seen any specifics.

There are bindings to SDL. There are many bindings to OpenGL, some come
with GUI bindings, i.e. GtkAda, CLAW, etc. I've worked on GL bindings and
they're here http://www.archangel-interactive.com/gl.html.

You can bind to C relaly easily, so if it doens't exist, you can write
your own stuff.

Luke.




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-02 19:54 Game Programming / Graphics jsnX
  2005-04-02 22:35 ` Luke A. Guest
@ 2005-04-03  8:53 ` Dmitry A. Kazakov
  2005-04-03 14:52   ` jsnX
  2005-04-10 10:05 ` step_y
  2 siblings, 1 reply; 17+ messages in thread
From: Dmitry A. Kazakov @ 2005-04-03  8:53 UTC (permalink / raw)


On 2 Apr 2005 11:54:40 -0800, jsnX wrote:

> What is Ada's numerics model like? I've
> heard that it's better than C++'s, but I haven't seen any specifics.

The main difference is that in C++ you specify what your computer has. In
Ada you do what you nee:

// C++
double X; 

-- Ada
type Something is digits 8 range 0.0..100_000.0;
X : Something;

I.e. Ada's numerics are based on a contract model. Ada's numerics are true
types. You can have different numeric types and the compiler will prevent
you from mixing them, if you do not define corresponding operations. As
types they may have constrained subtypes with range checks enforced. Other
differences are that Ada has fixed point binary and decimal numbers
additionally to the floating-point ones.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-03  8:53 ` Dmitry A. Kazakov
@ 2005-04-03 14:52   ` jsnX
  2005-04-03 15:51     ` Pascal Obry
  2005-04-03 16:10     ` Dmitry A. Kazakov
  0 siblings, 2 replies; 17+ messages in thread
From: jsnX @ 2005-04-03 14:52 UTC (permalink / raw)


> Ada's numerics are based on a contract model. Ada's
> numerics are true types. You can have different numeric
> types and the compiler will prevent you from mixing them,
> if you do not define corresponding operations. As
> types they may have constrained subtypes with range
> checks enforced. Other differences are that Ada has
> fixed point binary and decimal numbers additionally to
> the floating-point ones.

sounds pretty neat, but is it computationally expensive? if i write
numeric stuff in Ada (vector operations, special functions, physics
stuff) will it be in general:
    a) slower than the same stuff written in good (templated) C++
    b) faster than the same stuff written in good (templated) C++
    c) hard to say - sometimes faster, sometimes slower
    d) hard to say - depends heavily on compiler
    e) other - please write in
--
jsnX




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-02 22:35 ` Luke A. Guest
@ 2005-04-03 15:01   ` jsnX
  2005-04-03 16:51     ` Luke A. Guest
                       ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: jsnX @ 2005-04-03 15:01 UTC (permalink / raw)


> It does, but if you want a job in the industry,
> expect to be forced into using C or C++.

I want to make game parts, mostly - i look forward to contributing to
open source games and game tool kits. so i really do want to know what
is the *best language*, in terms of programming pleasure and potential
performance. unfortunately the interpreted languages are right out
because of their performance, and that knocks Java out of the ring,
too. C and ForTran are fast, but they lack the pleasure/orderlyness
that comes from OO. It looks like my options are C++ (and|or) Ada.
--
jsnX




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-03 14:52   ` jsnX
@ 2005-04-03 15:51     ` Pascal Obry
  2005-04-03 17:23       ` jsnX
  2005-04-03 16:10     ` Dmitry A. Kazakov
  1 sibling, 1 reply; 17+ messages in thread
From: Pascal Obry @ 2005-04-03 15:51 UTC (permalink / raw)



"jsnX" <jason.dusek@gmail.com> writes:

> sounds pretty neat, but is it computationally expensive? if i write
> numeric stuff in Ada (vector operations, special functions, physics
> stuff) will it be in general:
>     a) slower than the same stuff written in good (templated) C++
>     b) faster than the same stuff written in good (templated) C++
>     c) hard to say - sometimes faster, sometimes slower
>     d) hard to say - depends heavily on compiler
>     e) other - please write in

No surprise 'c' and 'd'.

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|              http://www.obry.org
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-03 14:52   ` jsnX
  2005-04-03 15:51     ` Pascal Obry
@ 2005-04-03 16:10     ` Dmitry A. Kazakov
  1 sibling, 0 replies; 17+ messages in thread
From: Dmitry A. Kazakov @ 2005-04-03 16:10 UTC (permalink / raw)


On 3 Apr 2005 07:52:06 -0700, jsnX wrote:

>> Ada's numerics are based on a contract model. Ada's
>> numerics are true types. You can have different numeric
>> types and the compiler will prevent you from mixing them,
>> if you do not define corresponding operations. As
>> types they may have constrained subtypes with range
>> checks enforced. Other differences are that Ada has
>> fixed point binary and decimal numbers additionally to
>> the floating-point ones.
> 
> sounds pretty neat, but is it computationally expensive? if i write
> numeric stuff in Ada (vector operations, special functions, physics
> stuff) will it be in general:
>     a) slower than the same stuff written in good (templated) C++
>     b) faster than the same stuff written in good (templated) C++
>     c) hard to say - sometimes faster, sometimes slower
>     d) hard to say - depends heavily on compiler
>     e) other - please write in

If you are going to use floating-point numbers, then I can't see any reason
why it should be either faster or slower. Most likely all computations will
be made in the machine type that fits at most. Portability is an advantage,
though portable error handling can still be tricky.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-03 15:01   ` jsnX
@ 2005-04-03 16:51     ` Luke A. Guest
  2005-04-03 17:18       ` jsnX
  2005-04-03 18:37     ` beliavsky
  2005-04-13 22:15     ` Lionel Draghi
  2 siblings, 1 reply; 17+ messages in thread
From: Luke A. Guest @ 2005-04-03 16:51 UTC (permalink / raw)


On Sun, 03 Apr 2005 08:01:43 -0700, jsnX wrote:

> that comes from OO. It looks like my options are C++ (and|or) Ada.

Well, if you go with Ada, you'll be working on your own stuff, not GPL'd
stuff.

Luke.




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-03 16:51     ` Luke A. Guest
@ 2005-04-03 17:18       ` jsnX
  2005-04-03 17:25         ` Leif Roar Moldskred
  0 siblings, 1 reply; 17+ messages in thread
From: jsnX @ 2005-04-03 17:18 UTC (permalink / raw)


> Well, if you go with Ada, you'll be working on your own
> stuff, not GPL'd stuff.

Why is that? Something in the Ada license?
--
_jason




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-03 15:51     ` Pascal Obry
@ 2005-04-03 17:23       ` jsnX
  2005-04-03 18:19         ` Pascal Obry
  0 siblings, 1 reply; 17+ messages in thread
From: jsnX @ 2005-04-03 17:23 UTC (permalink / raw)


>>  c) hard to say - sometimes faster, sometimes slower
>>  d) hard to say - depends heavily on compiler
>  No surprise 'c' and 'd'.

OK - let's say I'm using GNAT and g++. Then is there liable to be a
significant difference in performance?
--
_jsnX




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-03 17:18       ` jsnX
@ 2005-04-03 17:25         ` Leif Roar Moldskred
  0 siblings, 0 replies; 17+ messages in thread
From: Leif Roar Moldskred @ 2005-04-03 17:25 UTC (permalink / raw)


"jsnX" <jason.dusek@gmail.com> writes:

> > Well, if you go with Ada, you'll be working on your own
> > stuff, not GPL'd stuff.
> 
> Why is that? Something in the Ada license?

No, it's just that there's practically no open source games written in
Ada at the moment. You are of course free to write your own game in
Ada and publish it under the GPL, but there is not many such projects
already in existance.

-- 
Leif Roar Moldskred




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-03 17:23       ` jsnX
@ 2005-04-03 18:19         ` Pascal Obry
  0 siblings, 0 replies; 17+ messages in thread
From: Pascal Obry @ 2005-04-03 18:19 UTC (permalink / raw)



"jsnX" <jason.dusek@gmail.com> writes:

> OK - let's say I'm using GNAT and g++. Then is there liable to be a
> significant difference in performance?

No. See for example: http://shootout.alioth.debian.org/

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|              http://www.obry.org
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-03 15:01   ` jsnX
  2005-04-03 16:51     ` Luke A. Guest
@ 2005-04-03 18:37     ` beliavsky
  2005-04-13 22:15     ` Lionel Draghi
  2 siblings, 0 replies; 17+ messages in thread
From: beliavsky @ 2005-04-03 18:37 UTC (permalink / raw)


jsnX wrote:
> > It does, but if you want a job in the industry,
> > expect to be forced into using C or C++.
>
> I want to make game parts, mostly - i look forward to contributing to
> open source games and game tool kits. so i really do want to know
what
> is the *best language*, in terms of programming pleasure and
potential
> performance. unfortunately the interpreted languages are right out
> because of their performance, and that knocks Java out of the ring,
> too. C and ForTran are fast, but they lack the pleasure/orderlyness
> that comes from OO. It looks like my options are C++ (and|or) Ada.

Fortran 90 and later versions has user-defined types that can have
public and private data members, be used as procedure arguments, and be
returned as function results. Thus F90 supports object-based
programming. There are many Fortran 95 compilers, including a free one,
g95 http://www.g95.org . Fortran 2003 supports OOP with inheritance.
Although F95 compilers are adding F2003 features, a full F2003 compiler
is not available yet.




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-02 19:54 Game Programming / Graphics jsnX
  2005-04-02 22:35 ` Luke A. Guest
  2005-04-03  8:53 ` Dmitry A. Kazakov
@ 2005-04-10 10:05 ` step_y
  2 siblings, 0 replies; 17+ messages in thread
From: step_y @ 2005-04-10 10:05 UTC (permalink / raw)


hi, looking for game programmers, those interested please apply at
http://spacefed.com/jobs/




Cowly the Game player
Visit some of the games I play

http://www.gamestotal.com
http://mmorpg.gamestotal.com
http://www.spacefederation.net
http://www.gamestotal.com/news/
http://free_mmorpg.gamestotal.com
http://strategy_games.gamestotal.com
http://www.gamestotal.com/strategygames/
http://free_strategy_games.gamestotal.com




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-03 15:01   ` jsnX
  2005-04-03 16:51     ` Luke A. Guest
  2005-04-03 18:37     ` beliavsky
@ 2005-04-13 22:15     ` Lionel Draghi
  2005-04-26  1:37       ` adaworks
  2 siblings, 1 reply; 17+ messages in thread
From: Lionel Draghi @ 2005-04-13 22:15 UTC (permalink / raw)


jsnX a ï¿œcrit :
> C and ForTran are fast, but they lack the pleasure/orderlyness
> that comes from OO. It looks like my options are C++ (and|or) Ada.

Pascal told you about the Shootout (http://shootout.alioth.debian.org/)
Reading this, I would consider Ocaml and Ada, and why not also Eiffel 
and Oberon.

I conclude from this URL that there is clearly no more need to use a 
lower level language to gain performances.
And that's a usefull point for games, because those software are 
becomming really big and complex.

--
Lionel



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-13 22:15     ` Lionel Draghi
@ 2005-04-26  1:37       ` adaworks
  2005-04-26 17:50         ` Dr. Adrian Wrigley
  0 siblings, 1 reply; 17+ messages in thread
From: adaworks @ 2005-04-26  1:37 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 996 bytes --]


"Lionel Draghi" <Lionel.nospam.Draghi@Ada-France.org> wrote in message
news:425d9a2e$0$12427$626a14ce@news.free.fr...
> jsnX a �crit :
> > C and ForTran are fast, but they lack the pleasure/orderlyness
> > that comes from OO. It looks like my options are C++ (and|or) Ada.
>
> Pascal told you about the Shootout (http://shootout.alioth.debian.org/)
> Reading this, I would consider Ocaml and Ada, and why not also Eiffel
> and Oberon.
>
I include some simple game programming assignments in my Ada classes.
Students have a good time writing the solutions.   The graphics tools
available for Ada are perfectly sufficient for doing this kind of programming,
even though anyone who takes up the challenge will be something of a
pioneer.

Also, I think some of the work being done by Dr. Wrigley is appropriate
to this domain.   In particular, his work in high-performance rendering
with Ada might be worth learning, if he is willing to share it with those
who need to see it.

Richard Riehle





^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Game Programming / Graphics
  2005-04-26  1:37       ` adaworks
@ 2005-04-26 17:50         ` Dr. Adrian Wrigley
  0 siblings, 0 replies; 17+ messages in thread
From: Dr. Adrian Wrigley @ 2005-04-26 17:50 UTC (permalink / raw)


On Tue, 26 Apr 2005 01:37:03 +0000, adaworks wrote:

...
> Also, I think some of the work being done by Dr. Wrigley is appropriate
> to this domain.   In particular, his work in high-performance rendering
> with Ada might be worth learning, if he is willing to share it with those
> who need to see it.

I saw my name mentioned...

The work I was doing was at Advanced Rendering technology, now
ARTVPS (See: http://www.artvps.com/ ).  I haven't worked for
that business for several years now.  In summary:

the problem (realistic image generation using numerical models
of light distribution) seems well suited to OO techniques, but we'd had
difficulty (in the mid '90s) getting the right kind of flexibility,
coupled with memory and run-time efficiency.  We implemented the
first products mainly in C and assembly language, with chip design
in VHDL (Ada's close cousin!).  This had the advantage of familiarity
(to management and key staff), and the tools were robust and mature.
C++ was an obvious (but contentious) alternative.  But taking on
a big C++ project was risky because of lack of team experience
with projects of this size, as well as uncertainty over meeting
performance and interface constraints.

A second generation of software was developed, factoring in experience
from the first generation.  The numerical core (infinite
dimensional integration engine(!)) was factored out, and the module
boundaries strengthened.  The existing low-level C, Assembly code
was retained.  The new, high-level code was in Ada.  The strengths
of Ada really shone in this project, particularly the robust
encapsulation, the (contract-based) genericity, and the concurrency.
But staff familiarity was still an issue, as was performance.

I had to leave the company when a key investor rejected (essential)
changes to the business model, and it collapsed just over two
years later :(   The investors received nil.  The business was
bought out, and is still going today, but the second generation
software was abandoned when I left (in late 1999).

From this experience, I became convinced that Ada 95 gives a very
strong technical approach to development of complex systems in
numerical computing (an ideal replacement for the Fortrans).
But projects face significant risks in staff acceptance,
training etc.  Often people want to work in languages which
further their careers, ie *not* Ada!

At the moment, I am building computationally intensive statistical
models of the US stock markets, and have built a fully automated,
real-time stock trading system.  The low defect density and
code readability is invaluable, even for a one-person project
such as this.

Hope this helps!
-- 
Dr. Adrian Wrigley, Cambridge, UK.




^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2005-04-26 17:50 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-02 19:54 Game Programming / Graphics jsnX
2005-04-02 22:35 ` Luke A. Guest
2005-04-03 15:01   ` jsnX
2005-04-03 16:51     ` Luke A. Guest
2005-04-03 17:18       ` jsnX
2005-04-03 17:25         ` Leif Roar Moldskred
2005-04-03 18:37     ` beliavsky
2005-04-13 22:15     ` Lionel Draghi
2005-04-26  1:37       ` adaworks
2005-04-26 17:50         ` Dr. Adrian Wrigley
2005-04-03  8:53 ` Dmitry A. Kazakov
2005-04-03 14:52   ` jsnX
2005-04-03 15:51     ` Pascal Obry
2005-04-03 17:23       ` jsnX
2005-04-03 18:19         ` Pascal Obry
2005-04-03 16:10     ` Dmitry A. Kazakov
2005-04-10 10:05 ` step_y

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox