Using the Terasology design as a core-framework?

kaychamo

New Member
Hello,

I try to express my creativity by developping my own game which will be a long-term projet.
I'm really interested in the design pattern used in terasology (entity component system)

I couldn't find a way to recover the initial framework used in your project as it is explained there : https://github.com/MovingBlocks/Terasology/wiki/Entity-System-Architecture
I really like this wiki! thanks!

As I'm a starter in dev (working daily on the ops-side as system engineer), I'm a little afraid to start from the source-code of your project as today.
So my question is do you offer any core-framework to share with game developpers who want to start from scratch?

Thanks in advance,
kaychamo
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Hi @kaychamo :)

It is actually on our list to extract out the entity system into a standalone framework, just like has been done for our asset and module system. But exactly when is still uncertain.

What do you have in mind for your game? You may actually consider starting inside Terasology first (you could make your own gameplay template to design as you see fit), to learn the architecture of the entity system. By the time you're really good at it maybe it'll be extracted out and ready for standalone usage :)

There are other entity systems like Artemis that are already available independently too.

IMHO starting from scratch is scarier, or even with base frameworks like an entity system. One alternative is going with something full engine-level like LibGDX or jMonkeyEngine. Or even Unity or others like it.
 

kaychamo

New Member
Hi @Cervator :)

Thanks for your answer, it's sweet for me to see that you like to welcome newcomers

My game would be a long term project where I will put my free time to express my creavity
I wanna feel very confortable with how my brain and its systems (yay!) like to understand things. As my OOP understandings is close to zero (really it didn't work!) and I got no experience, It's hard to start for me until a find an idea to design everything... and here ECS is really a love to me.
Main components (yay!) will be : text-based/poor pixel, idle game, village (manage, develop), hero management, choice/chance to success, skills & passive skills to show in a "passive fights rendering".

I spotted Ash (Ashley) and Artemis (Artemis-odb) but those don't use events: so yet I coulnd't figure how I would implement "there is a DamageEvent that holds an amount of damage being caused". I will get an idea once i complete following this series :
I like the way implement it in Terasology as events!

My main concern as today is to be sure that my creativity will be safe to be expressed in the way that the technical side won't bore/limit me, and that I will do exactly how my brain will imagine how it works (trying to catch the good practice with ECS though). Just for now I let the performance idea aside! Also I don't really design my game, I just want to add bricks about one by one for now

kaychamo
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
So I take it you're aiming for a 2D game then, like one of the pixel art fantasy RPGs where you walk around on the ground and interact with things?

That brings to mind our adoption of Destination Sol, which is a 2D arcade-like space shooter. One big goal there was to apply our libraries/frameworks developed for Terasology to a different game. Especially the entity system when it is extracted (I can almost feel @Rulasmur's eagerness to get started just from typing this!)

You're doing the right thing going through tutorials and videos like that and I hope you spot something that seems just right. LibGDX is definitely a prime candidate, maybe see if jMonkeyEngine has an entity/event system as well, and find out if it is a better fit if so.

Other than all these suggestions the main thing I can offer at the moment is encouragement for getting your feet wet with Terasology as-is to start learning about the design and architecture of component-entity systems. Even if you don't use Terasology or even our entity system in the end you'll learn stuff and get ideas you can apply later :)
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
It is a goal for me to create a gestalt-entity-system library built atop gestalt-module and gestalt-asset-core. It has been slow going, I'm trying to get back into the swing of things after a bit of a break.
 
Top