Porting Dagon to Unity


#21

Thanks for the answers Agustin and Imari, I’ll definitely give a try to Unity Dagon. It might turn out better than I expect.


#22

Agustin, you have the skys and nodes into Unity. Do you have rooms connecting with transitions yet? Could you just release the basic set up package so that we can be experimenting with getting rooms into Unity?


#23

It’s very sketchy yet. While we have some running tests already, I’m currently building a solid and more organized codebase. For example, transitions were hardcoded in the videos we released – right now my focus is into bringing back the spots and therefore “proper” connections between nodes and rooms.

It’s getting closer! Once I’m done with the underlying data model (and thus the most crucial part of Dagonity), many other things will be ready: camera control, smooth transitions, sky effects, etc. So, give me a few days, I believe the first Dagonity package is just around the corner :slight_smile:


#24

Agustin, I’ve been playing around this weekend, trying to bring a node of the city in [I]Adamantus[/I] into Unity. I know that you’re working on [I]Asylum[/I], but I encountered a problem with adding water to a scene, which I thought you might want to know about. I don’t think that you have much water to animate in [I]Asylum[/I], so you may not have encountered this yet.

For the node, I have a transparency map for both the sky and the canal water. I apply the alpha maps to the textures of the node and I can see that the sky will work, but the water shaders (at least the basic ones) are designed to display on a horizontal plane. The plane works if the cutout is in the bottom cube face, but if the water plane is rotated 90 degrees to fit on a side of the cube, the texture is stretched vertically. I also tried using a half-cube and a hemisphere for the water, but there’s the same issue as the texture stetches up the sides. This may just need a better or custom shader, which is beyond my abilities thus far, but I wanted you to know about the “problem.”

I also had a problem with the seams showing up if a “real” directional light was added to the scene. You’ve obviously worked that out already, though.

P.S. - I also had to add the alpha into the diffuse textures, because I could not find any way to add them separately. Again, I’m guessing that you’ve written a custom shader to take care of this.


#25

Indeed, that’s correct: we’re using a custom unlit shader with alpha, and we found out a way to avoid illuminating the cube (using rendering layers). All of that has been done and works smoothly :nod:

As for the water shader: good tip! To be honest, we haven’t looked into this. There’s definitely a way to do it, but we should take care of other features first :slight_smile:

Been making loads of progress: I’m planning to use JSON for custom string tables, making it dead easy to code feedback and dialogue systems. And I already have Boo scripting working smoothly :slight_smile:


#26

More positive progress! I will post a very detailed report soon. In general, I think we can definitely maintain a standalone version of Dagon C# and sooner than expected. For technical reasons though, it just makes more sense to stick to Boo instead of Lua. The differences in scripting aren’t that terrible, and I believe I’ll be incorporating compelling features for adventure game development – just wait till you find about the new object Thing() :smiley:

In any case, I believe I have a pretty good solution to bring current Dagon++/Lua projects to Dagon#/Boo, but I have to investigate more. I expect to release an interactive interpreter with the new scripting language next weekend (still standalone, Unity package coming a bit later).


#27

Good to hear that you’re making headway, Agustin. :slight_smile:


#28

you’ll be using Mono then?
I quite liked Mono Develop but Xamarin Studio sucks on Windows, really crashy/unstable


#29

Unity is integrated with Mono Develop. Whenever you double click a script in the Unity Editor, Mono Develop automatically opens with your script. (Back to slugging through Unity tutorials…)


#30

Yes, Monodevelop seems to fit the bill for now. I’m still not seeing the apparent benefits of switching to Xamarin, unless we’d want to release a standalone version of the engine to the Mac store or iOS.

I’m quite happy with everything that .NET has to offer. The new Dagon code is already much cleaner and easier to maintain :slight_smile:


#31

Xamarin for me was horrible… its actually the reason why I shifted to C++ and Qt because it “just works” cross platform it usually takes a few minutes to get stuff working

But I was doing form based stuff and it was that part that usually went screwy


#32

Agustin, are you still planning on releasing the “interactive interpreter with the new scripting language” tomorrow? :nod:


#33

I made a breakthrough today with the integration between my C# code and Unity. I’m happy to report that a standalone version of Dagon will be possible indeed, and most of the underlaying code will remain the same in the Unity version :nod:

In particular, it will be possible to eschew all the editor features and load Boo scripts directly even with the Unity version. That is, pretty much what you did with Dagon C++ and Lua: interpret pure code.

Now, we’re readying a Kickstarter update tomorrow, so I’m not sure if I’ll have the time, but I just may upload an executable during the weekend. Just remember, it’s only the console right now to test code! Progress will be much faster now that I’ve ensured all the bits work as expected.


#34

Great news, Agustin! I’m happy that you’ve had that eureka moment. :smiley: Good luck with the Kickstarter Update and I’ll look forward to having the test version to play with this weekend. :clapping: :clapping:


#35

Grrrr… here’s me thinking I had an excuse to slack off, annoy the wife more and maybe press wild flowers or take up knitting when I feel the draw to the darkside getting stronger every day!
I don’t think there’s much call for knitted holes, and the wife is looking at poison bottles :stuck_out_tongue:


#36

Hey everybody! So we decided to wait an extra week to deliver the Kickstarter update as we’re readying more things to show. This is going to be an interesting week for sure!

As for the upcoming Dagonity build, I hit a bit of a roadblock with Boo. Against all odds, it’s harder to integrate with Unity which doesn’t include the interactive interpreter I was using in plain C#. But the biggest problem is the glaring lack of documentation which makes it a needless challenge to figure out how things work.

But no need to worry – it turns out that IronPython is a solid and very mature implementation that works incredibly well both with and without Unity. It’s fairly similar to what I was doing with Boo, so no setbacks either. I’m ironing out a few things and undoubtedly I will have something to show next weekend.

It looks like we’ll stick to Python as the new scripting language then. Unfortunately, as much as I like it, Lua has fallen behind the times with little progress and community support. I fear it would be another waste of time or even a dead end to attempt to integrate Lua with .NET or Unity. In any case, IronPython is rock (or maybe iron?) solid and Python itself is a powerhouse. They will serve our needs well :nod:


#37

I’ve been playing with Iron Python and pyqt, more so Iron which integrates very nicely into VS2010
I like Python apart from the indent thing, its not the most “copy n paste” friendly language in the world lol

How deep do we need to go into Unity? or is there going to be a player we can just use and only need to get down and dirty if we want more?
and will it make tea? very important to us Brits :smiley:


#38

You won’t need to go very deep. I can confirm this now: if you want to, you will be able to stick to pure scripting just like you did with Dagon++. You simply toss your scripts in a folder, hit play or build, and that’s it. It remains to be seen if we’ll be able to support all features in this manner (for example, character interaction is unlikely, but special effects it’s a sure deal).

Additionally, it will be perfectly fine to use the same script on Dagon standalone or Dagonity. I’m determined to get this right :smiley:


#39

Lua was looking cool to learn more but my experience with Blender means I can leverage Python for both, hay! I mean yay!
I have no exposure to Unity. Will Dagon be sort of a shell, or do we design a game in Unity using a Dagon library, or are we back to the tedious process of chanting and pouring blood all over our keyboard?
Also, without video support in the non-pro version it sounds like we will be page flipping a sequence of images, which means no video conversion hassles, yes? Nonh?


#40

My guess, and it’s just a guess, is that Dagonity will be a module with a drop down menu from the main toolbar in Unity or a Component. Selecting… um… something… will place a Dagonity entry with input lines in the Inspector section, then we’ll need to fill in the blanks in the selected fields, and then we’ll need to associate the appropriate assets and scripts by dragging and dropping them from the Project panel to the Inspector panel. Agustin posted a screenshot of a possible Dagonity section on Kickstarter (Update #37, https://www.kickstarter.com/projects/agustincordes/asylum-kickstart-the-horror/posts).

Unity has lots of tutorials for 2D and 3D, but we’re not quite doing either. It’s confusing, but I’ve been trying to learn the basics.

Agustin can jump in and correct me if I’m wrong, but I’d definitely recommend getting familiar with the editor’s interface and the functions of each of the panels and the tags and layer menus. Also importing assets and Unity “packages,” creating Game Objects, scenes, and prefabs. There a good set of 10 brief video tutorials on the Unity website that I found very helpful. -->

I’m looking forward to see how Dagonity handles adding in skies, transitions, and “video on hotspots”… among lots of other things. I’m of course, worried about having to do a lot of “conversions.” :’(

Sure glad that I saved all those alpha and depth maps. :stuck_out_tongue: