Hi there, After my dad invested in a real BBC Micro model B to play with, I decided to learn some BBC basic. I found this online IDE called the Owlet Editor (BBC Micro Editor Beta) with thousands of code examples posted by twitter users and recorded from a twitter bot (BBC Micro Bot). Some demos are incredibly impressive! Have a look at the link below.
While figuring out BASIC, I found it was very similar to python, in some ways. I like how functions are in CAPITALS and stuff. You know what, I won’t bore you with the BASICS (pun intended, you’re welcome), but some of these smart tricks are seen all around game dev. These very techniques were used a lot in 90’s programming, and the YouTube channel Coding Secrets show some of the smart programming used in popular video games from Mickey Mania on the Sega Genesis and Sonic R on the Sega Saturn. This video about 3D parallax scrolling in Mickey Mania is seen a lot in these Beeb demos.
(The BBC micro B model, which was and is the most popular model, only has 32k of memory. What’s more is twitter’s character limit, so all of these really blow my mind!)
Here’s my first BBC Basic program. It doesn’t do much, but it shouldn’t:
REM Draw your own cuboid
REM using dimensions in pixels
MODE 2
REM use GCOL for graphic colours
MOVE 640, 512
GCOL 0,7
REM start x and y co-ordinates (bottom left of cube)
startx=480
starty=384
REM these measurements make a cube... even though it hardly looks like one
width=205
lengthx=160
lengthy=128
height=205
length = SQR(lengthx^2 + lengthy^2)
MOVE startx, starty
DRAW startx+width, starty
DRAW startx+width+lengthx, starty+lengthy
DRAW startx+width+lengthx, starty+lengthy+height
DRAW startx+width, starty+height
DRAW startx, starty+height
DRAW startx, starty
MOVE startx+width, starty
DRAW startx+width, starty+height
MOVE startx+width+lengthx, starty+lengthy+height
DRAW startx+lengthx, starty+lengthy+height
DRAW startx, starty+height
PRINT "Cube of"INT(length+0.5)"x"width"x"height"x"
Anyway, thanks for spending your time to read this blog, and if your reading from the future, leave a comment, and like a video of mine (It’s really appreciated!)
And by the way, if you ever have any issues about or with this blog or project, or just want to share your results from it, create a thread in the website Forum. Thanks!
Been experimenting with the Persistence Of Vision Ray tracer and have rendered a few images and animations (note: some GIFs may suffer from minor compression):
The splinefollow example in 3rd person; 20 frames, 12fps, 512×384 (3x size of original)This GIF gives you more of an idea of how many frames were actually rendered. (note this has been reduced by 2 frames for some reason)The splinefollow example in first person, 120 frames, 12fps, 512×384
I don’t take ownership of any of these animations, I just thought it’d be cool to share my renders here.
Anyway, thanks for spending your time to read this blog, and if your reading from the future, leave a comment, and like a video of mine (It’s really appreciated!)
And by the way, if you ever have any issues about or with this blog or project, or just want to share your results from it, create a thread in the website Forum. Thanks!
Developing a discord python bot is easier than you think, and better yet you can host it for free 24/7 with replit.com! Let’s get started!
Create an account or sign in with Google, GitHub or Facebook, or log in to your account. Create a new python repl and here we are.
the replit.com interface
I’m not going to be teaching you any syntax so for writing your own code you’ll need to be a little familiar with python 3.
For those who learn in example, I’ve embedded my commented repl-example bot below, in which you can fork. For ease. Ooh and, if you would like to invite my GameTDB-Bot to your server, follow this link. GameTDB-Bot is probably the only discord bot that can scrape game metadata from Game Title Database sites. It supports Wii, PS3, DS, Switch, 3DS and WiiU games, more being added every day! Current game count as of writing is 37012.
Setup
So lets get set up. Go over to uptimerobot.com, and create an account.
This service pings web pages (make a request) to see if they are available on the internet. Luckily we can utilise this (and the free 50 monitors) and the “Flask” module to create a HTTP(s) webpage that gets pinged from the Uptime Robot service and keeps the replit alive. This is necessary because replit.com shuts down scripts that are inactive for more than an hour, and therefore is needed if you want to run your script 24/7 as a discord bot.
Note: Replit.com’s “Hacker Plan” ($2 a month) get to have their repls running constantly without this, but it’s so easy to setup, why would you pay for something so niche?
Note2: If you get any issues complaining the modules don’t exist, try opening up a command prompt or switching to the shell in replit and installing the modules with the following command:
Make sure you’re working in the right directory (change directory = “cd”) if you’re not using replit.
pip install <module>
“pip install discord”
The above applies to further on in the tutorial. “pip” is the “npm” of python.
keep_alive.py
Pinging our replit will only work if we have a “keep_alive.py” script that runs on start up. It contains a function that uses flask to host a web page using HTTP(s) which our Monitor pings every half-hour. Don’t worry if you don’t get it now, you will in good time. Or check out my commented example repl
Create a new file
Add a new file
Name it “keep_alive.py”
And paste in the following code.
from flask import Flask, request
from threading import Thread
app = Flask('')
@app.route('/')
def main():
return "Do me a favour, visit: https://d1ddle.com"
def run():
app.run(host="0.0.0.0", port=8080)
def keep_alive():
server = Thread(target=run)
server.start()
Basically this will start hosting a web page for your repl and print whatever is inside of return in the main() function (images below)
“keep_alive.py”
Once keep_alive.py is present, and referenced in your “main.py” (look at embedded example at top of page), log into the uptime robot dashboard and click “+ Add New Monitor”
Adding a new Monitor into Uptime Robot
And select the “HTTP(s)” Monitor Type
Selecting the “HTTP(s)” Protocol in Uptime Robot
You’ll be greeted with this screen. Make sure to enter the correct details for your repl like so:
Entering replit details into Uptime Robot
The only things that really matter are your URL and Monitoring Interval (Must be set from 5 minutes to 55 minutes as replit shuts down repls after an hour that haven’t been pinged.) The URL can be found if you run the “keep_alive.py” script (mentioned earlier on) and grab the URL from the dialog box:
The URL from the dialog box created when running “keep_alive.py”
You can test this by opening your browser and entering the URL, but will only work like this if the “keep_alive.py” is present and called from “main.py”.
Testing the “keep_alive.py”
Once Uptime Robot is happy, and you can confirm it works from replit, you’re ready to go! Let’s briefly cover sending messages and move onto sending jokes and memes in the chat in a second edition. Here is a quick example script you can copy-paste and break it down. I find this is the easiest way to learn.
#import modules
import discord
import os
import keep_alive
#defines client and runs the keep_alive.py script
client = discord.Client()
keep_alive.keep_alive()
#if the bot writes the message, ignore it
@client.event
async def on_message(message):
if message.author == client.user:
return
#when a message is sent
@client.event
async def on_message(message):
#if the message starts with 'hello'
if message.content.startswith('hello'):
#send 'hello user!' back to discord
await message.channel.send("hello user!")
That’ll be it for this tutorial, but now everything is set up, running and ready to go, we can try out requesting jokes and memes from websites with JSON. See you soon!
Anyway, thanks for spending your time to read this blog, and if your reading from the future, leave a comment, and like a video of mine (It’s really appreciated!)
And by the way, if you ever have any issues about or with this blog or project, or just want to share your results from it, create a thread in the website Forum. Thanks!
But one thing is missing. That, my friend, is full automation.
With the Non Sucking Service Manager (NSSM), we can install Minecraft Sleeping Server Starter as a Windows service, so we can be sure that our server is ready to play whenever our (server) PC is on.
This is simpler than you might think, but I’ll still take you through it.
Set up
Download the NSSM executable for windows from their downloads page. It should be the latest release (2.24).
Extract it to your server folder.
In the “nssm-2.24\win64” or “nssm-2.24\win32” folder (dependent on your system, should be 64 bit) there should be an executable. Cut it and paste it into the root of your server (with the sss.exe and server jar).
You can now delete the nssm-2.24 folder.
Set up is complete.
Installing a Service
Open an admin command prompt and change the directory (cd) to your server folder root.
Type in:
nssm install "(Your Service Name)"
And it should open up a GUI that looks a little like this:
Non Sucking Service Manager Application tab
Set the “Application Path” to your “sleepingserverstarter.exe” in your server root, and make sure the “Startup directory” is set to your server root folder. You can change these by clicking the ellipses after the text boxes.
Ignore the “Arguments” and move onto the “Log on” tab. Check the Log on as: “This account” checkbox. Here you will have to enter in your username and password to the Windows account log on. I have used an example log on below.
Non Sucking Service Manager Log on tab
And press the “Install Service” button.
Your service should install. Please note that it will only install if the server files are located somewhere only the specified user has access to (like Documents.) If the server files are located in program files for example, you’ll have to tick “Local System account” on the Log on tab and “Allow service to interact with desktop”. However I’m unaware if this’ll run properly without a user logged in.
So open “services.msc” by typing it into Windows search/cortana and locate your service. Select it and start it, either by right-clicking and starting or pressing the start/play button. It should start up the Sleeping Server Starter executable in the background so you won’t be able to see it, but you can connect and join the server as normal from either Minecraft Java or Bedrock!
Services.msc
So I hope you enjoyed this guide to Minecraft Server -ing cross platform and making it fully automatic. I hope you learned something, and if you want more things like this, drop a comment/create a topic, or even something as little as subscribing to my YouTube channel. Gives me a lot of motivation 🙂
After writing this, I tested waking the server from an Xbox One S and some reason after version v1.16.201 the client it thinks over a million players are online. So just wake it from Java/Bedrock PC before joining.
Anyway, thanks for spending your time to read this blog, and if your reading from the future, leave a comment, and like a video of mine (It’s really appreciated!)
And by the way, if you ever have any issues about or with this blog or project, or just want to share your results from it, create a thread in the website Forum. Thanks!
If you’ve read my previous page, which you should have (It’s very helpful), and you’re thinking: I want a binary but I don’t want the source files on my local machine. The developer hasn’t released a build, what can I do? Fear not, for anyone with this stupid question doesn’t have to question anymore! You can build the project online in the cloud for free using repl.it!
Can’t be bothered? Here’s my repl, the binaries are in the /home/mcsleepingserverstarter/bin/ folder. For Linux and Windows.
It’s quite simple. Log in or create an account with google or github. Create a repl, one of your choice that supports shell, and load it up.
Open the “Shell” tab on the right, and type in the following. (Press Enter every line.)
git clone https://github.com/vincss/mcsleepingserverstarter.git
cd mcsleepingserverstarter
npm i
npm run build:typescript
npm run build:linux/win
Builds should be in the /home/mcsleepingserverstarter/bin/ folder.
Anyway, thanks for spending your time to read this blog, and if your reading from the future, leave a comment, and like a video of mine (It’s really appreciated!)
And by the way, if you ever have any issues about or with this blog or project, or just want to share your results from it, create a thread in the website Forum. Thanks!
We have a functioning server that can accept outbound players and players from the Bedrock Editions of Minecraft. But having a server on all day can really wear out a system, not to mention the immense electricity and compute it takes! So this page will take you through installing the SleepingServerStarter Minecraft Server plugin by Vincss and EmerickH.
Sleeping Server Starter runs in the same directory as your server and listens for incoming connections from Minecraft Java and Bedrock (1.16.5 revision, thanks to Vincss and Octoshrimpy!). Once it hears a connection from a client, it will reconnect the player and start up the server. Pretty neat if I do say so myself! We’ll also use the EmptyServerStopper Spigot plugin to safely stop the server after all players have left. It does this after a specified amount of time.
This guide page will take you through installing the program and plugin as well as re-building /compiling it if you want to change the sleeping-state icon for the Server. I’ll be covering how to compile for windows 10. (It was easier than I thought!)
The Pre-compiled Binary
The pre-compiled binary for 1.16.5 is very easy to use, just download, extract and run in the same directory as your server. In previous versions, it was required to recompile the Binary to change the server icon, however this is no longer needed! Woohoo! But I’ll still be covering how to re-compile to support setting up for older server versions. Once it generates a
sleepingSettings.yml
you can edit it with notepad and should look similar to the following. It may look different dependent on the version of the Program your using. This version is 1.16.5, the Bedrock support update.
# settings for SleepingServerStarter
serverName: SleepingServer, waiting for his prince...
serverPort: 25565
bedrockPort: 19132
loginMessage: ...Waking server up, come back in a minute...
serverOnlineMode: true
webPort: 0 # 0 to disable web hosting, 8123default dynmap
webDir: plugins/dynmap/web # dir of dynmap web
startMinecraft: 1 # 0 to disable
minecraftCommand: java -jar spigot.jar nogui
# version: 1.15.2 # Force to a specific minecraft version
# Use a custom icon 64x64 png converted using https://www.base64-image.de/
# favIcon: (removed because it was too long)
To your Minecraft server’s java command. Earlier in this guide we created and added a launch batch file. I’ve re-noted this above, for our sanity.
You could also set:
serverName: (Your Server Name)
to your server’s name. Plus, (new feature in the 1.16.5 release) you can change your server’s icon in the sleepingsettings.yml without recompiling. Just upload your .png to https://www.base64-image.de/ and copy the <image> code into the
favIcon: (Your base 64 converted PNG icon - really long jibberish)
entry. Make sure to remove the “#” before the entry, so that it’s not commented out.
The only downside to the Binary is that you have to manually start it every time it crashes, stops or the OS reboots. But we can circumvent this! So next guide page I’ll show you how to install it as a Windows Service, so that your Minecraft server is up and running if the computer server is powered on, and even if no users are signed into the PC. Neat, isn’t it?
Once SSS (Sleeping Server Starter) is setup, we’ll also want to install the ESS (Empty Server Stopper) plugin from here. Download, place into your plugins folder and restart. It’ll generate an Empty Server Stopper folder in /plugins/ and a config.yml inside. The only parameter defaults to 60 and is measured in minutes. Change this if you like. It’ll stop the server (Defined) minute(s) after the last player leaves.
So now that all that is nice and setup, check if it works as you like. If you’ve followed my previous guide pages, you should be able to connect and start the server from Java 1.16.5 (Your server IP – inside network local IPv4, outside network public IPv4) port 25565, and Bedrock v1.16.100 and v1.16.200 (Your server IP) port 19132, if you have followed my previous guides and left most settings default. GeyserMC must be installed.
If you have any problems, drop a comment or create a topic in the forum. To find my previous guide pages, head to the Projects section in the Menu (up top) and find the page.
I’ll show you now how to recompile for Windows and Linux on Windows, just in case you want to change the Sleeping state Icon on older versions. Please note that waking the Server from Bedrock on SSS older than 1.16.5 will not work. Bedrock waking support was added in the 1.16.5 update.
Ok, here is step-by-step recompiling the SSS 1.16.5 Bedrock update/latest release.
Open Admin cmd
cd (Project folder)
git clone https://github.com/vincss/mcsleepingserverstarter.git
cd (Project folder/mcsleepingserverstarter)
If you don’t want to install Git, just download the Source Code (zip) from the releases page and extract it to your (Project folder).
npm i
You might get an error if you are not using stable releases of Node.js. I had to uninstall a dev release and reinstall a stable release. Then re-run “npm i”.
npm start
Allow Node.js through your firewall. Once you can confirm it works, close the cmd.
Re open an Admin cmd.
cd (Project folder/mcsleepingserverstarter)
npm run build:typescript
npm run build:win/linux
Binaries should be in the (Project folder)/mcsleepingserverstarter/bin/ folder. You’re free to modify the source code as you like, and then re-compile the binary. Make sure to credit the project though.
Re-Compiling previous releases
Download the source code you want from the releases page.
cd (Project folder/mcsleepingserverstarter-1.16.5)
npm i
npm run build:typecript
npm run build:win/linux
And that should be short instructions for re-compiling binaries for SleepingServerStarter. I did overexplain 1.16.5 a bit to start with, but I thought I might as well have as it is the update most people will use. It has been converted to typescript, so will require being built using
npm run build:typecript
which will build it in javascript (Project folder/mcsleepingserverstarter/build/). Then run
npm run build:win/linux
to compile a binary. DO NOT change directories to do this. Please. <:)
Next guide page I’ll be taking you through installing the binary as a Windows service, so you only have to worry about your server being powered on!!
Anyway, thanks for spending your time to read this blog, and if your reading from the future, leave a comment, and like a video of mine (It’s really appreciated!)
And by the way, if you ever have any issues about or with this blog or project, or just want to share your results from it, create a thread in the website Forum. Thanks!
It’s quite annoying when major billion dollar corporations don’t want consumers to mix and match their video game products. Specifically Minecraft: Bedrock and Java Edition.
BUT,
The GeyserMC Minecraft server plugin will fix that! GeyserMC is a proxy server that will accept Minecraft Bedrock connections, translate them and send them over to the Java server. It basically emulates the Bedrock player on the Java server with the use of floodgate. Geyser will only create the bridge, but floodgate will grant you access. Because the Java server uses different methods of verification than Bedrock, floodgate will verify the Bedrock user and also allow that Bedrock user to connect to the server. Best of all, it’s all as easy as installing a plugin!
Before you continue, make sure you have followed my previous guide page, or have a working spigot/paperMC server running fluidly. If you want to set this up publicly (to play with friends), make sure you have port forwarded the correct ports and protocols on your router, as explained in my previous guide page under the “Port Forwarding” section.
Installing
With that out of the way, download the GeyserMC spigot plugin from jenkins, and the floodgate-bukkit (for spigot, paperMC, they are bukkit forks) plugin, from jenkins too. Put these in your plugins folder of your server. Restart the server, config files will be generated, and you should be pretty much ready to go. When you join the server from Bedrock, your Gamer tag will have a asterisk (*) prefix, which defines you as a Bedrock user. This can be turned off by changing the
username-prefix: "*"
to nothing in the “config.yml” of floodgate-bukkit in the
plugins/floodgate-bukkit/config.yml
directory. Geyser also has lots of config options, but I wouldn’t recommend changing these as they come pre-optimised and mostly for advanced use.
I will soon be writing up my next page of the guide, which will be integrating the Sleeping Server Starter plugin, which will wake up the server when someone attempts to establish a connection. Stay tuned!
Anyway, thanks for spending your time to read this blog, and if your reading from the future, leave a comment, and like a video of mine (It’s really appreciated!)
And by the way, if you ever have any issues about or with this blog or project, or just want to share your results from it, create a thread in the website Forum. Thanks!
Minecraft Servers can be hard and confusing and can completely change depending on what your using it for. That’s why I’m making this guide to explain and take you through creating a PaperMC Minecraft Server designed for 1- 20 players.
Downloads are in requirements section!
Paper, Spigot, Bukkit, BungeeCord and Vanilla
Each of the server types above (and below) were, at some point, open-source (except for Vanilla – that comes from Mojang).
Bukkit Bukkit is an API (Application Programming Interface) which provides third party developers with the ability to add their own code to Minecraft through the use of plugins. This has completely changed how Minecraft servers are managed and has exponentially expanded their capabilities. However, Bukkit is no longer open-source.
Spigot While a fork of Bukkit, Spigot is an open-source Java project that lets users run their own Minecraft server and add plugins to extend the possibilities of their server. There are over 100,000 Spigot servers in existence today. This makes Spigot one of the most stable and diverse Minecraft servers available.
PaperMC Paper is the current standard for most servers and is a fork of both Bukkit and Spigot. Paper is a high performance fork of the Spigot Minecraft Server that aims to fix gameplay and mechanics inconsistencies as well as to improve performance. Paper contains numerous features, bug fixes, exploit preventions and major performance improvements not found in Spigot.
Vanilla Vanilla is the plain Minecraft Server provided by Mojang. While it has features and bug fixes of its own, it isn’t performance optimised or capable of plugins (you, won’t want to use this).
Bungee Cord Bungee Cord is a proxy server designed to house multiple servers running in conjunction. Like many servers like Hypixel and Mineplex, Bungee allows the load of thousands of players to spread across multiple servers and machines. Sometimes called the Bungee Cord network, Bungee Cord is a unique server type used by thousands of Minecraft server owners. It allows users to easily connect other servers that are running on Spigot or Paper together, creating a network for players to use.
Requirements
Minecraft Servers, especially Java ones, can be very Memory and Compute hungry. My recommended Minimum is listed below and what I use too. You could use an old PC you found in your garage or loft etc, it doesn’t have to meet these requirements! These are mine, and who am I to tell you that you can’t run a server on Windows ME?
Intel or AMD CPU clocked at Minimum of 3 GHz. i5-4590 is the model I use.
3Gb spare RAM. This doesn’t include how much Windows 10 uses. Allow 1Gb at least for Windows 10 to run. I use around 7Gb RAM.
40Gb Disk Space – SSD or HDD will make a difference when booting. I use a 128Gb Western Digital SSD.
WAN Wired-Ethernet connection with a Minimum of 5Mbit/s upload, 3Mbit/s download. Go to SpeedTest. Mines a bit overkill, right now a 70Mbit/s Download, 18Mbit/s upload
Preferably a 21st century OS; Ubuntu or server optimised linux (preferable for advanced users), Windows 10 (Server preferable for majority of users), MacOS (Terrible for this Job. Don’t bother. No support at all. I’m sorry 16.54% Mac OSX users!)
You could use an old PC you found in your garage or loft etc, it doesn’t have to meet these requirements. There’s nothing stopping you from running it on an Intel 486, as long as you can run Java! Do take it with a pinch of salt though, because I can’t guarantee the best “lag less experience” (I’m not Bill Gates, you know!).
Server Jar Setup
For the purpose of this server, we are going to use a High Performance PaperMC Minecraft server. Paper usually likes servers to stay updated to the latest versions, and older paper builds are harder to find on their site. Alas, at the time of writing, the latest version is 1.16.5 build #497 dated on the 24 / 02 / 2021 – Here. The versions within the same release should be OK to use, for example right now, 1.16 plugins work fine with 1.16.5. However its always recommended to update everything if you can.
Download the Jar, and put it into your working directory. When you first run it, you won’t see anything much, because it generates an EULA.txt in the folder, and you have to open it and set:
eula=true
Then save. When you launch it again, it’ll open a GUI and do some stuff. Let it boot and generate the world. It might crash though, this is because it only allocates 500Mb RAM to itself. Minecraft Servers need at least 2Gb RAM to run playable, and if you don’t have at least 2 spare in your system, you’ll need some. We can fix this with a
launch.bat
file. Launch batch files specify how to launch the Jar file and with how much memory. To create a .bat, first right click folder explorer or desktop, hover over New, Text Document. Rename it to “launch.bat”. Right click it, and click Edit. My launch bat contains this line of code:
This code will launch Java with 6144 Megabytes of RAM without a GUI. You can use this, but make sure to change the 6144 on -Xmx to the maximum RAM you want to launch with, and -Xms to the minimum (if java crashes trying to launch, try setting them to the same amount). Multiply how much in Gigabytes you want to use by 1024 and you should get the exact Megabyte equivalent. IE: I want to launch with 4Gb RAM, so I multiply 4 by 1024: 4 * 1024 = 4096
Also, don’t forget to change “paper-1.16.5-483.jar” to the name of your Server Jar, and make sure the launch.bat is in the same folder as the jar. Once set, double click the launch.bat, and a command prompt should pop up and start the server. If you want a GUI (keep 200Mb spare it takes up a spare amount) delete the “nogui” off of the end.
Connecting to the Server
You can open a new command prompt and type in “ipconfig” without the quotes and find your iPv4 address. This is your local address of your machine within your local network. Log onto your gaming machine and Direct connect to your local iPv4 of your server. If you’re on the same machine, just type in “localhost” or “127.0.0.1” without the quotes.
Once you connect, if you have a decent setup you should have a playable local Minecraft server. If you don’t like how it looks or works, don’t worry! This is merely the tip of the mountain (yes a mountain!). Everything and more you can think of has a setting, and can be tweaked. Everything and anything from Bedrock support, to mods, and even where sheep spawn, can be modified. Ok, so getting it perfect might take some time, but what if you want to play with friends? Now here comes the fiddly bit.
Port Forwarding
Every router is different. They’re just like OSes, what should be the same place looks completely different. Or sometimes they’re just rubbish. It’s similar with routers. Every router will look different, and this is the place where most people get stuck. If you’re in the UK, it’s most likely you use BT broadband, TalkTalk or Virgin. Even if you don’t, your router will still probably be made by Huawei. Open a browser and go to your local IP root. For me, this is 192.168.1.1 It will open up your router’s GUI. If you can, you’ll want to first reserve your server’s IP address, which I can do from the devices section on my router. For privacy I’ve blurred out the personal stuff. Even if it is only local.
Back at the home page, there’ll either be an advanced section, or a port forwarding section, something of the similar, but we want to port forward from outside our network, on port 25565, to inside your network and your server’s reserved IP. You can see that I’ve pointed this out in the image above. If you can’t reserve an IP, just make sure you do the next bit, and if your server’s IP changes, you’ll have to change the rule. Then, add a rule to forward the external 25565 to the internal 25565, with the internal host as your servers IPv4. The External Host is the connecting player, so leave this blank.
Add an name for your Service, Leave the “Service” type blank or as “Other” as shown above. Make sure the protocol is TCP-UDP. This is important. Keep in mind I’ve filled this out for the Java edition. If you want to use the Bedrock-Java GeyserMC proxy, create another rule with the same content but replace both ports with 19132, and change the protocol to UDP only, as this is the Bedrock port and protocol. Save your changes, and make sure they are applied. Below is an image of each of my rules. I have 3. One for Java, one for Bedrock-Geyser, and one for Dynmap, a dynamic live map plugin hosted on the server. I might get into plugins a bit later in another post, but for now I’ll keep it relatively simple.
Once that is done, on your server search “my ip” in search engine of your choice, and if your server is running, your friends should be able to join with that public IPv4 address.
I hope my first Minecraft Server post was helpful, and in the future I will definitely be posting about how I managed to run my server as a Windows service, and how I got the server to “sleep” while it was not being used. I’ll also create a post purely about some of the plugins I’ve used and how to use them. So stay tuned for that!
Anyway, thanks for spending your time to read this blog, and if your reading from the future, leave a comment, and like a video of mine (It’s really appreciated!)
And by the way, if you ever have any issues about or with this blog or project, or just want to share your results from it, create a thread in the website Forum. Thanks!
Believe it or not, the movements from this animation were sourced from me, prancing around in front of a Kinect 360 in my conservatory. This is thanks to an open-sourced program called kinect-openni-bvh-saver, which can record Kinect body tracking into a .bvh, which can be applied to rigs like the Mario in the video.
Installation and Use
Download the bvh saver (for windows) here (meshonline.net) – should be named mocap-x86-binary.zip and be 106MB in size – unzip it into a safe place (documents, etc). Run the “mocap.exe” inside of the “bin” folder from root, and a cmd and window should pop up. If not, make sure your Kinect is plugged in. This window shows the camera feed as well as skeleton data. The .bvh file starts recording as soon as a skeleton is found. Once the task/window is closed, the .bvh is saved to the “data” folder in the root of the installation.
I assume something similar is achievable with Kinect Studio, but it didn’t quite fit for avateering (I think :/ – pls leave a comment if you know anything about this) in the time frame I wanted.
The model was only a mesh when I imported it, but it didn’t really matter because the .bvh creates an animated rig when imported into blender anyway. So do some automatic weight painting, and if something is wrong you’ll have to manually paint. For example, Mario’s yellow buttons are not the same mesh as his overalls and were some reason auto weight-painted to his wrists. If you have no clue what I am talking about, learn more about weight painting in blender.
Once your animated rig is painted onto your model and it looks ok, you can export it. Want to export as an mp4? Here is the guide I used. More info on exporting animations can be found in the blender documentation.
That should be pretty much it! Record your movements and transform yourself into whatever character you like!
Anyway, thanks for spending your time to read this blog, and if your reading from the future, leave a comment, and like a video of mine (It’s really appreciated!)
And by the way, if you ever have any issues about or with this blog or project, or just want to share your results from it, create a thread in the website Forum. Thanks!
An unofficial XNA Game Studio adaptation allows for XNA programs to execute on Windows 10.
The custom install allows Visual Studio 2017 to build the XNA Game Studio programs. Of course, I used the Kinect 360 to build an Avateering demo, which is basically a model that maps to your body movement in real time, and this is how it was done.
What is XNA Game Studio?
Microsoft XNA is a freeware set of tools with a managed runtime environment that Microsoft developed to facilitate video game development. XNA is based on .NET Framework, with versions that run on Windows and Xbox 360. XNA fully supports Kinect 360, and so when I wanted to mess with it I could either:
Write my own program with Kinect 360 support (from scratch)
Use XNA in some way
And that’s when I came across these.
Using Visual Studio
First you’ll need the Kinect 360 SDK from Microsoft. Version 1.8 is the latest compatible with Kinect 360. Don’t forget the Developer Toolkit, which includes examples and demos you can try. This also involves the files for the XNA Avateering demo mentioned earlier in the article.
Your Kinect 360 will also need an adapter, which allows the Kinect to be connected up to Windows via USB. There are also versions of the Kinect designed with this adapter built in, they are called “Kinect for Windows”. Either will work with this.
A few GitHub Gist projects (here and here) describes how to set this up. More to-the-point instructions can be found here (flatredball.com) and here (ridilabs.net). I used the flatredball guide to set up and ended up with the YouTube clip above. It was pretty cool.
However I couldn’t for the life of me figure out how to replace the avatar. You know, the funky warrior guy in the video. I could adjust scaling but that was it.
I really didn’t want to sit down, get a copy of 3DSMax and a Windows 7 VM (for convenience and elimination of any compatibility issues) and do this properly. I might sometime in the future but this MoPred blogger is quite vague. He provides screenshots and proof that it works but I just need the will power to learn C#.
The video above shows me compiling the project again. The project builds, but I didn’t have my Kinect plugged in. Its just an example of what it might be like.
Anyway, thanks for spending your time to read this blog, and if your reading from the future, leave a comment, and like a video of mine (It’s really appreciated!)
And by the way, if you ever have any issues about or with this blog or project, or just want to share your results from it, create a thread in the website Forum. Thanks!