In the last few months great progress has been made for sabge, so, after almost a year of absence here in the forum, I think it is time to start posting some tests made with this engine.
I worked many years with bge and it is thanks to this game engine that more than 15 years ago I started the development of video games.
In recent years, experimenting with the bge I have often found myself in difficulty because of some problems that often afflicted the different versions of bge/upbge, sometimes i’ve tried to apply fixes but bge is certainly not a game engine on which it is easy and over all fast make changes, so I came up with the idea of completely rewriting the bge in python in order to be able to quickly make the changes I intended to make without needing to often recompile the code.
The idea of writing a game engine from scratch initially scared me a bit but I wanted to try, telling myself that if nothing particularly performing or usable had come out, it would still have been a constructive experience.
Well, after almost a year of study and experimentation, i’m really happy this project finally begins to be something usable, and surprisingly performing.
Moving some graphic effects on the gpu and writing some specific module in c has allowed big gains in terms of performance. Writing in Python makes things easier and faster and when i got things working, sometimes i’ve rewritten some critical parts in c (usually functions that are supposed to be called often).
The architecture of sabge is very similar to bge, I tried to keep the API unchanged but adding and varying some features as I wanted i ended up that part of the API has remained unchanged (especially as regards the KX_GameObject class) and there are some new functions or some new functions that replace some others known for bge.
Currently the engine is not yet ready to be released, some plugins for blender which allows the export-import (blender->sabge) of meshes, armatures, animations etc are in development as like an in-game scene editor. Unfortunately i can work on sabge only in my free time so i wish i will be able to continue to proceed fast, meanwhile I leave you with some videos and this is the patreon channel for those who want to support the project: https://www.patreon.com/lopas/
For some additional infos: https://lopassabge.wordpress.com/
This is a node-based logic editor that works directly in the game, it is an additional feature also in development. Will be also possible to create (in python or python + c) customized logical bricks to import in sabge
Really cool! Keep up the good work, and most importantly have fun!
just because this is a hobby for me and not a job, fun is the engine of everything
So very true! I wish you the best!
Looking Promising!
Fred/K.S
i like it!
what does the SA stand for?
Fred/K.S
i really like your motivation and dedication to improving SABGE
on a scale of Game Engine’s how would you rate SaBGE?
Worse than BGE?
Same level as UPBGE?
Better than UPBGE > Armory?
GODOT Level > Unity ?
idk whats the best to come out of Sa BGE?
Give us a reason to believe that this engine is capable of doing?
(im just a developer who wants to make great games that suit my creative vision in these Game engines , and how’s the licensing?)
are we using Blender versions such as 2.80 or is this a standalone engine?
Fred/K.S
Thanks you I’m glad about your questions
- “sa” stands for stand alone (it is a stand alone engine) I developed some plugins for blender in order to export meshes, skeletons and animations. These plugins are working well under blender 2.79b only atm.
- Sabge is not yet ready for release, so at the moment I cannot say that sabge is superior to some engine already out. What I particularly want is that the sabge will be more flexible in some respects than bge / upbge and I can say that it is already in some respects. One of these is the animation system: in sabge the animation system allows blending between 2 or more animations using dynamic blending factors and it is possible to apply the resulting animation even only to specific groups of bones. (you know that bge/upbge don’t support dynamic blending factors and per bone animation assignment)
Another aspect I cared about is the high level of customization about the game rendering pipeline. We currently have a PBR material shader, and several highly customizable postProcessing effects loadable into the post process manager (an improved version of the bge’s filter manager):
- SSAO (Alchemy Ambient Occlusion)
- SSR (needs some improvement with regard to blurred reflections ->roughness )
- Bloom
- Exponential Height Fog + day/night cycle
- FXAA
- Lens flares fxs
- God rays
- …etc
But keep in mind that, if by chance you want to use your own filters/matShaders you can do it!
Also there is the GPU-based particles system that allows you to manage large quantities of particles and the ribbons system, for sword trail for example, is ready to use.
- There are also more options regarding physics (see pybullet)
- As for the license, I still cannot give you an exact answer, if I release Sabge it will not be paid. Being highly configurable at the plug-in / component level, I will release for free a fully functional bare bone version + blender plugins that you can use to create your games (and I don’t care about the money you will make with those), but I thought that some extra plug-ins (non-essential) that I am developing will only be available to those who support the project …in any case, I will think better about these details later, at the moment the main goal is to complete the project and then test it by developing a nice tech demo or a small game
Woow thats wonderful man id be greatly interested to making games on SaBGE this is Great man im so happy about its development but keep us up to date on the latest achievements and experiments that are successful…
I think a Little Documentation may lead our way unlike having people blindfolded making games that will never see the light of day as long as many old ways and methods of using BGE still remains i think making games will be easy going forward using SaBGE.
But overally im happy to see this engine existing!
Thank you so so much @lopas iam so greatful for your hard work and it will finally pay off after release.
Fred/K.S
sure! if everything goes smoothly certainly on the website I will post the API and some simple useful examples to get started and probably some video tutorials I will upload on the official YouTube channel: https://www.youtube.com/channel/UC_3SnSUwa167fIxJwYTFaJw
I have already prepared some things, there is also a facebook group at: https://www.facebook.com/groups/679211969167783/ as soon as sabge will be ready I will enrich the channels with content
Why would you build another game engine instead of helping optimize the one that there is - Upbge. We will eventually need a open source game engine in witch we would have all the features/tutorials/optimizations of an 2020 one ! Working on different projects like games, it’s understandable, cause every artist wants to have it’s own vision about things, but game engines are engineering art, not visual art, they are tools, why would we all build tools that do the same thing instead of building one tool that does it all ? I’v always been pro competition, but i think it’s to early for Upbge to have a competitor, just because the game engine is not finished! Starting another game engine that would take another 2-3-5 years to finish, would get us all old before we can use a complete game engine with Blender ! Point is let’s try to have one complete game engine, and then competition for it. I really admire you, and i think your mind goes so far, but i really think we shall have a game engine inside Blender as fast as we can, instead of having multiple ones that would take a lot of time to build ! Feeling me ?
it is Highly Unfortunate that i do not use facebook when promoting anything BGE or Projects Related! (Mainly because i cant take people’s *BS on social media lol)
my only social platform is BA and You Tube, finished!
Fred/K.S
Great point there @anon14599097 , what killz me is that we’ve got talented guys like @lopas who can make Games that are on the LEVEL of next Red Dead Redemption 2 on BGE/ UPBGE im talking from a technical standpoint, with what we currently have UPBGE 0.1.7 - 0.2.4 & over to UPBGE 0.3.0+
with his skills we can break new ground and finally reach Unity or Unreal Engine level as far as Quality & Technicalities are concerned however i may be wrong in this statement.
What truly kills me inside, is that the majority of dudes on the forums want to make their own Game Engine or atleast make somewhat a BGE/ UPBGE Variant and its alot of work and takes time, yes i understand certain Dev’s or Coders can’t co-op with certain individuals especially regarding code because people end up feeling attached to their hard work and no one want’s to be thrown trash at regarding the work they’ve put in; so i get why he’s working on SaBGE but also he feels like there are certain limitation factors that might hit him if he wants to implement certain stuff if he were to work in UPBGE/ BGE and yeah that’s understandable.
But it hurts to see so many talented and experienced guys making tools rather than making Great games.
(I WENT OUT OF MY WAY TO CELEBRATE THE GOOD OLD GREAT GAMES OF THE PAST DECADE THAT WERE MADE ON BGE/UPBGE & no body gave a damn ABT THE THREAD, IM TALKIN ABT the coders or devs behind the ENGINE)
im only trying my best TODAY! (Trying Hard to make a Good/Fun & Great Game for all times sake!)
So consider me a noob today, even though ive been using BGE for over 10 years now im not ashamed, if my skills are baby like before any artist i really don’t care at all, i just want to make a game and guys like haidme and @Thomas_Murphy and @blenderaptor just to name a few are making games that will actually work and they’re utilizing everything we have currently regarding BGE/ UPBGE.
(Ive even realized my experience with the engine is as good as nothing next to a coder like @Daedalus_MDW and @lopas @BluePrintRandom really guys im just here to make games not to boast my skills.)
and dont get me wrong @lopas i really wish guys like you made full complete games it hurts to not see that in such a growing community…
Fred/K.S
the proper answer to the age-old question,
“why develop your own engine?”
because i can
but more importantly: if one can develop tools better suited to their usecase, its in ones best interest to do so. that is the way.
bge is a good engine. but if you go for too many objects, too many lights or logic too complex, its limitations start to become clear. if youall want to see more fixes to these so bad then you can code them yourselves. dont try to argue why someone else should be doing what you wont.
also go lopas go.
Great answer there man, i believe your statement concludes this discussion regarding the making of tools.
well i cant argue i was just coming from a point of view and i believe that it was necessary to express such a view, it may either end up as a wasted opportunity should things go sour or it could become something fruitful and many shall benefit in future from it.
Fred/K.S
I had the same feeling when bge was taken out of blender, and that is to build it myself to finish my project. Guess this dude really started this ambition, implementing the features he wanted and stuff. My purpose with the game engine was to create a miniature realistic city with interiors. And guess it’s gonna happen sooner or later. Hes luck is that someone is already working on his wavelength project and that’s Upbge, he can unite and really be easy. I can’t see nobody working on some similar project as mine . Maybe they all hate city’s ! Who know what would have happen if i needed that much animation in my project. Maybe i shall run for mayor
I briefly summarize some reasons that led me to write my own game engine:
- bge/upbge are written i c++ and I am allergic to compilation times, especially when I experience things that I often need to see the results of what I write ,this is a very important point for me, because if I don’t enjoy doing something, then I stop doing it. Extending / modifying sabge is much easier and really a lot lot faster so extremely more fun …this is more than enough reason for me!
- From an engineering point of view, a game engine is a software that can be quite complex and bge / upbge is , therefore making a change on a software such that you do not know so well in detail, can lead to interference in some other respects. Considering the amount of changes I wanted to make, studying every aspect of bge / upbge in detail (at the source code level) would have been more demanding for me than writing from scratch sabge. Sabge is almost ready, what I want to add to it before launch are some extra utilities ( utilities non-existent on upbge / bge), and some improvements on plugins and extra components but currently sabge would already be usable for developing games ^^
- the last point is a purely personal motivation. I wanted to try to make it! At the level of study, to fill in some aspects that were not yet clear to me. It was a challenge and at the same time an experience useful to fix in an indelible way my knowledge in this field. Sabge for me represents my big notebook about this subject.
However, I would also like to make a clarification, by talking about choices in terms of game engines , which can be useful to those who do not yet have very clear ideas on the subject. The scripts that move the objects of our games in bge / upbge / sabge are written in python, whose speed, as is known, compared to other languages is much lower, therefore for these game engines it becomes difficult to manage many many objects with logic active at the same time and this should not be new to anyone. Obviously things can be improved by using libraries written in c / c ++ or by writing in c / c ++ some portions of our scripts but this does not completely solve the problem. So making a comparison in terms of performance (for the management of logic above all), with engines like UE or Unity (where we will not write in python), it makes little sense! Having said this, I think that no one here will ever be able to make games capable of managing the amount of logic implemented today in AAA games just because here we are all people who work alone or possibly collaborate in small teams and that even if we use UE / Unity we would spend decades into creating games really comparable to today’s AAA. Considering also that in a game there are really a lot of things besides programming, i think the challenge of creating a game really comparable to RED DEAD REDEMPTION 2 (just for example) for a single, regardless of the game engine, is more insane than creating a game engine!
In conclusion, as a great team that aims to make AAAs, the choice is only between the UE and Unity, otherwise as singles or little teams we can also look at something else. When you have to find a solution to something (I’m talking about problem solving in game developing), doing it with python is much faster than doing it with other languages, so this is a good reason in order to consider bge, upbge or sabge against UE/Unity …just because as a single individual you will never build an AAA game!!
Changing subject… I have just improved the rougheness based blurry reflections in the sabge’s SSR postProcess FX