Proposed Changes


Staff member
So I have mentioned it before briefly, but Odyssey is in the process of being converted to a new language (probably C#). Actually to be accurate, I had started the conversion then realized that the BSGame library I've been developing for awhile will work perfectly in Odyssey as well so I quit the conversion and have been working on BSGame for awhile now. Now that it is nearly a fully functional state, it is time to re-begin work on Odyssey. I'll be porting the client and server that will be used for BSGame's unnamed project for use in Odyssey soonish, but here are a few things that need to change.

I will not be supporting Odyssey's old database simply because it is just old and don't want to add yet another method of saving to BSGame library. But I will create a full conversion tool for it. I just want to make this part clear now. Anything you have made in the past should be able to be converted to the new formats without issue. However, there will be one issue that I need to address. Odyssey scripting is being converted to Lua. Lua is easy to understand but I'm not sure that I will be able to create a full converter from older script to Lua. I will try and probably succeed at a later time, but just an open question for now.

1. Should I worry about this before a full release of Odyssey or can I release and then release a converter at a later time for scripts?

Next issue. Changes from VB6 to C# prevent me from simply using controls on a form for any and all elements. Instead all GUI elements will be drawn on the screen (hopefully only when needed and not every loop) but this brings up a HUGE issue. All the editor elements will have to be recreated in code and drawn to the form. This will not be fun, but will happen eventually (unless everyone is just happy with my alternative solution). So here's my second question.

2. Is it ok to also port BSGame's World Editor for Odyssey's use? I'll post pictures of what it looks like at a later time.

Final issue for now. Currently, Odyssey uses a hardcoded monster format. You have basically very limited control of what a monster can and can't do. BSGame's unnamed project will be using fully scripting NPCs. Meaning, NPCs are more dynamic and can be loaded or unloaded at anytime. Additionally, an NPC's behavior can be fully defined via the script (for example, you can force an NPC to only follow a certain path or to use a fully random path or anything in between). You can make NPC wander across maps or you can have him stay on one map. You can use a very generic townsperson NPC and simply have it randomize it's name and appearance on load so it appears to be many different NPCs. And many other possibilities. This will make NPCs much more fun to make, but also make them a little harder to make. How exactly does the game determine when to load NPCs though? Well they are all loaded at server start (and updated when needed). If they have certain conditions to load (like nighttime or event triggered) or the conditions are unspecified they are put in a certain list, if they simply load and run they are inserted into another list and immediately run. (These are actually one large list but with LINQ conditions to access them, but it's easier to explain it this way for those of you who don't know any programming). For the ones that have no conditions to load it is assumed that they will be loaded and unloaded with a map (which is ideal since the server won't have to process these NPCs anymore).

3.1. Should I leave monsters the way they are now (fairly easy to create but extremely limited functionality) or should I expand NPCs to be fully dynamic and make them all scripted?

I'm sure I'll have more proposals later on, but I'll leave it at these for now.


New Member
  • Having to learn syntax for a different language... eh, I guess I'll have to deal with it.
  • What's your "alternative solution" for the editors?
  • Any more details about the World Editor or is it just the monsters/NPCs?
  • More scripting control over monsters sounds very nice. How much harder will the new NPCs be to create?