Créme Engine: Modern Platformer Engine (On Hold)

Those edits make my head hurt :face_with_spiral_eyes:

image

When using the egomoose port, trying to transfer it to a game, I receive this error? @Pelo_208

Hi, is StreamingEnabled disabled? If not you’ll want to either disable it or place the files somewhere they won’t get deleted (updating the script references). If that’s not the issue feel free to dm me a repro file and I’ll look into it when I have time.

Figured it out, apparently if you have any other models named “Terrain” it confuses the script lol, thanks for the response though!

1 Like

Is there any way to get this working on r6?

Yeah, you’ll want to replace the animations for R6 versions, and edit the scripts throwing errors so they use the R6 limbs and Motor6Ds.

Thanks! I was just wondering since I didn’t want to start working on a project just to realize I can’t do anything with this engine.

Hey there folks, it’s been a bit since I released the resource so I figured I might as well give you a little update on what’s planned to be added to the project.

Just wanna clarify that the main reason it’s taking so long is bc i’m redoing all from scratch besides the assets, and i’m working on it on the side, so no clue when it’s coming out if it ever is.


Campaign

This time around the plan is to offer a short campaign to serve as a base for you to learn how to make your own cutscenes, quests, etc. Plan being to offer 3 worlds and the already available world being reworked to serve as the game’s hub (gotta clarify the worlds themselves won’t be part of the resource but the hub will and so will most assets and code).

Right now i’m working on the 1st world, which will be released idk, at some point in time? as it’s own separate demo, and when I have time i’ll update the main game to work along it and I’ll release the rest of the worlds when, again, I have time. Here’s some footage of one of the 5-6 sections it will feature (keep in mind collectibles haven’t been ported yet so it looks empty on that regard):


(Anim pack used in the vids is from godofsun95 btw, not sure if it’ll stay on the final release as ik some people prefer keeping their anims but ty to them for the cool animation pack nonetheless).


Gameplay Changes

Removal of the Moveset:

Truth is, i’m not good at balancing movesets, and it really showed with the moveset SNM released with (I tried to go for something different, more momentum based, and it didn’t work). This time around i’m going the good old adventure game style, no moveset, just power ups and mechanics, here’s 2 of the powerups:

Bombs (blame gyazo for the bad quality most of these gifs have, I ain’t buying pro):

eyJhbGciOiJIUzI1NiJ9.eyJpbWciOiJfZWNjYWJhODM0MDkwZDM4ZDYzNmY3OWMyZTRlNjExYWYifQ.nSXEtLJ5z4930oeSBF52JOlrWq_cYLKjY3aD9TQbVsE-gif

Rockets:

ezgif-4-2f04763579

So there won’t be a moveset :frowning: ?:

The base game won’t feature a moveset, but the plan is to offer a new moveset separately, this one being a hybrid of the EH2018’s moveset and Egomoose’s i’m making for another game of mine, here’s some footage of it:

eyJhbGciOiJIUzI1NiJ9.eyJpbWciOiJfMzE4ODljZjY4MWUzZTJkYTQ3Mjg4MjBmZDRlOWJmZDcifQ.mZVPWhpSm3IjBZjcug2OiBSj4BIuFWlwullqwvOUtSc-gif

This moveset will offer:

  • Double jumping
  • Rolling
  • Crouching
  • Diving
  • Long Jumping
  • Ledge grabbing and movement
  • Wall sliding

With some of these moves being chainable, such as the dive land leading to a roll and such. I’m also considering adding combat to it, but no guarantees on that regard.

This should suffice the need for a moveset in most cases, with the base resource allowing to pick between any of the available movesets out there, you don’t need to stick with mine.

New content

The plan is to offer a bunch of the content that couldn’t ship with the game originally, as well as reworking some of the existing one to feel more smooth, some of these include:

  • New swimming system, with drowning only happening when you go outside the map’s bounds.
  • Ragdolls, because everything looks better with ragdolls (system made by me, as other systems just didn’t work).
    eyJhbGciOiJIUzI1NiJ9.eyJpbWciOiJfNTljMTNiNWRjNmU0MmNkNjg4ZjE4M2ZhYThmMDU3YmEifQ.ersWoxsruoew8cJ8UACzjoBhJd2utLwqSgag6Y2IMGI-gif
  • Loading screen so you can easly preload your assets.
  • NPC’s will very likely be reworked to be better optimized and support basic routines.
  • As previously stated, quests, cutscenes, enemies, etc. are planned.

Code and Organization Overhaul

Back when SNM was released I wasn’t very fluent on OOP, so while some of the utilities the game relied on used it, the game for the most part had 1 script per system and that was it, 0 modularity, which meant lots of added complexity when editing the scripts and making them work with each other.

Reworking how the code is organized:

I don’t quite like how the code is organized at the moment, so on top of relying more on nested modules for additional ease of usage, for this version i’m considering using one of the following structures:

1) Make most code modular and self contained

So it can be dragged and dropped with little to no issues (with exceptions such as code relying on the movement script which would be common), at the compromise of having repeated code (synced using packages, if synced at all).

Said categorization would be as follows:

  • workspace > Code: Would still contain the game’s code.
  • Code > Client: Client side code.
  • Code > Server: Server side code.
  • Code > Shared: Self executing modules used both client and server side.

With “Goodies” and “Resources” not existing because they’d be hidden away inside the modules.

Pros:

  • Beginner Friendly: Most systems will at most have a single dependancy (usually the movement script), so it’ll be easier to separate them from each other as they won’t have several dependancies like they do at the moment, this is benefitial for begineers who struggle forking the code.
  • Packages should prevent having to edit all the dependancies separately, so the workflow should be pretty similar.

Cons:

  • Bad, terrible practice.
  • Code repetition, lots of it.
  • Due to the previous, more memory usage and worse performance.
  • Nested packages are annoying.

2) Make most code modular and categorized

You’ll still need to edit the code most of the time, but it’ll be easier to find than rn.

Said categorization would be as follows:

  • workspace > Code: Would still contain the game’s code.
  • Code > Client: Client side code.
  • Code > Server: Server side code.
  • Code > Shared: Self executing modules used both client and server side.
  • Code > Goodies: Custom Utilities the game would use.
  • Code > Resources: External resources, usually not made by me, that both code and goodies would rely on.

Pros:

  • Better practice than the previous.
  • Better performance.
  • Overall better code structure that will scale with bigger projects.
  • Easier to edit as no packages would be needed.

Cons:

  • Beginner Unfriendly: Much like the current version, you have to manually go into each script with several dependancies and decouple them from each other to use something individually.
  • A billion dependancies, it is what it is.

Initially I was going with option one as i’d like the resource to be easy to use, but I think i’ll end up going with the second as I want the resource to be as easy to scale for bigger projects as possible, i’m going to be using this myself after all, but i’m open to suggestions.

Other than the previous:

  • The game is now being made with Content Streaming in mind.
  • I’ll try to make all modules use Type Annotations for richer autocompletion.
  • Data will be handled in a better and more strict way using templates (datastore module has not failed me so far, so i’m sticking with it atm), and there will be an additional layer of simplicity to make the handling of it even easier.

And that’s about all the news about the game i’ve got atm, hoping to release the update this year but maybe I won’t have time to, we’ll see how it goes.

Any feedback or suggestions are much appreciated as always, if anyone needs help or wants to contribute to the project my DMs are open, as well as the post itself, socials are on the main post, and that’s about it, sorry for bumping the post wish there was a way to not do that.

4 Likes

Hi, nice! I checked out your last one, thanks again for sharing!

Is there a .rbxl or edit place?

Thanks

If you mean the update no, it’s nowhere near done yet, just wanted to share some progress (I might release a chunk of the code with the next demo but no promises). Once it’s out the old version will remain available as a separate .rbxl file, but until then you can just edit the place to access the currently available version.

1 Like

Holy crap! That’s amazing!
(To be honest, I should’ve tried to add powerups to my game earlier.)

This is so cool, hope to see the project be updated with this content! I’d love to incorporate custom powerups into my game!

1 Like

Introduction

Greetings, today i’d like to announce the previous version of SNM is now deprectated in favor of Créme Engine, a complete overhaul of SNM’s codebase!

Specifically, what i’ll be talking about today is CE’s pre-release, as I wanted to get it in your hands as soon as the core functionality was working. Once CE is more feature complete i’ll be updating the main post to reflect it.

So let’s talk about what’s new, what has changed since last release, and what i’m hoping to add in the future.

But first, here’s a quick bullet list of the current features:

● Clean, scalable, and strictly typed modular codebase.
● Modern EH2018 inspired moveset.
● Modular power-ups system.
● Reliable, easy-to-use collectibles system managed by a ProfileService database.
● Several built-in platformer mechanics, utilities and game components such as a Ragdoll system and a swimming system.
● Lots more to come.


Preview

I’m way behind on my school’s final project and have to go finish it rn, so i’ll just quote the imagery from the previous update atm, it’s basically the same thing (i’ll try to update it for the full release), but I recommend you check the place anyways as it has a handful of new features:

Where’s the source files

You can now find them on github (i’m still getting used to rojo so yeah, bear with me until I either get the hang of it or until roblox adds built-in vscode support):

And here’s the preview place if you wanna take a look before downloading the place file:


So, what’s happening to SNM?

Sip N’ Munch’s main purpose was to offer the entirety of it’s source code in order for you to be able to take parts of it as you needed them, while also providing plenty of assets and cases of usage for said code in order to help you kickstart your projects.

That said, what happened in reality was that most people looked at the code, didn’t understand it, and as an end result, as far as i’m aware very few projects ever benefitted from the previous resource.

Overall the feeling I get is that it’s way harder both for me and for the end user to benefit from a full game, as it’s both easier for the user to get lost, and it’s easier for me to write messy code, as when you write game logic you tend to focus on getting out of the door, not so much on it being pretty.

Due to the previous, the old SNM place has been closed in favor of a newer demo, which you can check out here:

With this demo we took a look at the game we had made, we didn’t like what we had, and so, we decided to take a different direction, which we hope you like. The game now plays a lot more like a classic adventure game, while also adding modern elements to it in order to keep the experience fresh.

If you play you might notice bugs on the demo that are not present in CE, as well as features on it that CE lacks. That’s due to the demo using what was going to be the initial SNM rewrite, which we ended up scrapping as soon as the demo was released for what we consider a much cleaner codebase, so we’re hoping to update the game to use CE for the next demo (if we ever get around releasing another one).


Why should I use this instead of the template

That’s entirely down to personal preference. CE is aimed at bigger and more complex projects, it expects you to understand OOP and Strict Typing if you plan to modify it heavily, and I reckon the script organization is certainly unconventional (although I believe much cleaner), but it also tries to be easy enough to use for simple projects, while aiming to be extremely flexible for big ones (i’m no industry professional but I tried my best).

The template’s codebase I feel is simpler, messier perhaps, but that’s kinda what templates are for, they try to allow the biggest amount of people possible to use them with it’s tradeoff being it’s lack of scalability and core features such as datastores.

But eh, that’s just my personal take on it, i’m clearly biased as the multi million dollar company kinda made my resource redundant while I worked on it, but I think it’s overall a net positive that it exists so people have choices.

So to resume it, If you prefer the template, use the template, it’s more begineer frielndly I believe. If you don’t, don’t. You can probably take things from it CE still lacks, but I wouldn’t do that as the resources are organized very differently, i’d just ask for the feature in the comments instead.


Documentation

I don’t have time right now to properly document the resource, i’ll try to come back to it later.

For now i’ll just tell you the script hierarchy, which is basically:

  • ReplicatedStorage > Code: Contains all of the game’s code.
  • Code > Client: Contains the game’s client side code.
  • Code > Server: Contains the game’s server side code.
  • Code > Shared: Contains the game’s utilities.
  • Shared > Goodies: Contains utilities mostly made by me.
  • Shared > Resources: Contains external utilities.
  • ReplicatedStorage > Assets: Contains the game’s assets.
  • ReplicatedStorage > Volume: Contains the game’s music groups
  • Workspace > Gameplay/Misc contains persistent game components such as mechanics.

Most utilities are either documented or provide examples of usage, if you don’t understand something, you can just ask down below.


What’s next?

Right now CE offers a limited amount of features compared to the previous release, the main focus right now is achieving feature parity with both the new and the old demo, once that’s done I’ll update the main post and new features will begin to be made.

Here’s a little wishlist for some of those:

  • Missing Moveset Effects: Effects for the moveset had to be cut as I rushed the release, once I clean them up they’ll be added back in.
  • Feature Parity: As stated previously, i’d like to reach feature parity with previous releases before anything else.
  • Additional Content: I’d like to provide more powerups, utilities and platformer mechanics out of the box.
  • NPC Companion: SNM is planned to have a companion that follows you across worlds, manages your inventory, and helps with puzzles. That’d be added to CE if I manage to implement it.
  • Better Dialogue System & Cutscenes: I’d like to rework the old dialogues system entirely to be both cleaner and to support a wider range of use cases, such are cutscenes (which the previous system kind of worked with, but in a very hacky way).
  • Quests: With the addition of a proper template based database, it should now be extremely easy to make quests with CE. With that in mind, i’d like to provide the systems required to make them out of the box at some point (such as the dialogue system, notifications module, visual checklist for when quests are completed, etc.
  • Citizens: My vision for the full game is to have NPCs that feel as real as I can realistically afford to make them. As such, I’d like to make a routine system that allows NPCs to have basic routines they perform on their day to day basis, conversations they have with friends, occupations they take in the game’s town, etc. (nothing crazy like a complicated AI, but rather a detailed checklist of scripted situations you’d give them stating their routines and tasks in the world, which would allow for things like quests at specific times of day, or it’d open/close the in-game shops at the right times). Of course me of all people making such system certainly isn’t very realistc, but i’d certainly love to give it a try if I finish everything else.

But again, this is just a wishlist, if no one finds the resource of use or if i’m just not able to achieve these, they just won’t happen, theres no guarantees these will become a thing.


License

CE is licensed under the “MIT NON-AI” license for reasons I don’t think I need to explain. This means you’re free to use, modify, and redistribute this project as you wish, but you are NOT allowed to use it to train AI.

Due to the previous nothing I make moving forward will be available uncopylocked, it’ll be only available in place files and perhaps on github once I have the hang of it.

As always, credit is appreciated and it helps tremendously, but remains completly optional.

Also, external resources are attached to their own licenses (most under MIT but not all of them), so you’ll need to comply with those individually.


Attribution

Crème Engine relies on the following libraries:

  • ProfileService by loleris
  • RbxUtil by Sleitnick
  • CameraShaker by Sleitnick
  • Realism by MaximumADHD
  • TopbarPlus by ForeverHD

As well as the following assets:

  • Moveset Animations by EgoMoose
  • R15 Animation Pack by godofsun95
  • R6 Animation Pack by Stalkalek

Massive thanks to the creators of these, especially RbxUtil, CE wouldn’t be anywhere as compact as it is without it.

If I forgot to credit a resource please let me know.


Known Bugs

I’ll list any bugs that get found post release here until I setup a github repo for the project, these will be fixed in patches in order of priority as I get time to do so (right now the focus is on feature parity with previous demos, so low priority bugs will be left for later).

High Priority:

These are core features that represent an important issue if they break.

  • None so far thankfully.

Low Priority:

These are usually features that are rarely used or are planned to be reworked later on.

  • Water drown mechanic is buggy.
    • The animation is outdated, there’s plans to replace it.
    • The character can’t jump on respawn if glided into the water prior to dying.
    • The math that positions the character is old so it’ll position it wrong sometimes (no much point in addressing it until the animation gets updated).
  • Moveset’s LedgeGrab/WallSlide are buggy (nowhere as bad as the swimming, but i’d like to give them some polish later down the line).

Closing

Thanks a bunch for the support the original resource got, it might not have been the craziest when compared to similar resources, but considering I have 0 presence in this platform i’m happy so many people found the resource of use.

If the resource helped you and wanna donate something there’s a small button on the new demo’s topbar, anything is appreciated and helps me continue making these things.

As always i’m open to feedback if you think the resource could be improved in any regard or want to contribute to it, and yeah, I hope you find CE of use and hope I get the chance to keep updating it in the future, have a nice day.

5 Likes

Currently cant open the place file.

Directs me to studio and does not open a place.

.rbxl works…

why does the deep water / stun / kill you?

Did you try again after studio opened? Studio ignores what place file you originally opened when it needs to update (you can also try opening it from studio itself using the open file option from the dropdown menu on the upper corner)

Water and deep water are the same thing, just different attributes, we use the one from the deep water example to prevent players from going out of the map, and the other one determines if you can swim underwater or if you are clamped to the top of it

2 Likes

v0.3.5

Créme Engine v0.3.5.rbxl (736.5 KB)


Music Zones have been readded!

  • Better logic, using an internal playlist class to handle sound state.
  • Skip/Rewind feature, so you can skip a song if you don’t like it (remove the icons if you don’t want this).
  • Playlist shuffle each time you enter a new zone (you can change this removing the 3rd parameter on the playlist constructor).

Preview:

How to Use

  • Add a folder inside Gameplay > Music Zones, it’s name is the zone’s name.
  • Add any tracks you want it to play.
  • Add the parts that will trigger the music zone, done.
    Music Zones

I’ll do the documentation later, but for now here’s 2 screenshots of the classes, TDLR: the handler initializes the MusicZones module, which returns states and such.

Said module uses the internal playlist class, which handles the actual playback.

Pending

  • Area UI for music zones.
  • Stop all playlists when not in a zone (would be under a setting which by default would be off).
  • Actual music UI (this will be way later on, if ever, TB+ will be used for now).

Release Notes

  • Features:
    • Music Zones.
  • Changes:
    • I might have screwed up and mixed 2 completly different licenses, so uh, yeah, that’s fixed now please don’t sue me thx (I will be overriding the previous reply file due to this, do me a good favor and override every external license if you are using the initial release).
  • Bug Fixes:
    • Fixed a memory leak in the QuickTween utility (tween would not be cleaned if destroyed before completing).
    • Made it so the QuickTween’s callback isn’t called if the tween is destroyed early.
1 Like

v0.3.9

Hey, I wasn’t exactly planning to drop a rushed patch today, but it turns out I forgot to reupload the animations to the group the test place was under, so yeah, I can’t imagine the game looked very good before half an hour ago :upside_down_face:.

Other than reuploading those (which u can also find ready to reupload inside each animation object) i’ve added a bunch of visual/sound effects to the moveset (some from the template, some new), did lots of cleanup to the code, and there’s a github for the project now (although the main files are outdated atm, just grab the release until v0.4.0 is out).

Also important change, the Code folder and the Volume SoundGroup have been moved to RepStorage as that’s what I think most people will prefer, so you’ll need to update your code to adjust to these changes (i’ll try to make this the last major structure reformat, but this is a pre-release and i’m still trying to figure out what’s best for the project, so please bear with me with that).

You can find the newest release here:

Next release i’m hoping to add replication for moveset effects and contextual controls, so look forward to that, and sorry about the inconveniences, that’s kinda why this is called pre-release.


On Hold Notice

Hey, due to the lack of usage my projects have gotten over the years i’m gonna try to move to a different platform, meaning CE won’t be getting updated anymore unless well, I fail to switch platforms.

I still consider CE better in it’s current state than the old SNM release, so I recommend you stick with it and port over any old mechanics you need yourself.

If you have any issues, i’ll still be around to help as long as my notifications keep working, and if there’s any major issues I might drop by to patch them, but aside from that expect no more updates from my part (project is under MIT so yeah, do as you please regarding forks).

Thanks again and sorry for those who were hoping for more updates but it is what it is.

5 Likes

what does “Level not found in the database, make sure you are working with a pulished place!” mean? ive published the game and all but it still warns me

I haven’t touched this in a bit so I might have forgotten but I think you have to open the database module and update the PlaceId in the Levels thingy to fit your game’s (so each place in your game corresponds a level, make sure to use the PlaceId and not the GameId). You need to do this too if you add more collectibles and such.

(If the issue persists just dm me and i’ll edit this with the solution to avoid bumping the post).

Thank you… THANK YOU SO MUCH :sob::pray:

1 Like