So I've been taking a functional programming class that uses haskell a lot. It's only just gotten into I/O, and it didn't even cover that much of it. My professor doesn't use it much, apparently... I had NO idea you could DO this kind of thing in haskell... o.o I keep looking at this thinking "...what kind of recursive method do I call for that? Is it in the prelude..? No? Wha..?"
This is very cool. I've been looking at the Haskell language since my friend linked me to the site. Coming from a C background, I have to say, the language looks amazing and this example of what you can do with it makes me even that much happier I decided to start toying with it.
It is not equivalent in Quakein every aspect, is it? I was wondering, would You make an guess how much more (or how much in total) LOC would it take to implement full Quake (network game, command buffer (console),...)?
Quake's command buffer URL ( h t t p : / / bit . ly / kDLlOF ) would be simple eval I gues :-D. And you could even make programs in it. :-D.
@locusSol Please read the description carefully, it's jerky because of the capturing software I used, it's nothing to do with the langauge. It's runs complete smooth normally
i wouldnt mind making my own engine if some one could lead me on the path, basicaly what is open gl, direct x, how i import to them / how i code and with what program do i code, is the code whats runing direct or is that a program itself, basicaly i want to build a game with codeing and in multiple programs, i know its harder but ive seen much better results in my opinion
This comment has received too many negative votesshow
you go out and learn how to program with c++ Start by getting a book, also look at this channel, antiRTFM he has 70 vids about c++. It takes a lot of time to learn how to make a 3d game though.
some one please explain to me how to make a game, i use blender and flash cs3 at the moment, i have been making mediocure games in it for a whille now but want to learn the classic method, aka not useing an all in one bullshit like fps creator,
functional programming sounds great to me. I hope one day it will be possible to write clear algorithms then add allocation/threading hints or whatever for c-like efficiency .. optimizing without obfuscating the program's meaning
One day? That day is already here. With the use of `pars` you can get parralellism for free. No locks, mutexes, race conditions, etc. Just nice, easy, code.
i'm not familiar with haskell syntax, what does that do. can you specify hints (or get it to automatically..) for where to use threads & where to use ILP/SIMD.
elsewhere i did see something about haskell/cell which seemed encouraging..
par is a command that, to put it as simply as is possible (but somewhat incorrectly) basically hints that something should be done in parallel. There are also parallel versions of Haskell builtin functions, such as map, which becomes parMap. In the future, it is hoped that GHC (the best Haskell compiler, for now) will be able to do everything automatically. It can currently handle over a million threads just fine, and the nature of functional programming makes it easier than in, say, C.
This comment has received too many negative votesshow
"As a proof of concept, this is a very strong result. There can be no judgement on that."
I judge that it's not nearly as strong as you suggest. Section 4.3 of the author's thesis states,
"As an initial prototype the performance of the game is adequate, but the performance of the game will have to be improved greatly before it can match the performance of commercial games."
It appears my comments were deleted. Arguments should stand or fall by their own merit. If you are compelled to silence an opposing argument by fiat, then that is a sure sign of weakness in your own position.
OK thanks I see them now (I'm obviously not a regular youtube commenter).
I was unable to gleam any counter-arguments in your responses, which merely consist of ridiculous ad hominems.
Again, what is the proof of concept? It shows that heavy garbage collection cannot simply be optimized away. Pure functional programming has its uses, but real-time rendering is not one of them.
What exactly is your counter-argument? You haven't said.
@franticmonk Garbage collection is easy to circumvent in haskell compared to, say, java and I bet you that this program is written with 1/10 of the code it would requre in Java.
@franticmonk I didn't see the FPS dip below 40 in the video. The description mentions (and perhaps it didn't a year ago when you posted this) that the video capture software itself was slow,. The undergraduate thesis (which I have read) mentioned that the performance was adequate. I do not think that a jerky animation like what it appears to be on the video would have cut it as adequate even to the most optimistic of people.
@franticmonk That argument was completely missing the point, and if you would like to know, realworldhaskell(dot)org/read/profiling-and-optimization.html shows how to optimize haskell code to outperform commonly written C.
OriginalSnkKid: I apologise for fanning the flames there. I think this demo is amazing, and is exactly the kind of thing we need to show people that Haskell is not just for the laboratory.
@aramael Indeed, you have to show that Haskell is not just for the laboratory, 'cause that's all what I see. My whole department is researching fucking functional programming stating that they are superior to imperative languages whereas I'm laughing my ass off at my workplace while coding Java and C++ for four times the money they get for jacking off to Haskell. If Haskell is so good why havent profit oriented firms replaced Java with it?
More like, a first person shooter written from scratch in Haskell by one student in the span of about three months which implements much of the Quake3 engine.
So while there are many first person shooters out there, this one demonstrates that Haskell can be used for rapid development of 3d games.
I think I see your problem. You believe, as children do, that this video is about the game. It's not. But I get the impression that you are of the age where you feel that your skills and knowledge, which to you seem so much greater than those of your peers, mean that you have more in common with the professionals in the field, hence your opening comment. The road to wisdom is long, particularly so in your case I fear.
The video does nothing to communicate what it's about. In itself it's nothing spectacular, however I've just read the thesis and I understand much better.
So I've been taking a functional programming class that uses haskell a lot. It's only just gotten into I/O, and it didn't even cover that much of it. My professor doesn't use it much, apparently... I had NO idea you could DO this kind of thing in haskell... o.o I keep looking at this thinking "...what kind of recursive method do I call for that? Is it in the prelude..? No? Wha..?"
isumu 2 months ago
This is very cool. I've been looking at the Haskell language since my friend linked me to the site. Coming from a C background, I have to say, the language looks amazing and this example of what you can do with it makes me even that much happier I decided to start toying with it.
TurncoatTony 6 months ago
since it is quake3 clone, it would be interesting to compare performance with open arena
idontknowwhatnicktou 6 months ago
This has been flagged as spam show
Awesome work:-).
It is not equivalent in Quakein every aspect, is it? I was wondering, would You make an guess how much more (or how much in total) LOC would it take to implement full Quake (network game, command buffer (console),...)?
Quake's command buffer URL ( h t t p : / / bit . ly / kDLlOF ) would be simple eval I gues :-D. And you could even make programs in it. :-D.
daEmoNicky 7 months ago
Comment removed
daEmoNicky 7 months ago
Comment removed
daEmoNicky 7 months ago
Comment removed
locusSol 1 year ago
@locusSol Please read the description carefully, it's jerky because of the capturing software I used, it's nothing to do with the langauge. It's runs complete smooth normally
OriginalSnkKid 1 year ago
is there anything like the realtime java allocation customization for haskell..
walter0bz 1 year ago
zaneski13 get proper downvote for advicing C++.
temotor 2 years ago
hm that's an openarena map
frother 2 years ago
i wouldnt mind making my own engine if some one could lead me on the path, basicaly what is open gl, direct x, how i import to them / how i code and with what program do i code, is the code whats runing direct or is that a program itself, basicaly i want to build a game with codeing and in multiple programs, i know its harder but ive seen much better results in my opinion
thanks
DeJayPlp 2 years ago
This comment has received too many negative votes show
you go out and learn how to program with c++ Start by getting a book, also look at this channel, antiRTFM he has 70 vids about c++. It takes a lot of time to learn how to make a 3d game though.
zaneski13 2 years ago
@zaneski13 Don't mention that horrible language here. Haskell is the nicest thing ever to befall open minded programmers.
Ukimos 1 year ago
some one please explain to me how to make a game, i use blender and flash cs3 at the moment, i have been making mediocure games in it for a whille now but want to learn the classic method, aka not useing an all in one bullshit like fps creator,
DeJayPlp 2 years ago
functional programming sounds great to me. I hope one day it will be possible to write clear algorithms then add allocation/threading hints or whatever for c-like efficiency .. optimizing without obfuscating the program's meaning
walter0bz 2 years ago
One day? That day is already here. With the use of `pars` you can get parralellism for free. No locks, mutexes, race conditions, etc. Just nice, easy, code.
ZachtheEvil 1 year ago
@ZachtheEvil 'pars' -
i'm not familiar with haskell syntax, what does that do. can you specify hints (or get it to automatically..) for where to use threads & where to use ILP/SIMD.
elsewhere i did see something about haskell/cell which seemed encouraging..
walter0bz 1 year ago
par is a command that, to put it as simply as is possible (but somewhat incorrectly) basically hints that something should be done in parallel. There are also parallel versions of Haskell builtin functions, such as map, which becomes parMap. In the future, it is hoped that GHC (the best Haskell compiler, for now) will be able to do everything automatically. It can currently handle over a million threads just fine, and the nature of functional programming makes it easier than in, say, C.
ZachtheEvil 1 year ago
is this a 100% software renderer or does it uses some kind of ogl binding ?
fasteez 3 years ago 5
No software rendering, Frag uses the OpenGL bindings.
OriginalSnkKid 3 years ago 4
Fine results indeed!
I hope that an implementation of OpenArena in Epigram is on it's way too :)
DJFishlips 3 years ago
This comment has received too many negative votes show
"As a proof of concept, this is a very strong result. There can be no judgement on that."
I judge that it's not nearly as strong as you suggest. Section 4.3 of the author's thesis states,
"As an initial prototype the performance of the game is adequate, but the performance of the game will have to be improved greatly before it can match the performance of commercial games."
franticmonk 3 years ago
"As a proof of concept" and "match the performance of commercial games" are two different things.
As a PROOF OF CONCEPT it is a very strong result.
perditiontheelder 3 years ago 7
This comment has received too many negative votes show
"As a PROOF OF CONCEPT it is a very strong result."
Why? What does it prove? It's slow and it stutters due to garbage collection. Those aren't problems which can be optimized away.
As a proof of concept, it fails. It's a strong result for showing why nobody uses Haskell for real-time graphics. And nobody does.
franticmonk 3 years ago
Just stop. Go away. Quit pretending like you know what you're talking about.
You're obviously not interested in new, experimental areas of computer science, and apparently don't have the capacity to understand how they apply.
perditiontheelder 3 years ago
It appears my comments were deleted. Arguments should stand or fall by their own merit. If you are compelled to silence an opposing argument by fiat, then that is a sure sign of weakness in your own position.
franticmonk 2 years ago
nobody deleted your comments. They racked up over 6 thumbs down because they're idiotic.
perditiontheelder 2 years ago
OK thanks I see them now (I'm obviously not a regular youtube commenter).
I was unable to gleam any counter-arguments in your responses, which merely consist of ridiculous ad hominems.
Again, what is the proof of concept? It shows that heavy garbage collection cannot simply be optimized away. Pure functional programming has its uses, but real-time rendering is not one of them.
What exactly is your counter-argument? You haven't said.
franticmonk 2 years ago
@franticmonk Garbage collection is easy to circumvent in haskell compared to, say, java and I bet you that this program is written with 1/10 of the code it would requre in Java.
Ukimos 1 year ago
@franticmonk I didn't see the FPS dip below 40 in the video. The description mentions (and perhaps it didn't a year ago when you posted this) that the video capture software itself was slow,. The undergraduate thesis (which I have read) mentioned that the performance was adequate. I do not think that a jerky animation like what it appears to be on the video would have cut it as adequate even to the most optimistic of people.
Kaidelong 10 months ago
@franticmonk That argument was completely missing the point, and if you would like to know, realworldhaskell(dot)org/read/profiling-and-optimization.html shows how to optimize haskell code to outperform commonly written C.
Ukimos 1 year ago
First of all, you are spouting conjecture about what is happening in this concept. You would be right if you had the correct evidence.
Secondly, you should take note of the framerate counter. As far as I can tell, the rate is consistently between 40 and 60 fps.
FreeSalesTips 3 years ago
OriginalSnkKid: I apologise for fanning the flames there. I think this demo is amazing, and is exactly the kind of thing we need to show people that Haskell is not just for the laboratory.
aramael 3 years ago 5
You have no reason to apologise, it is my fault for not putting enough information to prevent such comments being posted.
OriginalSnkKid 3 years ago
@aramael Indeed, you have to show that Haskell is not just for the laboratory, 'cause that's all what I see. My whole department is researching fucking functional programming stating that they are superior to imperative languages whereas I'm laughing my ass off at my workplace while coding Java and C++ for four times the money they get for jacking off to Haskell. If Haskell is so good why havent profit oriented firms replaced Java with it?
viharsarok 4 weeks ago
we are talking of an high-level programming language, that is everything but targeted to the development of low-core 3D applications.
As a proof of concept, this is a very strong result. There can be no judgement on that.
hjppacheco 3 years ago 3
This comment has received too many negative votes show
welcome to 1999 only not as good.
ohgreat1thatsfantast 3 years ago
What's the point of your comment? do you even understand what this video is about?
OriginalSnkKid 3 years ago
the video is of a low quality first person shooter, these are a dime a dozen
ohgreat1thatsfantast 3 years ago
More like, a first person shooter written from scratch in Haskell by one student in the span of about three months which implements much of the Quake3 engine.
So while there are many first person shooters out there, this one demonstrates that Haskell can be used for rapid development of 3d games.
thedagit 3 years ago 3
I guess it's reasonable to produce a demo rather than something approaching an actual game for the time allowed.
ohgreat1thatsfantast 3 years ago
I think I see your problem. You believe, as children do, that this video is about the game. It's not. But I get the impression that you are of the age where you feel that your skills and knowledge, which to you seem so much greater than those of your peers, mean that you have more in common with the professionals in the field, hence your opening comment. The road to wisdom is long, particularly so in your case I fear.
aramael 3 years ago 2
obvious troll is obvious.
ohgreat1thatsfantast 3 years ago
Clearly you do not understand the intent of this video. It is not aimed at gamers and it's not about the game itself, it's aimed at programmers.
I will leave these comments so hopefully others will think before making useless comments, anymore like these will get deleted and block the user.
OriginalSnkKid 3 years ago
The video does nothing to communicate what it's about. In itself it's nothing spectacular, however I've just read the thesis and I understand much better.
ohgreat1thatsfantast 3 years ago
That was classic at 2:01 when you shot that dude with the sniper rifle.
thedagit 3 years ago