[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/v/ - Video Games


Thread archived.
You cannot reply anymore.


[Advertise on 4chan]


Hello /v/,
I am making a modder-friendly Minecraft remake in C.
I am designing the engine to be modders-first. The core game without any lua is extremely barebones and unplayable. What you see in pic rel is a result of the lua modding API.
I want the modding API to be on par with GMod's modding API.
I will implement features like asset loading into the engine to make modding incredibly powerful alongside creating and bundling incredibly useful libraries to make loading assets from other engines easier. This could make it easy to do things like:
>Load levels from Doom, Quake, GoldSrc&Source, and optionally convert them into native levels to iterate upon
>Load 3D assets and models from these games and use these two abilities together to possibly create ecosystems of people recreating and playing these games inside of this engine for free
>Minigames and other gamemodes within the engine
Luanti and other attempts at doing this have a problem of eternal unfinishedness and a pisspoor attempt to provide a base equivalent of Minecraft gameplay.
I plan on recreating Minecraft Indev-Beta gameplay in this engine and provide it as a base gamemode that modders can build or tear down upon to make their own gamemode if they need to.
The modding API and the gamemode framework gives modders the ability to create completely different looking games within the engine with the only limitations being the voxel nature of geometry, but that assumes you don't just create a custom static level in the same way levels from other game engines will be able to be loaded inside the engine

I am building this engine on a dual core CPU with integrated graphics from 2015. I can get around 120 fps on maximum settings and maximum render distance with no culling enabled.
The engine is made with OpenGL 2.0 and I want to make a fallback pipeline that uses only GL1.1 functionality just to expand hardware compatibility whenever I'm done with everything else.
any suggestions?
https://cy-x.net/pane/post/878
>>
File: file.png (54 KB, 500x283)
54 KB PNG
>>
File: 1542150086476.jpg (18 KB, 474x233)
18 KB JPG
>>741548474
Dude that's cool as hell, however since this thread is about video games and not the flavor of the month or /pol/-bait, you will not get many replies. Sorry.
Also, I miss Mo Creeps n' Weirdos.
>>
>>741548474
Why not just contribute to Minetest?
>>
>>741548474
Why not make your own game?
You're about to do all this work for free, and you'll own none of it.
>>
>>741548519
this
with hundreds of mods already on minecraft people have no reason to come over if there's no significant mods out of the gate and thus no incentive for modders to move over either
>>
>>741548596
It doesn't actually feel like Minecraft and is made in C++ instead of C
>>741548608
i mean this is kind of already my own game since the only thing that belongs to mojang are the textures which can easily be swapped in and out
>>
>>741548658
Forge, Fabric, NeoForge, ModLoader, and the mods that use these loaders all have one thing in common where their entire existence relies on playing catchup with Mojang updates and hoping to god they didn't make a change that requires delaying a release for months like what happened between 1.7.x and 1.8.x
A stable API would be a pretty good selling point.
My primary audience isn't modern Minecraft modders, but the game *can* support them all the same.
I want to target the "golden age" modding community since they all keep doing the same exact thing where they decompile an ancient bugged out version of Minecraft and keep adding the same exact fixes on top of it alongside minor features that often don't even impact gameplay all that much
The way the engine and modding API is designed would likely eat up a large chunk of these kinds of old Java mods and turn them into simple lightweight lua addons that can be combined together
much better than having to download yet another beta 1.7.3 fork
>>
>>741548889
also minecraft's performance just fucking sucks ass regardless of how far back you go so i also want to have an experience that doesn't stutter or lag on my integrated graphics every 4 seconds
i think i can blame blame the java programming for that because I spent 2 months making an overhaul mod to try and optimize 17 year old swedish man code only to break everything miserably and realize java was not exactly made for video games
>>
>>741548704
>i mean this is kind of already my own game
Except you don't own it, and legally can't make money from it.
And Microsolf can tak it whenever they want.
And it's not your IP.
But yeah, other than that, "you own it" ;^)
>>
>>741548474
>C
Actual Minecraft is already more modder friendly because Java decompiles easier.
>>
>>741548953
So a drop-in replacement of classic MC? How hard would it be for mod makers to adjust their stuff?
>>
>>741548963
They don't own the code. None of it belongs to them. Even more so because it's in pure C and Lua.
>change the textures
>come up with a better name for the game that isn't [..]craft
what now?
>>
>>741549042
>They don't own the code
For Minecraft? I think you'll find they do, Pablo.
How old are you? You don't seem ton understand the law very well.
>>
>>741549087
I think it's you who doesn't, Minetest exists and no one's suing it
>>
Minetest already exists and only 3 people play it.
>>
>>741549040
Porting Java mods to Lua might be a bit of an issue since the Lua API isn't mixin hell but can range from being extremely advanced and power-user heaven to being incredibly beginner friendly with helper APIs implemented throughout the engine for things

Here's a simple loop that prints some player data every five seconds, for example

[code]
timer.Create("test:report", 5, 0, function()
local x, y, z = player.GetPos()
local dx, dy, dz = player.GetLookDir()
local wx, wy, wz = world.GetSize()
print(string.format("[test] tick=%d pos=(%.1f,%.1f,%.1f) look=(%.2f,%.2f,%.2f) world=%dx%dx%d",
tickCount, x, y, z, dx, dy, dz, wx, wy, wz))
end)
[/code]

>>741549087
??? They don't own **MY** code.
>>
>>741549128
Dodges the question

>>741549184
They do when you modify their game and try to re-sell it.
Why do you think I can't re-sell Mario 64 but in C?
>>
>>741548474
Did you study OpenGL for a long time? I'm currently learning it for gamedev, but damn, I find it to be difficult stuff.
>>
>>741548963
does this apply to Minetest? Or Survivalcraft?
>>
>>741549234
>They do when you modify their game and try to re-sell it
i don't think that applies if this game didnt take any code from the original
>>
>>741549234
>They do when you modify their game and try to re-sell it.
That's not how it works. If you write your own code then it belongs to you and the onus is on the other party to prove you took some of their code verbatim. And the rest is a question of dodging trademarks and patterns. You can even provide the same APIs, since at least in the US Google vs. Oracle set the precedent that API can't be copyrighted.
>>
>>741549314
You tell me, did they modify minecraft and sell it as a brand new game?

>>741549346
It took all it's code from the original tho.
Like how people decomping N64 games can't sell them, even tho the "code is all new".

You can't modify and sell things, without permissions. That is all.
>>
>>741549016
however do note the underlying code is a mess of legacy Notch code, obfuscation, and version incompatibilities
>>
>>741549391
>That's not how it works. If you write your own code then it belongs to you
So how come no literal rom hacks have ever been sold on Steam?
They own all the code, right?
>>
>>741549445
what the fuck nonsense are you spouting you absolute mongoloid? I am almost curious what a subhuman creature who makes posts like these actually looks like.
>>
>>741549514
>No answers
Uh oh, stinky!
>>
>>741549504
Because they modify the literal original code that belongs to someone else. But if you make a cleanroom implementation that doesn't copypaste the original code, that's a-OK.
>>
>I'm making a barebones game
>surely everyone will want to mod it
No. You're not making Garry's mod you're making s&box. A game which no one has any reason to invest their time in and decide to mod.
You make a good game, players come, some of them become modders, the game becomes a perpetual ecosystem.

You make a barebones game, people don't stick around because they've got more feature complete alternatives. Your incredible template becomes abandoned.
>>
>>741549237
Well, not a super long time, but I do have a lot of experience with the fixed function pipeline and some GLSL shadering

>>741548519
>>741549135
I played Minetest/Luanti and it felt like it made no effort to properly replicate Minecraft's general feel and it ran badly on my hardware, so I think there's room for another

>>741549652
>But if you make a cleanroom implementation that doesn't copypaste the original code, that's a-OK.
Yes, this is the case here.
>>
>>741549652
>But if you make a cleanroom implementation that doesn't copypaste the original code, that's a-OK.
Quote where this is the law, and in which country and get back to me. Otherwise It's not true.

You may use chatGPT if you wish.

Thanks.
>>
>>741549727
You're making the claim here faggot, you back it up
>>
>>741548474
why
>>
>>741549750
>But if you make a cleanroom implementation that doesn't copypaste the original code, that's a-OK.
I literally have not made that claim.
That is your claim. Please stop crying and prove it's true, or admit you can't (cede the argument).
Your choice!
>>
>>741549661
The base gamemode that comes with the mod will have feature parity with older Minecraft. I assure you, it will not be as barebones as you think it will be.
>you're making s&box
That one lacks Lua entirely AFAIK.
My API's parity is veery close to that of GMod's. I've been able to port over some solid addons like FProfiler without any issues. I've also reimplemented Source's VGUI and I'm using it as a backend for all of the UI you see in the OP screenshot and pic rel.
>>
So OP how old are you?
You dodged the question when asked.
>>
>>741548474
This is cool and all but with how minecraft modding is now, it's not as useful as you might think anymore.

Minecraft has gotten more and more modder-friendly, to the point that most desired changes can be achieved without even using a java mod: by datapack, resource pack, or kubejs.
KubeJS is a mod that hooks into the engine in various ways to make changes, and has its own Javascript API. It also supports Java reflection. It works by running JS within the JVM using Rhino.

So first, your project will never be more convenient than a datapack, resources pack, or simple javascript. Especially because those have better documentation and existing resources. You have to accept this first.

Second, about performance. This has also gotten much better in newer versions of Minecraft. Gone are the days where the game takes forever to load when heavily modded. New versions also get better FPS. Of course Java is a piece of shit, but it's not like it was in the old days where you had to mod the game just to hit 60fps.

Third, you want to support older hardware, but honestly, nobody cares about that. If anything, supporting newer hardware is what improves performance now. Look up terrain diffusion, it's a new form of worldgen using CUDA to make terrain absurdly fast. The 2015 integrated shitbox will never be able to do this.

Finally, for modders who are really interested in surpassing the limits of java, it's already possible to do so. Look at Create Aeronautics. Their physics pipeline runs on a library called Sable which integrates the Rapier physics engine. This is an external engine written in Rust. It's part of a minecraft mod now. The determined programmer can already do what you're aiming to do.

Also, about a "stable API", well basically this >>741548519

I recommend you look into KubeJS, it seems very similar to your LUA thing
>>
>>741549839
You're the one claiming I'm not allowed to do something fag
Things are allowed unless they're forbidden
Now quote me the law that says I can't do that
>>
>>741548474
nice
>>
>>741549727
>>But if you make a cleanroom implementation that doesn't copypaste the original code, that's a-OK.
>Quote where this is the law, and in which country and get back to me. Otherwise It's not true.
That's how business programming Dev is done in the us at least. Usually when copyright bullshit for codecs happens
>>
>>741549954
>You're the one claiming I'm not allowed to do something fag
No I'm not, you can do what you want.
But you can't modify someone elses work without permission and re-sell it. That's literally copyright infringement.

So are you under 18? I ask because you have a childish understanding of copyright law.
>>
>>741550135
>No law quoted
Ok...
Let me know when you can do it.
>>
>>741550226
>But you can't modify someone elses work without permission and re-sell it.
Which is not what happens here
>>
>>741549920
>The 2015 integrated shitbox will never be able to do this
That means I wouldn't be able to play it, therefore this was never an option for me.
Modern Minecraft likes to allocate 400MB/s of pure garbage constantly even with all sorts of "optimization" mods stacked on top of it. They call that "industry standards".
What if I want to play without having to allocate 2 gigabytes of RAM to the game?
Where do the users on older hardware and operating systems go, especially since newer Java versions deprecate support for older versions of Linux and Windows and Microsoft is trying to revamp the game to render in Vulkan which yet again prevents a large majority of hardware from even launching the game if switching to OpenGL 4.x hasn't already done it hard enough.
This alone is a use case that I feel that my C engine fulfills by providing a way to play a version of Minecraft that's hyper-optimized at its core and has an extremely flexible modding API built into the game natively.
>>
>>741550269
So you aren't modding Minecraft to re-sell it?
>>
>>741550349
No he's not
Did you even pay attention to the thread
>>
>>741550424
So what are you upset about?
Be specific, please.
>>
>>741550308
>That means I wouldn't be able to play it, therefore this was never an option for me.
Well honestly, if you're making it for yourself then do whatever you like and enjoy ofc, nothing wrong with that. I just don't think there's much of an audience for it.

Not unless your C engine is like a complete drop-in re-implementation, and compatible with existing mods and resource packs. Like an OpenTTD for Minecraft, or (kind of) OpenMW for Morrowind. If that's your goal then it'd have a very large audience because it'd simply be a better option for everyone, even people with decent hardware, modders wouldn't have to port anything, etc. But I have no idea if that's possible or feasible

if your end goal is "make a general voxel engine that runs on pentium 4" then practically no one will use it since that's not a problem most people need to solve. The low-end hardware used by the masses nowadays isn't toaster PCs, it's phones, and roblox already runs on phones and has flexible LUA scripting and arbitrary models and so on. That's where UGC and minigame/custom game type gameplay lives now (unfortunately)
>>
>>741550263
Oh I don't care about that. Just wanted anons to know ITT how shit works irl
>>
>>741550690
>"I just wanted people to know how things worked irl"
>has literally zero evidence
lol
lmfao
Brown people are funny
>>
File: wurzelcraft 666 fps.png (247 KB, 1032x724)
247 KB PNG
>>741548474
I can get 666 fps with most of the "extra" graphical features turned off, so the game is ultra-performant when it comes to gameplay with Minecraft-accurate lighting visuals with slight improvements
>>741550612
>roblox already runs on phone
Roblox also appears to not be in a good spot at the moment, hehe. They look like they're trying to disembowel themselves.
That reminded me of a future idea I had: I wanted to create polyfills for similar Lua modding APIs so that way it'd be easy for developers from other places to come over here.
Perhaps a Roblox API polyfill that covers most of their APIs, maybe from to 2007-2017 would be a neat way to attract some disillusioned developers, like messing with game.Lighting.ClockTime or creating a ScreenGui in a PlayerGui could easily wrap around some of the more "lower level" Lua APIs that already exist.. hmm
>>
>>741548474
OP if you can make it compatible with all existing Minecraft mods, either with no effort or with a simple conversion script that can be automated, then you might be on to something. If it's not compatible with existing mods then no one has any reason to switch.
>>
So OP is confirmed under 18, right?
>>
>>741549087
Well I own: int x = 1;
Nobody is allowed to make inegers assignment on x with a value of 1, who can I sue for it?
>>
>>741550747
You're very maladjusted. Hope you can get all that out of your system here little shartybro.
>>
>>741548474
>I am making a modder-friendly Minecraft remake in C.
it already exists
it's called Vintage Story
>>
>>741550936
You laugh but this is unironically how software patents work. Yes intellectual "property" is indeed a complete joke, no you're not allowed to move ones and zeros in a certain way because I thought of it first, sorry!
>>
>>741550936
>Well I own: int x = 1;
Prove it.

>>741550962
Thanks for confirming you lost.
>>
The claim is too broad. In the U.S., you can generally write and sell your own game engine and implement Minecraft-like mechanics because copyright does not protect ideas, systems, or methods of operation (17 U.S.C. § 102(b)).

However, you cannot legally copy Minecraft's protected expression. Under 17 U.S.C. § 106, the copyright owner has the exclusive right to reproduce and create derivative works. A project marketed as a "Minecraft remake" that recreates Minecraft's specific content, assets, world generation, progression, or other copyrighted creative elements may be an infringing derivative work.

There are also trademark issues. Calling it a "Minecraft remake" or marketing it in a way that suggests affiliation with Mojang/Microsoft can create liability under the Lanham Act (15 U.S.C. §§ 1114, 1125(a)).

Writing all the code yourself does not grant the right to copy Minecraft's protected content or branding. The legal distinction is between copying mechanics (usually allowed) and copying expression (often not).
>>
>>741550984
>Vintage Story
I haven't played or looked at it all too much, but these system requirements aren't it
https://www.vintagestory.at/sysrequirements/
>(around 25 FPS on low graphics quality settings, without mods)
>25 fps
>Linux, macOS versions 13 or higher, Windows 10 or newer, 64 bit
>Linux, no mention of minimum glibc version or dependencies
>windows 10 only & no 32 bit
>macOS 13 was released in 2022
>8 gigs of ram MINIMUM to even play
>OpenGL 3.3 or newer
>or Integrated graphics from 2016+, for example Intel HD Graphics 620
I don't think that suits me.
>>
>>741548519
beer cuck
>>
>>741551051
So don't be American.
>>
>>741551393
Where do you live OP?
I'll find if it's legal where you live too.
>>
>>741548474
Here's an important fact: a lot of people really like that Minecraft comes as a full package. The biggest problem with Luanti is that you have to build your own game, which means there's no universal baseline to build mods or new content around. Unless your game can be played without mods first and foremost, it's just going to be another failed attempt
>>
>>741551464
I'm pretty sure you're not talking with OP, he seems not to care about legalese shitposting
>>
>>741548474
Keep on trucking OP, although your minecraft remake will probably go nowhere you now have enough work done to make other voxel shits after this.
Work done is only work wasted If you don't reuse it to make future work get completed faster.
>>
>>741551515
So he's not interested in selling his game?
Figures.
>>
>>741551515
Yeah I'm improving shadows as we speak
>>
>>741549478
so just like yours?
there's no such thing as a stable api btw
>>
>>741551793
This.
>maintaining a runtime at work
>the runtime has a crypto API clearly defined by standards
>retards link directly with OpenSSL instead of asking us to make an API extension
>now we have to support it
>>
>>741549920
>KubeJS
As a Minecraft modder, I've never heard of this. Why not just use Fabric or NeoForge with mixins if you're looking to change vanilla behaviors? Once you're writing JS code, you might as well go all the way and get more features, better performance, and less compatibility issues with Java
>>
>>741551793
>there's no such thing as a stable api btw
Why would it ever change, except to add more API rather than remove?
>>
>>741548474
I am retarded so bear with me as I cannot into technicals and I'll spout bullshit.

At first
>I am making a modder-friendly Minecraft remake in C.
sounded kinda meh, since there's already Vintage Story and whatever Hytale is trying to do. The former especially has strong game identity of it's own to support itself.

I must say though however
>>Load levels from Doom, Quake, GoldSrc&Source, and optionally convert them into native levels to iterate upon
>>Load 3D assets and models from these games and use these two abilities together to possibly create ecosystems of people recreating and playing these games inside of this engine for free
>>Minigames and other gamemodes within the engine
is most intriguing and unique.

Since basically you would benefit the most if it was GMod at ground level but with Minecraft building and open world freedom.
It's a really big stretch to ask and suggest but if later on you'd focus on voxel break-ability physics like Teardown it could hit some wonders.
Since imagine Quake but with environment destruction ontop of entirely handbuilt on the very gameworld maps and fortresses, and then there's re-enacting whatever mass scale battles one could want like a medieval siege simulator or something.
>>
>>741552008
Well first of all, it's not used instead of NeoForge or Fabric if that's what you meant.
Main advantages are better compatibility than mixin hell, ease of use for end users, and the ability to "mod mods"

Let's say you're making a giga bloat modpack so there's 8 different types of silver ore spawning. The old way to make it 1 type was to use mods that unify them, but this often misses edge cases and can't be easily edited by the user. Or you need multiple different mods for unifying. Customization is hidden in config files and if they don't meet your usecase you're SOL and need to make an additional mod. In theory you can tweak all the configs and it may work but this relies on all those different modders not screwing up.

Second way is to make a resource pack that overwrites their ore features so only a single one spawns. This is OK but could cause conflicts with other resource packs, have load order issues, and sometimes mods don't respect this format. This also requires you to manually make a file for every single thing you overwrite.

In KubeJS you just replace the features in script programmatically, it makes its own virtual datapack that can be altered or reloaded on the fly.

It's not a replacement for making mods but it's a convenient way to script things, especially for modpacks with a lot of mods. It mainly gets used for changing recipes and shit like that, but you can register new blocks and all sorts of arbitrary things
>>
you say this like no one has ever made a Minecraft mod
>>
why do anon devs love wasting their time on useless shit?
>>
>>741549478
Obfuscation is gone in modern versions and broken in old ones.
>>
>>741552454
>Since basically you would benefit the most if it was GMod at ground level but with Minecraft building and open world freedom.
Yup, this is pretty much the case. I imagine someone will port the 2008 version of Zombie Survival over here along with the original maps and have a nice time without having to download and play Gmod 9 or something
>but if later on you'd focus on voxel break-ability physics like Teardown it could hit some wonders.
I'll have to look into that maybe.. Heard of it but never played it so I'm not sure how performant it could be on a dual core

>>741552561
Technically, they haven't. They've made Forge/NeoForge mods, Fabric mods, ModLoader mods.. None of them are interchangable and usually are incompatible with the next version of the game
>>741552718
its nice :D
>>
>>741552919
I'm a codelet, but wouldn't stencil shadows get really expensive with the amount of cubes a Minecraft clone renders?
>>
>>741548474
Good luck.
Hopefull it won't have instant-kill creepers.
It would also be nice to have some way to get villagers(craftable villager spawn eggs maybe).
>>
>>741552474
Using it to mod mods makes a lot more sense, and explain why I've never heard of it before. That being said, I wouldn't put that in the same category as datapacks or regular mods that affect the base game, if that's not how it's meant to be used. It sounds more like advanced configuration that can be applied to any existing mod, rather than a modding API mean to allow a modder to add new features and functionality
>>
No Github, no install.
>>
>>741553086
github is MS slop!
>>
>>741552919
>Technically, they haven't
Everyone made "raw" Minecraft mods back in the day by replacing the actual files in the JAR. It's why mod loaders became a thing in the first place. And today you can use the official data pack API to do crazy things, whether that's adding new bosses, changing world gen, or creating custom items with custom effects
>>
>>741553069
It can technically add new functionality, it's just more of a novelty and probably doesn't have any advantages over making a mod. Except the ability to reload scripts without restarting the game I guess.

Using it on the base game is probably unnecessary since the base game is so simple. But I guess you could do something like tweak a recipe, in a simple one-line script with no compiling or datapack usage. It replaces crafttweaker in that sense.
>>
>>741553015
i'm doing stencil shadows in the best way possible
integrated graphics and a dual core and i still get more FPS than i do on regular minecraft, even vanilla alpha
>>
>>741553820
Does your clone do as much as Vanilla Alpha Minecraft?
>>
>>741553820
You really should make your own textures if you're going to post screenshots, because you *will* get a cease and desists if you keep using copyrighted assets
>>
>>741553912
in terms of gameplay no, i'd say i'm around indev in that regard but definitely not when it comes to terrain gen
>>
>>741553168
then host your own git server and make it publicly available, or go to codeberg or whatever
>>
>>741553956
Oh yeah I'd like to do that. I've never done pixel art before but 16x16 should be easy since its mostly just carefully crafted noise it seems
Just gotta find whatever program is good for that on Linux.
>>741554047
Not me
>>
>>741553961
>no
Then that's why yours runs better for the time being
>>
>>741554808
>java is pretty far from C tho
>>
>>741554808
Nah I've been following his project. He already had minecraft alpha running very well until he went from java to C. This guy has potential.
>>
>>741548474
that is cool anon but ive heard this story 10000 times already
>>
>>741557416
This guy is thomas edison. He will complete the mission on the 10 001st attempt
>>
>>741551861
They don't wanna be liable for bugs in your slop API.



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.