Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

AppGameKit/AppGameKit Studio Showcase / [WIP] Unnamed RPG Project - Engine's Video

Author
Message
MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 14th Feb 2012 07:03 Edited at: 8th Nov 2012 16:12
Hello,

EDIT : Project now switched to 3D

I've started to code my game and i want to share the coding progress with this great community !

There is a DepthTest problem sometimes but i will correct this

Here is iPhone4 screenshots :









Here is a video of Windows version (sorry for the recording framerate ... Works perfecly at 30FPS in real (even at 60fps)




(is anyone know a good software for recording screen at a high framerate ?)


Thanks !
JimHawkins
14
Years of Service
User Offline
Joined: 26th Jul 2009
Location: Hull - UK
Posted: 14th Feb 2012 11:24
Looks great, here. Camtasia Studio ix excellent, but it's not cheap.

-- Jim
kamac
13
Years of Service
User Offline
Joined: 30th Nov 2010
Location: Poland
Posted: 14th Feb 2012 14:45
Incredible!

It's great idea to make isometric games, with 3d ported into 2d. Looks like 3d .

And basic question. TIER 1 / TIER 2?

3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 14th Feb 2012 14:59
you have to use a camera to record at high frame rates. Something like bloggy works great.

Developer of Space Chips, pianobasic, and zipzapzoom apps.
Veterian for the military.
MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 14th Feb 2012 15:02 Edited at: 14th Feb 2012 16:45
Thanks kamac

It's coded in Tier 1

i thought to do it in Tier 2 to have access to network sockets to communicate with a home made linux game server (because this game is intended to become a MMORPG), but i have a lot of work before that state and it seems network functions are coming soon for Tier 1 In case of Tier1 limitations i will convert it to Tier2 (maybe for multithreading ...) but the translation between Tier1 and Tier2 is easy to do (Thanks to TGC Team for that !)

And i use Tier1 cause i'm developping on windows with Several platform (Android phone, Android Tablet, iOS phone, MacOS and obviously windows), so i can easily broadcast to every platform at the same time with AppGameKit IDE.

i've not seen that it was possible to broadcast while developping in Tier2.
kamac
13
Years of Service
User Offline
Joined: 30th Nov 2010
Location: Poland
Posted: 16th Feb 2012 20:45
By the way, what did you use to create that map? Some editor?

MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 17th Feb 2012 10:15
Tiled
DVader
20
Years of Service
User Offline
Joined: 28th Jan 2004
Location:
Posted: 18th Feb 2012 20:09
Nice. I started an isometric title awhile back but lost in a crash. Your graphics are way better than my efforts were though.
@Kamac, isometric 3d is tiled same as most other engines. Just the tiles are not square they are a diamond shape on its side, and designed to fit each other perfectly. The buildings are sprites either on top or in place of the floor, dependant on how it's done. You use the y height of the sprites to work out depth.

kamac
13
Years of Service
User Offline
Joined: 30th Nov 2010
Location: Poland
Posted: 18th Feb 2012 20:14
Quote: "@Kamac, isometric 3d is tiled same as most other engines. Just the tiles are not square they are a diamond shape on its side, and designed to fit each other perfectly. The buildings are sprites either on top or in place of the floor, dependant on how it's done. You use the y height of the sprites to work out depth."


Ew. I know. I was asking him about the editor he used to create the map, and he answered tiled. See there: http://www.mapeditor.org/. It's called "Tiled Map Editor".

DVader
20
Years of Service
User Offline
Joined: 28th Jan 2004
Location:
Posted: 19th Feb 2012 02:17
Quote: "Ew. I know."

Fair enough, but someone else who reads this thread may not.

kamac
13
Years of Service
User Offline
Joined: 30th Nov 2010
Location: Poland
Posted: 19th Feb 2012 09:35
Quote: "Fair enough, but someone else who reads this thread may not."


That's why explained what is this really about

I have made a fairly good isometric engine before, but it was for PC only. ( Programmed in C++, everything object-oriented - very easy to customize )

Have a shot:



It took two days to develop and I think I'll port it over to AppGameKit



MikeMax, how's the progress?

MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 19th Feb 2012 13:08
I'm still working on the engine itself and optimizations because i will have a lot of different spritesheets and i think i will be faced to an OpenGL texture memory problem (on low end devices)

i can obviously load spritesheets "on the fly" but it takes some time but i will do a benchmark on how many textures i can load in memory at the same time (if someone already tried that i'm interested by the result on iOS devices and main androd devices !

I also started to implement musics and sounds to see how AppGameKit manage them

for now i am generating other 8 directions spritesheets to begin the health/fight system

i will post another video soon



(still sorry for my bad english :s)
DVader
20
Years of Service
User Offline
Joined: 28th Jan 2004
Location:
Posted: 20th Feb 2012 02:18
Looks very Theme Hospital Karmac, I like it. Heres a vid of what I managed before I lost it.
http://www.youtube.com/watch?v=0_h6yg0LDGY
MikeMax, I posted on your thread regarding memory issues. You could save a fair bit of memory just by reducing image colours, unless you already are of course. Each sprite can have it's own palette, as long as the transparent colour is the same I should think, so 256 colours or maybe even less, should look ok still.

MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 20th Feb 2012 13:09
@DVader : thanks for your help

Strangely i can't make a black background to become transprent with the LoadImage( sImageFilename, bBlackToAlpha ). it was just for testing purpose but i can't make it work (i have also played with the SetSpriteTransparency but has no effects).
kamac
13
Years of Service
User Offline
Joined: 30th Nov 2010
Location: Poland
Posted: 20th Feb 2012 13:43 Edited at: 20th Feb 2012 13:43
Quote: "SetSpriteColor(255,255,255,transparency)"


This should do.

MarcoBruti
12
Years of Service
User Offline
Joined: 20th Nov 2011
Location: Caput Mundi
Posted: 20th Feb 2012 16:06
How do you render the ground?
With a single sprite or, as in case of tiled games, as a collection of sprites that you draw dynamically managing the border with modulus calculations, so you draw only the visible tiles and the half-visible at the borders?
I created a tile library for Dark Basic Pro, and of course I manage tilemap using modulus calculation and map created with mapwin...but they are not isometric.
MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 20th Feb 2012 18:55 Edited at: 20th Feb 2012 18:59
@kamac :

thanks i will test that

@Marco :

I use a classic isometric coordinates system to place objects and get sprite coords. But i use few pre-rendered isometric sprites without transparency which contains a lot of tiles (reduces the number of small sprites to render on screen). Therefore the floor you see is in fact a collection of (relatively) "big" jpg square i have pre-rendered. For floor details i will use a second layer over the floor to make it less regular. So i don't display each tiles i only use the tiles system for coords.

But, stop me if i'm wrong, the OpenGL frustrum in AppGameKit prevents your tiles to be drawn if they are completely out of the screen no ? but for game's logic and collisions i will only test visible elements obviously.

Video Games often need cheating visual techniques to render them well with small resources That's what i like in mobile's development
DVader
20
Years of Service
User Offline
Joined: 28th Jan 2004
Location:
Posted: 20th Feb 2012 19:06 Edited at: 20th Feb 2012 19:09
When I made my isometric test project, it was nothing fancy, a basic grid system. The only difference for the iso perspective, is that you have half way points in the grid so you can place them interlinked like in the screenshot and my video above. I saved to a simple map(x,y) array and used that for rendering.

By the way have you saved much memory by reducing sprite colour depth?

MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 20th Feb 2012 20:03 Edited at: 20th Feb 2012 20:53
Quote: " The only difference for the iso perspective, is that you have half way points in the grid so you can place them interlinked like in the screenshot and my video above. I saved to a simple map(x,y) array and used that for rendering."


That's a classic isometric engine

Quote: "By the way have you saved much memory by reducing sprite colour depth?"


not yet tested i just get home
MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 20th Feb 2012 21:37
Which file format to use to have the LoadImage( sImageFilename, bBlackToAlpha ) working ?

a PNG doesn't work, a BMP doesn't work, and a JPG doesn't work
MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 20th Feb 2012 22:44 Edited at: 21st Feb 2012 08:40
Works only on windows for me... but black background on iOS and android .... i haven't tried it before ...
3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 21st Feb 2012 04:05 Edited at: 21st Feb 2012 04:10
ok this is tile set export for lua which i find much more readable then the xml format. I don't even know how to partion the xml so i guess if you use tile map you can export it in lua format.

Where data=//some data in the lua format then you can use this as a layer.

I looked at examples of the xml format and how to partion the file but the data looks like I can't. If you use the map editor code I created last year and this format I pretty sure you get the same thing.

Developer of Space Chips, pianobasic, and zipzapzoom apps.
Veterian for the military.
MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 21st Feb 2012 18:04
The Tiled map format is perfect for me don't worry
3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 21st Feb 2012 20:44
the only thing i see that is not good about tiled is that it does not support animations, It does look quicker though in making maps.

Developer of Space Chips, pianobasic, and zipzapzoom apps.
Veterian for the military.
DVader
20
Years of Service
User Offline
Joined: 28th Jan 2004
Location:
Posted: 21st Feb 2012 23:04 Edited at: 21st Feb 2012 23:11
Not sure why you are having issues with using black as a transparency. I have tried it in a quick test to see if I had problems, and it seems to work ok on both my pc and android device. I use a standard png, and use the image=LoadImage( "image.png",1 ) command. I'll post it up in once I zip it up.

Edit - added the small test prog and media I made please excuse the untidy rems left in I was playing about and forgot to delete em

Attachments

Login to view attachments
MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 22nd Feb 2012 09:28
DVader, your test prog works on android (both my galaxy ace (android 2.3) and my galaxy tab (android 3.2)). But on iphone 4 (ios 5) it doesn't work. I have the black background...

However, Thanks for your help !
DVader
20
Years of Service
User Offline
Joined: 28th Jan 2004
Location:
Posted: 22nd Feb 2012 13:26
Ah, never test on apple kit.. Sounds like a possible bug in the iphone player.

baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 22nd Feb 2012 13:44
There are a few bugs in the iPhone player...

Some of your froggit images still don't show up no matter what I do. Works fine on the PC.

Also sometimes when I have a lot going on everything just resets (doesn't happen on my PC).

I will try to make some simple examples for the bug board then let TGC know the specific bugs and how to replicate them.

MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 22nd Feb 2012 15:25
Same kind of things here in iOS Player (reset) when i finished to load a map (after few launches).. in this case i need to really shutdown the player and relaunch it to get it work again ... unlike in android player and PC where everything is going well without any reset.

Maybe a memory management problem when broadcasting ... no ? it seems after few app launches, the memory goes slowly down and some resources seems to be retained in memory. I need to stop completely the player to recover entire memory.
LeGugusse
17
Years of Service
User Offline
Joined: 15th Feb 2007
Location: Paris - France
Posted: 29th Feb 2012 14:53
Hi!
THAT MAKES ME AWFULLY JEALOUS!!!
Congratulations!

If you wish to share also some code, graphics, tips, techniques, advices... You will make a lot of happy people here!

Cry "Havoc!" and let slip the dogs of war
3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 29th Feb 2012 19:14 Edited at: 29th Feb 2012 19:15
My code the tiled engine already does that. It does not have the graphics but the code is already there in the forms. So no need for him to show how he coded it up.

Developer of Space Chips, pianobasic, zipzapzoom, and vet pinball apps.
Developed the tiled map engine seen on the showcase.
Veterian for the military.
kamac
13
Years of Service
User Offline
Joined: 30th Nov 2010
Location: Poland
Posted: 11th Mar 2012 20:08
I have a question through. How do you export maps from Tiled? In what format, so it could be easy to read it?

MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 13th Mar 2012 17:29 Edited at: 13th Mar 2012 17:30
I currently export my maps in tiled "CSV" format for the moment (easier to debug). But after i will use the Base64 Format (which only encode the CSV format but faster file read). See the base64 functions i've submitted in the UCF .


I currently work on the battle/health system and i will make a video of it soon
3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 13th Mar 2012 20:23 Edited at: 13th Mar 2012 22:21
I got this encoded in my tiled engine.

path follow. 3 different following algoritms.

Fill Polygon. this command fills a editable poly in one command.

apply spot light. this command make a fake light.

A* path following algoritm. I only have a path working for orthogonal but not isometric yet with only a couple of lines.

Kamac, I think you have already figured out how to get data from xml. You probley looked at my code, if you can't figure it out from there then I don't know.

Currently I am working on a algorithm that keeps track of the distance from the enemy to the player, and applys a path algoritm to the enemy if the enemy is at a certain distance, and if it is out of range it stops following. Kind of a modified version of the A* path finding algorithm that I pieced together myself.

here is a short program using my tiled engine apath finding algoritm, and this also draws the level also. Note alot of the code is handled by classes.



Developer of Space Chips, pianobasic, zipzapzoom, and vet pinball apps.
Developed the tiled map engine seen on the showcase.
Veterian for the military.
MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 13th Mar 2012 20:58
on my side the problem with the classic A* pathFinding (8 directions), with AppGameKit and mobile devices is that the calculation takes too much time for a map of 100x100.

Can be ok for one enemy but if you want several enemies to walk around ... there is a problem with a 60 FPS screen refresh (even at 30). On PC it works well without any slowdown.

Maybe with a 4 Direction A* Path everything goes well ... but it's not my need

So i will have to optimize my pathfinding routine or reduce my map resolution
3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 13th Mar 2012 22:26 Edited at: 13th Mar 2012 22:50
This is what I do with the A* path algorithm. I only refresh the algoritm after a secound or, a given time has passed. every time the clock hits that time it resets all the paths, so I only calculate A* path algoritm at the time interval I specify. It then finds new paths from enemy to player. This seems alot faster path finding algorithm. because instead of finding a new path every frame it does it in intervals.

I handle enemys by the sprite number, because each sprite that is created in agk has a new number. I use this fact to make new monsters with a given amount of health and they can have a type of monster too.

Developer of Space Chips, pianobasic, zipzapzoom, and vet pinball apps.
Developed the tiled map engine seen on the showcase.
Veterian for the military.
MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 17th Mar 2012 07:01 Edited at: 17th Mar 2012 07:03
Here is a new video about the Battle System ...
Just a little preview (better if you select HD in fullscreen

(I'm in GOD Mode )

The Zoq2
14
Years of Service
User Offline
Joined: 4th Nov 2009
Location: Linköping, Sweden
Posted: 17th Mar 2012 11:13
This looks realy awsome, can't wait to see more!
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 17th Mar 2012 13:56
Really cool!

kamac
13
Years of Service
User Offline
Joined: 30th Nov 2010
Location: Poland
Posted: 17th Mar 2012 14:52
Quote: "Kamac, I think you have already figured out how to get data from xml. You probley looked at my code, if you can't figure it out from there then I don't know."


Indeed. I export the map as a .json, grab the whole map in eg. 2,4,5,7,3,131,52,6,26
then I put it into my converter and get such output as:

2
4
5
7
3
131
52
6
26

but instead of those numbers in .txt, I have nice squares in .txt (Thanks to AppGameKit encoding). Then I simply read those in my game.


PS. Is this game MMO? Or all's done in single player?

MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 17th Mar 2012 20:46 Edited at: 17th Mar 2012 21:37
@Kamac : This is intended to be MMO but for the moment, Tier1 doesn't support UDP networking. So i will see what's going on with future AppGameKit versions .. and maybe i will have to translate it to Tier2 if i work faster than i guess lol
kamac
13
Years of Service
User Offline
Joined: 30th Nov 2010
Location: Poland
Posted: 17th Mar 2012 21:28
Quote: "@Kamac : This is intended to be MMO but for the moment, Tier1 doesn't support UDP networking. So i will see what's going on with future AppGameKit versions .. and maybe i will have to translate it to Tier2 if i work faster that i guess lol"


Aha.

Well, your project looks nice anyway .

I hope that I will be able to announce my upcoming MMORPG soon enough, when it gets shaped . (Hope it to be 1st MMORPG made with AppGameKit, cross-platform, working on low-end-devices, so everyone can enjoy it)

MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 17th Mar 2012 21:39
Quote: "I hope that I will be able to announce my upcoming MMORPG soon enough, when it gets shaped . (Hope it to be 1st MMORPG made with AppGameKit, cross-platform, working on low-end-devices, so everyone can enjoy it)
"


Any screenshot ?
kamac
13
Years of Service
User Offline
Joined: 30th Nov 2010
Location: Poland
Posted: 17th Mar 2012 21:42
Not until I make the thread for it . AKA. For a week or less.

It's currently working in "travel mode" .

Read: Only walking around, registration and logging in system working. (You can actually see eachother walking ATM)

MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 17th Mar 2012 22:17
Creating MMO network protocol can take some times indeed

Good luck !
Zdaxxy
21
Years of Service
User Offline
Joined: 9th Sep 2002
Location:
Posted: 14th May 2012 20:11
MikeMax, do you have any working sample source that you could share of all these different parts combined working together like in your demo video?
MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 15th May 2012 04:04
What do you need exactly ? isometric formulas ?
DVader
20
Years of Service
User Offline
Joined: 28th Jan 2004
Location:
Posted: 15th May 2012 06:39
Looking awesome MikeMax, it's getting better and better!

MikeMax
AGK Academic Backer
12
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 15th May 2012 07:59 Edited at: 15th May 2012 08:04
The problem is that it's currently almost too big for mobiles RAM (including iphone4) ... it still works on low-end devices for the moment but ... i can't add another 8 dir. sprite xD ... i think i will have to decrease images resolutions ...

Another way to save memory space would be a spriter clone working for isometric orientation and make the body members to be separated sprites ... but i don't find a starting point.

Is anyone know something like that ... i'd take

For the moment i'm finishing to work on my AppGameKit Multiplayer server on linux and on movements interpolation and the prediction

If i find a outcome for my mobiles RAM problem, i will implement multiplayer on my RPG (it's the easiest part lol).
DVader
20
Years of Service
User Offline
Joined: 28th Jan 2004
Location:
Posted: 15th May 2012 09:55
I think having separate parts would be a tough one. As Spriter works using rotation, offset and scale, the animations wouldn't work very well. You would struggle to keep to the quality you have at the minute I would imagine.

Although I have an idea that may work. Have you tried deleting parts of your sprites into separate parts manually? So get your sprite sheet, delete everything in the anim apart from say, the arm. Repeat again for the next arm, legs, body and head. Keep the sizes the same to begin with. Then in AppGameKit load all the parts up and overlay them at exactly the same co-ords. You should be able to play through the frames, and it will look identical to the original, as long as you did a good job with the sprite editing. By the looks of your work that wouldn't be an issue The depth should be the same for each sprite as they shouldn't overlap.

It would be a lot more sprites as each part for each direction would be needed, compared to one anim for each. However as most of the image would be blank, each one apart from the body ,will probably be somewhere along the lines of 5 to 7 times as small as the originals.
Once you have done all that, you can then add a couple of different heads, bodies etc. If memory is still an issue, I figure it could use a smidgen extra than you are using now, at least you have more options for changing the body part colours. At present you are pretty much limited to an overall colour change. I reckon you might be able to do it with perhaps a little on the fly image loading, if you only need to change a couple of body parts at a time. I would concentrate on different heads and bodies. Leave the arms and legs to simple recolouring, if possible having leg and boot different images, to allow variation.
It would be a lot of work, you could even work out the offsets, chop them down to as small an image as you can, and position them manually like a jigsaw. That would probably make it more or less the same memory wise, as you have now.
Other than that what else is using that memory up?

Login to post a reply

Server time is: 2024-04-23 08:43:49
Your offset time is: 2024-04-23 08:43:49