jfCraft

jfCraft - another MineCraft clone.

Written in Java of course. The game is incomplete for now but I’m still working on it.
View the video below to see some features so far.

Download binaries here:
http://jfcraft.sourceforge.net

Online source here:

1rIHnpS7EKY

Thanks.

I’m impressed by how accurately you cloned Minecraft and its mechanisms. Where do you plan on taking this project? What’s your goal for it?

Looks really good, but I’m constantly receiving this error each time I start a new game in the client.

http://www.java-gaming.org/?action=pastebin&id=1322

Mega cool XD

P.s Imho - if you want make own game mechanics (because ppl don’t like playing in 99% clones)
Make all crazy ideas (same as item recipe) that can you imagine – and it will be almost sure fun,

Simple keep it logical – that only rule for madness ideas: like wooden pickaxe =)

Example:
Red blocks have magnets gravity,
blue spawn monsters,
for harvesting purple ypu resive EXP,
from 10 yellow blocks you can craft laser crystal for rifle to DMG yellow monsters Type)
Unleash your imagination and it will be funny gameplay :wink:

But in any case is cool what you’r already done =)

up: You even have server and plugin system XDDD

it’s sad :frowning:
agane IMHO:
Clones need big marketing or mega cool new gameplay (or Visual) that original don’t have or they not be popular ((
this is wrong forum for marketing promo ;(
i believe minecraft promos marketing start from tigsource users + Lego games forum, but i not sure its some sort of magic )

IMO advice make minecraft FPS - they popular and fun )
(left 4 dead with missions etc)
creative mode minecraft not popular and fun anymore
it was fun when it realized because you don’t need 3dMX or any other hard to noobs software to create something

  • you can play with it in game
    ++(minecraft looks when realized - like dungeon keeper first person + dwarf fortress, Lego World
    And ppl mind own dreams about this)

But now - no one cares about creative mode, they already play in original minecraft)
Exceptions kids – they can play all day long in minecraft, dota, LoL, etc
without no reason – because they simple like it),
and taking part of there auditory to minecraft clone as same hard, as take dota’s funs to dota clone =)

up2:
Exeption2 -
Big free MMO - make minecraft server on 200+ online and it will be popular )
(if you can handle kids IMHOs - “we want this, we see it in minecraft” ^^)

About source code)
quick watch it ^^
nice code - but have some not critical arhitecture errors

many code dublicated


//LightingEarth.java
         if (z < 31 && chunk.getSunLight(x,y,z+1) < 14) {
            lvl = getBlock(x, y, z+1).absorbLight(15);
            lvl = getBlock2(x, y, z+1).absorbLight(lvl);
            if (lvl > 0) {
              if (setSunLight(x,y,z+1, lvl)) {
                add(SUN_CAST, x,y,z+1); }
              }
          }
          if (z > -15 && chunk.getSunLight(x,y,z-1) < 14) {
            lvl = getBlock(x, y, z-1).absorbLight(15);
            lvl = getBlock2(x, y, z-1).absorbLight(lvl);
            if (lvl > 0) {
              if (setSunLight(x,y,z-1, lvl)) {
                add(SUN_CAST, x,y,z-1);
              }
            }
..
//can be optimized
//dublicates create small errors
function_absorbLight(x, y, z, lvlPrev){
            int lvl = getBlock(x, y, z).absorbLight(lvlPrev);
            lvl = getBlock2(x, y, z).absorbLight(lvl);
            if (lvl > 0) {
              if (setSunLight(x,y,z, lvl)) {
                add(SUN_CAST, x,y,z); }
              }
            return lvl;
}

also will be good use more static var


  for(int y=0;y<255;y++) {
      for(int x=0;x<16;x++) 
//
ChunkSizeY = 256;
ChunkSizeX = 16;
//good for refactoring

need window manager but not critical )


//CraftingMenu.java
//Hard for refactoring
 public void mousePressed(int x, int y, int button) {
...
 bx = 59;
    by = 33;
    for(byte a=0;a<9;a++) {
      if (a != 0 && a % 3 == 0) {
        bx = 59;
        by += 36;
      }
      if (x >= bx && x <= bx+36 && y >= by && y <= by+36) {
        Static.client.clickCraftlInput(a, button == 1);
      }
      bx += 36;
    }
    //check craft output
    bx = 239;
    by = 60;
    if (x >= bx && x <= bx+36 && y >= by && y <= by+36) {
      Static.client.clickCraftOutput(button == 1);
    }
}
...

BUT- this all NOT important: its works and THAT WHAT Important.
So make game popular and after that can start fixing code ^^

p.s http://javaforce.sourceforge.net/ Man that Insane XD, so many cool tools

i have question - becouse i can’t find answer((
do you have any solutions for:
java - packet(TCP or UDP) tunneling for dedicated server
from users pc Internet without 3d party broadcast server?
(dirrect user connects through internet with gray IP’s)
(NAT traversal, UDP Hole Punching etc)

up: hm i think i finally find possible solution: SSH tunneling =)
(without UDP cheats ^^)
{try it later - in unknown future}

Thanks for all the positive feedback.

My goal is to create crazy plugins like the domino and mario world dimension. Then maybe add more RPG stuff (char stats, etc.).

I developed plugins for the real MC but after each upgrade they stopped working so I got tired of that real fast. With an open source implementation this shouldn’t be a problem anymore.

As for that crash, it has something to do with sheeps model. I’ve noticed it look messed up on my system (but it doesn’t crash here). I’ll check it out and fix soon.

Thanks

Ok, I just released version 0.19 that should fix that crash SHC was getting (an opengl resource leak).

No one has mentioned the build-in VoIP comm system. Just hold in right CTRL and you can talk to your buddies on the server (kinda like TeamSpeak).

TTYL

Very interesting game!

A few points of critique:

  • The textures are kind of ugly, maybe make your own (simple) ones? :slight_smile:
  • Why are you using Sourceforge? You can use the Github releases feature.

Ya, I’ve been contemplating using github over sourceforge but my concern is that end users will find github too confusing.
github is designed for developers to share their source code with other developers, end users will just get lost.
The github.io pages show large download buttons at the top which only download the source code.
Most end users will just download the source code and then think, “what now? It doesn’t work!”
Another problem is that my javaforce project contains all of it’s sub-projects in sub-folders. I’m not sure how I would release them in github. I thought of forking my own repo for each sub-project, but you can’t do that.
I’ve asked github if they could make it more end-user friendly and they said they would “think about it”…
Just look at sourceforge how you can easily browse apps, each with familiar icons, etc. It’s just laid out better.
As for sourceforge adding ad-ware to apps : that won’t effect me since I don’t release EXE files.
Anyways, too much talk about this…

It doesn’t cover everything you mentioned, but in case you aren’t aware, you can attach binaries to github releases, not just the source.

Gives me this when I launch the game

DarkCart : What kind of video card do you have?
Can you post your log files here?
Open %appdata%.jfcraft\logs
Open init_(EDT).log and paste it here.

Thanks.

Intel HD Graphics 5000 1536 MB
I’m on a Mac OS X, so there’s no appdata folder.

Opps, Mac is not supported yet, sorry. Strange it even got that far.

To support Mac I need to recode some native components but I have limited access to a Mac.

Ok, here is the soln to getting it to run on a mac:

Sorry, I couldn’t resist :wink:

But seriously I’m working on mac support.

Hi

Good job :slight_smile:

Maybe it would be easier if you didn’t reinvent the wheel, why not dropping your OpenGL binding and using another one (of your choice, no flame war) that already supports OS X? Thank you for sharing your source code, I didn’t know that it’s possible to create a DMG file with genisoimage under GNU Linux. By the way, it’s possible to build a RPM without a spec file, look at RedLine RPM… and it’s possible to create an ICO file from a PNG file with Apache Commons Imaging. Good luck.

I’ve got it working with LWJGL3 in github which I’ll release in the next release. LWJGL is not the best out there. It uses GLFW which currently doesn’t support putting on icon on the window (although a fix is already in github) but it’s better than my AWT hack. I tried using SWT too but their keyboard support is lacking so it’s useless (it sometimes misses key release events if multi keys are pressed).

Thanks.

NEWT (JogAmp) has supported this feature for more than one year and an half:
https://jogamp.org/bugzilla/show_bug.cgi?id=934