#Text-based Game
1 messages · Page 1 of 1 (latest)
I'm having trouble visualizing what this would look like 🤔 do you have a mockup or any examples?
What would the screen/game window look like to the player?
(Once I get the idea, I might have some insight for ya!)
Let me find my layout I created 🙂
Wow, I some how misplaced my PSD. I will mock something up quick.
Wait found it. lol
Okay this is the rough layout idea I had. I wanted a text based adventure game with some UI that makes adventuring interesting and visual.
This is one of many story ideas I have planned, which will affect the layout some depending on the type of story it is. This is more RPG I'd say.
Ooh neat! Thanks for sharing, this helps a lot!
Thanks and thank you for helping. I love storytelling and I want to focus on that above all else. Which is why I want to get this system going so I can do that. Programming and telling stories are not the same mind set and I hate going back and forth lol
So I'm thinking you'll want to practice with at least some of the following in Unity/C# to start:
- Unity UI (uGUI) as described here: https://docs.unity3d.com/Manual/UIToolkits.html
- RectTransforms
- Anchor percentages vs. (screen pixel) position
- TextMeshPro for text
- Images
- Sliders
- Buttons
- Scroll Views (ScrollRects + Scrollbars)
- RawImage + RenderTexture (asset) + Camera setups (allows you to render what a 2nd camera sees into a texture that shows in your UI, which may or may not help in visualizing your map data)
- Data Structures
- Object-Oriented vs. Component-Oriented Programming (Not saying use 1 or the other, you can take advantage of both including clever use of inheritance and components)
- Encapsulation in C#
- C# getter/setter properties (instead of directly-exposing fields (variables))
- Programming design patterns (awesome resource here, despite being written in C++, it is VERY applicable! https://gameprogrammingpatterns.com/contents.html)
- Command pattern (allows you to describe actions in the form of data, which would be useful in describing your player's/characters' actions)
- Serialization in Unity including topics such as:
- MonoBehaviours vs. ScriptableObjects
- [SerializeField]
- [Serializable]
- OnValidate (message, usable in both MonoBehaviours and ScriptableObjects alike)
- ISerializationCallbackReceiver (interface)
- Saving and loading game state
- JSON (super easy in Unity already with JsonUtility and EditorJsonUtility classes)
- C# TPL async/await to keep your app responsive, and not freeze while saving/loading files
- C# Task.Run(...)
On a side note, I also love RPGs (action RPGs typically) and I've been looking up stuff on YouTube like "how to make a top-down 2D pixel art RPG" and such, just to see different ideas and programming approaches to compare to
So that could also help you too, even if you know what you're doing!
Yes! I've made a few of these in the past (prototypes anyhow) and they are really fun. I think back to the original Zelda for inspiration because it was simple and brilliant. I know of a few out of the box solutions, but again, you end up fighting the base engine quite often to bend it to your will.
Lastly, the Unity docs are my friend.
Get good at looking through them and it'll be a LOT easier to master Unity!
They have the Manual, written in plain English:
https://docs.unity3d.com/Manual
They have the Scripting API, which details all the API members (names/descriptions of classes, methods, parameters, etc.)
https://docs.unity3d.com/ScriptReference/index.html
They also have Package-specific docs, which can be really helpful working with certain packages for advanced topics like Addressables, Cinemachine, Test Framework).
Usually what I do is search up (on Google or elsewhere) "Unity <insert package name> docs" and the 1st result will bring me there 😂
For example, if I Google "Unity Cinemachine docs", I'll get this page:
https://docs.unity3d.com/Packages/com.unity.cinemachine@2.3/manual/index.html
Lmao that's funny! I just started looking at this tutorial series (~95 episodes) about making a Zelda-like game
Welcome! This is the intro to a new series I'm making about how to make a top down action RPG similar to the Legend of Zelda. This video contains an overview of the project, as well as a discussion of assets. Enjoy!
Tiled: https://thorbjorn.itch.io/tiled
Tiled2Unity: http://www.seanba.com/tiled2unity
Art Assets: https://opengameart.org/con...
So yeah!
That is all™️! (for now)
Goodluck with everything 😄
Zelda is still my favorite lol a game you can pick up and put down whenever that still holds up this many years later. Just brilliant.
Right!
Pokemon did that for me too. I've been back on MapleStory lately, and was addicted to RuneScape for years
Pokemon is amazing. I play them and the clones lol
Thank you for the help! I'm going to dive into this and see what I can dig up!
Hah that's awesome, and absolutely! Glad to help,
I usually try to start describing my game with the appropriate data (a "data-driven" approach).
Once I have the data, then I can start rendering/drawing it to the screen however I see fit, including adding controls for the player to start interacting with it!
What do you mean?
So in your example, I'd look at what data I'd have to represent first, without any visuals at all.
Nothing about rendering, graphics, drawing, etc.
You have:
- A party
- One or more characters
- Each character has a name
- Each character's status (HP/SP/EXP)
- A story, including a sequence/list of strings
- The current day and time
- The player's funds
- The player's (or each character's) inventory
- The player's alignment in the story (if I'm understanding correctly)
- Maps (like The East Woods, etc.)
- etc.
Then I start breaking them down into simpler parts, and deciding how to best represent the data in Unity
For a very basic example, I might use this to represent all the different text that appears in a single map:
[CreateAssetMenu]
public class MapStorySequence : ScriptableObject {
[SerializeField] private List<string> values = new();
}
But of course, I don't break down the entire game's data at once.
I do this in steps, so I can just get a quick prototype up-and-running
Whatever's most important, I'd start thinking about how to best represent that data
Once you got the data, you can start actually doing stuff (showing it to the player on-screen)
If that doesn't help you though, sorry. 😂
Just the way I happen to work!
Ohhh I like it!
It makes sense and a better way IMO to start. I always start with systems then end up adding attributes later lol
I will try this concept out!
I need to be better at the planning part. I get too excited and dive in, which results in a lot of rebuilding lol
Haha ahh yeah, same!