Advertisement

How good is Urho3D ?

Started by July 02, 2017 07:02 PM
4 comments, last by kishy_Nivas 7 years, 5 months ago

I have installed Urho3D, worked out some examples from the source code sample ,it looks neat ,simple and good, so we are  planning to start developing games with Urho3D, but the problem is, the community looks small but active,  so my friends are hesitating to start , should we be concerned ?  .

  please don't suggest to go to Unity3D or Unreal, we are running on  low config systems , we are also planning to start with Unreal in future in our college labs . Urho3D is for creating hobby projects at home :) Thanks!

I find Urho3D to be fantastic. I'm using it to make my game, a turn-based, hex-based RPG hack and slash:

screen_2017_6_18_12_37_37.thumb.png.4597455e0bafe654ec6220292c890ed3.png

 

It's a very solid engine, lots of support on various platforms and quite capable.

Advertisement
13 hours ago, JTippetts said:

I find Urho3D to be fantastic. I'm using it to make my game, a turn-based, hex-based RPG hack and slash:

screen_2017_6_18_12_37_37.thumb.png.4597455e0bafe654ec6220292c890ed3.png

 

It's a very solid engine, lots of support on various platforms and quite capable.

Cool, thanks for your answer,  do you have some small projects in Urho3D which you might have done while learning? if so,  do you mind sharing it ?

I'm on vacation in California right now so I don't have access to a lot of stuff, but I did find an old project on my wife's laptop that I uploaded on github. https://github.com/JTippetts/U3DIsometricTest

 

It's a small isometric demo that features a controllable character, a bunch of randomly-walking mobs, an isometric maze and click-to-move pathfinding.

 

screen_2017_7_3_9_15_6.thumb.png.382ab7268e837fb2549e3c743363c307.png

 

It's implemented purely in Lua, and can be run with the vanilla Urho3DPlayer.exe using either the run.bat batch file or the command Urho3DPlayer.exe Scripts/main.lua -borderless (use -w instead of -borderless to run windowed).

 

I tend to do things somewhat unconventionally. By default, Urho3D allows instancing objects from XML or JSON files. However, I like to instance from Lua tables instead, so I wrote a script file (objectinstancing) that can take a Lua table structured in a certain way and instance an object from it. This allows me to write object descriptions such as:


	player=
	{
		Scale={x=0.5,y=0.5,z=0.5},
		Components=
		{
			--{Type="CombatCameraController", Offset=1},
			--{Type="ScriptObject", Classname="IsometricCamera"},
			{Type="ScriptObject", Classname="CameraControl"},
			{Type="ScriptObject", Classname="PlayerController"},
			{Type="ScriptObject", Classname="RotationSmoothing"},
			{Type="AnimatedModel", Model="Models/gob.mdl", Material="Materials/gob.xml", CastShadows=true},
			{Type="AnimatedModel", Model="Models/CubeSword.mdl", Material="Materials/CubeSword.xml", CastShadows=true},
			{Type="AnimationController"},
			{Type="ScriptObject", Classname="AnimationMap",
				Parameters=
				{
					animations=
					{
						walk="Models/GC_Walk.ani",
						idle="Models/GC_Idle.ani",
						start="Models/GC_Idle.ani",
						attack="Models/GC_Melee.ani",
					}
				},
			},

		},
		
		Children=
		{
			{
				Position={x=0,y=1.5,z=0.5},
				Components=
				{
					{Type="Light", LightType=LIGHT_POINT, Color={r=0.85*2,g=0.45*2,b=0.25*2}, Range=5, CastShadows=true},
				},
			},
			
			{
				Position={x=0,y=1.5,z=-0.5},
				Components=
				{
					{Type="Light", LightType=LIGHT_POINT, Color={r=0.85*2,g=0.45*2,b=0.25*2}, Range=1, CastShadows=false},
				},
			},
		}
	}

 And the code will instance a player object based on that description. I do it this way because I do all of my game logic and control as Lua scripts, but serializing script objects and their parameters in Urho is weird. It wants to serialize script object members as an opaque stream of data rather than as named members.

 

When I get back home in a couple weeks, I could probably find some other small projects if you're still interested.

Thanks a lot!

This topic is closed to new replies.

Advertisement