Pages: « 1 2 3 4 »
  Print  
Author Topic: New Beginnings  (Read 4932 times)
Offline (Unknown gender) Darkstar2
Reply #30 Posted on: May 31, 2014, 10:13:39 PM
Member
Joined: Jan 2014
Posts: 1244

View Profile Email
Depends on how Rob want's to approach this. But if if were upto me it wouldn't be parsed at all.

I believe that is what he wants.

BTW, Robert since you asked for suggestions here is a list of things I would change about GM and some even about ENIGMA and would use in a new engine:

* Improved IDE, and dynamic resource handling.   Not have the entire resource trees loaded in memory upon opening a project, but having this optional, either preload all resources or dynamic, load as needed.

* Bult in documentation listing all possible functions, auto complete (optional turned on or off) (in GMS it is always on).

* Built in project analyser that goes through your project making recommendations on how to shorten code, optimise it, etc.  If it finds any error, highlighting the exact spot and offering suggestions to fix.

* Ability to disable D&D from IDE for those who want to do their entire project by code.  I personally do my entire project on code, not a single D&D.  I mention optional for the ability to enable/disable it depending on the need of whoever is using it.

* Setting automatic saving time, incremental saving, backup, etc.  as optional.  If the IDE crashed, upon restarting it would automatically load the recently saved point.

* A much improved room editor, more interactive and more control over room creation.  Ability to scale, rotate individual objects, backgrounds, tiles, etc.  Set view areas and ports numerically or visually, by adjusting and scaling an outline inside the room, on the part you want to be visible (view) and translate that to the number values needed.

* Advanced video rendering.  Rendering of video full screen, window, region, inside 2D/3D surfaces, independent of game, allowing to make interactive gaming experiences using video (MYST style games, allowing live people shot against a chromakey to be overlaid on top of your actual game graphics, etc.).

* Advanced 3D game creation, along with an interactive, 3D room editor.  Having your new engine a 2D and 3D would be a great thing, and a 3D room editor maybe like FPS Reloaded has and even better of course.

* Built-in shaders templates.  Much like particles have pre-made stuff (snow, rain, etc.)  why not have some pre-made shaders, for those who are not familiar with SL. and it would be used like the functions dealing with rain, snow, etc.  Example shader_type(water,....followed by the params)

* Bulk loading assets as separate entries.
Currently, you have to load every single bloody sprite yourself. That's fine if you have few of them.  But for huge games where you have loads of them, it would be nice to being able to bulk load them.  Currently if you do this, they will load as ONE sprite with several sub images.  With what I am suggesting, they could each be loaded as separate sprite indexes in your tree.  Of course once you select more than 1 sprite, it would ask you if you want 1 sprite with multi subimages or separate sprite indexes.  Same concept for sound, backgrounds, etc.

Followed by the option of allowing bulk object creation, instead of individually creating new objects in a tree.  For example if I highlight and select 4 sprites from the sprite tree, I would hit a key and it would automatically create 4 objects assigned to their respect sprite index.  (This falls under changes in the IDE).  As with the current IDEs it can be a pain in the arse to work with big projects.

* Allow loading external resources from raw data.  This was discussed in another topic and Harri agreed with the concept.

So instead of having sprite_add loading from disk, there could be sprite_add_from_raw or data, adding a sprite/sound/background, etc from data !

Example, if I use a single resource file and use file read commands to binary extract data from position x to position y and store it in data.  I would then use sprite_add_from_raw(data, spr_index, etc.) instead of a filename.  This would allow for amazing possibilities and avoid 1 write and 1 re-read cycle.

* interactive code ... A good way to get people to code and learn your product is provide interactive help.
Let's say I want to do something, play a sound, I would like on an option and get a menu (sound, graphics, drawing, physics, etc.....) click on the category and a tree opens, selecting what I need to do and seeing the code appear.  Much the same way you read a manual and learn, but only it is included as an interactive element.

There are probably many more ideas I have.  but will leave it at that for now.

Logged
Offline (Unknown gender) Darkstar2
Reply #31 Posted on: May 31, 2014, 11:15:55 PM
Member
Joined: Jan 2014
Posts: 1244

View Profile Email
Yeah it's funny because I had initially also thought about the dropping D&D, but that all depends what he wants to target, only advanced or beginner and advanced.  Personally, I don't use any single D&D element in any of my projects, and if it were up to me I would fully encourage people to learn to build from code and I would make the transition easy and well documented.  I used D&D only for a short while and found out what a mess it  could be with bigger games, and was surprised to find out how much faster and easier it was to work in pure GML all the way than D&D, so I stopped using D&D and would never go back.
Also you are not asking your users to learn C++ but the functions you have set in your engine which are of course tied to your C++ engine libraries. 
Leaving D&D in would be better as it would pull more people in, having it optional and ability to disable from view would be great.
Instead it would be replaced by an interactive code assistant.
Logged
Offline (Male) Goombert
Reply #32 Posted on: June 01, 2014, 12:10:22 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3107

View Profile
Yes, I've decided I am going to make this an engine for advanced users.

No drag and drop, strict C++, and an entity-component system.
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Unknown gender) Darkstar2
Reply #33 Posted on: June 01, 2014, 12:57:43 AM
Member
Joined: Jan 2014
Posts: 1244

View Profile Email
Yes, I've decided I am going to make this an engine for advanced users.

No drag and drop, strict C++, and an entity-component system.

I'll be glad to try it out when it's done.  Since I already am very comfortable using ENIGMA and do strictly code, no D&D, will learn it in no time.

One thing that was asked before, you mentioned many times you had no more time to devote to ENIGMA other than stability and minor fixes.  So now you are talking about a complete rewrite, that will require massive time.  Unless you already secretly was working on an engine :D  Otherwise I think it would be realistic that such a project would materialise in 2+ years MINIMUM.

Whatever it is, best of luck and appreciate many of the things done with ENIGMA and the recent fixes and all the help.



Logged
Offline (Unknown gender) egofree
Reply #34 Posted on: June 01, 2014, 04:01:56 AM
Contributor
Joined: Jun 2013
Posts: 603

View Profile Email
Why wouldn't we compete with UE or Unity?

Making a game engine for simple games is already a huge and very difficult task, so imagine doing a competitor of UE or Unity ! I think only a company can make such a project. Do you know an open-source project similar to UE or Unity ? It is no accident you will not find such a project.
Logged
Offline (Unknown gender) egofree
Reply #35 Posted on: June 01, 2014, 04:29:41 AM
Contributor
Joined: Jun 2013
Posts: 603

View Profile Email
Yes, I've decided I am going to make this an engine for advanced users.

No drag and drop, strict C++, and an entity-component system.

Ok, fine. Let's think about this : if you are making a project for advanced users, why such a user would use your project instead of ones already existing like Unity or Unreal engine ? These projects are already mature, stable and comes with a lot of advanced tools.

If we think about the existing creation tools for games, more or less, we can list the following types (not exhaustive) :

- Powerful languages (e.g Darkbasic, Blitzbasic), or libraries (e.g XNA) which are easy to use and are optimized to make games. From my point of view the major drawback is that they don't have an integrated IDE for managing the resources of the games (sprites and maps editors for example). This means you have find different tools, compatible with your programming environment, in order to make these resources.
- Tools (e.g Stencyl, Construct) which are made for people who don't want to program. They use visual metaphors instead. I think this is a serious limitation.
- Professional tools for advanced users (Unity, Unreal engine, etc). They take a lot of time to learn and are used mainly for complex games.

And finally we have Gamer maker. It's very easy to learn, and users can quickly make and test simple games. You have also integrated IDE for managing all aspects of the game. I think that's why, despite all its flaws, it is so successful.
« Last Edit: June 01, 2014, 04:34:06 AM by egofree » Logged
Offline (Unknown gender) egofree
Reply #36 Posted on: June 01, 2014, 04:40:44 AM
Contributor
Joined: Jun 2013
Posts: 603

View Profile Email
Why i don't like C++ ? Here is an example :  :D

Code: [Select]
float InvSqrt (float x){
    float xhalf = 0.5f*x;
    int i = *(int*)&x;
    i = 0x5f3759df - (i>>1);
    x = *(float*)&i;
    x = x*(1.5f - xhalf*x*x);
    return x;
}

Of course in all languages you can find examples of codes difficult to read, but the most horrible examples i've found are in C/C++.
« Last Edit: June 01, 2014, 04:49:13 AM by egofree » Logged
Offline (Unknown gender) egofree
Reply #37 Posted on: June 01, 2014, 04:44:23 AM
Contributor
Joined: Jun 2013
Posts: 603

View Profile Email
Same could be said about the ENIGMA project. Why use ENIGMA over GM:S?

Because it's open-source and free.
Logged
Offline (Unknown gender) egofree
Reply #38 Posted on: June 01, 2014, 04:47:40 AM
Contributor
Joined: Jun 2013
Posts: 603

View Profile Email
You have answered your own question then ;)

Yes, but i said also :

Quote
Making a game engine for simple games is already a huge and very difficult task, so imagine doing a competitor of UE or Unity ! I think only a company can make such a project. Do you know an open-source project similar to UE or Unity ? It is no accident you will not find such a project.
Logged
Offline (Unknown gender) egofree
Reply #39 Posted on: June 01, 2014, 04:55:45 AM
Contributor
Joined: Jun 2013
Posts: 603

View Profile Email
Concerning new ideas for your project : i think the features which are missing the most are in the IDE. The rooms editor for instance sucks. It doesn't any advanced functions to modify a group of objects or an undo method. Concerning the code editor, there is no global search. All modern IDE should have a global search function.
Logged
Offline (Unknown gender) egofree
Reply #40 Posted on: June 01, 2014, 05:00:58 AM
Contributor
Joined: Jun 2013
Posts: 603

View Profile Email
I wouldn't imagine competing with Unity or the likes.

GM:S, Construct, etc.. for sure :)

When Rob say 'advanced users' he is not referring to Blizzard or EA, he means not kids who rely on drag and drop.

Well it depends of the definition of 'advanced users' of course.  :) If you are talking about GMS users, i doubt they would like a language like C++ (sorry to repeat myself). If we are talking 'advanced users' of professional tools, as i said before, it seems to me useless to compete against these tools.
« Last Edit: June 01, 2014, 05:05:52 AM by egofree » Logged
Offline (Unknown gender) The 11th plague of Egypt
Reply #41 Posted on: June 01, 2014, 07:03:54 AM
Member
Joined: Dec 2009
Posts: 276

View Profile
Why wouldn't we compete with UE or Unity?

Making a game engine for simple games is already a huge and very difficult task, so imagine doing a competitor of UE or Unity ! I think only a company can make such a project. Do you know an open-source project similar to UE or Unity ? It is no accident you will not find such a project.

JMonkeyEngine.
It's a full fledged engine (not just graphics) to make 3D games.
And they did it by recycling and integrating a lot of work done by others.
The IDE is a modded version of Netbeans, for example.
The pathfinding system is a port of Recast, and they are planning on making it a simpler wrapper to reduce maintenance work. Etc.
It's written in Java (with C++ bindings under the hood) and BSD licensed.

LibGDX
Not 3D, but a strong competitor to Unity and UE on the 2D field.
They integrate LWJGLand Box2D.
They use Gradle to compile and deploy to the shitload of platforms they support.
Oh, and they don't do IDEs, they just let you use the IDE you like.
It's written in Java (with C++ bindings under the hood) and Apache 2.0 licensed.

The only guys I know that are trying to make everything from scratch are the Enigma guys.
With less successful results.
« Last Edit: June 01, 2014, 07:06:27 AM by The 11th plague of Egypt » Logged
Offline (Unknown gender) egofree
Reply #42 Posted on: June 01, 2014, 07:25:08 AM
Contributor
Joined: Jun 2013
Posts: 603

View Profile Email
The 11th plague of Egypt:

Yes, but all these engines don't have an IDE which manages the resources of the games (like a maps editor for example). I guess some people don't care, but i care !

Edit :
As i said in a previous message, for 'beginners' you find a lot of excellent tools, but without an IDE dedicated specially for games, or you have tools like Stencyl, with all the tools needed to make sprites and maps, but which don't have programming languages. And in the middle you have ENIGMA, which does have an easy programming language and IDE which manages resources.
« Last Edit: June 01, 2014, 07:59:12 AM by egofree » Logged
Offline (Male) Goombert
Reply #43 Posted on: June 01, 2014, 10:41:32 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3107

View Profile
Ok, a couple of things.

1) XNA, BlitzBasic, DarkBasic are all proprietary.
2) BlitzBasic, DarkBasic, and XNA are not very modern.
3) XNA is C#
4) 99.99% of the time your C++ code would not look any different, lol, you guys keep failing to understand this, just because you can use C++ doesn't mean you have to use pointers, you've coded in GM fine for years without pointers, and just because all of the sudden you can use pointers, doesn't mean you have to, it just means that you can if you want and you can also learn to write your games more efficiently that way, but overall the difference does not affect you except provide you with more power, why do you guys keep failing to recognize this?
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Male) edsquare
Reply #44 Posted on: June 01, 2014, 11:21:13 AM

Member
Location: The throne of ringworld
Joined: Apr 2014
Posts: 402

View Profile
Yes, I've decided I am going to make this an engine for advanced users.

No drag and drop, strict C++, and an entity-component system.

Count me out for about two or three years before daring to try it.  :(

Why not both settings like lonewolf proposed?

Begginers with all the bells and whistles

Advanced with just the code editor

Even advanced users take advantage of something like GMS to do quick prototypes, if you, as an advanced user, can do both in the same ide with the same engine; you would save much more time!
Logged
A child of five would understand this. Send someone to fetch a child of five.
Groucho Marx
Pages: « 1 2 3 4 »
  Print