What would be the best way to do a 2D Avatar Creator without using an game engine (ie. Unity)?
The avatar images will be a basic body and placing different images for the different body parts - head, body, legs, arms, etc. Layer the different images on top of the base image.
Can this be achieved in a regular Android app without using any sort of a game engine? Are there any libraries like this already done?
For a 2D Avatar Creator, using a game engine for a job like that seems overkill (a library might be too much as well).
Coding it from scratch is much simpler than having to deal with a bunch of unnecessary tools that at the end of the day just take space. Also, it is much more efficient, as you only code the bits you need.
Because you want to make this app for android, I'd recommed doing so using the official Android SDK. It includes Eclipse (a very nice IDE as well as the most popular) so no need to worry on what else to download.
This SDK requires you to use Java (If you haven't learned this language yet then do so. It's probably the best and only language you'll need to know).
Related
I have built a web based light SVG editor with simple functionalities such as (resize, rotate, dragging, coloring) using HTML canvas and fabricJS. Now just by curiosity i want to create a mobile app to this web based platform. started searching for alternatives or something similar to fabricJS in flutter but i had no luck.
Also searched for many solutions and i have never found something to serve this need in flutter or Native Android nor Swift, But I know it's possible there is canva who made something with the same approach but i couldn't find a way to know there secret sauce.
So, my direct question is if there an html canvas like in flutter and even a canvas-svg (and svg-canvas) parser.
Flutter doesn’t have SVG support and will never officially support it due to its performance.
Your best bet is to use CustomPaint for rendering the vector, then use SVG.js with js interop when it comes time to export the SVG. Not a simple solution since you’re having to work around lack of official support, but for basic functionality it should be completely feasible.
If you’re wanting to support importing vectors, you might want to check out flutter_svg’s code to take a look at how they handle SVG. This library only supports rendering SVGs, not manipulating or exporting them, but it may have some helpful code to point you in the right direction.
Before we start: Yes, this question has been asked and answered for similar backgrounds a couple of times, but all extensive answers to this questions I could find are at least 2 years old and game engines come and go.
On top of that I have some specific requirements that I could not find being discussed in any of the posts.
What I want to accomplish is to create a 2D game. I have a background in Java programming and programmedd some simple Android apps (a messenger and stuff like that). I also have very basic C++, C# and JavaScript knowledge as well as OpenGL and building an own 3D engine (university project):
Should run on Android (version 5 or higher) and probably iOS (I haven't done anything with iOS yet so this will be my first project).
Needs some very basic physics for bullets/hit-tests (I can also code this if it's necessary so this more like a soft constraint but I'd prefer the engine or some simple library to do the work for me)
UI-components. Yes, I will need them and many will be text-oriented. Also scrollable components. I have seen many engines lacking these and coding it from scratch can be tedious. Also many engines make it hard to create more complex UIs which I would probably need.
In-App purchases. It would be really nice if wouldn't have to mess around with this too much.
Some nice graphic effects.. Parallax effects, particles (for magic spells, etc)
Communication with a centralized game server.
Notifications in the notification bar (with custom images and texts
Should be able to handle basica animations, play music and videos.
Should be able to integrate with Social media (Facebook and/or Twitter as a minimum). Would be nice to have something like "Like our page on Facebook to receive X coins).
Performance is probably NOT critical - I assume that any game engine fullfilling the other requirements is programmed sanely enough to be fast enough on a modern device.
Should be battle tested, not being abandoned, have a reasonable documentation and community
Rapid development should be possible. This is very important to me as I plan to change the style and other things quite often and let people test and comment the changes.
What I found are basically some different types of engines:
- Engines where one builds a game in a framework and manually adds native code for things the engine does not support, like LibGdx.
- HTML5-only engines that need some 3rd party app-wrappers like phaser + CocoonJS. Some other also provide this, like Kiwi.js.
- Monolithic engines that provide everything (okay only one: Unity).
From all of the engines I have seen I think Unity would fit my needs best, but then again I have no experience whatsoever with it.
What would you suggest?
I suggest you to look at GameMaker: Studio
Here is course on Lynda Learning GameMaker: Studio and GML
So, for a personal project, I'm trying to make an app that helps newcomers get used to the school quickly. And for one section of it, I'm trying to build a 3D Structure, in a shape of my school campus, with lables incidating where the rooms are, so when the using searches for specific rooms, they can easily find it. So, It would be like from one activity, when I click a button, it opens a new activity with a search bar on the top, and the rest of the screen a 3d image people can navigate through. What's a way I can accomplish this?
I know that the structure part can be accomplished with Unity, which I haven't learned but have an idea of what it is, but I don't know how to build the rest of the app with Unity.. So..
You probably want to start with designing the model (structure) in some-kind of modeling program, Maya, 3DS Max, Cinema 4D, Blender, etc... (Personally I recommend using Blender since it's free and open source). Then you would want to export it to some 3D model format, I recommend using .obj since it is very human-readable and easy to parse on your own, but you can use some other format and parse it using a library.
Now comes the more difficult part and it's to render the loaded model onto the screen. This can be accomplished with OpenGL ES or a more highlevel library which can abstract it for you. If you're not familiar with OpenGL ES or OpenGL in general, I wouldn't recommend using it since it may take some time to learn. There are few libraries out there which can render 3D models pretty easily. Now you should probably create some-kind of a controllable camera as well so you can use it to navigate through the model.
This maybe looks like a lot of work but if you already familiar with computer 3D graphics it can ease it up for you.
Well, you can make a 3d model of your school using Blender (which is a free tool, but will almost certainly be a lot of work). Export the model as a mesh which you can insert into your app as an asset or resource. Read the resource and present it using (probably) opengl. This is a SUPER high level view, in actual fact there's quite a lot of work in each stage. Some third party libraries can make it a little easier, but it will still be a big job. I personally like libgdx for abstracting the pain of opengl, but that's just my personal opinion.
It's a big job, but would be super cool .. good luck!
I recommend starting off with building the structure in a program like Blender, Maja or 3ds Max. You can export your projects from those programs to pretty much any game engine and it makes more sense to build things in one of those programs.
Once you're done with that you can choose which engine you want to use to add the search function, if unity or Unreal or whatever but either way you're going to need to make yourself familiar with java or c to add the search function.
I recommend to use blueprints of building if available, it will save you a loads of nerves. Use it as a material texture and place it on a plane polygon to get a good lining helper.
If you do use Unity for development then try Maya for polygonal modeling. At least they are looking similar to each other whereas 3DSMax is always a mind f*cking experience.
I'm trying my hand at making a platform game and have been thinking about what I would use to design levels.
I was thinking of using a tile palette that would contain the graphic tiles and their properties. And a similar palette that would contain sprites.
This way I could drag and drop tiles/sprites onto a grid and specify property values. This could all be saved to some kind of file that would be read by the game.
Without getting too into the details, is this a sound overall strategy? Is there anything major that I'm forgetting? Or perhaps there's a better method?
This is a rather open-ended question, but I don't think there is anything wrong with your approach. You might have to try a few things to find out what works for you.
When I make platform games I find it useful to be able to edit levels while I'm playing them, by adding in code to the game which allows me to select a graphic tile from a palette and paint it onto the screen. The behaviour is usually linked to the graphic for my games but you could paint behaviour as well. You then need code for your game to save levels as well as load them. Obviously, you would probably want to remove the editor before releasing the game.
I don't know how much experience you have with game dev, but if you're thinking about making a tile-based platform game then your best bet is leveraging existing libraries/tools to avoid "re-inventing the wheel". I highly suggest looking into open source libraries/tools because you can modify them to your liking. I've had some good experience with libgdx and AndEngine in which case both have TMX support which is a file format that can be used in conjunction with Tiled map editor. I personally like libgdx because it has javadoc and very actively developed, and also that it's a framework rather than engine which gives you more flexibility (although more coding in some aspects).
I would like to develop or use an existing platform that will allow me to view custom vector data and use it as a map on mobile phones such as Android/IPhone (Maybe even WP7).
I'm hoping that there's already a good infrastructure for what I need so I would not need to develop a whole infrastructure by myself.
In Conclusion -
Is there any existing platform that may answer my needs?
If not, how would you guys suggest I should begin? How should I save my vector data? How could I read it? Should I view it with a graphics engine like OpenGL? Is there any chance this solution could be cross-platform?
I know that it's possible since it was already done with apps like Waze. And it works the same on iOS and Android.
Thanks!
After much research I found a solution that fits most of my needs.
At the moment I decided to go on Android only so I'm using AndEngine (In the future I guess it would be pure OpenGL).
AndEngine can read .svg files and turn them into PNGs at runtime, and also has a built in support for ZoomCamera which allows me to pan and zoom the map very easily.
I'm converting the SVG to PNG because apparently mobile devices do not have a very good anti-aliasing support, and rendering curved paths can also be a problem.