As I was working with my Save Engine plugin, I learned a lot about managing files and storing images in the form of a "URI data" (or base64 encoded image, as corrected me Hudell) inside the plugins, so I can call it without the developper needing to download them in separated zip files and install inside any folder of his game.
I want to share the idea and hear your opinions about that.
It's not that the developper can't customize the pictures he will use, it's just that if he don't customize, he either won't need to downlaod a zip or rar file with the images and save then inside the proper folders, because everything is inside the script. It's really easy to convert a picture to code and store it into variables. I used this site:
var my_stored_bitmap_name_ = 'base64 encoded image'Practical example:
var savefileface_arksavescreen_engine = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAMAAADQmBKKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAASZQTFRFAAAA/////A0Q/Bwf/zMzvoGC+UdMZjMz63B5mTMzzJmZoFNg64yf4qK/eDlgtYyv0bLa5dXv28vvMzMzuazWw7/vZmZmzMz/QEBQlZW6b2+Ig4OfZWV73d3/mZnM4eH/zMzf7Oz/oqKvDw8QUVFSu7u87PD/0dz/or3/qsP/u8//2+X/Zpn/eaX/jbL/4uz//cyK/d+5/unO//Tm9r6B8K1u55lf35hn3YJKzGYzxW9MtlY6qzASoTIj062rmBAM/wAA5wAAzAAAggAAsgEBmQAAUAICGAICiRAQ/2Zm/5mZ/6ysa0tLWkZGmYCA6M/PjYOD39fX9+/v7u7u6enp4+Pj39/fzMzMs7OzqampmZmZgYGBeXl5TU1NRUVFIyMjHBwc////ySzU1QAAAGJ0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAQVpKqAAALuElEQVR42uzbi1vTyBYA8AkiUMFd1mi63rXXy50UW2iVt1BBKQEtcnfh0leatEn8//+Je2Ymj8mjeQx19btfz/e5i0jTX885mcxMAvr2kwWag+agOWgOmoN+ChAK4qcAIXR12T4/P29fXEZJ6Md4Ls69aF+FRT8GFHggLkMi9EMSdH4+VYR+hKcdBp1rxUAJp8KsGighRblA9ixJ6DLqOW9rRUAIWZJhzyxN0QaK1gzlKFhVkmZGSvQUBMkSjZmQ4g0tADIkvTsjUkJD0yjS1AhLA4SUISWZ6EEklNDQJK4KnPYImZJiyxjJBqSpmnxBzH8FS/QUGhgRGgyQrCiWjbBCQFiYNM1zUeTSAcWSFGQpJLAKX9qSroqlCSGtne3JAJFzvovRhHgs6G4Z/khSl3V3QVI+TyZIJo2MIUUqxtIQYXa+SUMFFyRNOcHa0WNkgYwefWcMbU2Kp0hedA2rSJqmebRiM0aEe0PHm2sOwTaQuBjkT9P0E74QCNGMGBP6trJkwFUtEl6Hz8yTBRp2SQzHkKa7LmvpSAxM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';
Than I just render it:
var bitmap = new Bitmap(width, height); bitmap._image = new Image(); bitmap._image.src = my_stored_bitmap_name; bitmap._onLoad(); this.contents.blt(bitmap, 0, 0, bitmap._canvas.width, bitmap._canvas.height, x, y, width, height);
Code:
if (ark_player_name.length < 4 || ark_player_name[3] == '' || ark_player_name[3] == null || ark_player_name[3] == undefined) { var bitmap = new Bitmap(144, 144); bitmap._image = new Image(); bitmap._image.src = savefileface_arksavescreen_engine; bitmap._onLoad(); } else { var bitmap = ImageManager.loadPicture(ark_player_name[3]); } this.contents.blt(bitmap, 0, 0, bitmap._canvas.width, bitmap._canvas.height, 10, 0, 144, 144); }
With java script it's fairly easy to even render lots of image kinds, in a lot of diferent extensions, not just png. Then the file size is not a problem, as I can use any kind of compression in my files.
Said that, what do you think?Could this be a common pratice in the future for plugins that need external new images?
Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.
Can someone recommend some fun story-heavy RPGs to me? Coming up with good gameplay is a nightmare! I was thinking of making some gameplay platforming-based, but that doesn't work well in RPG form*. I also was thinking of removing battles, but that would be too much like OneShot. I don't even know how to make good puzzles!
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.