Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411641 Posts in 69394 Topics- by 58449 Members - Latest Member: pp_mech

May 14, 2024, 03:33:43 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsUnknown Chaos Playground
Pages: [1]
Print
Author Topic: Unknown Chaos Playground  (Read 630 times)
LNitewing
Level 0
*


The Insane One


View Profile
« on: April 25, 2016, 05:32:02 PM »

Update (02/23/2017):
This project was originally a playground for learning how to do things and how things work. It had a time where I thought of making it into a proper game, but that time has passed. I've recently renamed the project to 'UCPlayground' because it's once again only a playground for me to learn how things work. Read the later posts for more details.

Unknown Chaos
Unknown Chaos is an RPG with Hack and Slash elements. It was and is designed with minimal to no goals or plans. Normally this isn't a good thing for various reasons, but originally being a learning playground makes it fine in my opinion. It gets its name from what it was designed for as this type of development can be chaotic due having no defined goals and with the plans, its future remains unknown.

A Bit of History
I started the project initially toward the middle of October in 2014, but didn't get anything done until the end of December 2014 and worked on it while I could. It originally was designed as a stream of consciousness programming.
"I'm thinking of just starting a 2D RPG with no planning/goals and seeing where it takes me, ya know, just for fun. Tongue" -- Nitewing, October 2014

I started the project using Unity3D's 2D engine as my platform because I had heard many things about it and had never used it at that time. Unfortunately for the development, I was also pursuing a degree which took up most of my time. I mention this because it was during that time that I has a class project that actually used Unity3D's 2D engine as well. I was completely new to component driven developing so I was constantly fighting with the engine over everything.

When working with Unknown Chaos I would simply just implement or work on whatever I decided to do for that day. This could vary widely and be completely different than the previous day unless I wanted to work on the same thing. As I was implementing an inventory system for the game, I started to get burned out over fighting with Unity3D. I took a few steps back and pondered the dilemma and considered the very important decision over its future. Would it enter a sort of development hell and arrive at the graveyard so many of my projects ended up in or would it be resurrected in another engine and continue onward? I made the decision to restart it using Unreal Engine 4's Paper2D. I didn't get very far before I realised it wouldn't produce what I would like without a lot of additional effort in its current early access state. Instead, it was resurrected a second time as a 3D game and I started on that. I spent a few days trying to get multiple characters to use the same set of animations and look correct/good to no avail. Then it hit me that I was going about it the wrong way and that my initial thought process would need to scaled way down. I was thinking along the lines of what teams and even AAA teams accomplish, but I'm only a single developer and programmer at that.

The Future of Unknown Chaos
I've noticed that I typically set myself up for failure by trying do something way above my head or above my skillset. However, it's what I learn and the skills I acquire during this process that I find to be more important. Thus I fail in the technical sense, but I don't really fail because I still learn from the process. With that being said, Unknown Chaos is sort of that process right now.

It will be a 3D RPG with hack and slash elements. It'll probably be more of a tech demo of things that I've learned how to implement than a game, but I'm sure I can make some sort of playable game out of it in the process. I'll continue to go with the goalless/planless style of implementing what I feel like during this process. I'll update this when I have more information.

Here's to a new start of a project of learning that will hopefully get finished! Grin



Finally, with everything being said, I welcome criticism, feedback, and questions at any stage and will try to reply/answer them when I can. I'm always eager to learn new things or new ways to do those things!


Previously Established Features
I'm not really one to completely start over so these will be converted over to the 3D counterpart from the previous 2D counterpart.
  • Player Movement
  • Character Creation
  • Data Persistence
  • UI for the player, character etc. frames
  • Enemy Spawning
  • Basic Targetting
  • Inventory System
« Last Edit: February 23, 2017, 02:17:37 PM by LNitewing » Logged
LNitewing
Level 0
*


The Insane One


View Profile
« Reply #1 on: April 26, 2016, 11:36:40 PM »

I decided to add a few screenshots from when I was working on it in Unity3D so these screenshots were from an earlier point in testing to show proof of concept so-to-speak.

Item Tooltip


Inventory with stackable and splitable items


Enemy spawned at a spawn point with nameplate


Basic Targetting (Shrunk for better fitting here; Click it to go the Imgur page for full size)


Player and Character Frames


Any further screenshots will be of the new project. Wink
Logged
LNitewing
Level 0
*


The Insane One


View Profile
« Reply #2 on: February 23, 2017, 04:18:23 PM »

I realise I haven't been on in quite awhile, but I'm still here! I've been working on the previously known Unknown Chaos project off and on. I've recently renamed the project 'UCPlayground'; the name all spelled out was too long for the engine to handle so I shortened it. Of course it's only known as the shortened named internally, it's known as 'Unknown Chaos: Playground' sometimes with and other times without the colon. I renamed it due to the fact I was actually using it as a sort of sandbox, a playground you might say. I've been using it to learn how to do certain things and how the systems work together for a rpg-like scenario.

The majority of the time I was working on it, it was porting it from Unity 5.1 in 2D to Unreal Engine 4.12 in 3D. The way UE4 does things is different than Unity so there were some challenged along the way. In the Unity version I had a hierarchy for entities with each one providing more functionality such as a name, level, vitals like health etc. This type of hierarchy wouldn't work exactly the same in UE4 due to inheritance. In Unity, Entity was essentially a base class just deriving from MonoBehaviour. The class would be for all entities that I wanted (characters, destructibles, spawnables, etc.). Now in UE4, there is already an established hierarchy so having UEntity derive from UE4's base UObject would cause problems. A character is an entity but it needs the functionality from ACharacter as well. It can't be both at the same time without multiple issues. In the end, I refactored how things worked to fit the UE4 style more. The base entity class derived from ACharacter meaning all entities are actually characters as well. This might change if/when I decide to write my own movement component to mimic the usefulness of the UCharacterMovementComponent.

I wanted the functionality from the previous hierarchy to be more modular in the new version, so I refactored them into UActorComponents. The derived classes of AEntity currently create and set them up as needed, but more or less they can be used anywhere to give something a certain functionality. For example having a barrel with a name using the UEntityComponent.

I added a MMO-style input system and camera control system that has WoW-like functionality. It's still quite rough around the edges but works for the most part. The only not implemented at the moment is running when both the left and right mouse is down.

The final thing I've been working on so far has been draggable widgets and an inventory system with drag/drop functionality. The item system port from Unity to UE4 was a big change. In Unity I was using SQLite and loading the items into a in-memory database using the marvellous reflection system in C#. However, this wouldn't work in UE4 and I was planning to change the save system anyways. So in UE4 items are saved using json and the items are added to an item database. Although it's still there, the item database serves a completely different function now. There are no in-memory references to the items like there was previously. Instead once the items save file is loaded, it's parsed into its many sections and the item's sections are stored in the item database as their json strings. When an item needs to be created, it takes the data in the json for that item and creates it. I figure this would be a better system than before, especially how the item system is designed and the potential for having lots of items in a game.


All draggable widgets currently implemented.


Base tooltip structure


Properties on the tooltips only show if necessary

Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic