PDA

View Full Version : ZC 3.0 From Scratch Plan



Tamamo
03-09-2015, 12:17 AM
Main Library: GLFW, Gleeok won me over after I did some research on this Library. It's probably going to become one of my favorite.
Rendering: OpenGL
Audio: FMOD
GUI: Screw the purple stuff...
Scripting: Zelgasm, Replacement for ZScript and don't let the name fool you, it is not an ASM language.

Post your thoughts below.

Gleeok
03-09-2015, 12:55 AM
I don't think you're going to find anyone that's going to be against this. In fact, it has already been brought up quite a few times. The main problems are A)Finding people that can code and are wanting to work on it, and B) keeping the 'A' group productive whilst adding a 'B' group of more people to help contribute. What happens when it's "just one guy working on it in their spare time" is it will take 10 years to finish, and that is not necessarily an exaggeration. See Open Zelda (don't have a link) or Solarus [ http://www.solarus-games.org/games/zelda-mystery-of-solarus-dx/ ] for reference.

Anyway, my 2 cents:
Main Library: Doesn't matter; should be abstracted for portability and never used directly in a game loop. Sure: SDL or SFML are good. I've been using GLFW which is another no-brainer. They're all well maintained.
Rendering: Again, should be abstracted, but OpenGL is my default pick. It's hard (almost impossible) to find any lightweight plug-able API for rendering that can use both DX9, DX11, and GL under the hood. 3D engines not so hard...
Audio: FMOD
GUI: No comment....
Scripting: I've used AngelScript. It works well for small projects, or scripting with multiple modules or contexts, but the problem is there's no mature tools for it like there are Lua or mono. This led me to switch to C# (Also supports F# and some other languages) for scripting. It's pretty awesome. The hard part is getting past the initial horrible documentation and wrapping it up, but once you do that it gets my vote.

Tamamo
03-09-2015, 09:14 AM
You're forgetting the Mr. Lone Wolf. He'll probably be the only person against this, and that's okay cause everyone is entitled to their own opinion. Also Highfive for FMOD. Also we could pull a RPG Maker and use Ruby, but let's not. I would rather see us use an interpreted language before that happens. But yeah Lua or mono would be a better option. If we switch to C# we could half the amount of time this takes us to finish too.

Let's do this, let's rewrite ZScript from scratch to using Gleeok Logic. When are you going to take me under your wing anyways I must learn the way of the Gleeok.

Isana
03-11-2015, 06:59 PM
This would be really awesome. Personally, I'd probably re-write Zelda Classic using the Qt framework. There's decent OpenGL support and it's cross-platform. I like CSharp too though and it could speed up development if you're comfortable enough with the language, so that would be perfectly fine.

Admittedly, however, there are a few things I dislike about CSharp; my primary issue with CSharp is that it doesn't compile natively and requires the Mono framework to run on platforms other than Windows.
With Qt, projects can be deployed with the necessary libraries so that the user doesn't have to install the entire framework. This is really just a matter of personal preference though haha.

Tamamo
03-11-2015, 07:33 PM
Originally I too was thinking QT, then I saw the licensing for it and gave them the middle finger.

Isana
03-11-2015, 08:03 PM
Originally I too was thinking QT, then I saw the licensing for it and gave them the middle finger.
Not a fan of GPL/LGPL v3/v2.1? Fair enough haha.

My second choice would be the Vala language. It's meant to be similar to CSharp, but it's compiled down to C and then to machine code.
I haven't tried using Vala on Windows though and if I recall correctly there's not much support outside of Linux since it's a relatively new language
so that's probably not a viable option.

FMOD is great though.
Couldn't find anything on Zelgasm though (I found weird comments from around the internet though... >_>). Is the syntax more similar to C or BASIC?
Nevermind. I'm going to assume that this would be a new scripting language created specifically for ZC. e_e
Angelscript looks pretty nice. It gets my vote haha.

Tamamo
03-11-2015, 09:59 PM
The OculusRift SDK License is incompatible with it. Which is what most of the stuff I plan on working on in the future is going to be for.

SUCCESSOR
03-11-2015, 10:23 PM
I didn't see anything wrong with Qt licensing. It wouldn't force the project to use GPL/LGPL. (Unless I am missing something) Also I fail to see how GPL could be a problem for "ZC 3.0."

Tamamo
03-11-2015, 10:29 PM
It wouldn't be necessary actually. GLFW would handle most of the GUI anyways.

Isana
03-11-2015, 11:23 PM
I didn't see anything wrong with Qt licensing. It wouldn't force the project to use GPL/LGPL. (Unless I am missing something) Also I fail to see how GPL could be a problem for "ZC 3.0."
You're correct.

If you make changes to the Qt framework's source code, you must make those changes available along with instructions on how to build your modified version of Qt.

If you link Qt statically, you must release the pre-link output files (.obj files) and, again, instructions that would allow one to link your software's object files with a newer revision of Qt and produce an updated functional build of your software.
(This is not necessary if you link Qt dynamically as the user is then able to just replace the Qt libraries included with your software.)

If a user requests the source code for whatever version of Qt you have used, you must make it available (You could just link to the official download if you haven't made any changes to the framework).


The OculusRift SDK License is incompatible with it. Which is what most of the stuff I plan on working on in the future is going to be for.
Ah, I see haha. Makes sense.

Anyway, I'll be keeping an eye on this. n_n

SUCCESSOR
03-11-2015, 11:43 PM
GLFW may work for little GUI stuff for basic software but is it really suitable for what we'd need? Doesn't seem so.

I don't see how the Oculus Rift should play any part. It would be silly to develop it for that. I have seen a little AngelScript and found nothing objectionable. I REALLY dislike lua. I could probably live with it. Ruby should not even be discussed. Who said Ruby? *Gunshot*

I could get behind C# if it wouldn't create too many issues.

Samer
03-12-2015, 12:27 AM
I been reading through this, and this sounds like the kind of stuff I do on a daily basis. Qt is normally written in QML, but I usually write it in C++. C# is a good programming language to use for its cleaner code but it can't really port for different OS. I haven't really written any game engines but I've made some applications before. If you guys want to use C# I'd suggest using DirectX 3D11 as a base and test it using OpenGL and have some option for the end-user to pick which render mode would be best.

Ruby is worst scripting language in existence. Also the occulus rift thing is overrated.

Gleeok
03-12-2015, 01:17 AM
GLFW only opens a platform window. It doesn't do GUI at all.

I'm really terrible with GUI stuff in general, partly due to the fact that I've only really used Win32, allegro4 GUI, and wxWidgets in the past. The first two being terrible, and the latter being really picky about working with OpenGL, etc.

Most people prefer QT or C# for editor tools I think simply because it's one less major hassle to deal with. Believe me, I can totally relate to that.



Ruby is worst scripting language in existence.

You sir have just earned yourself a gold pass to the tree-house club. ...We mostly just drink beer and throw rocks at squirrels though. :P

Tamamo
03-12-2015, 10:55 AM
Don't let Saffith hear you say that about Ruby, that's his favorite programming language! On another note. My problems with QT are personal. So really I have no qualms about it. :p

ZoriaRPG
05-25-2015, 02:02 AM
My question here: With Solarus out there, is ZC 3.0 really something to make from scratch? Why not fork Solarus, instead, and add in the ZQuest still we love, and backward compatibility for enemies, items, and scripts?

In other words, it's open-source, so why re-invent a decade of work, and sources?

I'm not sure if I like Lua, but that's what it uses. It's sort of an oddball, but then, so is ZScript... (Ruby is fantastic: Who dares bash Ruby?)

The first, priority decision, is if 3.0 would use object-oriented code. I'd think this a must to move forward, but we wouldn't want to break a decade's worth of ZScript to achieve it. Thus, it may be a good imperative, to have a cross-compiler for 3.0.

Samer
05-25-2015, 06:29 AM
A cross compiler like CMake would be good, I believe it's open source. We'd just have to allow it to understand ZScript which wouldn't be easy.

It's mainly used for industrial IDEs like Visual Studio or Eclipse. It's mainly used for Qt Framework so the GUI will work in another program other than Qt Creator, it's tough digging through that stuff but there's a lot of tools you can use to find it fast, granted you have some knowledge of software engineering. It would definitely take me a long time, it is definitely possible, but may not be feasible.

Nightmare
05-25-2015, 06:32 AM
Unity might be something to look at too. If it reads ZC files it could be possible. Uses C# as a scripting language.

-James

Gleeok
05-26-2015, 11:04 PM
(Ruby is fantastic: Who dares bash Ruby?)


http://www.lordyuanshu.com/images/FF/Fiends/ruby.PNG



My question here: With Solarus out there, is ZC 3.0 really something to make from scratch? Why not fork Solarus, instead, and add in the ZQuest still we love, and backward compatibility for enemies, items, and scripts?

In other words, it's open-source, so why re-invent a decade of work, and sources?

I'm not sure if I like Lua, but that's what it uses. It's sort of an oddball, but then, so is ZScript... (Ruby is fantastic: Who dares bash Ruby?)

The first, priority decision, is if 3.0 would use object-oriented code. I'd think this a must to move forward, but we wouldn't want to break a decade's worth of ZScript to achieve it. Thus, it may be a good imperative, to have a cross-compiler for 3.0.

Good point.

I agree that writing a core framework (file/filesystem/xml routines, containers, compression, threading, math types, resource management, hashing, etc.) from scratch would be dumb (I know because I did this for my project! :P ), but beyond that there really isn't too many other things you need for a 2D game engine, graphics and editing tools not withstanding. Actually, I'd say an editor would be the hardest part.

ctrl-alt-delete
05-27-2015, 12:21 AM
http://www.lordyuanshu.com/images/FF/Fiends/ruby.PNG




Good point.

I agree that writing a core framework (file/filesystem/xml routines, containers, compression, threading, math types, resource management, hashing, etc.) from scratch would be dumb (I know because I did this for my project! :P ), but beyond that there really isn't too many other things you need for a 2D game engine, graphics and editing tools not withstanding. Actually, I'd say an editor would be the hardest part.

Stop teasing us.

Is there any advantage to writing a core framework?

ZoriaRPG
05-27-2015, 08:20 AM
Stop teasing us.

Is there any advantage to writing a core framework?

Absolute knowledge, absolute control...ABSOLUTE POWER!

Writing the editor... That says a great deal, and really, Solarus' weak point, compared to ZC, is the sheer amount of work the user needs to do, to add, or modify game objects, other than graphics. That's one thing that ZC 2.50 did right, from the onset. We have scripting capabilities, but they aren't mandatory to use the programme.

Naturally, Gleeok's post is a double-tease, as I was just discussing how nice it would be to have a full, square screen, with that additional real-estate.( It also makes me want to hack FF1, just to edit that line, into a shell window, with a Ruby parser.)

Gleeok
05-27-2015, 07:51 PM
I'll just go ahead and throw this out there, but taking something like the tiled map editor and stripping it down and using it a base for an editor might be a really good option as well. In fact I'd probably be down for using that as a map editor for FFC as well.

http://www.mapeditor.org/




Is there any advantage to writing a core framework?

Knowledge and experience, and . :shrug: ...perhaps also eliminating massive bloat and dependencies from 3rd party libs, or just having to learn new APIs or dig through documentation constantly.
Aside from that if you are trying to actually get a game done then it's dumb, like I said; simply because it is a time-sink and time spent on that is time away from other, possibly more important, things.

ZoriaRPG
05-28-2015, 10:48 AM
http://www.zoriarpg.com/zc/FF_Ruby_Comical.png

Showing the love.

Anyhow Gleeok, you may want to look at what Solarus has to offer. It's all on GitHub, fully open, including the actual games. Try the editor too, at least, for it may give you ideas.

As I mentioned, if the team here could add ZC features into it, make a back-compat mode possible, at least for ZScript, and possibly the present .qst model (converting?), that would be ZC 3.0 in a nutshell, and might save another ten years of work.