Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

benmorris

27
Posts
8
Topics
47
Followers
58
Following
A member registered Aug 19, 2017 · View creator page →

Creator of

Recent community posts

I will, the game story sounds intriguing so will check it out, thanks :-)

Thanks :-)

Great story idea. After reading the first paragraph you've got me hooked. When I get some time I'll check it out!

Thanks for the feedback :-) Yes, I think so but still searching and experimenting tbh.

Ah neat experiment Mark, nice work :-)

Yep.

Unreal and Unity are pretty inspiring engines. Amazing variety of games have sprung from them and Tim Sweeney is a great thought leader but they have to cater for so much that they can't afford to specialise and so that generality means that you can do anything but it's not so easy. Seen some great plugins that are doing a great job at bridging that (brushify for instance). I find that an interesting conundrum, flexible / fine-grained enough to support a wide range of use cases but specific enough in the common case to be productive without requiring too much config. I find that really hard but a joyful humbling challenge. For me when I implement a new feature there's such a wild horse of complexity that is unleashed that needs to be tamed to make it useful at the engine level and not bifurcate off into chaos. I now think you have to limit the degrees of freedom initially until the new feature is tamed with subsequent releases slowly opening it up to more config / generality. I'd like to add WebGL to the supported platform list. There's something called "Emscripten" which cross compiles C/C++ to js so it's not outside the realms of possibilty but adding another platform squares the effort tbh and I'm just one person. Maybe once the implementation for my favoured platforms have settled down a bit and the engine is a bit more feature complete then it's be a good next choice.

Really nice texture pack (waterfall) - thanks will try to do it justice :-)

(2 edits)

Ah nice :-) I am pro art but not being an artist have to compensate with code but I don't think the results (via code) are ever as good as art. I see procgen as a tool to help the artist but am not there yet. Okay, animated textures - I need to work on that next and make it easy in the engine like coppercube in fact it sounds like fun and I need a break from the tiled rendering so might take a look. I'll check coppercube out, it keeps popping up on my engine radar (game engine from scratch youtube channel) but haven't looked at it yet. Really like the waterfalls you've created - very nicely done. When I get texture animation support in I'd like to use your work as a part of a demo on it. Regarding the 3 levels of foliage density I mentioned earlier, here's a little clip of it in action, still work in progress but hoping I don't have to abandon it as an approach:

(3 edits)

I didn't try it tbh. I'm going to stick with instanced rendering as I can sort all the per-instance data each frame and get v.good alpha transparency going. To improve the frame rate I'm currently implementing a grid of tiles. It' a "sliding grid" of NxN tiles (the N is configurable and meant to be odd as in number so the player is in centre) and tile size also configurable currently 32x32 units. The grid slides by keeping the player always in the centre. The player tile is always fully dense (single mesh with high instance count and wavy shader) I call this "level 0" the next level, level 1 (NESW of the player tile) has another instanced mesh but with the instances separated by a greater distance and no wavy so is cheaper, then same for next level out and no color interpolation of grass cheaper still. It greatly improves frame rate. I still have some pop-in going on as the player moves and old tiles are removed / new ones created. I am tempted to move some of the tile loading tasks into tasks for running in a task queue in background threads but I don't want to over-engineer just yet instead will try to spread the work instead across more frames in the main thread - getting there. I saw your waterfall asset posting - I saw you mention it as being an aniated texture - do you creat a single texture strip and then animate UVs? The grid I mentioned can be seen in this s/shot - center tile moste dense moving outwards (the procedural color is maintained accross tiles just less dense but I need to alpha fade in as transition to denser foliage quite harsh): btw none of this is in the current release, hoping to introduce in next release (v0.43.6) but still quite a lot to do

Thanks :-) I'll try just generating a single large grass mesh and then animate that with the vertex shader and see how that performs vs instancing. Relic Hunter looks great, good game idea, love the god rays and foliage variety too.

(4 edits)

Thanks :-) I really appreciate your comments, it's no fun working in a vacuum :-) Yep, I'm using instancing, the geometry is N x a lot of quads basically. Ultimately i's just 2 draw calls (one for terrain one for grass). This is how I do it but I don't like it and yes, I plan on tiling and having it less dense as a function of distance from viewer: I create a star-shaped mesh of 3 intersecting rectangles (the GPU Gems grass object approach), single mesh / index buffer / vertex buffer. I then take this as the base mesh. I then generate the terrain using noise and then generate up to N transforms (position / orientation) for each grass-star (I place them using poisson distribution with no overlap). I peek into the terrain when generating the transforms at each generated poisson point to get its height and terrain normal (the poisson placement is just consider X and Z no Y - I get the Y / normal from peeking into the terrain mesh data). I then construct the instance transforms (for each grass-star instance) with position / orientation. I push these into an std::vector and then pass them into a shader. For the shader I initially implemented a simple wavy shader (using simple cosine and time + time offset and diffuse color that is interpolated according to local UV so it's dark on the ground going to lighter) which I also have as an instanced attribute (when I generate the instance transforms I also generate arrays for the diffuse colors and time offsets). Back in the shader then initially I implemented purely in the fragment shader by waving the UVs but they were gettting clipped by the geometry so I moved the wavy bit into the vertex shader. The shader, in addition to taking in the instanced data also takes any sampler2d (texture) and reads the alpha from it that is uses to discard fragments and then simply colors the opaque pixels using the supplied instance's diffuse + attenuates its brightness this time according to the local vertex Y (was the UV in the frag shader version). Finally, each frame I sort the instance transforms in descending order of distance from the viewpoint so they are rendered back to front. So basically painters algorithm + instancing. But doing transparency is a pain in the ass so I see the appeal of doing it in the geometry shader. I cheat, I duplicate the geometry (reversed winding order) to get back faced rendering working with the shading but it has a performance cost. I need to experiment and find the most performant way of doing two sided alpha texturing...or just go the geometry shader route. Regarding the 2 draw calls, despite the shader taking lots of per instance data ultimately I pack the instance data into a C++-side InstanceData struct that I create a vector of and then pass into the shader mapping in the attribute pointers with stride. It took a bit of work to set up but is nice as I can simply add a member to the per-instance C++ struct / new shader location so the C++ struct and shader are in lock-step so easy to read / extend. Psylocibin, ha ha, yep, me neither :-)

Hi, My name is Ben Morris and I'm the author of a small indie game engine, editor and sdk for Linux, Windows and macOS. It's in development with still lots I'd like to do (like adding Android and RaspberryPi support for instance). It's been a slog at times but has also been very technically rewarding as I've learnt so much working on it.

The site I'm posting my progress to (apart from itch.io) is the project's site over at www.fireflytech.org so take a look if you have time / interest in this kind of thing.

I wanted to post a short video demonstrating some of the editing features below. Any advice, feedback or ideas for feature prioritisation would be greatly appreciated.

I'm working on a custom engine that is hosted here on itch.io and thought about creating a topic in case other game engine devs or enthusiasts might like to share their own efforts and chat / share ideas.

The project is https://benmorris.itch.io/plugin-based-scene-editor

And a video of its current state 

Any tips, feedback etc appreciated!

Oh dear, sorry to hear that and yes, that's a far better excuse than mine :-) I guess in future you might want to store your code on bitbucket or github just in case. I'll try and pull the windows version together then so you can have a play.

This game looks great. Why no Mac  / Linux version ;-) ?

A code wizard that generates a standalone distributable skeleton game project (with required dependencies) has been added to the editor (version 0.40.4).

https://benmorris.itch.io/plugin-based-scene-editor

The tutorial can be accessed from the editor's "Start Here!" menu.

And is also available below in the "Walkthrough: Creating a game" section:

http://fireflytech.org/docs/

This is all very much a work in progress so is still in its infancy.

A code wizard that generates a standalone distributable skeleton game project (with required dependencies) has been added to the editor (version 0.40.4).

https://benmorris.itch.io/plugin-based-scene-editor

The tutorial can be accessed from the editor's "Start Here!" menu.

And is also available below in the "Walkthrough: Creating a game" section:

http://fireflytech.org/docs/

This is all very much a work in progress so is still in its infancy.

Tool available here: https://benmorris.itch.io/plugin-based-scene-editor

Changes:

  • BUG: Fixed Post processing shader support / added tutorial / updated example demo
  • DOCS: Added shader tutorial
  • DEMO: Updated example_Component - demonstrate how to create a System and Component directly in executable code (rather than solely via a plugin)
  • EDITOR: Added version to main window title bar

Known issues:

  • AABB is not updated when an object is scaled

Hi Everyone,

Just wanted to mention a side project I'm working on in case there are any like minded people out there with similar interest who might want to collaborate or want to track the progress of this kind of project. It's available on our beloved itch.io here: https://benmorris.itch.io/plugin-based-scene-editor.

Thanks for checking it out (in advance),

Ben.

Hi Everyone,

Just wanted to mention a side project I'm working on in case there are any like minded people out there with similar interest who might want to collaborate or want to track the progress of this kind of project. It's available on our beloved itch.io here: https://benmorris.itch.io/plugin-based-scene-editor.

Thanks for checking it out (in advance),

Ben.

Hi! Just a quick post to announce a free scene editor / prototyping tool I've recently added. Still very much in development but any feedback would be welcome.

The project is here

And here's a pic: