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: 9093
- Joined: Fri Apr 03, 2009 7:05 am
- Location: Your character database
Re: H&H Development Stuff
Ford wrote:-do you use a java server in addition to the java client?
Nope, it's written in C. [Though I have considered rewriting it in Lisp. :)]
Ford wrote:-what external libraries do you use for graphics and anything else?
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 do you use as a database?
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:-do you use an IDE for development?
Hehe... That's a question that I could easily turn into a flamewar. :)
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.
Ford wrote:-anything else?
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.
"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
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.
... which, incidentally, is why he wears a Wizard's Hat.
"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
Loftar wrote:Ford wrote:-what do you use as a database?
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.
Stop doing that, use TokyoCabinet. It runs on linux, has faster performance than gdbm and is supposed to have better data safety.
Loftar wrote:Ford wrote:-do you use an IDE for development?
Hehe... That's a question that I could easily turn into a flamewar.
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.
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 cycle
Loftar wrote:Ford wrote:-anything else?
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.
Any particular reason you aren't using an existing co-routine library?
: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: 9093
- Joined: Fri Apr 03, 2009 7:05 am
- Location: Your character database
Re: H&H Development Stuff
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
I hadn't heard of that before, so I checked it out. Here are my results:
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
Consequently, gdbm wins. :)
skrylar wrote:Lies, everyone knows that the only thing emacs is missing is the text editing component...
On the other hand, it has Lisp, so it doesn't need that. ;)
skrylar wrote:Any particular reason you aren't using an existing co-routine library?
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.
"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
loftar wrote:skrylar wrote:Stop doing that, use TokyoCabinet
I hadn't heard of that before, so I checked it out. Here are my results:Code: Select all
$ wc
Consequently, gdbm wins.
http://tokyocabinet.sourceforge.net/benchmark.pdf
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:skrylar wrote:Stop doing that, use TokyoCabinet. It runs on linux, has faster performance than gdbm and is supposed to have better data safety.
I hadn't heard of that before, so I checked it out. Here are my results: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
Consequently, gdbm wins.
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
skrylar wrote:-img-
Ahh, memories