Author Topic: Master thesis proposal  (Read 8760 times)

jonny

  • Traveller
  • *
  • Posts: 10
    • View Profile
Master thesis proposal
« on: July 15, 2009, 03:45:23 pm »

Dear Planeshift Developers

I'm a student at the Bergen University College in Norway and I'm now
starting my 7.th semester at the CS department.

This semester, we're selecting our Master Thesis.

My goal is to contribute to a Free Software project and to learn
something new (I would like to learn a new programming language).

The thesis doesn't need to produce a working end result; the most
important aspect is the research and the final report, but I would
love to see my work eventually be of some use.

The amount of time devoted to the thesis is 60 ECST; about 1 year
full-time work that includes learning, research, report writing and
development.

I'm not a person who plays a lot of games, but I find the server part
of this project very interesting. After I first played with Erlang,
I've been fascinated and impressed by the platform and the scalability
of the systems that are based on it, like ejabberd, yaws and rabbitmq.

What I would like to do, is to write some parts of the server in
Erlang and integrate it with the existing C++ code that handles the
game logic (managers) and database.


Scenario 1: "We don't want any stinking Erlang in our code base or we
can't define a task"
Impact for you: None.
Impact for me: Find another project.
Impact for the thesis: None.

Scenario 2: "The server is unstable, unfinished and useless"
Impact for you: Maybe waste some time on me.
Impact for me: Probably learn a lot; try to finish it after the thesis.
Impact for the thesis: Need to write a good final report.

Scenario 3: "The server is slower than the original"
Impact for you: None.
Impact for me: Probably learn a lot; try to investigate after the thesis.
Impact for the thesis: None.

Scenario 4: "The server is just as stable and handles a great deal
more connections than the original"

The end result is that there will exist an alternative server when the
game eventually gets more players and needs to scale.
 

Ideal plan:
* Develop a benchmark client.
  - Benchmark how many clients the server can handle.
  - Can be used to black-box test the server and ensure that the
    server is the same.
  - Can also be used to run an automated test against the current server.

* Develop a server in Erlang and integrate it with the unchanged C++
  code that controls the logic.

* Benchmark the new server against the original
  - My private machine.
  - On a cluster at the university
    http://www.parallab.uib.no/resources/about/

If the code containing the game logic can be easily separated,
there'll just be a small part of the server that has two alternative
implementations.

I could always implement the server on my own, but it would be harder
without any help from your team. I have no problems hosting the code
on my own RCS server, so there'll be no "noise" in the official
repository.

I hope I haven't scared you and that you find the idea interesting;).

Thank you for your time.

Jonny Heggheim

steuben

  • Veteran
  • *
  • Posts: 1834
    • View Profile
    • Myspace
Re: Master thesis proposal
« Reply #1 on: July 15, 2009, 04:13:55 pm »
what is erlang and why is it important?
who will own the code? see ps license for more information.
what sections of the server?
what is the projected increase in performance?
etc. etc.
may laanx frighten the shadow from my path.
hardly because the shadow built the lexx.
the shadow will frighten laanx from my path.

Mordraugion

  • Hydlaa Notable
  • *
  • Posts: 816
  • Ex Dev and GM
    • View Profile
Re: Master thesis proposal
« Reply #2 on: July 15, 2009, 04:19:21 pm »
maybe join irc.freenode.net #planeshift or #planeshift-build and have a chat with Venge/Xillix/Talad/Xordan?
No longer a member of the PlanShift Development Team
Hokinon or Hoki on IRC

PS is not a democracy, nor will it ever be -- Karyuu 2006
http://www.hydlaaplaza.com/smf/index.php?topic=21049.msg230947#msg230947

Xordan

  • Crystal Space Developer
  • Forum Addict
  • *
  • Posts: 3845
  • For God and the Empire
    • View Profile
Re: Master thesis proposal
« Reply #3 on: July 15, 2009, 04:30:53 pm »
I think this is a very cool idea, there's several things I really like about Erlang.

Even if it ends up not being useful to us, I think it's a great idea for a project and there'll be plenty for you to learn and write about.

jonny

  • Traveller
  • *
  • Posts: 10
    • View Profile
Re: Master thesis proposal
« Reply #4 on: July 15, 2009, 05:14:12 pm »
what is erlang and why is it important?
Erlang is a programming language made by Ericcson. Its focus is the ability to easily create parallel, distributed and fault-tolerant systems, ideal for network servers.
The reason I want to use Erlang is because I want to learn more about Erlang.

Quote
who will own the code? see ps license for more information.
Copyright:
If no one wants the code: Me.
If Atomic Blue want to include the code into the official repository: Atomic Blue.

License:
Preferred: AGPL, but I have no problems to use GPL.

Quote
what sections of the server?
What I think; there is a section of the server that listen for new connections, and talks to clients. This code also make calls to the *managers that handles game logic.
If this is true, this is the section of the server I want to make an alternative implementation of.
Its hard for me to pin out this section, and maybe its impossible to integrate it. Anyway I want to make sure there are no show stoppers before I select my thesis.

Quote
what is the projected increase in performance?
I hope there will be an increase. The thesis need to have some "research parts", and the performance will be within this research part.
The implementation may perform the same or even perform worse, so its important to try to make some form of benchmark.

Thanks for your questions, I hope I answered them. Just feel free to ask more about the thesis!  :)

jonny

  • Traveller
  • *
  • Posts: 10
    • View Profile
Re: Master thesis proposal
« Reply #5 on: July 15, 2009, 05:16:33 pm »
maybe join irc.freenode.net #planeshift or #planeshift-build and have a chat with Venge/Xillix/Talad/Xordan?

I'm hanging around #planeshift-build, my nick is jonny2. Feel free to discuss with me! :)

ThomPhoenix

  • Testers
  • Forum Addict
  • *
  • Posts: 2678
  • A Phoenix, what'd you expect?
    • View Profile
Re: Master thesis proposal
« Reply #6 on: July 16, 2009, 01:24:27 pm »
maybe join irc.freenode.net #planeshift or #planeshift-build and have a chat with Venge/Xillix/Talad/Xordan?

I'm hanging around #planeshift-build, my nick is jonny2. Feel free to discuss with me! :)

Those persons Mordraugion named are very busy, so they won't start talking to you out of themselves. You should query them with your questions, and for some it may take a while until they answer. Xillix should respond quickly most of the time. You could also send some emails :)

Good luck with your thesis ;)
We're not evil. We're simply amazing.

jonny

  • Traveller
  • *
  • Posts: 10
    • View Profile
Re: Master thesis proposal
« Reply #7 on: July 16, 2009, 01:55:05 pm »
Those persons Mordraugion named are very busy, so they won't start talking to you out of themselves. You should query them with your questions, and for some it may take a while until they answer. Xillix should respond quickly most of the time. You could also send some emails :)
Yepp, I'm still waiting;)
I have talked with Vengeance. He dont like Erlang, but he is open minded and interesting to see what I can do.

Quote
Good luck with your thesis ;)
Thanks! :)

Mordraugion

  • Hydlaa Notable
  • *
  • Posts: 816
  • Ex Dev and GM
    • View Profile
Re: Master thesis proposal
« Reply #8 on: July 16, 2009, 02:30:07 pm »
try Xordan ;)
No longer a member of the PlanShift Development Team
Hokinon or Hoki on IRC

PS is not a democracy, nor will it ever be -- Karyuu 2006
http://www.hydlaaplaza.com/smf/index.php?topic=21049.msg230947#msg230947

jonny

  • Traveller
  • *
  • Posts: 10
    • View Profile
Re: Master thesis proposal
« Reply #9 on: July 16, 2009, 03:30:00 pm »
I think this is a very cool idea, there's several things I really like about Erlang.
Thanks for finding the project interesting :)

Quote
Even if it ends up not being useful to us, I think it's a great idea for a project and there'll be plenty for you to learn and write about.
I agree! :)

There are two factors for selecting my thesis:
  • Me: I want to learn Erlang and have fun while programming :)
  • University: Report writing and research, so I need to find a topic, maybe something like; "Can Erlang being used to scale an already made system?”

But I need help from the team, if people thinks; "Its a stupid idea, no reason to help him". Then I would be stuck when I'm running into problems. (Then I would need to select another project for my thesis)

As I understand, you and Kayden like Erlang. If someone wants to do Erlang coding, you are welcome to help me on the project :)

Vengeance

  • Veteran
  • *
  • Posts: 1452
    • View Profile
Re: Master thesis proposal
« Reply #10 on: July 16, 2009, 11:31:18 pm »
It doesn't matter whether I "like" erlang or not.  :-)

I am supportive and I think it is good for the PS team in general to be supportive of efforts like this to do research and learn by students.  In any case we couldn't stop you, because you can simply take our code and start modifying it to suit your needs no matter what we think.  That's the nature of the GPL.  Certainly it will be easier to do this project if we help you and show you around a little bit, and we'd be glad to do that with you.

I think if you decide to use our project that we would just give you an account for SF svn, make a branch dedicated to you and then you can play in your own sandbox for as long as you want.  Later if your results are good we'll consider merging your changes into the trunk.

Thanks,

jonny

  • Traveller
  • *
  • Posts: 10
    • View Profile
Re: Master thesis proposal
« Reply #11 on: July 22, 2009, 01:23:05 pm »
It doesn't matter whether I "like" erlang or not.  :-)

I am supportive and I think it is good for the PS team in general to be supportive of efforts like this to do research and learn by students.  In any case we couldn't stop you, because you can simply take our code and start modifying it to suit your needs no matter what we think.  That's the nature of the GPL.  Certainly it will be easier to do this project if we help you and show you around a little bit, and we'd be glad to do that with you.

I think if you decide to use our project that we would just give you an account for SF svn, make a branch dedicated to you and then you can play in your own sandbox for as long as you want.  Later if your results are good we'll consider merging your changes into the trunk.

Thanks,


Thanks for showing your interests!:)
Before I'm selecting my project for the thesis I need to:
 * Investigate the source code more. It's very big.
    - Look for show stoppers.
    - Look for possible ways to incorporate Erlang.
 * Get Erlang to "talk" to C/C++.
 * Find/convince a teaching supervisor at my school.
 * Ask the Erlang community for tips/advices etc.

Tuxide

  • Hydlaa Notable
  • *
  • Posts: 715
    • View Profile
    • Banker
Re: Master thesis proposal
« Reply #12 on: July 23, 2009, 06:18:38 am »
Hello, I am also working on a master thesis in computer science, except my work is on natural language processing and has nothing to do with PlaneShift.  First off, I'm not too sure how interesting something like this would be in the academic world because it doesn't really seem to be contributing anything.  This seems to be nothing more than a port of a piece of software.  It would be like porting psserver to Java; things like that have been done before--to the point where people go to work and do that--and it wouldn't really be adding anything new academic-wise.  Unless there's some way that a metaverse can benefit from Erlang that I'm not seeing, my advice would be to go ask your professor for ideas.

Second, the last time I checked, the AGPL3 and the GPL2 were incompatible in the way that you cannot write a GPL2 module that needs to interact with an AGPL3 module over a network.  I work with people who have ran into a similar problem; they wrote something in Python that was designed to interact with an AGPL3 module (a MUMPS compiler called GT.M) and found out they couldn't open source their code due to license incompatibility reasons.  You might run into this problem either with using Erlang or with getting your project to interact with PlaneShift code.

Ultimately, if you want to stick with using metaverses like PlaneShift, I would encourage you to choose a better topic.  For example, writing a better swarm algorithm for NPCs, parsing chat logs to compute the context of player messages, or indexing content between multiple projects to make assets more tangible to developers and to find similarities between assets.  Of course these are all in the field of artificial intelligence; without knowing your concentration I have no idea what would be good for you.  I did not choose my own topic; mine was chosen before I started my masters program and I was paid to research it.

verden

  • Hydlaa Notable
  • *
  • Posts: 716
    • View Profile
Re: Master thesis proposal
« Reply #13 on: July 23, 2009, 06:25:46 am »
Quote
For example, writing a better swarm algorithm for NPCs, parsing chat logs to compute the context of player messages, or indexing content between multiple projects to make assets more tangible to developers and to find similarities between assets.

Tuxide, if you have the time to post a list like this (but with more) in a different thread, it would be an interesting topic of discussion I think.

jonny

  • Traveller
  • *
  • Posts: 10
    • View Profile
Re: Master thesis proposal
« Reply #14 on: July 23, 2009, 10:18:50 am »
Hi Tuxide!


Quote
Hello, I am also working on a master thesis in computer science, except my work is on natural language processing and has nothing to do with PlaneShift.  First off, I'm not too sure how interesting something like this would be in the academic world because it doesn't really seem to be contributing anything.  This seems to be nothing more than a port of a piece of software.  It would be like porting psserver to Java; things like that have been done before--to the point where people go to work and do that--and it wouldn't really be adding anything new academic-wise.  Unless there's some way that a metaverse can benefit from Erlang that I'm not seeing, my advice would be to go ask your professor for ideas.
I agree, the thesis need to cover some academic-research-aspect. I'm not sure what topics they will approve, but I hope that I will find one.

Quote
Second, the last time I checked, the AGPL3 and the GPL2 were incompatible in the way that you cannot write a GPL2 module that needs to interact with an AGPL3 module over a network.  I work with people who have ran into a similar problem; they wrote something in Python that was designed to interact with an AGPL3 module (a MUMPS compiler called GT.M) and found out they couldn't open source their code due to license incompatibility reasons.  You might run into this problem either with using Erlang or with getting your project to interact with PlaneShift code.
Oh, I did not know about the incompatibility. I need to read more about the topic, thanks for telling me!

Quote
Ultimately, if you want to stick with using metaverses like PlaneShift, I would encourage you to choose a better topic.  For example, writing a better swarm algorithm for NPCs, parsing chat logs to compute the context of player messages, or indexing content between multiple projects to make assets more tangible to developers and to find similarities between assets.  Of course these are all in the field of artificial intelligence; without knowing your concentration I have no idea what would be good for you.  I did not choose my own topic; mine was chosen before I started my masters program and I was paid to research it.

There are several research groups at the department; Algorithms, Bioinformatics, Optimization, Secure communication, Visualization and Programing theory. I'm at the Programing theory group, in a "program development" specialization.
Quote from: http://www.uib.no/rg/pt
The Master's programme in program development is in cooperation with Bergen University College, and is more practially oriented, focusing on programming and software engineering.

After looking at what former students have accomplished during their thesis, there is a mix between "real" research projects and "go-to-work-and-program-normal-programs" projects.
The professors are back from summer break in the beginning of August, after talking to them I know if this is a realistic project.


Thanks for your feedback! :)
« Last Edit: July 23, 2009, 10:20:55 am by jonny »