Quote
IMHO you should pick up LibGDX and work on some simple graphical games like Pong, Asteroids, etc before tackling an isometric RPG (which is a rather huge endeavour, and not all that easy for somebody who's never worked with graphics).
Well, having looked through first tutorial articles, it looks promising, thank you. And I like a challenge.
Quote
Well since you have no knowledge of how to do graphics - I suggest you start there.
You could start with how to draw an image on the screen or start from a historical perspective and see how graphics started out.
If you're most interested in designing and making a game then you should definitely use a game engine of sorts instead of making your own.
You could start with how to draw an image on the screen or start from a historical perspective and see how graphics started out.
If you're most interested in designing and making a game then you should definitely use a game engine of sorts instead of making your own.
I would like to try to stick to my own code as long as possible, but yes, I understand that at some point I will have to give up and use something like LibGDX. I find it the most helpful to try to tackle the problem on your own and only then to look at how other people solved it.
Quote
This is good advice. The main challenge lies not in creating something that remotely resembles an isometric game (i.e. a scrollable map with tiles, a guy walking around, and some items / skills), but rather in finishing a game: making it fun to play, have a nice storyline, progression of some kind, to allow users to install it, and run it in a good way (i.e. deployment), menus, testing, lots of bugfixing, and so on, and so on. First really finishing a simple game such as pong or asteroids, or tetris gives you an idea of how to best approach a bigger project and whether that is something for you.
Again, I'm not planning on using it commercially, it's just for my personal experience and fun. But yes, I will try to make a simple project like tetris to get used to, say, LibGDX.
Quote
1) You must decide if you want to go 3D or 2D
if you go 2D the route will be about this:
a) Decide on the size of the graphics and the number of views (rotations)
b) Decide on a tile raster (dx, dy) - this will determine the basic isometric grid for your display. To convert map coordinates to screen coordinates with the choses raster, use something like this:
1
2
3
4
5
6
7 public int getTileScreenX(final int x, final int y) {
return x*dx - y*dx;
}
public int getTileScreenY(final int x, final int y) {
return x*dy + y*dy;
}
c) Decide on a graphics format (storage) and make the graphics.
d) Load the graphics into memory
e) For each map element, determine the screen position (see (b)) and draw the appropriate image there (also (a) rotations, animations).
Done
if you go 2D the route will be about this:
a) Decide on the size of the graphics and the number of views (rotations)
b) Decide on a tile raster (dx, dy) - this will determine the basic isometric grid for your display. To convert map coordinates to screen coordinates with the choses raster, use something like this:
1
2
3
4
5
6
7 public int getTileScreenX(final int x, final int y) {
return x*dx - y*dx;
}
public int getTileScreenY(final int x, final int y) {
return x*dy + y*dy;
}
c) Decide on a graphics format (storage) and make the graphics.
d) Load the graphics into memory
e) For each map element, determine the screen position (see (b)) and draw the appropriate image there (also (a) rotations, animations).
Done
Thanks for a detailed post!
I have been experimenting with projections for some time, since for that purposes standard java library would suffice. The problem is the following: all sorts of technical issues arise, e.g.: there is an object on the screen that I want to click on (for instance, a chest or a monster). I would listen to mouse clicks and when mousePressed() I would check the coordinates - if event.getPoint() lies in the object rectangle\frame, then I've clicked on the object. But this solution seems primitive and hence I wonder how it is usually done. And I have many questions like that. I guess I just need to look at simple open source projects and learn from there.
Anyway, thanks for your advices! I will look into LibGDX, make a simple project with that and try to analyze some primitive open source games.
The screenshots from the games I mentioned.
Gold Box Engine, 1988

Ultima VII, 1992

Knights of the Chalice, 2009

(Spoiler tag didn't put the images under cut so sorry for a long post).


