A downloadable Unity Package

Download NowName your own price

A first-person character controller & game controller system for emulating the core game-loop of the bitsy engine in Unity.


Goals:
1. Emulate the core game-loop of the bitsy engine in a 3d environment.
2. Provide an easy framework for "walking-simulator" games in a 3d environment.
3. Help to lower the barrier of entry into game development.


To import...
- download this package,
- open Unity,
- click Assets > Import Package > Custom Package,
- then navigate to where you downloaded this package.




Rough Documentation


How To Use Bitsy-Like3D

The bitsy-like package comes with 4 folders.
-'bitsy-like' contains the scripts that handle interaction and the core bitsy-like gameloop.
-'First Person Drifter - Modified' contains the scripts for the character controller. These were originally written by @torahhorse.
-'Fonts' contains a pixel-style font called 'Press Start 2P' that is used to emulate the feel of the bitsy font.
-'Prefabs' contains the player controller prefab.

Player:
To get started, just drag the 'Player' prefab out of the 'Prefabs' folder into your scene.
---

NPCs / Game Ending:
Open the'Scripts' folder inside the 'bitsy-like' folder and find the 'InteractbaleObject.cs' script.
This script needs to be on any object that you want the player to be able to interact with (drag & drop onto an object in the scene view).

Once the script is on the object, you will see a few options.
-The first is a checkbox called 'Is Ending'. If checked, interacting with this object will end the game.
-The second is called 'Dialogue'. Any text in this box will appear when the player interacts with this object. 
If the 'Is Ending' box is checked, the text in 'Dialogue' will appear on the ending screen.
---

Beginning Text:
The text that appears before the game begins can be set by:
1. Clicking on the dropdown arrow next to the "Player" object in Unity's "Hierarchy" tab.
2. Clicking on the "Player Camera" object inside the "Player" object.
3. In Unity's "Inspector" tab, find the text box labeled "Start Text".
---

Extending the InteractableObject Script:
The 'InteractableObject.cs' script has a field called 'custom script'. You can use this field to call custom behavior beyond the basic text and ending commands.

To use this feature, you must first create a custom script with a method called 'Interact()'. The 'InteractableObject.cs' script will call this method to initiate
your custom code. Next you must add your custom script as a component of your interactable object. Finally you must drag your new custom script component to the 
'custom script' field of the 'InteractableObject' component.

This can be used to set variables, toggle animations, play sounds, etc.

There is a blank custom script template (BlankCustomInteract.cs) located in bitsy-like > Scripts > Optional. 
This script contains the most basic version of a custom script.
---

Audio:
You can add audio to objects by adding the AudioFromObject.cs script found under bitsy-like > Scripts > Optional.

Add this script as a component of your interactable object.

If the audio should be played when your scene loads and the player shouldn't be able to stop/pause it, simply add your audio file and select the 'autoplay' checkbox.
If the audio should be played/stopped with bitsy-like's default user interaction:
1. Make sure InteractableObject.cs is already a component of the object.
2. Drag the AudioFromObject component of your object to the correct input box in the InteractableObject component.
If you plan to handle audio interaction through a custom script, simply call the AudioInteract() public method from a component reference in your script. (though this 
AudioFromObject script may be redundant if you are already writing a custom interact script. you may get better performance by manipulating an AudioSource component yourself.)
---

Customization:
The 'InteractWithObject.cs' script on the 'Player Camera' object has two customization fields
-'Interact Distance' controls how close an object has to be before the player can interact with it. This number is roughly in meters.
-'Interact Button' is the name of the Unity input that the player should use to interact with your world. Change inputs under Edit > Project Settings > Input.

The 'Player Camera' object contains a script by @torahhorse called 'HeadBob.cs'.
This script can add a neat little head bob effect to the camera as the player walks around.
It is off by default, but you can turn it on by clicking the checkbox next to its name in the 'Inspector' tab.

There is a slight fade-in effect on the intro textbox and when the player first enters the 3d scene.
This is controlled by the script called 'CameraFadeOnStart.cs' where you can modify the fade color and speed.

---------------

Recommendations

When the player reaches the final, ending textbox and presses the interact button, your scene will reload similar to the way that a bitsy game reloads when it is finished.
There are two things to note here:
1. There may be a slight lag as your scene reloads. The bigger your scene, the more time it will take.
2. If you have 'Auto-Generate Lightmaps' set on, your scene will render without light data when you click to reload from the ending.

For issue #1 the recommendation is to keep your scenes small for this version of Bitsy-Like3d (unless you roll your own loading screen or dynamic loading system). 
I do not have a system in place to let the player know that things are happening when your scene is loading.

For issue #2 the recommendation is to turn off 'Auto-Generate Lightmaps' and manually bake them if you make changes to your scene.
You can turn of the auto-bake by clicking Window > Lighting > Settings then unchecking the 'Auto Generate' check box at the bottom of the lighting tab.
If you want to manually generate lightmaps afterward, all you need to do is go back to the bottom of the lighting tab and click the 'Generate Lighting' button.
The amount of time it takes to generate will vary depending on how many objects & lights you have in your scene.

---------------

Development Roadmap

-Items: objects that can be picked or collected.

-Variables: a no-scripting solution to adding variables to your game like you can in the Bitsy engine.

-Multiple Rooms: a no-scripting solution to loading a new room / scene.

-Complex Interactions: modify the 'custom script' behavior to be able to send arguments from the InteractableObject script to a custom script.

-Better Documentation

-Code Cleanup

Download

Download NowName your own price

Click download now to get access to the following files:

bitsy-like_2019-1.unitypackage 76 kB

Development log

Comments

Log in with itch.io to leave a comment.

I just found this and I love the idea. Thanks for making this!

no problem! If you try it out, let me know if you run into any issues.