lwb4/tadpole

Future work

Opened this issue · 2 comments

lwb4 commented

This issue is for recording ideas about things we could work on and implement.

The list of potential improvements and new features we could add is infinitely large; only milestones that are reasonably attainable within 3-6 months will be added to this list.

I would like most of this work to be driven around game demos, so that newcomers to this project have the easiest possible point of entry. Rather than digging through endless API documentation, people learn faster by jumping in and playing around with examples.

  • Implement wrappers around the rest of SDL's rendering functions
  • Integrate an existing GUI library or roll our own
  • Design and build a basic system for particle effects
  • Add some kind of error handling system to Lua
  • Vet the Lua standard library so that all functions work as expected on all platforms
  • Add functions for making basic GET and POST requests over HTTP/S
  • Identify or provide a full CA cert chain for each platform (see NETWORKING.md)
  • Add support for controllers and joysticks
  • Add haptic support on mobile -- force feedback, detect shakes
  • Multi-touch support for mobile
  • More sophisticated audio support beyond just play_music
  • The ability to load a game bundle (including scripts, images, and other assets) over the network
  • Some type of persistent storage -- file-backed on desktop, something else for iOS/Android
  • Basic physics engine with acceleration, elasticity, collisions
  • Push notifications for mobile and/or steam and browser
  • Set up a leaderboard service with reasonable anti-fraud protections
  • Investigate options for more advanced graphics, including 3D and shaders
  • Support more file types for audio and image files, not just png and ogg
  • First-class spritesheet support
  • Figure out why Android is so zoomed out, and why iOS is always 320x240
  • Figure out why sounds won't play in the browser
  • Ability to adjust fine-grained settings such as resolution, frame rate, volume, and full screen mode
  • Provide a library for basic tweening and other "juicy" game effects
  • 2D animations such as rotation, reflection, shearing, rotation
  • Auto-reconnect if a websocket drops (for example if the user goes to the home screen)
  • The ability to have more than one web socket connected at a time

Make your suggestions below, and I'll add them to the list!

lwb4 commented
  • use a real require instead of just loading and running the file
  • load_image looks in the images directory by default, load_font in the fonts directory, etc
  • Get the dimensions of a loaded image (maybe not super necessary)
  • Stop a currently playing sound