Legendary Tales - Refresh

Started by Grimston, July 21, 2013, 02:48:08 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Throndir

Getting a first working version will be great idea I think. I'm looking forward to start working on it when it's ready. At the very least Hasabushi and I could start giving you more input as we work with it.

Also I'm looking forward to see how plugins and skins will work. I want to try my hand at making some lol.

Grimston

My idea with plugins is to allow extension of the default client, since this project is in .net, I will take full advantage of the framework, plugins will need to implement a interface from the framework, and will have access to the scripting engine. Which will be IronPython, IP also has methods to access the .net framework.

Changes so far.
Launcher is finished and will update the program if required.
The current setup will download a zip file and replace old files with new files.
The launcher will also self update, by downloading the new exe.

Setup program for windows. - currently does not check for .net
Linux users will only need to download and unzip the program, I will also add a shell script to download Mono for Linux.

The editor will accept IEditorPlugin interfaces, allowing more game type to used. Default plugin provided will be the TextRPG plug.


I will provide the source code of the text RPG plugin, as well as a plugin to create a 2D/3D game which will show how to implement MonoGame in both the editor and client.
I'm a suicidal planet and I'm aiming at the sun,
All the gravity inside me will give way to a beautiful calm,
If you're gravitating to me, now's the time to turn and run,
I see a raging ball of fire, burning life lines in my palms

Grimston

#62
After lots of talking to my self mostly, I have decided to lower for now, my outrageous high goals for XGCE.

Currently, I have implemented the Python Scripting, That works well
Stopped using the .NET serialization, using my own implementation, so older projects will be able to be converted to new versions.
Added bare bones for encryption of scripts and text files.

I think I will write a more abstract script engine wrapper.

That will allow me to support more scripting languages, the following are more then possible,  they are quite simple to implement,

C# - Yes as a scripting language
Ruby - using IronRuby
JScript - .NET Implementation, Not sure if Mono Supports it... using IronJS
VBScript - again .NET and again not sure about Mono Not Supported On Mono, fully anyway

I would like to know what you think about this.

I have Also started work on the Scripting API, works nicely with IronPython, it acts as a module you can Import and use as a Class.

for example

Code (Python) Select

from TextRPGAPI import Messaging

def OnStartUp(API):
    mAPI = Messaging()
    #Message Box Args (string message, string title)
    mAPI.ShowMessage("This is the on startup method inside the python file","Python Alert")
   
def OnFirstEnter(AreaName):
    echo("This is the start of OnFirstEnter!")
    echo("The Area is called " + AreaName)
   
def Heal(CurrentHealth, MaxHealth):
    echo("Fred: I See you are hurt, Let me help you!")
    #We will heal, 10 HP at a time, Up to the max Health allowed
    pHealth = CurrentHealth
    if pHealth > 0:
        if pHealth + 10 >= MaxHealth:
            echo("Fred: Well you where not quite as bad as I first thought.")
            return MaxHealth
        else:
            pHealth += 10
        echo("Fred: Well you should feel a little better now.")
        return pHealth
    else:
        echo("Your dead buddy!")
   
def echo(msg):
    print msg


Compiles and runs flawlessly
I'm a suicidal planet and I'm aiming at the sun,
All the gravity inside me will give way to a beautiful calm,
If you're gravitating to me, now's the time to turn and run,
I see a raging ball of fire, burning life lines in my palms

Throndir

C# as a scripting language will be interesting. I think the idea is sound, it's not too much work to implement multiple scripting languages?

Grimston

In theory, no.

My idea is to use a ScriptController, it will then read the name of the file, pickup the extension, and use the correct run time for that language.

Python - py
Ruby - rb
JScript - js
C# - cs

Python works, and works well, C# should be fairly simple to do, as both .NET and Mono have a C# compiler, and there is always this project here: http://www.csscript.net/

The main difficult part I foresee is getting them to talk back in a predictable manner.... I will just create a basic ScriptController, for Python for now.

I will be focusing on getting it working with just Python support for now, as others can be added later. I will try to keep updating the progress here as well.
I'm a suicidal planet and I'm aiming at the sun,
All the gravity inside me will give way to a beautiful calm,
If you're gravitating to me, now's the time to turn and run,
I see a raging ball of fire, burning life lines in my palms

Grimston

#65
Holy C***!

Just found a possible nightmare with the DLR...

Code (Python,Ruby) Select

from System import Array

paths = [r'C:\Program Files (x86)\IronRuby 1.1\Lib\ironruby', r'C:\Program Files (x86)\IronRuby 1.1\Lib\ruby\1.9.1']
array = Array[str](paths)

source_code = "require 'date'"

from IronRuby import Ruby
engine = Ruby.CreateEngine()
engine.SetSearchPaths(array)
source = engine.CreateScriptSourceFromString(source_code)
source.Execute()

RubyDate = engine.Runtime.Globals.Date

date = RubyDate(2013, 9, 11)
print date.year()


Debugging nightmare is fairly possible... But... It does raise some rather interesting thoughts, maybe this interoperability will be useful.

Edit:
Whats happening, it starts as a Python script, which then imports Ruby, then it creates a new script engine, imports (requires) a Ruby module (date)

Then it runs the script and then Python is able to use the Ruby object Date, to get the date the way a Ruby script would, inside an executing Python script.

So you can in effect, jump from Ruby to Python at will.
I'm a suicidal planet and I'm aiming at the sun,
All the gravity inside me will give way to a beautiful calm,
If you're gravitating to me, now's the time to turn and run,
I see a raging ball of fire, burning life lines in my palms

Hasabushi

Eww looks and sounds messy. I'll comment on this more later.

Hasabushi

<Not Regarding the Game>

Okay so Grimston, I'm getting you a section set up on the new FWC.

You'll have the following so far:


  • Builds/Feature list - latest stable build, possibly nightly builds?
  • Bug Report - User bugs to report (not sure if your using a SVN like sourceforge or the like
  • Request Features  - User requested features
  • Open Discussion - Open discussion on the game itself.

Oh also you will have a personal blog that will be used for posting code snippets, screenshots and whatever else you choose.
The downloads can also be hosted on the site, plenty of bandwidth :)

Let me know if there is anything else you will need :)



Hasabushi

In regards to the python/ruby issue:

It looks like debugging would be extremely painful, although I do see some strong pro's of using this method. Just curious as to what IDE you are using for coding/debugging? Or are you a command line kind of coder ;P

Grimston

#69
That seems to really cover everything. Cant think of anything else I would need at the moment.

I know i should use Source Control, just cant be bothered :p

---------------------------
Visual Studio 2010 2012 (Whoops) Express

And yeah, debugging would be nasty, but that is also if you use that in the scripting.

Script Errors, are picked up when running, and a dialog is displayed, showing where the error occurred in full. Should make it a little easier, then just "Script Error line 27" which the original LT displayed. Painful debugging process..

--------------------------
Edit 2:
I am interested in localizing the editor, by my language system. it looks like this for english, and Google Translated German (For example)

Code (ini) Select

[en]
Title = "Text RPG Game Creator"
New = "New"
Open = "Open"
Exit = "Exit"
OpenProjectTitle = "Select a project to open"
[de]
Title = "Text RPG Game Creator"
New = "neu"
Open = "?ffnen"
Exit = "Ausgang"
OpenProjectTitle = "W?hlen Sie ein Projekt zu ?ffnen"


It looks up the system language and uses the part code for known supported languages (en-US, en-GB are just pushed back to en)

By default if no language is found for your system English will be picked.

There will also be a settings window to change this.

It will also add new sections to the settings window should you add an extra language.

In the event something new is added, or even missed out in the translation process, the Language Code (The Left Most text in the ini file) will be displayed, This will make it easier to catch missing translations

I am hesitant to rely on Google translate, as it never gets it right...
I'm a suicidal planet and I'm aiming at the sun,
All the gravity inside me will give way to a beautiful calm,
If you're gravitating to me, now's the time to turn and run,
I see a raging ball of fire, burning life lines in my palms

Grimston

first off, there is the edit 2 section in the post above.

I have slowed on the development recently due to my nanna passing away 5 days ago now. I will be resuming development soon.

I will also be taking a new approach and will be following the LT style client manager.

the new client will also allow for shortcuts to make it easier to play a certain game.
I'm a suicidal planet and I'm aiming at the sun,
All the gravity inside me will give way to a beautiful calm,
If you're gravitating to me, now's the time to turn and run,
I see a raging ball of fire, burning life lines in my palms