ENIGMA Development Environment

  • Home
  • About
  • Download
  • Wiki
  • Forums
  • EDC
  • Tracker
  • Progress
Guest | login | register

The Grand To-do List

odo - ENIGMA Development Environment

This is a list of all the current things wanted in ENIGMA. Developers can use this as a guide for things they could consider doing. General users can use this to know what things aren't functional yet in ENIGMA.

Contents

  • 1 Unimplemented Functions
  • 2 Game Maker Examples
  • 3 Key Systems
  • 4 GM Compatibility
  • 5 Little Things
    • 5.1 Working Brain
    • 5.2 Some Understanding of C++
    • 5.3 Reasonable familiarity with compiler's process
    • 5.4 Understanding of compile process and LGM-ENIGMA communications
  • 6 Shit Josh has to do because no one else seems to be volunteering
  • 7 Parsers/Managers
  • 8 Proposed Systems
  • 9 Major System Suggestions

Unimplemented Functions

Many Game Maker functions still need implementing; a list of them can be found at Unimplemented GM Functions. Currently function submissions should be made either on the ENIGMA forum in the Peer Review Board or more preferably if you know how make a fork on TGMG's github, you can follow the guide found at Peer review.


Game Maker Examples

This is a list of things needed for all Game Maker examples to work

  1. Instance deactivation
  2. Instance change
  3. Parenting events


Key Systems

ENIGMA is still missing a few other key systems and other function sets offered by Game Maker

  1. Surfaces (on all systems)
  2. Pixel perfect collisions
  3. Instance deactivation
  4. Parenting (child instances inheriting events)
  5. Particles


GM Compatibility

This is a list of things needed for GM compatibility

  1. globalvar
  2. exit statement
  3. argument[i]
  4. negatives treated as false in statements
  5. when the sprite_index is changed: the image_index is automatically reset to 0, the image_number is changed and also image_single is reset. Note this does not happen if the sprite_index is set to the same sprite it already is.
  6. Game settings (constants, escape exits the game etc.)
  7. Parenting events
  8. Game start event
  9. Functions/variables (as well as function a lot of common variables are not implemented)
  10. Compatibility resolver in LGM for rest of the incompatibilities
  11. Resolving ENIGMA's bugs


Little Things

These are a list of little things that need done. They have been categorised by difficulty, so those at different experience levels with C++ or ENIGMA can see what they may be capable of helping with.

Working Brain

If your brain functions, you're probably qualified to do these.

  • Branch the draw_SHAPE functions into sets of outline_SHAPE and fill_SHAPE functions to eliminate* `bool outline` (concerning SHELL/Graphics_Systems/OpenGL/GSstdraw.h). Alternative: draw_SHAPE_outline/draw_SHAPE_fill. (* Not really eliminate, just replace the need for. The outline argument would become optional)
  • Change the tabs in the Makefiles to spaces that actually line up properly. The beginnings of lines require tabs, but the commands themselves should use spaces to align actual characters - otherwise, it looks weird depending on the terminal that you're using.

Some Understanding of C++

If you can poke your way around a typical C++ project, you can probably do these.

  • Lay out a super class for ds_ structures. It should implement only essentials (which may be none) to store and iterate through all created data structures. The ds_ functions should blindly cast from ds_parent to its children (ie, ds_list) except in debug mode. (#ifdef DEBUG_MODE)
  • Go over the other resource-access-related functions adding anti-segfault checks in #ifdef DEBUG_MODE directives.

Reasonable familiarity with compiler's process

If you have a general feel for what happens when you press compile, you might be able to do these.

  • Allow forcing 32-bit or 64-bit building of the game. There may be issues with Rebuilding that need to be corrected in order for all object files to be built in the correct architecture.

Understanding of compile process and LGM-ENIGMA communications

If you're Josh or Ism, or think you can fill their shoes for five fucking minutes, maybe you can do one of these. Maybe.

  • <empty>


Shit Josh has to do because no one else seems to be volunteering

  1. Implement an attribute in compiler.ey files for defining additional binaries (for resource linker at very least)
  2. Implement tiles using GL lists
  3. Implement DirectSound and DirectX, somehow (This is hard because MinGW doesn't get along with Microsoft's exceptionally propriety headers)
  4. Complete the Extension system
  5. Improve the instance system; add a second set of double links to iterators to allow for smooth updating of destroyed instances
  6. Redo the expression resolver, as seen below
  7. Implement the DEBUG_MODE variable
  8. Improve the event system
  9. Fix ENIGMA's data structures
  10. Implement instance deactivation system
  11. Implement the particle system
  12. Implement vbo system


Parsers/Managers

ENIGMA's compilation sequence is also in need of a few amendments

  1. The extension system needs spread to each system
  2. The extension system needs minor recoding to use correct vtable information on locals--no one has noticed yet, but it won't work when paths hit.
  3. The extension system should provide a way of "hooking" the load system to add support for more resource formats.
  4. The C++ parser needs major rewriting to keep track of template parameters and function param types.
  5. The type coercer needs to stem from the recoded C++ parser.


Proposed Systems

This is a list of all the systems that have been proposed to use in ENIGMA

  1. Additional statements: when, step and draw -polygone suggestion
  2. Additional events: deactivated/reactivated, Enter/Exit collision -polygone suggestion
  3. Member functions
  4. Pause system
  5. Precise movement feature for objects (so they do not skip through other objects without a collision event occurring)

Major System Suggestions

This is a list of external pages which have suggestions for major systems in ENIGMA

  1. ENIGMA:Suggestions (for general ENIGMA suggestions)
  2. Function:Suggestions
  3. Script:Suggestions
  4. Event:Suggestions
©2007-2011 The ENIGMA team
ENIGMA - In west Philadelphia, we were born and raised...