What stuff do you use in the development of H&H?
-do you use a java server in addition to the java client?
-what external libraries do you use for graphics and anything else?
-what do you use as a database?
-do you use an IDE for development?
-anything else?
-
loftar
- Posts: 9096
- Joined: Fri Apr 03, 2009 7:05 am
- Location: Your character database
Re: H&H Development Stuff
Nope, it's written in C. [Though I have considered rewriting it in Lisp. :)]Ford wrote:-do you use a java server in addition to the java client?
Graphics? Are you speaking of the client? In that case, it's just OpenGL. The server only uses gcrypt for its SHA256 implementation and zlib for map compression.Ford wrote:-what external libraries do you use for graphics and anything else?
Mostly nothing. The only database I use the filesystem; and gdbm for saving of account and character information, but that could easily be replaced with any other key/value store.Ford wrote:-what do you use as a database?
Hehe... That's a question that I could easily turn into a flamewar. :)Ford wrote:-do you use an IDE for development?
Let's just say that; no, I don't feel like handicapping myself when programming, so I simply use a text editor. Emacs, to be more precise.
Why, yes; I do use a rather uncommonly used feature of GNU C, namely its nested functions which provide lexical closure over variables. They are especially convenient when combined with the ucontext functions of libc, enabling me to write coroutine-like functions sharing stack-local variables with nested callback functions which can be called from outside the routine's own ucontext and wake it up.Ford wrote:-anything else?
"Object-oriented design is the roman numerals of computing." -- Rob Pike
-
jorb
- Posts: 18715
- Joined: Fri Apr 03, 2009 7:07 am
- Location: Here, there and everywhere.
Re: H&H Development Stuff
... which, incidentally, is why he wears a Wizard's Hat.loftar wrote:Why, yes; I do use a rather uncommonly used feature of GNU C, namely its nested functions which provide lexical closure over variables. They are especially convenient when combined with the ucontext functions of libc, enabling me to write coroutine-like functions sharing stack-local variables with nested callback functions which can be called from outside the routine's own ucontext and wake it up.
"The psychological trials of dwellers in the last times will be equal to the physical trials of the martyrs. In order to face these trials we must be living in a different world."
-- Hieromonk Seraphim Rose
-- Hieromonk Seraphim Rose
-
skrylar
- Posts: 33
- Joined: Wed Jul 15, 2009 10:56 am
Re: H&H Development Stuff
Stop doing that, use TokyoCabinet. It runs on linux, has faster performance than gdbm and is supposed to have better data safety.Loftar wrote:Mostly nothing. The only database I use the filesystem; and gdbm for saving of account and character information, but that could easily be replaced with any other key/value store.Ford wrote:-what do you use as a database?
Lies, everyone knows that the only thing emacs is missing is the text editing component... which could be because the developers pinky's broke late in the development cycleLoftar wrote:Hehe... That's a question that I could easily turn into a flamewar.Ford wrote:-do you use an IDE for development?
Let's just say that; no, I don't feel like handicapping myself when programming, so I simply use a text editor. Emacs, to be more precise.
Any particular reason you aren't using an existing co-routine library?Loftar wrote:Why, yes; I do use a rather uncommonly used feature of GNU C, namely its nested functions which provide lexical closure over variables. They are especially convenient when combined with the ucontext functions of libc, enabling me to write coroutine-like functions sharing stack-local variables with nested callback functions which can be called from outside the routine's own ucontext and wake it up.Ford wrote:-anything else?
:wq
The most dapper fish you've ever seen.
And so he did say he was riding a dolphin, and that He was splashing water upon thee. --Chapter 1, Verse 2; Codex of Boats
And so he did say he was riding a dolphin, and that He was splashing water upon thee. --Chapter 1, Verse 2; Codex of Boats
-
loftar
- Posts: 9096
- Joined: Fri Apr 03, 2009 7:05 am
- Location: Your character database
Re: H&H Development Stuff
I hadn't heard of that before, so I checked it out. Here are my results:skrylar wrote:Stop doing that, use TokyoCabinet. It runs on linux, has faster performance than gdbm and is supposed to have better data safety. :P
Code: Select all
$ nm -D /usr/lib/libtokyocabinet.so.3 | grep T | wc
367 1101 8354
$ nm -D /usr/lib/libgdbm.so.3 | grep T | wc
28 84 678
On the other hand, it has Lisp, so it doesn't need that. ;)skrylar wrote:Lies, everyone knows that the only thing emacs is missing is the text editing component...
Well, I find that using any external library is, 90% of the time, more work than writing one myself anyway (since it includes the time and work necessary to 1) find a library, 2) learn its API, 3) work out the best and/or intended way of using it, 4) learn it well enough to be able to debug problems related to it, 5) keeping up with bugs and updates in it, 6) making sure it's available everywhere I want to run the program I'm writing, and then a ton of other unforeseen and often unforeseeable issues). Seeing how my coroutine "library" is 170 lines of C code (including a number of convenience functions), it seems like a non-issue.skrylar wrote:Any particular reason you aren't using an existing co-routine library?
"Object-oriented design is the roman numerals of computing." -- Rob Pike
-
Humps
- Posts: 50
- Joined: Mon Jul 13, 2009 9:09 pm
Re: H&H Development Stuff
I UNDERSTAND EVERYTHING IN THIS THREAD AND LET ME TELL YOU SOME OF IT IS VERY INTERESTING OF THAT FACT I AM SURE.
-
ape
- Posts: 4
- Joined: Wed Jul 22, 2009 4:19 am
Re: H&H Development Stuff
http://tokyocabinet.sourceforge.net/benchmark.pdfloftar wrote:I hadn't heard of that before, so I checked it out. Here are my results:skrylar wrote:Stop doing that, use TokyoCabinetConsequently, gdbm wins.Code: Select all
$ wc![]()
gdbm loses.
http://localmemcache.rubyforge.org is probably even better than both.
-
theTrav
- Posts: 3464
- Joined: Fri May 29, 2009 11:25 pm
Re: H&H Development Stuff
Loftar perhaps values an order of magnitude in third party library simplicity over an order of magnitude improvement in read time and two orders in write time?
What's TC's memory usage like in those bench marks?
What's TC's memory usage like in those bench marks?
-
skrylar
- Posts: 33
- Joined: Wed Jul 15, 2009 10:56 am
Re: H&H Development Stuff
loftar wrote:I hadn't heard of that before, so I checked it out. Here are my results:skrylar wrote:Stop doing that, use TokyoCabinet. It runs on linux, has faster performance than gdbm and is supposed to have better data safety.Consequently, gdbm wins.Code: Select all
$ nm -D /usr/lib/libtokyocabinet.so.3 | grep T | wc 367 1101 8354 $ nm -D /usr/lib/libgdbm.so.3 | grep T | wc 28 84 678
The most dapper fish you've ever seen.
And so he did say he was riding a dolphin, and that He was splashing water upon thee. --Chapter 1, Verse 2; Codex of Boats
And so he did say he was riding a dolphin, and that He was splashing water upon thee. --Chapter 1, Verse 2; Codex of Boats
-
theTrav
- Posts: 3464
- Joined: Fri May 29, 2009 11:25 pm
Re: H&H Development Stuff
Ahh, memoriesskrylar wrote:-img-