Author Topic: A thought occurred: How about AGS for Unity?  (Read 2739 times)

Joseph DiPerla

  • Joseph DiPerla, Adventure Game Creator Wannabe!
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with play testing
    •  
    • I can help with story design
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
    • I can help with web design
    •  
A thought occurred: How about AGS for Unity?
« on: 23 May 2014, 05:09 »
I know this sounds crazy, but I have been working with the free version of Unity3D and I am getting used to it. It takes a little learning, but I am getting the hang of it now and it really is quite something. Especially when it comes to porting. I was able to get all my little test projects(Albeit crappy with no real purpose- just for learning) to work very well on my Android device, my brothers iPhone, My windows/Linux Box, my friends Mac and on the Blackberry/Windows Phone 8 emulators. I didn't have to change any code to make it work on either, at least not for what I was doing anyway. Unity accepts plugins of all kinds (Look at Adventure creator) that can do so much with its games and tons of assets that are real nice. Unity is tailored, whether intentionally or not, to work well with 3DS files, Blender, Maya and Reallusion products.

Now before you think I am nuts, even though you probably all do already, we had discussed the option of creating AGS from scratch. Why not start with this? One development team can work with the old AGS to add support for playing older games and possibly porting to a few other OS just so we have something that can play our old AGS Games. Perhaps this team can even collaborate with SCUMMVM. Or if this team would like, they can begin porting AGS to run within Unity if they really wanted to.

However, another team can begin working on creating a new AGS in Unity. My friend was showing me Adventure Creator for Unity and I just kept thinking that AGS could do this. Now hear me out on this. I think I am on to something. As I will mention again later on, Unity makes a perfect platform for AGS to be developed on as it already lays the groundwork for us when it comes to Graphics, physics, logic, compiling, etc... You can read XML Files which the .AGF files are. You can create drawing and editing plugins within Unity. Unity has a dialogue system which can be easily crafted to match ours. Unity can create custom GUI's which we can turn to our adventure to make Adventure GUI's. Unity even uses C# as a scripting Language which our current AGS Editor is made in!

So then if we go this route, why can we call it AGS? Is it REALLY AGS Then??? The answer is YES. The reason is Simple. Because we make it so that it mimics 2D game creation just as AGS 3.3 and below did, even allowing our project to import AGS projects into Unity and continue game creation from there. We call it AGS because it will be a free plugin. We call it AGS because the plugin will make the interface look like the current AGS editor. We call it AGS because it is worked on by the AGS community. We call it AGS because it will still be Open Source. Basically, even though we would need to learn a little about the Unity Interface and set up, the rest will be exactly identical to AGS in every way.

What are the pro's and cons of this??? Well...

Cons:
Unity will only allow you to sell games royalty free if you make less then $100,000 in a year. Then again, if you make $100,000 within a year, you better buy the darn license!
Unity takes a little bit of time to get used to.
Unity will not have AGS Script capabilities without it being hardcoded into the plugin.
The AGS Development team may need a little time to learn Unity and plugin development.

Pro's:
Unity Editor is available for Mac and Windows
Unity's Engine is available for Mac, Linux, Windows, Android, iOS, Blackberry, Windows Phone 8, X-Box, PS3, PS Vita Beta, Nintendo Wii, Flash(Although this may be discontinued in version 5) and the web. All that with little effort to port your game.
All the main graphical features are already taken care of (Shaders, resolution, Physics, etc...)
Unity can make use of plugins and extensions(Such as LUA plugins, pathfinding tools, GUI designers, etc..).
Unity is completely free to use unless you make $100k.
Unity has an Asset store which a user may buy or sell assets royalty free.
Unity supports custom Scripting called UnityScript as well as Monoscript, Javascript, C# and Boo.
Unity has over 2 million forum users which can aid adventure developers much how the AGS forums have.
Unity already has many other features hardcoded that AGS has, but just needs to be tweaked into an interface we are familiar with(Scripting, pathfinding, dialogues, GUI's, Translations, Voice files, etc...)
With what Unity supports, AGS has potential for growth (A real Particle system, Camera tools, 2.5D support, etc..)

I know this sounds crazy, but I am just trying to think outside of the box. I think we really have something here. I know the odds of this happening are slim to none. I probably will be flamed for it here too... but I would regret not trying. What do you all think about that? Is there potential for this?
Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

Calin Leafshade

  • AGS Project Tracker Admins
  • Long live King Cat!
    • I can help with making music
    •  
    • I can help with voice acting
    •  
    • Calin Leafshade worked on a game that was nominated for an AGS Award!
      Calin Leafshade worked on a game that won an AGS Award!
Re: A thought occurred: How about AGS for Unity?
« Reply #1 on: 23 May 2014, 08:17 »
The scopes of AGS and unity are completely different. This simply isn't a viable idea if AGS is to stay a hobbyist tool.

Billbis

  • R, what else?
    • I can help with translating
    •  
Re: A thought occurred: How about AGS for Unity?
« Reply #2 on: 23 May 2014, 08:34 »
Agreed with Calin.
Furthermore, I hate being that guy, but Unity is closed source and commercial. They can stop making a free version whenever they wish. They can also remove a feature we need if they want.

TheBitPriest

    • I can help with backgrounds
    •  
    • I can help with play testing
    •  
    • I can help with proof reading
    •  
    • I can help with scripting
    •  
    • I can help with voice acting
    •  
Re: A thought occurred: How about AGS for Unity?
« Reply #3 on: 23 May 2014, 17:24 »
I thought Adventure Creator basically was AGS for Unity, or are you thinking more about the cost than the functionality?   

...and ditto to what Billbis says.  Now that AGS is opensource, why go back?

Joseph DiPerla

  • Joseph DiPerla, Adventure Game Creator Wannabe!
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with play testing
    •  
    • I can help with story design
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
    • I can help with web design
    •  
Re: A thought occurred: How about AGS for Unity?
« Reply #4 on: 23 May 2014, 19:31 »
I was thinking on a broader scale...
1) more resolutions
2) no numbered limits
3) already set to port to other OS
4) more stability with an already in place engine that uses OpenGL and direct
5) more extensible plugins.
6) an editor for Mac
7) and yes , because it is free too.

Even if unity removes a feature or their pricing plan, you can still keep it going for Unity4. I don't know. Thought I had something going here for a sec...
Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

Re: A thought occurred: How about AGS for Unity?
« Reply #5 on: 22 Jun 2014, 13:48 »
I find Unity to be annoying and runs horribly.
What if your blessings come through raindrops
What if your healing comes through tears...

juncmodule

  • got junc?
    • I can help with making music
    •  
Re: A thought occurred: How about AGS for Unity?
« Reply #6 on: 13 Jul 2014, 01:59 »
I created this a while back:

http://keptosh.com/downloads/adventure-game-example/adventure-game-example.html

Basically, I'm approaching it using concepts I learned from AGS. Specifically, what this demonstrates, is walk-behinds (see below).

It was my intention to create a template game with a set of instructions that would be written with AGS users wanting to make the move in mind. I set up a list of basic functionality (see further below) that I wanted to achieve. I have kind of moved back and forth on the project and not really touched it in about two months. I think what you are looking for would certainly be possible, but also a rather large project. What I have built here is pretty simple and could be completed fairly quickly. It definitely walks away from being a part of AGS though. I could see it as a first step toward realizing your goal, while also generating interest in the larger project.

I went ahead and made a slightly older version of the project available on Github:
https://github.com/mitchellshelton/AdventureGame

Please let me know if you do more with this.

Code: Adventure Game Studio
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. /**
  5.  * Player controller and behavior
  6.  */
  7. public class Ego : MonoBehaviour {
  8.  
  9.         // Speed of the player
  10.         public Vector2 speed = new Vector2(1, 1);
  11.  
  12.         // Store the movement
  13.         private Vector2 movement;
  14.         private float egoY;
  15.         // Use this for initialization
  16.         void Start () {
  17.  
  18.  
  19.         }
  20.        
  21.         // Update is called once per frame
  22.         void Update () {
  23.                 // Retrive axis information
  24.                 float inputX = Input.GetAxis("Horizontal");
  25.                 float inputY = Input.GetAxis("Vertical");
  26.  
  27.                 // Movement per direction
  28.                 movement = new Vector2(speed.x * inputX, speed.y * inputY);
  29.  
  30.                 // Create a dynamic sprite sort order for object layers
  31.                 // Get the Character Y position
  32.                 egoY = transform.position.y;
  33.                 // Set the sort order based on the Y position
  34.                 if (egoY <= 2.0 && egoY > 1.9) {
  35.                         GetComponent<SpriteRenderer>().sortingLayerName = "0";
  36.                 }
  37.                 else if (egoY <= 1.9 && egoY > 1.8) {
  38.                         GetComponent<SpriteRenderer>().sortingLayerName = "1";
  39.                 }
  40.                 else if (egoY <= 1.8 && egoY > 1.7) {
  41.                         GetComponent<SpriteRenderer>().sortingLayerName = "2";
  42.                 }
  43.                 else if (egoY <= 1.7 && egoY > 1.6) {
  44.                         GetComponent<SpriteRenderer>().sortingLayerName = "3";
  45.                 }
  46.                 else if (egoY <= 1.6 && egoY > 1.5) {
  47.                         GetComponent<SpriteRenderer>().sortingLayerName = "4";
  48.                 }
  49.                 else if (egoY <= 1.5 && egoY > 1.4) {
  50.                         GetComponent<SpriteRenderer>().sortingLayerName = "5";
  51.                 }
  52.                 else if (egoY <= 1.4 && egoY > 1.3) {
  53.                         GetComponent<SpriteRenderer>().sortingLayerName = "6";
  54.                 }
  55.                 else if (egoY <= 1.3 && egoY > 1.2) {
  56.                         GetComponent<SpriteRenderer>().sortingLayerName = "7";
  57.                 }
  58.                 else if (egoY <= 1.2 && egoY > 1.1) {
  59.                         GetComponent<SpriteRenderer>().sortingLayerName = "8";
  60.                 }
  61.                 else if (egoY <= 1.1 && egoY > 1.0) {
  62.                         GetComponent<SpriteRenderer>().sortingLayerName = "9";
  63.                 }
  64.                 else if (egoY <= 1.0 && egoY > 0.9) {
  65.                         GetComponent<SpriteRenderer>().sortingLayerName = "10";
  66.                 }
  67.                 else if (egoY <= 0.9 && egoY > 0.8) {
  68.                         GetComponent<SpriteRenderer>().sortingLayerName = "11";
  69.                 }
  70.                 else if (egoY <= 0.8 && egoY > 0.7) {
  71.                         GetComponent<SpriteRenderer>().sortingLayerName = "12";
  72.                 }
  73.                 else if (egoY <= 0.7 && egoY > 0.6) {
  74.                         GetComponent<SpriteRenderer>().sortingLayerName = "13";
  75.                 }
  76.                 else if (egoY <= 0.6 && egoY > 0.5) {
  77.                         GetComponent<SpriteRenderer>().sortingLayerName = "14";
  78.                 }
  79.                 else if (egoY <= 0.5 && egoY > 0.4) {
  80.                         GetComponent<SpriteRenderer>().sortingLayerName = "15";
  81.                 }
  82.                 else {
  83.                         GetComponent<SpriteRenderer>().sortingLayerName = "0";
  84.                 }
  85.  
  86.         }
  87.  
  88.         void FixedUpdate() {
  89.                 // Move the game object
  90.                 rigidbody2D.velocity = movement;
  91.         }
  92. }
  93.  

Code: Adventure Game Studio
  1. Unity3D Custom 2D Adventure Game Template
  2.  
  3. Walk Behinds
  4. Walkable Areas
  5. Character Movement
  6.   Right
  7.   Left
  8.   Up
  9.   Down
  10.   Collision Detection
  11. Animations
  12.   Walk up/down/left/right
  13.   Pick up high/mid/low
  14.   Sit down/stand up
  15.   Lay down/stand up
  16.   Death
  17.   Hit
  18.   Throw
  19.   Talk
  20.   Misc dance/wave/etc
  21. Inventory
  22. Dialog Trees
  23. Score
  24. Save/Load
  25. Interaction
  26.   Button Interface
  27.     Look
  28.     Walk
  29.     Talk
  30.     Interact
  31.   LucasArts Interface
  32.     Give
  33.     Open
  34.     Close
  35.     Pick up
  36.     Look at
  37.     Talk to
  38.     Use
  39.     Push
  40.     Pull
  41.  

Joseph DiPerla

  • Joseph DiPerla, Adventure Game Creator Wannabe!
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with play testing
    •  
    • I can help with story design
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
    • I can help with web design
    •  
Re: A thought occurred: How about AGS for Unity?
« Reply #7 on: 06 Jun 2018, 00:48 »
Sorry for rehashing this thread. But I was wondering if we can go back and touch on this a bit more. I was using Smile Game Builder and realized that the functionality and development ease it has is amazing. I used an RPG Maker on Unity and realized that I utterly hated it. However, SGB only compiles to Windows. But it also has an exporter to Unity. I was able to export my project effortlessly and it worked real well from Unity compilation. There was hardly any difference in game play and feel and it allowed me the option to play my project on Mac, Windows, Linux or mobile.. even console if I Wanted to.

My point is.. What about considering Unity as something to use along side AGS? Perhaps rather than focussing on working ports for each OS separately, maybe we can make a Unity exporter so that we can continue to use our favorite AGS Editor and just export and compile in Unity. I don't know. I think it's less of a project than making a full AGS engine and editor asset for Unity like adventure creator. Instead we are simply recreating the engine basics.

Just a thought. Maybe it's not worth the effort if a team is porting to SDL anyway.
 
Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

thedaemon

  • artist
Re: A thought occurred: How about AGS for Unity?
« Reply #8 on: 06 Jun 2018, 00:58 »
Instead we are simply recreating the engine basics.
Which is simply a port. hehe

I tried the Adventure Game Creator for Unity, but came back to Love2D and AGS. They are just much easier to get going for me.

Re: A thought occurred: How about AGS for Unity?
« Reply #9 on: 06 Jun 2018, 14:44 »
Unity runs horribly in ALL my Computers. I have Win10, Ubuntu and OSX. ALL are i7 with 8GB or 16GB. Also Unity isn't open source. I vote for Unreal if there is a need for building on top of something else.

Crimson Wizard

  • Local Moderator
  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Re: A thought occurred: How about AGS for Unity?
« Reply #10 on: 06 Jun 2018, 14:47 »
My point is.. What about considering Unity as something to use along side AGS? Perhaps rather than focussing on working ports for each OS separately, maybe we can make a Unity exporter so that we can continue to use our favorite AGS Editor and just export and compile in Unity.

Is not it what XAGE is intended for (more or less)?
« Last Edit: 06 Jun 2018, 14:49 by Crimson Wizard »

Joseph DiPerla

  • Joseph DiPerla, Adventure Game Creator Wannabe!
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with play testing
    •  
    • I can help with story design
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
    • I can help with web design
    •  
Re: A thought occurred: How about AGS for Unity?
« Reply #11 on: 06 Jun 2018, 16:23 »
My understanding was that Xage was a different engine that can import ags games, but not completely. Also, Xage isnt an official branch of ags. As such we dont know when it will be released or if it will be free. I am definitely intrigued by it and look forward to it. But i was thinking more along the lines of age.seccia.com or smile game builder: editor made in C#, windows engine in c++ and/or unity and the engine ports in Unity. I even wouldnt mind seeing it export to javascript using pixi.js phaser.js or babylon.js honestly.
Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

Crimson Wizard

  • Local Moderator
  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Re: A thought occurred: How about AGS for Unity?
« Reply #12 on: 06 Jun 2018, 17:14 »
Well, trying to consider this proposal seriously, I do not like the idea of doing that instead of our ports, as you noted
Quote
Perhaps rather than focussing on working ports for each OS separately, maybe we can make a Unity exporter

The ports are already existing, they are using same shared engine code and running engine natively, which means 100% match of game process on each system, at least in game behavior.
Moving to SDL (which is underway) will hopefully make these ports working better and easier to maintain, with less amount of coding neccessary.

Meanwhile, exporting to Unity is an interesting project with certain potential in it, but would require serious amount of work coding game logic in the new system, where graphics work differently, sound works differently, input works differently, and where we have nearly zero control over performance on particular OS.

In other words, if there is an actual interest in such project, sure, maybe there will be people willing to help. But I would not recommend dropping current ports development in favor of it.
« Last Edit: 06 Jun 2018, 17:45 by Crimson Wizard »

Joseph DiPerla

  • Joseph DiPerla, Adventure Game Creator Wannabe!
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with play testing
    •  
    • I can help with story design
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
    • I can help with web design
    •  
Re: A thought occurred: How about AGS for Unity?
« Reply #13 on: 06 Jun 2018, 19:22 »
Im trying as a personal attempt to recreate ags using phaser.js. I think some of the hickups i will encounter include using ags script, multiple walkable areas etc.. maybe i will use a parser generator. My point being, maybe an exporter to js is much more feasible.
Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

Crimson Wizard

  • Local Moderator
  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Re: A thought occurred: How about AGS for Unity?
« Reply #14 on: 06 Jun 2018, 19:23 »
Im trying as a personal attempt to recreate ags using phaser.js. I think some of the hickups i will encounter include using ags script, multiple walkable areas etc.. maybe i will use a parser generator. My point being, maybe an exporter to js is much more feasible.

Sorry, I am not sure I understand your meaning, "exporter to js is more feasible" than what? I mean, what is this exporter supposed to do?
« Last Edit: 06 Jun 2018, 19:31 by Crimson Wizard »