Page 1 of 1

DizzyAGE New Features Board

Posted: Sun Feb 24, 2019 6:18 pm
by xelanoimis
Hey,
I'm starting this thread to give people a chance to submit NEW ENGINE FEATURES to be included in the official DizzyAGE version.

First of all, this does NOT mean I plan to put time to extend DizzyAGE.
It worked fine for more than 10 years and for more than 140 games.
But, since the sources are free, people may come up with really good new features or even solve possible bugs.
Since my time is very limited, I'd like to make sure these new features or changes are really needed by a lot of people and that they make sense for DizzyAGE and its original intentions.

Also a BIG concern is PORTABILITY. I want to be able to bring all the existing games to any future platform or OS just by porting the engine. Any games using custom versions of the engine or doing platform specific things may not be portable.

All developers should use the official DizzyAGE version if they want to assure a long life for their games. Keep it clean and simple!

Here are a few ideas about how this could work.

- Who can submit changes?
- active DizzyAGE developers who changed the engine and feel these changes are useful for others too
- if changes are in engine code experience in C++ is needed and strong understanding of DizzyAGE engine
- if changes are in the official script templates, experience with these is needed

- Who should review changes?
- active DizzyAGE developers who have one or more games finished
- if changes are in engine code experience in C++ is needed
- if changes are in the official script templates, experience with these is needed

- Who should vote changes?
- developers making games with DizzyAGE engine, if these changes are really useful for their games too

- What can be proposed?
- bug fixes, as soon as you spot them :)
- new editor accessibility features or extensions for easier use
- new engine (game) features, if they are really useful for everyone

- What is the post format?
- start with the feature title in each post to help people speak about it
- state the type of the change (bugfix, editor extension, game feature, etc.)
- what is it and why is it needed
- where are the changes (link to sources and compiled engine) including only this change (for easy code compare)
- do it one feature at a time

- Before you post
- make sure the change is useful for everybody
- make sure it is aligned to the original intention of DizzyAGE
- make sure it is aligned to the code style and you understand the engine flow very well
- make sure it doesn't break the existing games (test!)
- make sure it doesn't limit future features (like using an important shortcut key for a not so important task)
- make sure it doesn't reduce COMPATIBILITY and PORTABILITY (and is wrapped well in the engine)

- After a post
- active developers who think the feature is useful, please test and review
- if it's an engine change involving C++, people with C++ skills could do a review and point eventual improvements
- developers who are interested (but not sure how to review), vote for the feature
- when enough reviews and votes, please notify me on email so I can have a look as well.

Let's take it slowly and make sure these changes are really needed in the official version.
Again, I don't plan to make DizzyAGE do something different than it was created for, but some updates can be made official if people really need them.

Re: DizzyAGE New Features Board

Posted: Sat Mar 16, 2019 5:55 pm
by Noggin the Nog
Wasn't sure where to post this but I've found a small error in the movement.gs file.

The section:

Code: Select all

func CM_CheckJumper()
{
	x1=0;y1=0;x2=0;y2=0;
	PlayerMakeBB(&x1,&y1,&x2,&y2);
	materials = MaterialRead(x1,y2,x2,y2+1); // read materials under the player
should read:

Code: Select all

func CM_CheckJumper()
{
	x1=0;y1=0;x2=0;y2=0;
	PlayerMakeBB(&x1,&y1,&x2,&y2);
	materials = MaterialRead(x1,y2,x2-x1,1); // read materials under the player
The difference is the coordinates in the MaterialRead function, which uses the format (x,y,w,h), unlike all the other materials functions, which use (x1,y1,x2,y2)

Re: DizzyAGE New Features Board

Posted: Mon Mar 18, 2019 9:39 am
by Grandad
Noggin, what problems does the error cause? Can't say I've noticed any problems with jumping (fixed or otherwise). Thanks.

Re: DizzyAGE New Features Board

Posted: Mon Mar 18, 2019 10:16 pm
by Noggin the Nog
The function's only used if you turn on the custom movement, so most games won't be affected at all. But if you do turn it on, try putting a jumper in the middle of a room somewhere and then jump Dizzy around to the left of it. Make sure the jumper material extends a little way below ground level. You should find Dizzy starts bouncing without touching the jumper - it's because the box that detects the collision extends too far to the right, because the coordinates in MaterialRead are wrong.

Re: DizzyAGE New Features Board

Posted: Tue Mar 19, 2019 10:09 am
by Grandad
Agreed, I only use custom movement for climbing up beanstalks etc and running fast ..but I've made a note of your remedy and will add it to both movement files just in case. I don't use the 'basic' scripts as I've always included all the clever little extras people have mentioned over the years (such as Jamie's re-spawning on dry land when killed underwater without a scuba) as my 'template' script folder. You won't believe the size of my 'utility.gs' file. ...or the size of the menus and handlers file in my latest game that deals with 100 costume changes.

PS - would you believe I've only just realised how to utilise the direction Dizzy is moving in when he hits a collider :hitwall:

Re: DizzyAGE New Features Board

Posted: Sat Jun 29, 2019 7:20 am
by Lex_Hedley
What are your thoughts on uploading the source to GitHub,

(If people want to make their own changes that you don’t want to support they can fork and you have visibility of that. Like Scripting Engine)

If they want to propose new features they can raise an ISSUE, discuss the pros/cons like you suggest here, then a PR can be made, reviewed, updated based on feedback then added to the app.
They could help with implementation if willing and able.

There could also be other repos for storing example games, scripts from the forum for specific techniques for game mechanisms, sprites etc