Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Muds, Graph Theory, and Open Source

FortKnox (169099) writes | more than 11 years ago

Programming 7

OK, for those that read the "Developers! X3" JE, you know I was (poorly) asking some graph theory questions. The answers and responses were great (thanks helio!), but I have changed my design around to disclude expicit graphs.

I'm designing a mud. No, not like anything you used to play. Muds haven't been innovative since the 80s. The only mud to have any innovation is UO. I'm finding the middle ground (still text based, but having its own client and true innovation).OK, for those that read the "Developers! X3" JE, you know I was (poorly) asking some graph theory questions. The answers and responses were great (thanks helio!), but I have changed my design around to disclude expicit graphs.

I'm designing a mud. No, not like anything you used to play. Muds haven't been innovative since the 80s. The only mud to have any innovation is UO. I'm finding the middle ground (still text based, but having its own client and true innovation).

My original design had a graph whose nodes were a mini-2D coordinate system. This started getting really messy when I tried to find relationships between nodes. For example: a tavern would be one node, the street another, the house across the street another, etc etc etc. If I looked out of the house, would I see the tavern? What about on the second story? These were problems I was contemplating.
That's when a friend of mine came up with another idea. The first idea is very similar to the labrynths in the original Zelda. What about taking the modern approach (like UO) where you stay put, but the world moves. In other words, the entire town is one node on a graph and you have a 3D coordinate system within (3D array). That way, you do all your fancy relationships easily in the 3D array, and your graph doesn't need any fanciness attached to it.

So that's the solution. Now my next point: Open source. Most projects I mess with I open. But this mud is making me stingy. I put a lot of thought and hard work into designing this (and I'll put even more in coding it), so I don't want to immediately release it. This will sound cruel, but I don't want 16 year olds trying to install this, trying to steal my players, and trying to ask me questions like "D00D!!1 H0W D1D U J3T UR MUD 2 WERK?!?!!11" I want to make a name for myself in the cult-like mud community, THEN release my source once everyone knows where it came from and who I was.

Is this terribly egotistical? Anyone make something that they poured their sweat in and can give me a second opinion on why I should open source from the start?

cancel ×

7 comments

I would assume (1)

sielwolf (246764) | more than 11 years ago | (#5586116)

That if you decided to get complex you might need to do some ray tracing. It wouldn't be so difficult since you aren't working with floating point values (i.e. trying to hit a bounding box to test if you "see" it or not). Of course that would only be necessary if you were doing something complex. If there is only ONE thing that is to the "north" of your position, it isn't a big deal. But if you want to say "You see a street. Beyond that you see a two story house. Beyond that you see the spires of a castle" you might need something more robust.

Just some random thinking.

Egotistical? I think not. (1)

dthable (163749) | more than 11 years ago | (#5586269)

Personally, I've done the same thing with two libraries of code - a J2EE DAO framework and my Perl Tk::Widgets. I started developing both while unemployed to keep my skills up, and when I got my current job, used them in projects at work without opening them up to the world. Some day soon, I'll look at making an open branch of the codebase, but for now, I think the company that got me off the street should have a little kickback for hiring me.

You're not egotistical or stingy. (1)

Dthoma (593797) | more than 11 years ago | (#5586282)

There's nothing wrong with wanting to keep your hard work under your control. That's fine. You wrote the software, you do what you like with it.

OSS and CSS... (1)

kormoc (122955) | more than 11 years ago | (#5586362)

Hmmm...
I enjoy making my source open to people, but as I am also working on a game, I understand the problem you have with opening it up to the world. Here's the solutions I felt would be good.

I will not release code at all until I start beta testing the game with a few friends. This will allow me to not worry about it at all, but to worry about getting it coded right and make the game work well.

Once the game goes beta, I will release some code. Not all, this will provent cheats, and clones from springing up with my game, but it will allow people to learn from it.

Once the game engine is stable, the game starts getting bit, etc. I will release everything that will not be a problem if players read it. This will allow others to use the engine of my game for there own, but they have to code a bit as well.

I don't think I will ever open it up all the way, this would allow people to cheat a lot, as I am sure that I missed a few bugs here and there. The more I work on it, the better it gets.

I would love to know more about your game btw, it does sound fun. Keep us in the loop :)

Re:OSS and CSS... (1)

FortKnox (169099) | more than 11 years ago | (#5586528)

Sure. I intend on making an engine so diverse, you should be able to create a full mud (including skills/attributes/etc...) through the engine itself. Everything, including constants, exist in a DB (get loaded into a singleton).
Also, I want to make it into a compiled class-jar, so you can build onto it without me having to open source it.

Also, I intend on making the design of the game open from the start. If you'd like I'll point you to the site I open up (when I finish) with my plans and design docs. My philosophy is the easiest way to make a game that gamers like is to make gamers part of the design process.

Oh, and my current thought is similar to yours. I'll not release any code until I get the game at 1.0, and up and running. Then release the full engine itself out for a month, so people can just build muds off the engine. Then release class-jars so people can build ontop of the engine. Then, after I get donation money/gaming job/just get tired, I'll open it up entirely.

Re:OSS and CSS... (1)

(H)elix1 (231155) | more than 11 years ago | (#5588494)

I want to make it into a compiled class-jar, so you can build onto it without me having to open source it.

Hate to say it, but if it is java it is very easy to create reasonable java code from a class file. Snag a copy of jad [tripod.com] and run it on a class. It was solid enough that many of us on the consulting side would jad the code base rather than go through the hassles of getting source control access. It really is that good (or bad, depending on your perspective). Won't stop the determined regardless, but most folks won't bother anyhow...

As for releasing source - best to keep the numbers working on it small. If you are going to open source it, best to have a solid core that people can be creative and take it directions you had not thought of... rather than try to involve the world as something starts. Java is a solid choice, however, as there are many hoolagins like myself who would jump at a java project over other languages.

Graph Theory? (1)

gmhowell (26755) | more than 11 years ago | (#5587607)

Graph Theory? I'm totally lost dude. But I will gladly help alpha test on either Linux or WinXP or Win2k. (or NT4 from work;) Perhaps some documentation work.

Don't feel compelled to OSS from the beginning. I can see only two reasons to open source early/right away. First is if you find yourself either unable to code something or code it quickly. You may want and/or need the help of others. Of course, this doesn't mandate OSS. Perhaps someone in your JE group can help you on that specific bit of code. The second case is where your ideas are groundbreaking, but trivial to code. In that instance, as soon as your system gets seen, someone else will try to OSS it. Maybe.

Oh, another reason: free sourceforge hosting. If it winds up being super duper popular, you will likely need to offload the downloads. I guess you could have a rotating geocities page or something similar, but why not let VA suck it up?
Check for New Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...