Jump to content




MiniatureCraft 2.x Alpha Edition

game

368 replies to this topic

#1 Antelux

  • Members
  • 295 posts
  • LocationSomewhere in the middle of nowhere.

Posted 21 December 2014 - 09:39 PM

Play the alpha! pastebin run FgAggvy1 <directory> <alpha>

If there are any OS's looking to include my game, your allowed to, given you inform me first, and receive my permission.

So, I've been working on MiniatureCraft, and I reformed it. Again.
The first time I did so was to make the game full of features. This time around, however, efficiency and performance are much more of a top priority.

And so, I give you MiniatureCraft: 2.x Alpha Edition. It's Github Branch can be found here.

I put the "2.x" as I'm not sure what version it shall be, as there are so many changes to the game. Making it something like "MiniatureCraft 3.0" seems rather silly to me.

So, here's a list of changes as of now:
  • Every API (Except for Chat) has been completely redone, optimized, and just cleaned up in general. APIs also have changed to return a table of functions.
  • APIs no longer have their functions injected into _G.
  • Error logging has been made nicer and easier for use by APIs and the game. You can find errors in the error folder.
  • require(), unload(), and reportError() (See above) are the only functions put into _G. These functions are used to load or unload APIs, or report errors.
  • The Menu and File API have been removed.
  • The following APIs have been added to the game: Noise, Client, Interface, Server, Keyboard, Keybindings, and Timer.
  • The Buffer API now supports shaders.
  • Commands can now be added to the game.
  • World generation has been completely overhauled. The world is now procedural and infinite. Though, players can only travel the overworld as of now.
  • The Player and Entity APIs now are more object oriented. You call the function Player.player(name) or Entity.entity(id) to get the player or entity object, and modify it directly (i.e. player.x = 1, player.color = colors.blue, etc)
  • The Client API is used for connecting to servers, and getting general info about the game state, such as being paused or not.
  • Mods now are required to return a table. Check the latest page for what parameters they can have.
  • The Noise API is used for generating the chunks.
  • The Server API is used for allowing people to play on your server.
  • The Interface API is used for drawing and updating interfaces and GUIs.
  • The Keyboard API is used for getting the currently held down keys.
  • The Keybindings API is used for setting and getting keybinds.
  • The Timer API is used for creating timers which don't require events to be used.
  • Many Assets have been tweaked, modified, etc.
  • Tiles and blocks can now have a tick() function which is called 20 times a second.
Here are the controls as of now:
WASD keys are used to move the player.
Left Shift is used to lock the player's facing direction.
R will unload all chunks from memory, without saving them. This will be automatic later.
E will exit the game.

Left and Right Click will place or break a block or tile.
The scroll wheel changes the asset you currently have selected.

I ask that you guys try out this new version, and give me your input on it. Thanks.

Here's the old post for version 1.98b-Beta:
Spoiler

Edited by Detective_Smith, 01 November 2015 - 10:41 PM.


#2 Antelux

  • Members
  • 295 posts
  • LocationSomewhere in the middle of nowhere.

Posted 22 December 2014 - 11:45 PM

(Mostly) Finished up the world generation. The lighting API will be next soon enough, after some player bugs are fixed.

#3 Antelux

  • Members
  • 295 posts
  • LocationSomewhere in the middle of nowhere.

Posted 03 January 2015 - 08:26 PM

Hey. It's been a bit since I made my last post, so I'll just do a quick update on the game.

I've added A LOT more stuff, but again, it's mostly internal code rewrites. It should be alot more efficient than the old game, less clunky, and easier to understand. Though I won't go into detail about all that was added simply because it was internal, here's a sneak peak at whats done so far.

Posted Image

Hopefully this goes well.

#4 Antelux

  • Members
  • 295 posts
  • LocationSomewhere in the middle of nowhere.

Posted 04 January 2015 - 07:29 PM

Hey. I finally made it so that there is a function to update the world, similar to what chunk updates do in minecraft.

Now, water and lava are able to "flow" into holes tiles. Grass is also able to (slowly) creep onto dirt blocks.
I'll be adding the ability for trees and crops to grow, too.

Right now, the method of checking what things should flow or grow right now is hardcoded. In the future, I'll make it so that any asset with the type "liquid", "sapling", or "seed" will be able to grow or flow anywhere, regardless of it being in a mod or not. This should be easy enough to do, and you expect this to be done by the time the game is released.

I would make a screenie or a gif, but I'm too lazy :P

P.S. It's okay guys, you can post here too. Besides, how else will I know if anyone is actually gonna play this or not? Though, I expected other posts by now.

Edited by Detective_Smith, 04 January 2015 - 07:31 PM.


#5 MKlegoman357

  • Members
  • 1,170 posts
  • LocationKaunas, Lithuania

Posted 04 January 2015 - 07:38 PM

We're just silently waiting for the game to be completed :P. I'm most interested in modding this thing..

#6 Antelux

  • Members
  • 295 posts
  • LocationSomewhere in the middle of nowhere.

Posted 04 January 2015 - 09:39 PM

Modding is probably gonna be one of the funnest things you can do with the game.

At the game's completion, you'll be able to do:
* Add your own assets (Ofc)
* Tie scripts to block and items
* Create new and customized entities with their own behavior
* Create plugins for the server script
* Change / add in your own world generation code
* And other stuff I can't think of at the moment

EDIT: Basically, just about anything I do in the game is do-able by mods.

Right now, I'm tackling a bug with the player not centering in the screen correctly, as well as the player being unable to place blocks / tiles.
Should be fixed soon though, and then I can get back to completing the interfaces.

Edited by Detective_Smith, 04 January 2015 - 09:41 PM.


#7 Antelux

  • Members
  • 295 posts
  • LocationSomewhere in the middle of nowhere.

Posted 07 January 2015 - 10:19 PM

This information was moved to the top post.

Edited by Detective_Smith, 03 July 2015 - 06:39 PM.


#8 MKlegoman357

  • Members
  • 1,170 posts
  • LocationKaunas, Lithuania

Posted 07 January 2015 - 10:38 PM

Automatic updates? yes. Depending on internet connection? no. I think that having the program download all files it need on each run is a bad thing. It's slow, it's eating internet and if you restart it a lot you will only get frustrated by the speed of your internet connection. Also, that would mean you wouldn't be able to play the game offline.

#9 Antelux

  • Members
  • 295 posts
  • LocationSomewhere in the middle of nowhere.

Posted 07 January 2015 - 10:45 PM

View PostMKlegoman357, on 07 January 2015 - 10:38 PM, said:

Automatic updates? yes. Depending on internet connection? no. I think that having the program download all files it need on each run is a bad thing. It's slow, it's eating internet and if you restart it a lot you will only get frustrated by the speed of your internet connection. Also, that would mean you wouldn't be able to play the game offline.

Actually, the game isn't THAT big that it will take 10 minutes each run. It'll be around 5 - 10 seconds, as compared to the 1 second needed if the files were actually there. In fact, as of now, the game is only ~100 KB.

Also, this is just an option, meaning it won't be the only way to play the game. I just want input on if it's worth adding.
I'll clarify anything that's asked, though.

#10 MKlegoman357

  • Members
  • 1,170 posts
  • LocationKaunas, Lithuania

Posted 07 January 2015 - 10:50 PM

View PostDetective_Smith, on 07 January 2015 - 10:45 PM, said:

Actually, the game isn't THAT big that it will take 10 minutes each run. It'll be around 5 - 10 seconds, as compared to the 1 second needed if the files were actually there. In fact, as of now, the game is only ~100 KB.

Also, this is just an option, meaning it won't be the only way to play the game. I just want input on if it's worth adding.
I'll clarify anything that's asked, though.

Oh, I thought you wanted to make this the only way to play the game. Well, personally I think that downloading files on each run is a bad program design, if it is going to be just an option, then ok, do it, as long as it will be able to boot without internet connection, or downloading any files.

EDIT: also, it's not just about how big the game is, it's actually more about how many files there are and what internet connection you have.

Edited by MKlegoman357, 07 January 2015 - 10:51 PM.


#11 Antelux

  • Members
  • 295 posts
  • LocationSomewhere in the middle of nowhere.

Posted 07 January 2015 - 11:08 PM

Alright then. Again though, any last minute ideas / suggestions / criticism? Still taking any if any of you have creativity to share.
If not, I guess you guys can sit on back for the release. Hopefully, this game will be as fun (and as popular) as I aim it to be.

Edited by Detective_Smith, 07 January 2015 - 11:08 PM.


#12 Bomb Bloke

    Hobbyist Coder

  • Moderators
  • 7,099 posts
  • LocationTasmania (AU)

Posted 08 January 2015 - 02:31 AM

Y'know, the streaming idea kinda meshes in with another plan I've been thinking about - simple file compression applied to pastes. Main thing that's been putting me off is RAM constraints, but it'd make it quite simple to turn the entire contents of a drive into one single download.

Another thing I'd been considering was making a "RAID" out of floppy disks, though someone beat me to it. Not sure if they got their project working, though.

On the whole, though, I agree that downloading the script every time you run it is a bad idea, no matter how small it is. Server's gotta open a connection to Pastebin and so on. Having the program look for a /update parameter on launch wouldn't hurt, though.

If you want this script to be seen, I'd suggest making a short YouTube video showing it in action and putting that up on eg the FTB GD forum. There's a lot more traffic in those parts. Likewise, as many people are tied to certain ComputerCraft versions (as the only reason they have it installed is because they're using certain modpacks), ensuring your code runs on CC 1.5 (MC 1.4.7) all the way through to 1.65 (MC 1.7.10) would help as well.

#13 Agent Silence

  • Members
  • 319 posts
  • Location[string "FindMe"]:23143: bad argument #1 to 'returnPos' (vector expected, got nil)

Posted 08 January 2015 - 07:34 PM

You could have a file download peer to peer system, sort of like Pando Media Booster. Imagine this. Someone in your vicinity running the program with a wireless/wired modem connected to you. You broadcast an "update check". They receive it then broadcast their version and you broadcast your version. If either one of you has a higher version number they will begin to transfer data over.

#14 MKlegoman357

  • Members
  • 1,170 posts
  • LocationKaunas, Lithuania

Posted 08 January 2015 - 07:37 PM

View PostRequiem of Silence, on 08 January 2015 - 07:34 PM, said:

You could have a file download peer to peer system, sort of like Pando Media Booster. Imagine this. Someone in your vicinity running the program with a wireless/wired modem connected to you. You broadcast an "update check". They receive it then broadcast their version and you broadcast your version. If either one of you has a higher version number they will begin to transfer data over.

Alert: turn on your sarcasm detector

So an easy way to let hackers inject a trojan into your computer? Sure, why not! I'd love to hack into some computers and steal their personal info :D

#15 Antelux

  • Members
  • 295 posts
  • LocationSomewhere in the middle of nowhere.

Posted 10 January 2015 - 04:47 AM

I think I managed to have blocks have scripts now.
Any tile/block/item or alike that has a script attached to it will be sandboxed for better client protection.
Trees grow! It's fun to watch. (Not really, you'll be waiting for a 1/1000 chance every half second, 1/500 chance each second)

Almost there!

#16 Bomb Bloke

    Hobbyist Coder

  • Moderators
  • 7,099 posts
  • LocationTasmania (AU)

Posted 10 January 2015 - 05:28 AM

View PostDetective_Smith, on 10 January 2015 - 04:47 AM, said:

I think I managed to have blocks have scripts now.
Any tile/block/item or alike that has a script attached to it will be sandboxed for better client protection.

"Sandboxed" how?

Do they get access to term and events and so on?

That is to say, can/will there be computer blocks?

#17 Antelux

  • Members
  • 295 posts
  • LocationSomewhere in the middle of nowhere.

Posted 10 January 2015 - 04:51 PM

When I say sandboxed, it will have access to some APIs.
For example, the APIs fs or io won't be accessible. However, file writing and reading will be done via the File API.

To get access to events and alike, you would need to make yourself an interface. As for term, any drawing to the screen should only be done in scripts for an overlay.

And lastly, it is (theoretically) possible to implement the whole computerseption thing. I was planning on doing it myself, actually. I'm just not sure if I should have them run on lua, or a BASIC interpreter.

For anyone one who is interested, there is a (As of now, not fully finished) API documentation on my github page. Feel free to check it out every now and then. All the functions there will be available to modders.

#18 cdel

  • Banned
  • 496 posts
  • LocationMelbourne, Australia

Posted 11 January 2015 - 01:17 PM

so excited for this :D

#19 Agent Silence

  • Members
  • 319 posts
  • Location[string "FindMe"]:23143: bad argument #1 to 'returnPos' (vector expected, got nil)

Posted 12 January 2015 - 07:24 PM

Could you port this to CClights2?

#20 Antelux

  • Members
  • 295 posts
  • LocationSomewhere in the middle of nowhere.

Posted 12 January 2015 - 09:34 PM

Sorry if progress has been rather slow lately. On regular school days, I get a freaking ton of homework to do, not leaving me much free time. You can expect to see lots of progress done over the weekends.

View PostRequiem of Silence, on 12 January 2015 - 07:24 PM, said:

Could you port this to CClights2?
I've never used CCLights before, so I wouldn't know how at the moment. Besides, I'd rather finish the game before making a port of it.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users