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] 3D Placement Editor

Author
Message
PartTimeCoder
AGK Tool Maker
4
Years of Service
User Offline
Joined: 9th Mar 2015
Location: Suffolk UK
Posted: 24th Aug 2017 20:18 Edited at: 25th Aug 2017 12:17
Now TGC have released their Visual Editor I feel it's a good time to give a sneak peek of a little (well, not so little) project I have been working on to aid me in 3D world building in AppGameKit, it is written in Tier1 and tightly integrated with PureBasic via the plugin system and with PB taking a load off AppGameKit its also pretty fast

I have based the system off a FPSC/GG type setup, when you import an object and predefine its settings its added to the global cache and you can then add entity's to your scene via the object browser or import objects directly from disk on a as needed basis (still wip), all object settings have been exposed, all world settings have been exposed, the editor currently saves the project file as xml so a user can simply write a wrapper or (still wip) use import scripts generated by the editor.

object meshes are currently not supported so no animations yet, I will get to it in future.

Comments, suggestions and feature requests are more than welcome, what would YOU like to see in a 3D editor?

an early alpha should be ready in a couple of weeks.

Edit: added video, its a little jumpy but thats my low grade laptop running screen cap software!


TODO's
- Hide/unhide selected entities
Done - freeze/unfreeze selected entities, Locking an entity prevents its movement, it can still be selected
- entity : group. So if we select the group, it select all entities in that groups.
Done - snap to grid / not snap, grid snap on or off and grid force align, with force align off it will snap to grid by its current grid offset, with on it will force the object to realign with the grid.
- multi selection (to move several entities together)
- physic for collision ?
- CtrlC + Ctrl V to copy/paste the selected entities
- export in : agk code full / level editor code (with a simple function to load the level in our game)
- add some pre-made entity : start, end, waypoint for ia ?, water (with shader), action-entity (treasure, teleporter...)....

Some ideas : Keep the ideas coming, I will pick out what I can do right now and add them to my TODO list and tick them off as done.
- add the 3D shaders (from a "shaders" folder ?), set shader on the entity, remove shader from entity
- add "script" system like in game guru /GGloader (perhap's you could tell with preben if you could export in the ggloader format ). or some behavior (entity is player, 3Rd person camera / FPS)
- add a lightmapping/shadow mapping system (for not dynamic light)
- add a terrain builder (not only with heightmap) : draw on a mesh and create the terrain by hand (like in gameguru)
- entity : some shaders like water, envmap, normalmap (terrain or other things) ...
- Camera : perspective mode/ orthogonal mode, view front/top/right/left
- rotation/scale : for the selected entities, with 2 mode : at origin (normal scale) / by bouding box (the group of entities is caled/rotated as it was ONE entity (I guess it's not easy to do that ^^).


Attachments

Login to view attachments
Cor
AGK Developer
8
Years of Service
User Offline
Joined: 19th Dec 2010
Location: Its a trap!
Posted: 25th Aug 2017 03:31
That is super awesome!!! I will definitely purchase a tool like this!! Great work!!
Blendman
5
Years of Service
User Offline
Joined: 17th Feb 2014
Location: Arkeos
Posted: 25th Aug 2017 10:03 Edited at: 25th Aug 2017 11:54
Waho !
It's really great !

How do you do to have gadgets, menu , toolbar, statusbar in agk ?
Have you made a gadget/menu plugin with purebasic ?
Or do you integrated the AppGameKit window in a purebasic program ?

It's really interesting, and your editor looks amazing !

Some ideas :
- add the 3D shaders (from a "shaders" folder ?), set shader on the entity, remove shader from entity
- add "script" system like in game guru /GGloader (perhap's you could tell with preben if you could export in the ggloader format ). or some behavior (entity is player, 3Rd person camera / FPS)
- add a lightmapping/shadow mapping system (for not dynamic light)
- export in : agk code full / level editor code (with a simple function to load the level in our game)
- add a terrain builder (not only with heightmap) : draw on a mesh and create the terrain by hand (like in gameguru)
- add some pre-made entity : start, end, waypoint for ia ?, water (with shader), action-entity (treasure, teleporter...)....
- physic for collision ?
- entity : some shaders like water, envmap, normalmap (terrain or other things) ...
- CtrlC + Ctrl V to copy/paste the selected entities
- Camera : perspective mode/ orthogonal mode, view front/top/right/left
- multi selection (to move several entities together)
- snap to grid / not snap
- rotation/scale : for the selected entities, with 2 mode : at origin (normal scale) / by bouding box (the group of entities is caled/rotated as it was ONE entity (I guess it's not easy to do that ^^).
- Hide/unhide selected entities
- freeze/unfreeze selected entities
- entity : group. So if we select the group, it select all entities in that groups.


That's really amazing
AGK2 tier1 - http://www.dracaena-studio.com
PartTimeCoder
AGK Tool Maker
4
Years of Service
User Offline
Joined: 9th Mar 2015
Location: Suffolk UK
Posted: 25th Aug 2017 12:05
Thanks guys

Quote: "How do you do to have gadgets, menu , toolbar, statusbar in agk ?
Have you made a gadget/menu plugin with purebasic ?
Or do you integrated the AppGameKit window in a purebasic program ?"


Its a little of both really, the whole UI is a single plugin purpose built for this task and is invoked with a single function call, when launched I strip away the AppGameKit window frame and embed it into a container making the plugin window its parent so it effectively becomes a PB gadget and use the plugin function system for communication between AppGameKit and the UI just adding a function or event as I need them, this way I can keep heavy code like event loops and callbacks in PB and have AppGameKit do what it does best.

I did try and build a gadget plugin and have AppGameKit build the UI but it was slow and prone to crashing, my first attempt with the LAG Lib hit some huge restrictions, I started this project about 5 weeks ago and scraped and started again twice having learned what not to do, overloading AppGameKit with plugin commands makes it pretty unstable, currently what you see there is all done with 52 plugin commands, around >15K lines of PB code and >4k Tier1 code, I am very happy with the results so far.

Quote: "Some ideas :"


That is quite a list, I'm sure I can accommodate some of those, for shaders I would need you good folk to "donate" some shader code, I could integrate AppShaderKit into the system but not ship it, I'll do some research and see what I can find that I can ship as default

for terrain, PB has a fantastic image and drawing lib, maybe I can generate a heightmap on the fly and render it in realtime, again, its going to take some research

I will add your list my first post and any others that follow and tick them off as I get to them
Blendman
5
Years of Service
User Offline
Joined: 17th Feb 2014
Location: Arkeos
Posted: 25th Aug 2017 13:05
Hi

Quote: "Its a little of both really, the whole UI is a single plugin purpose built for this task and is invoked with a single function call, when launched I strip away the AppGameKit window frame and embed it into a container making the plugin window its parent so it effectively becomes a PB gadget and use the plugin function system for communication between AppGameKit and the UI just adding a function or event as I need them, this way I can keep heavy code like event loops and callbacks in PB and have AppGameKit do what it does best."


It's very interesting.
Will you sale this menu-UI lib/plugin / system (on the TGC store for example) ?
I'm sur some guys will be interested.
I will be interested for my personnal tool (because I use Purebasic, but the sprite system isn't as good as agk (no physics, no shaders...) .


Quote: " I would need you good folk to "donate" some shader code,"

There are a lot of 3d shaders in the Shader thread .

Quote: "for terrain, PB has a fantastic image and drawing lib, maybe I can generate a heightmap on the fly and render it in realtime, again, its going to take some research"
Another option could be to draw on the image too, to create/modify the heightmap.
I have some code (vectorlib or bitmap) for the drawing part if needed .
AGK2 tier1 - http://www.dracaena-studio.com
PartTimeCoder
AGK Tool Maker
4
Years of Service
User Offline
Joined: 9th Mar 2015
Location: Suffolk UK
Posted: 25th Aug 2017 13:14
Quote: "Will you sale this menu-UI lib/plugin / system (on the TGC store for example) ?"


well the thing is, each UI would be specific to the application and as I have found it needs very careful planing, I posted the base code to embed agk into PB in the below thread that will get you started, the rest is just like writing any other plugin, just dont, and I cant stress this enough, dont overload AppGameKit, it will crash, build your UI in PB as you normally would, embed agk and add some functions to send events back to agk.

https://forum.thegamecreators.com/thread/219864?page=1#msg2608207
MikeMax
AGK Academic Backer
7
Years of Service
User Offline
Joined: 13th Dec 2011
Location: Paris
Posted: 26th Aug 2017 00:11
The power of hWnd

Very good work PartTimeCoder !
--------------------------------
Join us on dedicated AppGameKit WeeKChat :
https://week.chat/room/AppGameKit
pinete
8
Years of Service
User Offline
Joined: 28th Jul 2011
Location:
Posted: 27th Aug 2017 01:04
Incredible work! Jawdropping stuff!
hope you finish it!

Login to post a reply

Server time is: 2019-08-21 02:39:44
Your offset time is: 2019-08-21 02:39:44