{"action":"opened","issue":{"url":"https://api.github.com/repos/omf2097/openomf/issues/310","labels_url":"https://api.github.com/repos/omf2097/openomf/issues/310/labels{/name}","comments_url":"https://api.github.com/repos/omf2097/openomf/issues/310/comments","events_url":"https://api.github.com/repos/omf2097/openomf/issues/310/events","html_url":"https://github.com/omf2097/openomf/issues/310","id":121870843,"number":310,"title":"Resource conversion tool and rendering system","user":{"login":"katajakasa","id":1027517,"avatar_url":"https://avatars.githubusercontent.com/u/1027517?v=3","gravatar_id":"","url":"https://api.github.com/users/katajakasa","html_url":"https://github.com/katajakasa","followers_url":"https://api.github.com/users/katajakasa/followers","following_url":"https://api.github.com/users/katajakasa/following{/other_user}","gists_url":"https://api.github.com/users/katajakasa/gists{/gist_id}","starred_url":"https://api.github.com/users/katajakasa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/katajakasa/subscriptions","organizations_url":"https://api.github.com/users/katajakasa/orgs","repos_url":"https://api.github.com/users/katajakasa/repos","events_url":"https://api.github.com/users/katajakasa/events{/privacy}","received_events_url":"https://api.github.com/users/katajakasa/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-12-12T18:30:05Z","updated_at":"2015-12-12T18:30:05Z","closed_at":null,"body":"Right now we are loading original OMF2097 resource files directly in the main openomf binary. This has been pretty handy so far, since it allows us to easily change our parsers etc. However, it makes implementing support for new HARs, better sprite resolutions eg. rather hard.\r\n\r\nSuggestion:\r\nWe should implement a separate conversion tool that reads the original data files and outputs some sort of new files that would be easier to read and handle.\r\n* Read animation strings, other values to JSON dumps\r\n* Read sprites to proper sprite atlases. Output PNG's. On HARs, use one color channel for each HAR color.\r\n* Music and sounds could be encoded eg. as opus.\r\n* Language files could be converted to some proper translation format\r\n\r\n+ This change would also require us to change audio playback to handle opus files, but at the same time we could drop support for other formats.\r\n+ Handling sprites would be easier/faster, since we could do color transformation operations in OpenGL / shaders, instead of having to do software trickery for each frame.\r\n+ We could handle the data files with standard parser libraries\r\n+ People could more easily make new HARs, levels, etc.\r\n\r\n- Conversion from current system isn't quite trivial\r\n- Keeping both openomf binary and conversion tool format handlers in sync would require more work."}}