JIsoMan has been rereleased under a more friendly BSD License. If anyone wants to make use of som eor all of the code, they can do so without worrying about the commercial viability.
The next step is to get keyboard input working. the W,E,S,D keys will move the avatar around the grid, and I will make some other keys too.
the redesign to a less OO paradigm for hte name of speed is complete. I'm noticing a large speedup and I think the code will look cleaner too when everything has been cleaned up.
I'm still waiting for java 1.5 to come out so I can render all the sprites and stuff in hardware.
My next goal is going to be to improve the projectile code
I'm redesigning a lot of the map elements including tiles and walls. I'm going back to the old method of having walls in between tiles, but I'm going to use primitives for the information and this will give me a huge speedup.
I haven't totally fixed some of the problems with walls, since now I made walls their own tile instead of making them in between tiles, but I'm working on it
hey everyone, I decided I'm going to try and see what I can do with this project. I still have major frame rate issues, but I figure I"ll take a second stab at it and see what I can do.
I found an awesome optimization idea and, as a result, I'm able to stick with java2d and get awesome frame rates (150+ fps!). Update coming out sometime soon, or you can get it from the cvs
OK guys, I got a solution.
I'm going to use JOGL and use opengl to draw the map.
Don't expect me to update for awhile, lol.
But when I do update, it will be huge (I hope).
This version runs a lot faster, but to fix the occlusion problem, I need to either
(1) create my own z-buffer and make the VolatileImages into BufferedImages so I can use setpixel, and so an expensive pixel-by-pixel z compare in software
(2) use an opengl or sdl extension, so the graphics card can do the z-buffer in hardware
I'm leaning towards number 2, so I'm looking into jsdl. I'll keep everyone posted.
New Version. In Version 0.22 I made a change that should have been made a long time ago. Now, there is a thread which draws to the buffer instead of a timer, so there is a variable frame rate.
This version has some awesome optimizations. I still need to optimize it when you are scrolling the screen, but there is a huge speed boost, which I was able to convert into more fps. It is now fixed at 30 fps.
OK guys I got a new idea thanks to the help of Walter, a friend of mine. I'm going to use teh PixelImage class I created and I'm gonna try to use some kind of z-buffer-like system to separate the terrain (which hardly changes) and the items/projectiles/avatars (which constantly change). If I can do this, I can render the terrain once onto a huge BufferedImage and never have to render it again. Keep tuned for progress.
I need to figure out how to make it so the background of an image is transparent. So, if I draw an image onto another image, the background doesn't get drawn. I need like a clearRect() function but one that sets the alpha values to 0. If anyone knows how to do this, please ocntact me. Thanks
Version 0.20 is out! This version has two big improvements
-A lot of the code is commented now! I will have a link to javadocs pretty soon
-The graphics code has been slightly optimized so it runs a little faster. I still need to make more progress in this field.
-The next step is generating user XML for logins & accounts.
This is going to be the last version with big leaps in the physics or gameplay in a little while. Here are the main reasons:
1) I'm turning my focus to trying to optimize the graphics engine. right now it uses way too much CPU to be useful
2) I'm going to go through and document all of the functions and classes
3) I'm going to reorganize the packages to fit a more common standard.
If anyone can help me on the graphics optimization, please send me any suggestions on how I can speed it up.
The #1 Priority is optimization.
Right now the code takes 70-90% of my CPU, and I'm running a 1.6 ghz. Since I have barely implemented anything besides the graphics engine, this is not acceptable. If anyone knows of ways to use hardware acceleration in java or any other speedups, check out IsometricMap.java in the map directory of the code and try to find any speedups. If you have any suggestions or comments, please post in the board. Thanks =)
CVS has been implemented so you can get the latest build.
Projectiles are implemented =). I still want to do more documenting before I release a new version
I still haven't gotten around to putting a loading bar, so there is a LONG pause while you connect to the server where it LOOKS like it has hung, but it really hasn't.
The website is http://ucfpawn.homelinux.com/~pawn/games/IsometricGame/core.html
and it is now running version 0.17
Version 0.17 is out. Here is a brief list of changes
-Most of the networking code was re-written
-Items were rewritten to be more modular (you can dynamically load items through class.forName() )
-A system of objectives were set up to pave the way for AI and make the whole thing run a lot smoother.
There are still some things that I need to fix
-When you pick up an item off the floor, it actually is removed from the map. I need a global hashtable for all the items.... read more
OK, two things
(1) I haven't put out a new version yet because I want to make sure item pick up/drop is COMPLETELY done before I release another version. I don't want ot release another half-assed version like 0.16 =P. Sometime this week I hope to have a new version out. My goal once I put up the next version is to document my code thus far and to go for some optimization.
(2) If you have any question about the engine, it's best to leave a message in the forums, and not to e-mail me. The problem with e-mail is I have a very restrictive junk mail filter and I occasionally go through and fish out e-mails regarding the engine out of my junk mail, but sometimes my e-mail server deletes them before I can look through them. If you post on the forum, it will stay there, and I will be able to look at it and post back. Also, this way, other people can see your post if they are having the same problem.... read more
I used the Class.forName() to load items now so you don't need an ugly switch statement, and now items aren't as code-dependent. New version should be up today
this new realease is very very alpha. it is unstable and not fully built. I just put it out so you can see how the code has changed. Hopefully I will put out a stable release soon.