ENIGMA Forums

General fluff => Announcements => Topic started by: Josh @ Dreamland on December 25, 2008, 10:39:19 PM

Title: Merry Christmas
Post by: Josh @ Dreamland on December 25, 2008, 10:39:19 PM
Figured I should say Merry Christmas.

Todo:
- Go through and replace all return 0; with return ENIGMA_VOIDVAL and all worthless int functions with ENIGMA_VOID
- Make all worthless doubles into ENIGMA_INTVAL (for less memory waste and easier transition to C++)
- Make rooms force performance of creation codes later, and to save an if() check in ctor, move create() from end of constructor to end of instance_create()
- Go back and redo draw_primitive_() (they're pretty terrible)
- Make sure sprites are optimized (they use map, God help us)
- Take care of vsync (that's the reason your framerate is 60)
- Fix window caption if it doesn't fix itself (it's liable to)
- Make sure going to different rooms works (I prolly broke that at some point, had a problem with creating two instances of some things)
- Add sprite_set_alpha_from_sprite() (had multiple requests for it, and it's easy)
- Allow using draw buffer as texture (Possible without framebuffer extension? With it?)
- Check alarm events, add collision events, add/fix/redo "other" (depending on what pieces of it I have. I want all this good stuff in asap)

This is all in addition to what I'm doing now, which is composing an interchangeable system for instance tracking, depending on the functions you use.

I'm thinking of having quite a few options, actually, including these:
instance storage:
- keeping instances listed in one big array
- keeping instances in a standard linked list (for games with lots of destroying but not a lot of instance_ functions)
- keeping instances in a map (long standing method)
depth tracking:
- keeping depth in a linked list (for games with two or three depths. Or like, less than ten.)
- keeping depth in a map (for those who say depth=-y)
- no depth (gonna be as big a pain to undo, but I'd like it as an option)
instance reference:
- id is an integer used for finding instances (slow like GM)
- id is an integer representation of the C++ keyword `this', and can be used for instant lookup (fast and hazardous)
- id doesn't exist; only `this' is used (plum crazy for our purposes, but it's efficient)

As for what's already done, I'm too lazy to list that. And it's Christmas. At 10 PM. So even though I had some good news a month ago that I still haven't shared... I'll just build up some things to throw at you all.
As for what I'm planning for bigger and better releases, that's subject to change as well as to hard criticism. Plus it's all totally unrealistic anyway, right? (Just like Build Mode, and, well, the entire rest of the ENIGMA project.) So I think I'll just say nothing on that, as usual.

Anyway, good night all, and Merry Christmas.

Title: Re: Merry Christmas
Post by: Fede-lasse on December 26, 2008, 11:56:46 AM
Wow, all those transitions between GM and ENIGMA... I think you need to make a list of equivalents, considering how much you've already changed that GM had.
Title: Re: Merry Christmas
Post by: Josh @ Dreamland on December 26, 2008, 01:32:13 PM
There's no need. My changes all have a default setting that doesn't change the look of the language at all. (Except typenames, but meh, those'll come in time)

The changes are to let you select a faster option that may compromise how close the two languages look.
Title: Re: Merry Christmas
Post by: Fede-lasse on December 28, 2008, 07:04:35 AM
There's no need. My changes all have a default setting that doesn't change the look of the language at all. (Except typenames, but meh, those'll come in time)

The changes are to let you select a faster option that may compromise how close the two languages look.
So you mean there's two keywords to choose, but they both do the same? Just like self and id?
Title: Re: Merry Christmas
Post by: Josh @ Dreamland on December 28, 2008, 01:42:09 PM
Actually this and id, but yeah.

Since ID is just a number from 100001 up, using it involves looking up an instance in a list. For best results, I'd use a regular linked list and use this to identify objects.

'Other programs' use something along the lines of a map, I'm sure, and use the map's amazing lookup prowess to find the instance, instead of just being able to say "There it is!" like using this would allow me to do.
Title: Re: Merry Christmas
Post by: Fede-lasse on December 28, 2008, 03:27:00 PM
Actually this and id, but yeah.

Since ID is just a number from 100001 up, using it involves looking up an instance in a list. For best results, I'd use a regular linked list and use this to identify objects.

'Other programs' use something along the lines of a map, I'm sure, and use the map's amazing lookup prowess to find the instance, instead of just being able to say "There it is!" like using this would allow me to do.
I thought this gave you the instance ID like id would do ???
Then what exactly does it give you, then?

By the way, why this instead of self?
Title: Re: Merry Christmas
Post by: Josh @ Dreamland on December 28, 2008, 03:36:10 PM
because this is C++. I'm not just changing a word around, I'm removing all the time wasted by having id and self meaningless numbers like 100001 and -3.
Title: Re: Merry Christmas
Post by: Fede-lasse on December 28, 2008, 03:49:02 PM
because this is C++. I'm not just changing a word around, I'm removing all the time wasted by having id and self meaningless numbers like 100001 and -3.
Oh, ok.

What are you going to have for those numbers instead, then? Remember that Mark sat the ID numbers high because there should be room for the actual objects' IDs in the editor (when using those instance manipulating functions). Maybe you could find a workaround, I dunno.
Title: Re: Merry Christmas
Post by: Josh @ Dreamland on December 28, 2008, 03:53:39 PM
I'll typedef self and local to this, global to actual global structure, and I guess noone can stay -1.
Title: Re: Merry Christmas
Post by: Fede-lasse on December 28, 2008, 03:55:08 PM
What about the IDs and object indexes? D:
Title: Re: Merry Christmas
Post by: Josh @ Dreamland on December 28, 2008, 03:58:26 PM
ID is just this, so it's a pointer to the instance in memory. I've never seen a pointer less than 10000, so that shouldn't even be a concern.
Title: Re: Merry Christmas
Post by: RetroX on December 28, 2008, 07:57:21 PM
Quote
- Add sprite_set_alpha_from_sprite() (had multiple requests for it, and it's easy)
While you're at it, do background_set_alpha_from_background() as well.

Also, do surfaces work yet?  (too lazy to check)
Title: Re: Merry Christmas
Post by: Josh @ Dreamland on December 28, 2008, 10:50:33 PM
Not really. I got rid of them after too many people's hardware sucked.
Title: Re: Merry Christmas
Post by: RetroX on December 31, 2008, 04:16:34 PM
Like mine. =P