View unanswered posts | View active topics


Post a new topicPost a reply
Previous topic | Next topic 

User avatar   Crytek Staff Member Crytek Staff MemberMember since: 11.07.2008, 20:25Posts: 11626Location: Frankfurt am Main Likes: 10
 

 Post Topic: CryMono v0.1 Public Release
PostPosted 24.12.2011, 14:45 


CryMono v0.1 is the first public release of the C#/.NET implementation for CryENGINE3 developed by Ink Studios. It brings the power of C# into the world of CryENGINE3, allowing game logic to be scripted in a faster and easier to use language than Lua.

CryMono ships several new components for the engine. A custom build of Mono from source enables 64bit support, the Base Class Library contains an array of engine features for use in your code, and the Manager/CryMono library ties everything together.


Image


Current Engine Features

CryConsole
A robust console implementation handles console variables (CVars) and maps all the useful engine logging functions. Need to keep track of some information during testing? No problem.

EntitySystem
Create entity code files and have them automagically registered and loaded by the engine, properties and all. No configuration required.

GameRules
Currently a work-in-progress, but allows for registration of custom game modes with all the usual CryENGINE game mode events.

FlowNodes
Not yet implemented.

Debugger
Coming soon: use MonoDevelop to debug your C# code, and say adios to printing convoluted strings to check your data.

Utilities
Need to get the base engine folder? Find your scripts location? CryPath has you covered. Need some rudimentary profiling? CryStats tracks managed memory usage.


Image


Download
Heard enough? All the necessary files are available on our public GitHub repository, along with installation instructions. The full license terms are also in this repo.


Documentation
We'll have a full API reference up shortly. This will be regularly updated as we push updates to the project. In the meantime, guides on entity creation and integrating the system into your project are available. If you're interested in the direction that project is taking, please consult our roadmap for v0.2.


Additional Credits
Sam 'ins' Neirinck - Cemono
Novell Inc. - The Mono Class Library, The Mono Runtime Libraries

User avatar   Uber Modder Uber ModderMember since: 15.04.2008, 19:40Posts: 2321Location: London, UK Likes: 0
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 24.12.2011, 16:11 
It must be good. An implementation of a powerful scripting language, like UnreasScript in UDK. But honestly saying, I don't see usability of that. C# is like C++. What's wrong with Game DLL compilation? Though, it will be usable for hardcore programmers like authors, but not for regular user.

How about a simple explanation of what that system does?
User avatar   Crytek Staff Member Crytek Staff MemberMember since: 11.07.2008, 20:25Posts: 11626Location: Frankfurt am Main Likes: 10
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 24.12.2011, 16:21 
Quote by Alex626:
It must be good. An implementation of a powerful scripting language, like UnreasScript in UDK. But honestly saying, I don't see usability of that. C# is like C++. What's wrong with Game DLL compilation? Though, it will be usable for hardcore programmers like authors, but not for regular user.

C# has advantages over C++ like a large base class library with lots of well-documented features, a garbage collector, properties, and a decent reflection system. In our system, there's also no need to compile (although optional precompiled assembly loading will be and already partially is supported) because we JIT compile the scripts behind the scenes, and future builds will support automatically reloading entities at runtime.

I'd also say that C# is more accessible, you don't need an understanding of pointers or memory management (though it's good to have regardless!).


*face specialist, anti-flowgraph campaigner.
User avatar   Uber Modder Uber ModderMember since: 15.04.2008, 19:40Posts: 2321Location: London, UK Likes: 0
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 24.12.2011, 16:24 
So, basically it is a superstructure over Game DLL, which allows to access standard CryENGINE classes?
User avatar   Crytek Staff Member Crytek Staff MemberMember since: 11.07.2008, 20:25Posts: 11626Location: Frankfurt am Main Likes: 10
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 24.12.2011, 16:32 
Quote by Alex626:
So, basically it is a superstructure over Game DLL, which allows to access standard CryENGINE classes?

Of sorts, yes. We expose one class and two interfaces for custom classes: Entity, IFlowNode, and IGameRules.

Derived types are then automatically loaded by our C# CryScriptCompiler and we register these with the appropriate C++ engine systems. These two platforms communicate mostly via a set of custom scriptbinds.


*face specialist, anti-flowgraph campaigner.
User avatar   Uber Modder Uber ModderMember since: 15.02.2008, 14:13Posts: 2734Location: Greece Likes: 3
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 24.12.2011, 18:09 
Sick work! :)


User avatar   Beginner BeginnerMember since: 18.08.2011, 15:40Posts: 90Location: Egypt Likes: 0
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 24.12.2011, 18:34 
Is this version of " CryMono " is substitute for official "Lua" language for ever or this version of " CryMono " is still BETA, Please I need clear reply....?


Image
User avatar   Uber Modder Uber ModderMember since: 19.03.2009, 12:21Posts: 1916Location: SwedenStatus: Online Likes: 9
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 24.12.2011, 19:02 
Quote by woodygoody:
Is this version of " CryMono " is substitute for official "Lua" language for ever or this version of " CryMono " is still BETA, Please I need clear reply....?


Our goal is to replace Lua to the largest extent possible with the Free SDK. Unfortunately a large portion of the CryENGINE Lua ScriptSystem is done outside of our reach, which means Lua can never be replaced entirely.

Quote by alex626:
It must be good. An implementation of a powerful scripting language, like UnreasScript in UDK. But honestly saying, I don't see usability of that. C# is like C++. What's wrong with Game DLL compilation? Though, it will be usable for hardcore programmers like authors, but not for regular user.


To add to what Ruan said, C# is easier to use and also has a significant performance increase over Lua. Our system will allow a larger extent of modding functionality, allowing developers to drop scripts in their source-form into the Scripts folder to make it compile at startup, or for a FGPS-style setup compile their scripts to a .dll which is then loaded and executed automatically if inserted into Scripts\Plugins.


User avatar   Uber Modder Uber ModderMember since: 15.04.2008, 19:40Posts: 2321Location: London, UK Likes: 0
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 24.12.2011, 19:18 
Quote by i59:
To add to what Ruan said, C# is easier to use and also has a significant performance increase over Lua. Our system will allow a larger extent of modding functionality, allowing developers to drop scripts in their source-form into the Scripts folder to make it compile at startup, or for a FGPS-style setup compile their scripts to a .dll which is then loaded and executed automatically if inserted into Scripts\Plugins.



It's good, but didn't you forget that LUA is a script language, and it doesn't need to be compiled? How about live LUA scripting from console, or how about live running of the scripts, without a need to relaunch the game?
User avatar   Uber Modder Uber ModderMember since: 19.03.2009, 12:21Posts: 1916Location: SwedenStatus: Online Likes: 9
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 24.12.2011, 19:22 
Lua is compiled at startup, as ours is. ;) We have a work in progress system in place for reloading scripts when they have been edited, to make sure changes can be tested in real-time without relaunching the game.

@ Live Lua scripting; this is a neat feature for Lua but it isn't something we're aiming to implement for C# since there is no proper use for it. If you really need to test code in realtime, make use of the Script reloading feature. :)


  Beginner BeginnerMember since: 23.09.2011, 17:31Posts: 75 Likes: 0
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 24.12.2011, 20:22 
Were is the Like button.
I love you :)
If you could replace LUA entirely with C#/mono that would be super. :D
I personally don't like LUA as a scripting language in game engines.
I am a C++ programmer for years and I think C++ will never die, but I find C#/mono quite nice, fast and
very very similar to C++ thus easy to go to it from C++ (a lot faster that to LUA)
Thumb Up.


Katoun
User avatar   Crytek Staff Member Crytek Staff MemberMember since: 11.07.2008, 20:25Posts: 11626Location: Frankfurt am Main Likes: 10
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 24.12.2011, 20:29 
Quote by Alex626:
It's good, but didn't you forget that LUA is a script language, and it doesn't need to be compiled? How about live LUA scripting from console, or how about live running of the scripts, without a need to relaunch the game?

Does Lua have this? ;) http://msdn.microsoft.com/en-us/library/gg145045(v=VS.100).aspx


*face specialist, anti-flowgraph campaigner.
User avatar   Uber Modder Uber ModderMember since: 15.04.2008, 19:40Posts: 2321Location: London, UK Likes: 0
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 24.12.2011, 20:31 
Why no one made it for CryEngine2?
  Beginner BeginnerMember since: 23.09.2011, 17:31Posts: 75 Likes: 0
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 24.12.2011, 21:48 
Could you make it work with VC++ 2010 express and VC# 2010 express :D please.
I am using the Express version because is free and CryEngine 3 sdk has a .sln file that work with it :D
I got stuck.
I have splited CryMono.sln in 2 one for C# named it BaseClass_express.sln and it has the BaseClass and Manager project, the other one is CryMono_express.sln and it has the CryMono project and it is for the C++. Then made the requires modification stated in the git page :
Code:
2. Add gEnv->pGameFramework = m_pGameFramework after ModuleInitISystem(m_pFramework->GetISystem(),"CryGame");
with one observation there is no m_pGameFramework in the GameStartup.cpp but there is a m_pFramework.
Then in the CryMono_express.sln on the CryMono project in the properties added VC_EXPRESS define and in the CryMono.rc replace
Code:
#include "afxres.h"

with
Code:
#if defined(VC_EXPRESS)
#include "windows.h"
#else
#include "afxres.h"
#endif

like in the GameDll.rc.
Now I have this problem after compiling BaseClass and Manager projects from the C# express when trying to compile the CryMono project from C++ express:
Code:
1>LINK : fatal error LNK1104: cannot open file 'mono.lib'

And yes I have copied the content of CryMono-0.1-core.zip into the sdk dir.

Thank you.


Katoun
User avatar   Uber Modder Uber ModderMember since: 28.11.2007, 19:14Posts: 1162Location: Belgium Likes: 0
 

 Post Topic: Re: CryMono v0.1 Public Release
PostPosted 25.12.2011, 00:00 
Quote by Alex626:
Why no one made it for CryEngine2?
Ahem