Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 2 [3] 4

Author Topic: Intellectual Property & stuff  (Read 5630 times)

Savok

  • Bay Watcher
    • View Profile
Re: Intellectual Property & stuff
« Reply #30 on: December 21, 2009, 12:03:46 am »

I don't think you are listening to what I am saying about performance. Java is not *significantly* slower than c++. It is usually slower but not significantly so. Writing large applications is very difficult in c++, and much easier in java.

http://www.idiom.com/~zilla/Computer/javaCbenchmark.html
http://kano.net/javabench/
http://www.javaworld.com/javaworld/jw-02-1998/jw-02-jperf.html
http://blogs.azulsystems.com/cliff/2009/09/java-vs-c-performance-again.html
http://en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B#Performance
Thanks for the articles. I was trying to listen; perhaps I failed or maybe you spoke poorly. Apologies.

If I get as far as pathfinding and The Pathfinder Project bears fruit, I'd love to be able to use it. Would this be impossible or cause a significant speed penalty if I used Java?
Logged
So sayeth the Wiki Loremaster!

Toksyuryel

  • Bay Watcher
    • View Profile
Re: Intellectual Property & stuff
« Reply #31 on: December 21, 2009, 12:49:11 am »

I'll put it this way:

Java speeds development by making it easier to code the same program to several different OSs, but slows the actual performance.

C++ slows development because you have to code it in a different way for every OS, but improves performance.

Course C++ is the best choice for DF, between it and Java anyway, I don't actualy know the advantages of python.
The advantages of python are speedy development AND speedy performance (especially if you use Stackless). It's honestly very difficult to justify using Java instead of Python except for instances where you already have a ton of work invested in a Java application and the benefits of doing it all over again aren't higher than the benefits of just sticking with what you've got.
Logged

Foa

  • Bay Watcher
  • And I thought foxfire was stylish in winter.
    • View Profile
Re: Intellectual Property & stuff
« Reply #32 on: December 21, 2009, 02:22:16 am »

Just don't claim this as your original idea, many people would be displeased.
Especially if you try to make this a commercial product.
Logged

Googolplexed

  • Bay Watcher
  • My avatar is of whitespace, Not the firefox logo
    • View Profile
Re: Intellectual Property & stuff
« Reply #33 on: December 21, 2009, 09:16:00 am »

Yes I did read the OP, and I am saying that you have only a few weeks of experience, I looked at your code and its quite good for someone of your experience. But at the same time, DF has taken years of development. Even imitating something like it would be a difficult task, and probably not need the speed advantage of C. What do you plan to do, Pathfinding is a given, but what else, are you going into water-simulation, How advanced would the AI be. All I'm saying is that imitating DF would be an extremely complex project.

That being said though, Its a good idea to learn C/C++. Switching languages is somewhat easy if you already know how to program, As C is more low-level though be prepared to have quite a few difficulties. Just remember that C++ compared to Java is quite low-level, and does not come with standard libraries.

How-long do you want to spend designing and programming a DF clone. It would take several months and at the end of the day, everyone will just go back to playing DF anyway.

IMO get more experience on a complex project. How-much do you know about algorithm efficiency, learn it. If you seriously want to code a clone then feel free to do so(Ask Toady first though), But seriously it is a very complex project.

Remember that the language is no substitute for inefficient coding.

EDIT: Should say that C does not come with LARGE standard libraries

SECONDEDIT: Sorry if the post sounds like its criticising your skills too much but I tend to get pessimistic of new programmers trying to recreate something that has taken people with alot more experience years to do
« Last Edit: December 21, 2009, 10:10:46 am by Googolplexed »
Logged

Nadaka

  • Bay Watcher
    • View Profile
    • http://www.nadaka.us
Re: Intellectual Property & stuff
« Reply #34 on: December 21, 2009, 10:13:29 am »

Googolplexed has some good advice there. The reason to use c/c++ is not that its a little faster, but because it is "closer to metal" and you need to learn it at some point in order to understand how and why things work in your computer. The reason to use JAVA is that it is much easier to use, with a huge set of default libraries (along with easier use of 3rd party libraries).
Logged
Take me out to the black, tell them I ain't comin' back...
I don't care cause I'm still free, you can't take the sky from me...

I turned myself into a monster, to fight against the monsters of the world.

Armok

  • Bay Watcher
  • God of Blood
    • View Profile
Re: Intellectual Property & stuff
« Reply #35 on: December 21, 2009, 10:21:34 am »

I recomend Python.

For any given task, except special cases such as web applications or an existing codebase, I find that either you need it to run fast and thus use assembly, or you need to write it fast and use python, and that all other languages I have encountered are unstatisfactory compromizes.
(note that you'll still need to lern c to get full advantage of python thou, for those short spipets you need for speed.)
Logged
So says Armok, God of blood.
Sszsszssoo...
Sszsszssaaayysss...
III...

Shades

  • Bay Watcher
    • View Profile
Re: Intellectual Property & stuff
« Reply #36 on: December 21, 2009, 10:26:44 am »

SECONDEDIT: Sorry if the post sounds like its criticising your skills too much but I tend to get pessimistic of new programmers trying to recreate something that has taken people with alot more experience years to do

I think Tarn mentioned he hadn't done much more than the games on bay12 so I'm not sure if that is years of experience. I don't recall where he said that though so I might have imagined it.

Also I don't think a single experienced developer would attempt to code something like DF, we can see the problems you'll come across and the vast complexity and start looking around for a team to share the load ;)

I don't think you are listening to what I am saying about performance. Java is not *significantly* slower than c++. It is usually slower but not significantly so. Writing large applications is very difficult in c++, and much easier in java.

My experience with Java is that although it general it is slower, and occasionally noticeably, since the volatile memory additions it has been fast enough to use for games. Also technically because it is JIT-Complied on the client machine it can theoretically be faster than C++ due to machine specific optimisation. I admit not to having seen any numbers on tests of this though.

I too would suggest C++ for learning programming and I'd recommend you get used to the boost libraries and learn to take advantage of stl (stlport specifically) as soon as you feel ready. Boost basically give you an set of libraries comparable in features (although not alternatives) to the Java API.

Finally if your serious I'd recommend learning to unit test (Unittest++ is my current favourite), it takes a little getting used to but as your experience increases you'll find you basically never need to debug code (okay so very rarely) and your code will be more portable, more readable and much easier to optimise.
Logged
Its like playing god with sentient legos. - They Got Leader
[Dwarf Fortress] plays like a dizzyingly complex hybrid of Dungeon Keeper and The Sims, if all your little people were manic-depressive alcoholics. - tv tropes
You don't use science to show that you're right, you use science to become right. - xkcd

FlexibleDogma

  • Bay Watcher
  • xGiant Cave Spider Silk Sockx Merchant
    • View Profile
Re: Intellectual Property & stuff
« Reply #37 on: December 21, 2009, 11:07:31 am »

This thread is going everywhere, so I'll throw in a few points too.

1.  Game mechanics can be patented.  Some quick examples are below.

Driving game simulation (basically Crazy Taxi, but originally in an earlier game):
http://www.google.com/patents?vid=USPAT6200138
http://en.wikipedia.org/wiki/Crazy_Taxi_%28series%29#Legalities

Load a mini-game to play while the main game is loading:
http://www.google.com/patents/about?id=X_QoAAAAEBAJ&dq=5,718,632

2.  I don't think there is anything inherently wrong with creating a DF-like.  While DF itself has a unique mythology, the fortress mode mechanics can still be described as what is commonly called a "god game".  As long as you weren't borrowing cannibal elves or other uniquely DF elements you should be fine.  I also think that deciding to program a DF-like for your first big programming project is like deciding to climb Mt. Everest after you've learned a bit of mountain climbing, but you're the only one who knows what you can pull off!

@Armok:  Perl tends to be my choice for a lot of things.  You can write programs for the web, can write shell scripts for automation, and can use CPAN to avoid reinventing the wheel.  I wouldn't want to write a game in it or anything like that, but when I have some data over here in this format and it needs to get over there in that format Perl is usually my first choice.  However, it's probably just because it was my first scripting language, normally everyone loves their first.
Logged

Nadaka

  • Bay Watcher
    • View Profile
    • http://www.nadaka.us
Re: Intellectual Property & stuff
« Reply #38 on: December 21, 2009, 11:24:01 am »

FlexibleDogma: Math is not patentable. Game mechanics are math. They can not be patented. Period. Any existing patents on math are invalid. You might need a lawsuit to settle the issue. Re Bilsky.
Logged
Take me out to the black, tell them I ain't comin' back...
I don't care cause I'm still free, you can't take the sky from me...

I turned myself into a monster, to fight against the monsters of the world.

Googolplexed

  • Bay Watcher
  • My avatar is of whitespace, Not the firefox logo
    • View Profile
Re: Intellectual Property & stuff
« Reply #39 on: December 21, 2009, 11:25:56 am »

I think Tarn mentioned he hadn't done much more than the games on bay12 so I'm not sure if that is years of experience. I don't recall where he said that though so I might have imagined it.
Well the games in the curses section date back to 2001, plus the original slaves to armok game. I'd say that Toady has a decent amount of experience working on larger projects.


Also I meant that dwarf fortress was built over many years and hence building an imitation within a reasonable time period would be hard. Moving form programming projects within a few days to programming a project in a year is a huge jump

@Nadaka, the math may not be patentable but the overarching idea might be. Someone can patent a design for a new type of plane, even though they can't patent the physics behind it
« Last Edit: December 21, 2009, 11:32:23 am by Googolplexed »
Logged

FlexibleDogma

  • Bay Watcher
  • xGiant Cave Spider Silk Sockx Merchant
    • View Profile
Re: Intellectual Property & stuff
« Reply #40 on: December 21, 2009, 12:14:45 pm »

FlexibleDogma: Math is not patentable. Game mechanics are math. They can not be patented. Period. Any existing patents on math are invalid. You might need a lawsuit to settle the issue. Re Bilsky.

The existing patents that I linked disagree with you that game mechanics are not patentable.   ;)  Games have patents for over 100 years.  For example, Monopoly has had a few.  (They are all expired now, which is why you see all those generic or themed Monopoly games by other companies.)
http://www.google.com/patents?vid=748626
http://www.google.com/patents?vid=1509312

Furthermore, math has been in patented the past.  RSA had a patent on Public Key Cryptography (aka "fancy math") that was issued back in 1983.  (There is the infamous XOR patent as well, but let's not go there.)
http://www.google.com/patents?vid=4405829

Unless you have a definitive source that says "Game mechanics are not patentable, here is the lawsuit that proves it." you are giving incorrect (and possibly very expensive) advice.  It's great to win a lawsuit and all, but it's a lot cheaper to never get into one.

(I assume you mean In re Bilski.  Since the SCOTUS hasn't said yay or nay yet I don't think it would be good to bank on it at this time. IANAL, etc.)
Logged

Savok

  • Bay Watcher
    • View Profile
Re: Intellectual Property & stuff
« Reply #41 on: December 21, 2009, 12:56:41 pm »

Quote from: Toady
As long as it doesn't use the name, it's fine with me, legally speaking.  Overall, I think if you're going to put this much effort forth, it's important to strive to do your own thing, but I imagine that'll happen during the course of a long project in any case.
Thanks. I hope you don't mind me quoting your PM here.

Quote
I also think that deciding to program a DF-like for your first big programming project is like deciding to climb Mt. Everest after you've learned a bit of mountain climbing, but you're the only one who knows what you can pull off!

Yes I did read the OP, and I am saying that you have only a few weeks of experience, I looked at your code and its quite good for someone of your experience. But at the same time, DF has taken years of development. Even imitating something like it would be a difficult task, and probably not need the speed advantage of C. What do you plan to do, Pathfinding is a given, but what else, are you going into water-simulation, How advanced would the AI be. All I'm saying is that imitating DF would be an extremely complex project.

SECONDEDIT: Sorry if the post sounds like its criticising your skills too much but I tend to get pessimistic of new programmers trying to recreate something that has taken people with alot more experience years to do

That code looks good to you? Thanks, I guess. ...I thought it was embarrassingly inept. I mean, srsly, I'm getting input solely through polling! No use of threads! I have terrible design-with-an-eye-towards-the-future in most of the files; I'm just getting back to the game logic code after revamping the interface, and it's so bad I'll just have to totally rewrite it!

If I try to climb Mt. Everest and fail a tenth of the way up, instead of hiking all over, say, Appalachia, then... well, the metaphor breaks down here, but I'll have something much greater. And - I think that, if Toady, self-taught programmer, can do it, I can too (however blasphemous that statement sounds); it's a question of how much time I have to and want to spend.

REPLY TO SECONDEDIT AS LABELED WITH THE CAPSLOCK KEY ON: It's okay. I'll probably fail.

Also:
Quote
If I get as far as pathfinding and The Pathfinder Project bears fruit, I'd love to be able to use it. Would this be impossible or cause a significant speed penalty if I used Java?
Still interested in the answer.
Logged
So sayeth the Wiki Loremaster!

Footkerchief

  • Bay Watcher
  • The Juffo-Wup is strong in this place.
    • View Profile
Re: Intellectual Property & stuff
« Reply #42 on: December 21, 2009, 01:04:10 pm »

Also:
Quote
If I get as far as pathfinding and The Pathfinder Project bears fruit, I'd love to be able to use it. Would this be impossible or cause a significant speed penalty if I used Java?
Still interested in the answer.

You'll probably want to read up on the Java Native Interface.
Logged

cooz

  • Bay Watcher
    • View Profile
Re: Intellectual Property & stuff
« Reply #43 on: December 21, 2009, 01:35:29 pm »

Even though I love Java as programing language, IMO it's useless trying to write such big project as DF clone in it. It's good for mobile phones, IT e.g. banking, stuff like that. But if you want to create games... you need performance and that's where C/CPP comes in.
Logged

Anticipation

  • Bay Watcher
    • View Profile
Re: Intellectual Property & stuff
« Reply #44 on: December 21, 2009, 08:16:09 pm »

The advantages of python are speedy development AND speedy performance (especially if you use Stackless). It's honestly very difficult to justify using Java instead of Python except for instances where you already have a ton of work invested in a Java application and the benefits of doing it all over again aren't higher than the benefits of just sticking with what you've got.

Wait up, I've been programming with python for about two years now (and not much else), how does it's speed compare to other languages? I was always under the impression that you trade off performance for ease and speed of writing the code.
Logged
Reality is like a wasps nest, stay away and you won't get stung.
Pages: 1 2 [3] 4