EZGameBuilder Devlog: May 2025


TLDR: Lots of physics engine research, a few improvements to the editor, an asset manager, ezgb will eventually work on a ton of old consoles, and there'll be a very crappy pre-alpha next month.


To start things off, I'll clarify some things I mentioned last month so there's no confusion about what EZGB is. 

1.  EZGB will be able to do basically everything efpse can do, and more. That includes 2d billboard sprites, 3d models, scripts, FSM, custom modifiers, triggers, etc.. Literally everything but shaders.

2.  The tile-based map system is optional. The engine will also have an optional 3d terrain system (fully 3d with caves/overhangs). You can have both systems active in the same world, so if you want to use terrain for the outside landscape and tiles for the buildings, that will work. Or you can have a completely blank map and use 3d models for everything. The choice is yours.

3.  The tile editor will eventually have a top-down overhead mode, so you can still edit maps similarly to efpse if that's how you prefer to work. You'll also be able to switch between side-views for easier wall placement.

4.  The 'genre template system' isn't just a few included template projects with some placeholder prefabs you can duplicate or swap out. Each genre template will contain unique editors and tools catered specifically for that genre of game. So a 'retro fps' genre would have very familiar efpse-like editors. A 'racing' genre template would include tools for building race tracks, car editors, etc..  

5.  When I mentioned 6th-gen consoles, I was very serious.
This is *not* for making games with 'AAA' graphics, and it's not a competitor to godot/unity/unreal. This is an easy to use homebrew game engine, designed specifically for old hardware.
If you're looking to make games for modern consoles, you should use a different engine instead.
I won't be using any official console SDK's, and will only be porting EZGB to consoles which have legal, FOSS homebrew SDK's.  
If you don't care about legacy platforms, I recommend using godot, unity, or unreal instead.
This project is my small rebellion against the poor state of modern gaming and the wasteful mentalities that tech companies foster.

Planned platforms, in no particular order:
- Windows (XP+)
- Linux / steamdeck (+ steam api support)
- macOS (probably no arm builds, I only have an x86 hackintosh)
- iOS (~Apple A5 or newer)
- Android (flagships from ~2013 or newer)
- PS2 (will be one of the last platforms)
- PS3 (will also be one of the last)
- PSP (will be one of the first supported platforms)
- PSVita (will also be one of the first platforms)
- Gamecube (need to investigate libogc legality)
- Wii (same as gamecube)
- WiiU (low priority, so probably later)
- Switch (probably early) 
- 3ds (depends how different citro3d is from gles)
- Xbox  (probably one of the last, as the opengl port isn't very complete and I'll probably need to learn pbkit)
- Possibly Xbox 360 (need to investigate the legality of the shader compiler required for libxenon)
- Probably Dreamcast (I don't have one yet)
- Possibly Windows Phone (very low priority)
- Possibly FreeBSD (if it compiles with no changes from the linux version)
- Possibly SerenityOS (ditto)

This isn't something I'm taking lightly, and I'm fully aware of the amount of work which will be required to support these platforms.  
Some ports will be relatively easy, but most will require a lot of time to optimise to their greatest potential.
The PS2 is an absolute monster and will probably take the most time out of all the console ports, but I'm also very keen to tackle its weird hardware setup, so maybe it will come sooner than some of the others consoles.
For version 1.0 though, I'm only planning on supporting windows, linux, and one of the 'easy' platforms that require a different rendering backend, like the PSP.  
This will help make sure I'm sticking to resource limits and keeping things portable, while also avoiding the burdern of maintaining too many platforms before the engine is in a more complete state.  

I've also planned the first pre-alpha build to be released next month.  
To be clear, you won't be able to build functional games in the pre-alpha build, it's purely a tech demo for people who are curious.  
But it will help give you a better idea of the current state of the editor, and will help to demonstrate changes between each progress update.
You'll be able to create, edit, and save maps, but there likely won't be any gameplay or entity editors yet.  
Depending on how much time I get, there may also be a basic map viewer for windows, linux and the psp.


Anyway, that's enough talking about the future. Lets talk about what's been done since the last post:

- You can now place modified tiles in build mode.
- Custom tiles can be rotated with the 'r' key.  
- There's efpse-style ambient lighting to make walls/corners more obvious.
- There's now a per-project asset manager, which assigns globally-unique ID's to each texture, tile, decoration, etc..
This makes it easier for the editor to handle missing assets, move assets between projects, and makes switching between maps cleaner.
- The map/chunk system has been tweaked to make it easier to support streaming levels to/from disk.
- Some refactoring. The project originally started in C, but I shifted to C++ because it reduces the mental overhead that comes with memory management, and function/operator overloading makes the code neater.
There's still some C-style code that could be cleaned up, but it's not a high priority right now.
- And lastly, a bunch of bug fixes! Not very exciting when you didn't know which bugs existed in the first place.


While I didn't spend a lot of time working directly on the editor, I did spend a fair bit of time time searching for a  lightweight physics engine which will run well on all the planned platforms.
After researching, benchmarking, and comparing various physics engines, I've decided that Bounce will be the physics engine EZGB will use. It's completely free and open source, is currently being used in a game engine that runs on the PSP and Dreamcast, has some great demos, and it can easily simulate 100+ colliders with just a few kilobytes of memory. I haven't done any determinism tests to ensure cross-platform multiplayer will stay in sync, but it's something which can be fixed later down the line if needed.


More details on the other physics engines I looked at, if that interests you:  Tokamak was a potential candidate finalist, due to its very consistent performance and ability to run with limited resources. However, the documentation for it isn't great, it's not very accurate, and it has a tendency to allow fast-moving objects to pass through colliders.

TinyPhysicsEngine was very interesting, and I'll likely play around with it in my own personal projects in the future, but it would realistically be too limited for the type of games I want EZGB to support.

I also tested Jolt, ODE, Bullet, Newton, TrueAxis, and PhysX, which I discovered has a very nice cpu-only physics engine that doesn't require any nvidia hardware. 


They all have different tradeoffs between documentation, performance, simulation-stability, and accuracy.
Jolt would be my pick for modern platforms, as it has great documentation, performance, etc.. 
ODE is fairly decent and has been ported to the PSP before.
Bullet is a decent all-rounder, and has been used in many ps2/xbox games in the past.
Newton is tailored more for accuracy rather than performance.
TrueAxis was also very promising because it had a great balance between performance and accuracy/stability, but it's only free for non-commercial use. 
PhysX is very fast, accurate, and has good docs.
In the end, these six are all a bit more resource-intensive than I would like. They also have large codebases that could have been difficult to port for each platform.
Some rely heavily on SIMD and multi-threading for their performance 'wins' vs the other engines, which won't guarantee that they'll perform better on single-threaded hardware with no/unique SIMD instruction sets.

I could spend more time benchmarking the single-threaded scalar performance of each engine, but I've already spent quite a lot of time on this, and would prefer to just get 'a' physics engine in EZGB now. Bounce is small enough that it will be easy to port. It's got great documentation/samples, it has all the features EZGB will need, and it has very low resource requirements.


EZGB will support rigidbody physics with joints and constraints, so you'll be able to pick up and throw 3d objects, have enemies turn into ragdolls, drive vehicles over bumpy terrain, etc..


And..... I think that's everything worth mentioning right now.
Next month's update will be posted here on the EZGB itch page, not on the efpse ce page.

Comments

Log in with itch.io to leave a comment.

Viewing most recent comments 1 to 20 of 31 · Next page · Last page

it's cool to read this, and what you wanna do with it!
i think having something like a discord could help with comunication and discussing the editor with others, but i get if that's not the route you wanna go

i wish i knew how to code, i'd love to be able to participate with the building of this software. I just dig the concept

what types of game templates will there be?

(1 edit) (+1)

Is there any plans to eventually make this open source? This engine is a dream come true, keep up the great work!

Yep, it will be 100% free and open source.  
I'll probably license the engine runtime with the BSD 3-clause, because it will allow anyone to legally port it to proprietary console sdk's.  
But I'm considering using the GPL or a non-commercial license for the editor, to prevent people from trying to sell lazy forks.

Nice! Can’t wait for this!

(+1)

I've never been so happy to find projects like EASYFPS and now this. Programming is something I've been bashing my head against for a while but it doesn't come super easy to me. I've always wanted to make FPS projects and Platformers, all types of things. This is such a gift to everyone who loves games and wants to get into design. Godspeed you crazy bastard, I wish you only the best. I'll be clocking in some time with EASYFPS in the meantime. o7

(+2)

I wish the best for this project!   ^w^

(+2)

Looking forward to try this!! :)

(1 edit)

Hi, I know that at the moment (rightly) you no longer intend to support EFPSECE, and I can't wait to test EZGB, but I ask you a favor (a very last modification to EFPSECE) that in my opinion would help many of us: the ability, through scripts, to read and write text files. This would allow us to read and save variables and/or text externally, and thus be able to process them with external software (an example of what could be done is to partially integrate LLMs into the game, or even connect multiple games together sharing the same environmental variables...)

You would do us a huge favor by making this very small modification to EFPSECE, while we impatiently await EZGB.

Any word on when the first pre-alpha will drop?

(+1)

Yes, I mentioned the first pre-alpha release date right here in this post.  
There's a one-sentence TLDR right at the top for anyone who doesn't want to read the whole thing.

(+1)

I have a question, will the editor have support for Linux? I recently moved onto Linux Mint 22.1 and i've been loving it, but the lack of other apps bothers me, so i was wondering if you have the chance to support it. (EFPSE dosen't have Linux support either in the engine or in the editor)

(+2)

Yes. Both the editor and engine will support windows and linux from the very first pre-alpha build.  
Linux is kind of the 'main' platform because that's what I'm using for development, but of course windows support will also be heavily prioritised, because that's what 90% of people will probably be using.

(1 edit) (+1)

This sounds amazing and am looking forward to making games with it is this gonna be compatible with easy fps editor projects

(+1)

Yes it will. I mentioned this in the announcement post last month. There's a few other details there if you missed it.

(+1)

Want download !!!!

(1 edit) (+1)

This is amazing, I may have missed something, and this is probably what you mean by you can make any type of game/ covered under genres, but will this support both 1st and 3rd person games, and in the same project, like fallout 3/morrowind style? If yes, this is what I'm building my next game in for sure.

Yes. The scripting system will essentially allow you to do anything, so there won't be anything preventing you from making your own third-person camera.  

Version 1.0 will probably have a very basic third-person camera script included, but it will be more like a demo to show how something like that could be built with scripts.  
I do plan on eventually making a more complete version though, with things like target locking and more cinematic movement/controls, but it won't be until after ezgb 1.0 is released.

(+1)

Isn't it a new era?

(+1)

You planned lua-like modding , for make inside a engine a engine like for wyswyg mod gui inside a game ?

I haven't planned on adding mod support, and built games won't have any included editor tools.  

You could make your own in-game level editor, but any levels built from within your game probably won't perform as well as levels which were made with the ezgb editor.  

This is because the editor makes a lot of performance optimisations when you export a game, and the only way I can support so many different consoles is if I keep the 'runtime' (the game.exe that your players run) as small and lightweight as possible. If the game.exe also included all of the editor tools, it would be much harder to port to each console.

can be external tool for all games ? Type a rise of tha nation , or age of empire , compatible tools for edit the extension of 

all game , the engine , without include inside of editor engine. 

https://www.pygame.org/project/3657

this game as simple editor ! ;)

Thank you for enhance the creativity , i see on chat that this boys , have eat of creativity ! :)

(+1)

I'm really excited for this and I love your attitude.  More power to the folks that drool over Doom: The Dark Ages, but I still have Doom: The Original (yeah, I know that's not the name) installed on my machine.  And often, that's high end for me :)

(+1)

Looking good

(+1)

You are doing God's work, can't wait!

(+2)

Is this God's work

(+2)

You are doing god's work. I AM VERY EXCITED 

(+2)

Incredible, really interesting!
Remember to rest or even delay the launch if necessary for your wellbeing.

Take care :)

Viewing most recent comments 1 to 20 of 31 · Next page · Last page