(July 2016) Monthly WIP screenshot thread

Which reminds we that we still don’t have a pony emoji :stuck_out_tongue:

1 Like

You’re saying that like it’s a bad thing.

Also here are some new effects for cannon fire:

And alpha v0.03 has been released yesterday, so check yer inboxes :stuck_out_tongue:


Love it! :slight_smile: Nice work btw, I ve been following your work in the shadow for quite a while keep it up!

1 Like

A small update from the Dungeon Keeper II remake OpenKeeper :slight_smile: Testing lighting (real one) and a bit modern textures. Also the creature flowers got implemented:


Trying to get something nice with tessellation and displacement.



small city scene
City created using Particle systems from Blender, contains 900+ building, inside JME 3 scene composer
A lot of art works still in progress, but I just want to try it :slight_smile:


Having a play with physics and collisions. Don’t park your ship next to a rotating spacestation!


Hey @Steve16384, you really need to get yourself one of these.

Hi there, long time no see.
All screenshots are promissing especially OpenKeeper! Keep up good work.

I’m currently too busy for day time job to attend activities in this forum. Too much things has changed. :slight_smile: a little bit sad.

Back to reallity, Not related to JME but our indie game studio from Vietnam just published a few casual and puzzle game in PlayStore and AppStore. I’m really appreciate if you guys can play and review it. It will help a lot. We just start our own bussiness recently and we really need valuable feedback to improve.

A side note, all this games are originally in jME!! But for the sake of porting to iOS, we’ve used Unity instead. The process of porting from jME3 to Unity is quite straight forward mapping 1 by 1 component and entity, because we also use Component framework in jME. We wrote an editor in Unity and import entity and components from XML. As you can find an interesting light up point, yes, we have create a framework that very similar to unity :slight_smile:

It’s a shame that we can not successfully make cross platform games in jME even we try to create a whole new engine (Atom) for the purpose. It’s sad but true that performance is a big turn down for jME in iOS.

Anyway, this is the link:

I hope this little bit promotion does not make ugly impression for you and I hope that I will receive some positive feedbacks from you guys. We will back with Atom engine in the late of this year with a lot of crazy tools and example games.



Very early WIP of a new animation system I’m working on.
It’s very inspired from Unity’s Mecanim so it’s been decided after a long conversation to call it: Monkanim.

So basically here, I have a walk and a run animations and I blend from one to the other according to the speed parameter.
But more to come soon…

EDIT for the curious ones the code is here GitHub - Nehon/monkanim
But as said it’s very early WIP.


Have you heard of Intel’s Multi-OS Engine?

I am taking a break with avarra gui (i’ll go back on it later) and i decided to implement the basic stuff for a start of a beginning of a … you know, the basis of the basis, for a doom engine based on jme.

Here is the result so far

There is still bugs (especially with textures: i don’t load them correctly, i need to talk to someone that already done something like that to understand some details), some of them directly from the WAD file (files used by the doom engine), like non-closed sectors (~ polygons. It’s more complicate than that actually, it’s like non-convex polygons that can contains holes with inside non-convex-polygons etc) and missing texture on some walls. The hole you can see at 0:27, for example, is a missing texture.

The physic is just charactercontrol and basic bulletappstate, i didn’t spend a lot of time on it.
The ground tesselation is done by me (wasn’t in the wad file. If you want to know, the doom engine actually render wireframe of sectors (kind of) and use a floodfill algorithm to add the texture), with a homemade algorithm.

The basic idea is this:

With two special case that i will not explain here (i’ll do it later).

  1. you take a segment (AB) (the thing-most (top-most, left-most, right-most, bottom-most … whatever) segment).
  2. you take a segment (BC) that follow it.
  3. if the angle between the two segment is > 180° : go to 2) with the “follow” segment being the “first segment” (or, more clearly: skip the first segment you chose, make BC be your first segment) (Action : “skip”)
  4. consider the triangle ABC. if it does not contains points : bingo, remove AB and BC, add AC and make it be your first segment. (validate the triangle ABC) (Action: “remove”)
  5. if it contains points, take the closest point to AB (let’s call it P). Add AP and PB in your segment pool.
    Remove the segment AB, validate the triangle ABP. (Action : “split”)

Rince and repeat.

Details: a line has a right and a left side. It’s important as it’s the only way to make a difference between the inside and the outside of your polygon. For example you can decide that when you go from A to B, the inside of the polygon is on your left, and the outside is on your right.
Also: the “add segment” is actually “add if it doesn’t exists. If it exists, remove”. This is because a line always has a “polygon-side” and a “empty-side”. If there was no line, you are adding an empty side, it’s ok. If there was already a line, you are emptying it’s polygon-side. So remove it.
There is also two special case: the “nail” and the “annoying point”.
I’ll not explain what they ARE but how to solve them:
nail: when you make a ABC triangle, you must check that no segment going to B cross AC.
annoying point: when you are doing “split” action, let’s call P the closest point you took. You must check that no segment starting from A cross PB.


Thanks, I’ll take a look. :slight_smile:

1 Like

I spend the previous month with unreal 4 trying to get more exposure to commercial grade engines

This is (was) one of the features i liked in unreal and i can not find in jme

I remember this c++ animation system that can provide ideas


1 Like

Will it have named animation timeline events like in UE4? (I don’t use unity so can’t say if there is something like that there)
It’s very cool and important feature, used for multiple effects, including but not limited to syncing external actions like launching projectiles with appropriate moment in animation, waiting for user input at specified moment in animation and performing animation switch in defined juncture points in middle of animation.
Most basically it’s just a possibility to define set of timings for every animation to shoot corresponding events, or nothing if events are not needed for animation or overall model. (right now I use my home-brewed version of it, but it’s ugly as hell, given I need custom animation control for it to work and my use-case is simple as hell - just timing of things like particles, launched projectiles and sounds to proper moments in character animation without magic-numbered wait-this-much-from-start-of-animation constants in code here and there, taking them from data instead). Ideally, it may be even incorporated into jme internal model format with some visual way to place events on timeline after model is converted from third-party formats (and it’s my long-time goal as well, that I just can’t find any time to dig into).

And proper state-machine for animations could be cool too, with strictly defined possible translations and all that stuff, but unfortunately it requires too much of supplementing systems before it’s useful and not a pain in you-know-where.

1 Like

This is quite great! good job!

1 Like

Not sure what a “animation timeline events like in UE4?” is, maybe you can explain how it works, and maybe a use case so I can understand…
I plan to implement a state macine with transition between states that will be followed if their condition is met. The condition can be anything “variable>2” or an inputEvent, or whatever. That’s pretty much what you have in mecanim.
I looked into UE4 system too, but it seems very complex and less intuitive to me. Seems complicated to do simple things.
Unity’s system seemed a lot simpler yet powerful to me.

1 Like

Well, I thought it was explanative enough, even supplied with some usecases exactly like you requested now, will rephrase it from user point of view then :chimpanzee_nogood:

In ideal situation:

  • user opens visual editor with his converted to jme format model in it
  • user selects animation
  • user have access to interface with two main controls, “timeline” slider and “add event” button
  • timeline slider have marks for all already added events
  • “add event” button creates new event at currently selected position on timeline
  • every event is named by user
  • after user saves all changes, they are written to model metadata
  • when loading model into game, system reads metadata about animation events and throws them at user code when animation reaches specified moment
  • user code processes events and does whatever user wants with them (and it’s user responsibility to handle cases when event is expected but somehow not generated)

In less ideal situation:

  • user opens configuration file of some sort
  • user writes down time and names for events for every animation
  • system reads configuration file and throws events at specified moments
  • user code processes events and does whatever user wants with them

And again some usecases:

  • Combo attack system, when player have to click in time for next move in combo or current attack just finishes normally. (Provides with easy possibility to know when to start and to end tracking player input, directly dependant on what player see on screen. Provides with easy possibility to know when it’s best time to switch animations if combo condition is met)
  • Projectiles and particles creation, visual application of damage dealt, sounds, all at specified time, not when animation ends and not after some hardcoded delay. (Provides with possibility to know when it’s good moment for it. And if model or animation changes in assets, there is no need to recompile sources, just update model metadata or config or whatever is used to store this data)

Hope this time it will be enough :chimpanzee_wink:

yeah sorry I tend to be slow on sunday morning :stuck_out_tongue:
OK I get it now.
Well the system will provide hopefully similar capability, maybe not in this exact form though, but it’s a bit early to comment as things are not completely settled in my mind.

Note that toda we have EffectTrack and AudioTrack that somehow meet the second use case you expose. I used them in several games and it works ok… but it’s but cumbersome and the implementation is not really satisfying…
I was planning to remove them from the new system and think of something better.
I may create a specific thread about this and open the discussion on the forum.