I'd be happy to hear from you all about what I've missed, new games made with Love, and other news.
Now that I got some initial skills under my belt I want to talk about what I'm working on:
Game development, at least for beginners and hobbyists is pretty limited: You have GM, which is proprietary
(not a bad thing if you want regular support!) but also has periodic online-only check-ins and is owned by a foreign company that could
shut off the spigot one day without cause or reason.
You have Unity, which has a whole lot of baggage attached to it, more oriented towards 3d games, and thus has a lot more fragmented
support in tooling and thus a lot more overhead.
And then theres a smattering of others tools out there, but really those are the two big ones in 2d development, the C# ecosystem and GM.
Now, what took ages in C# and unity (because they're more framework and tooling than proper editors) was about ten times faster in GM, and for a while I could be satisfied with that. Problems with GM is it's marketplace for additional tooling is fragmented, anemic, and will always just fall short. Worse, it feels...unprofessional. Thats a horrible and old complaint coming from a guy using GM, least of all when so many polished games have come out of that toolset. I'd be embarrassed to pitch to a publisher though when anything I made had the attached logos and branding of GM.
Then I found Love2d and what took four months to make in GM, took under two weeks in moonscript and L2D.
I was blown away. But some things were missing, namely asset browsers, object editors, and editors in general. Building these in L2D was, to say the least, a pain in the ***. Virtual sandboxes will do that to you. I understand the reasoning why, and undoubtedly it was necessary, but I needed more.
And so I left, learned some other things, and came back, and now here I am.
So then, what have I been up to?
Mostly learning html, js, and css. I picked up nw.js along the way (lighter and saner than electron).
My goal is to build a set of editors for Love2D, with support for moonscript, lua, and javascript (exporting to phaser2d).
It's less about supporting the community, as meeting my own development needs, but I want to put it out there. Maybe far down the line there will be some optional patreon support, but the money would primarily go to Love2D, phaser, and others for bounties and supporting continuing development.
I wrote an overview or draft of what I'm thinking its posted below.
OVERVIEW
You don't need a 'game engine'.
What you need are tools that work together and speed up
your process.
Things like a level/scene editor so you can layout your
levels and GUI and see it visually as you edit, set
object transparencies, set starting scripts, the works.
Scene/level editor
Object editor as well as instance editor.
Asset browser.
Level editor, as well as main editor, should let you hit a single
button to test, and/or non-debug playtest.
Json should be the export type, or bson, or something similar.
You should have a framework for deserializing json into game objects.
Thats it, everything else is cake built on top.
Maybe an easy configuration editor, for various settings based on say platform exported.
LEVEL EDITOR
Level editors probably need a few things, but minimum is
1. setting the tileset at the start
2. placing tiles
3. placing objects.
4. specifying a script or start/onready script to load at start.
If you want more and better, you're at least looking at
1. layers, layer names, transparency, blending, shaders/effects, color or tint, scroll amount/parallax, order, depth
(depth is loosely based on order)
2. tileset per layer
3. object instance prototypes per layer, instance custom data per layer
4. start script (or initialization/setup script), main script/events, possibly render script (comes as default).
In particular render scripts might come in various flavors to handle different types of level data.
You might want to render level data in chunks for example.
5. Map properties (name, map id, width, height, layers, starting object, 'global/default' map to start when
play begins, etc).
TILE/SPRITE EDITORS
Might include the basic ability to assign a tile name, tile 'data' (a string, like how stencyl does it), and collision group.
Later would be assigning collision *shapes*
COLLISION EDITOR
Collision editor would allow the creation of 1. new groups, 2. naming the group, 3. determining
what other groups it collides with.
ASSET MANAGER
At minimum it just shows you a list of known assets by type, and allows renaming them. Clicking on
an asset opens up the relevant editor, either an external one if specified, or an internal one
if available. Ideally you can create folders, and put files in them, and this will be mirrored
back to the folder structure externally, the one stored in the project. The project
should make copies of all files that are imported, to be stored and manipulated as relevant.
FRAMEWORKS
While ideally frameworks should be avoided, some default stuff might be useful so as not to
reinvent the wheel.
Namely saving/loading/data serialization, deserialization to some common object types, level loading,
basic tile rendering, basic depth rendering, basic whole screen effects (tint, flash, etc),
common things like tweening and cameras. Also a basic collision script.
Other stuff can be developed as you go along of course. More advanced stuff will naturally
follow from the tools developed. Advanced stuff might be particle effects, more advanced
lighting, path finding, state machines/fsms, behavior trees, dialogue systems/tree editors, etc.
ADVANCED EDITORS - Out there 'maybe' type stuff.
FSM, Behavior Tree, Dialogue System/Tree Editor, Path follow editor, Cutscene/Automation editor,
manual animation editor (think dope sheets). Particle effect editor.
Text/font layout editor (handles what example text will LOOK like in game, break points, wrapping, etc).
Collision shape/type/category editor. Song/music/effects editor (used for simple things
like arranging music, effects, environmental sounds, etc).
Todo list / Kanban list editor et al. Time tracker? (project management stuff)
Design Doc Manager
List to be expanded as I go along.
WHERE TO NOW
It will not be swift, but I'm at the point in my web development skills where I can reasonably say a lot of this
is possible or doable for me. So probably the first things on the list are going to be an asset manager and
a scene editor, and I'll release those as I develop them. I won't be taking feature requests per se, because
software development is notoriously unpredictable and I'm a commitment phobe

But I'll be keeping things people suggest in mind.
My bigger motive is just to demonstrate what I can do for future employers, and I'm not overly concerned
that being hired by someone will effect the time I have for development because I program for fun even
when I'm not programming for a living. (call me a shut in if you like, to each their own!)
Thats my plan anyway.
I'm open to suggestions, and input, though I know these forums can sometimes be slow and anemic sometimes.
OTHER EDITORS
As I was posting this I just noticed a couple other editors have already been released.
To the developers of those, rock on!
For others wondering, this is more of a personnel project, and I wanted to do it in something
accessible (nw.js, plain html5/css/js) so it would be 1. portable, 2. easy to modify for others, 3. easy to maintain and add to.
I don't really think C# fits that bill but then again I'm not a c# developer!

If you're one of the developers of those tools, I encourage you to continue doing what you do.