So I'm taking an entrepreneurship course at my school, I didn't actually expect to get any good advice from it, to be honest. But I learned something quite nice.
It's a mistake to gamble a lot of time and effort into one project that you're unsure is going to succeed. Instead, It's a much smarter idea to complete many minor projects to get a feel for the craft, the marked, etc.
I've done this to an extent, but not as extreme as I've seen. I have seen people pour in thousands of dollars into their first games praying to the lord it will succeed, and when they fail, they feel despair.
Hobbling Hero took on and off one YEAR to complete. And the result was a massive fail to what I expected in terms of attention from players. However, I did it mainly to learn Unity and managing bigger projects and become a better coder.
It would've taken 1/3 of the time if I planned on exactly what I wanted in the game in the start, because, I just started coding in the blind for fun, and then eventually it evolved into something useable. I got carried away by doing things that were difficult, sometimes not even necessary or used, just because I really like cool things.
The game was an open world RPG, with a really neat interactive interface, fully fleshed out crafting system, quest system, skill system, etc. It got a couple thousand view. And then I'm seeing much simpler, much more elegantly designed, and well-polished games get exponentially more views.
What I did to Hobbling Hero, I will never repeat in my lifetime again. I was honestly just lucky to have to much spare time I could waste so much time on it.
I will now break the habit of making games that require a lot of time. Instead, I will make cute, small, polished games that take 1-2 weeks. I think if I just continue doing that I will be a much better designer overall in the end. I think people like simple, fun games anyway. Heck, my first game "Criminal game" took a couple of hours and it received more views than Hobbling Hero. xD
Before adressing my critical design mistake in Hobbling hero (and dragonmyths) I should adress my first mistake, rushing the completion of the game. Every other comment was about some sort of bug. The launch was a mess, unexepected freezing and crashing, as well as weird uncompleted features that I forgot to leave out. The obvious best choice was to delay the relase and play through the game and test it properly. Lesson: NEVER say fuck it - upload.
To the game design mistake... I recognized this first when people started PMing me "How do I craft X? How do I get feathers?" etc... Then I saw a Youtube video called "Saving the world, one limp at the time" which was a video commentary of a lively girl playing the game for about half an hour. When I saw her play, she wanted to creatively figure out how to do things by crafting together different items. She tried to use wheat on chickens in attempt to lure them so she would get their eggs.
The game instead, wanted the player to grind through quests to unlock/learn new features, such as magic bolts to kill the chickens to get their eggs.
Dutch cognitive psychologist Christof van Nimwegen began a study of computer-aided learning a BBC writen would later call "one of the most interesting examinations of current coputer use and the potential downsides of our increasing reliance on screenbased interaction with information systems."
Basically, the study involved a puzzle game where two groups had to transfer color balls between boxes in accordance to certain rules. One of the groups used software that was designed to be as useful as possible, providing visual cues, and displaying hints. The other group used another version with no hints or guidance.
In the beginning, the group with the helpful software solved the puzzles quicker than the other group, as expected. But as the test proceeded, the members of the group using the bare-bones software actually ended up faster than the other, with fewer wrong moves!
Nimwegen reported, that those using the unhelpful software were better able to plan ahead and plot strategy while those who has been reliant on the helpful software, relied solely on trial-and-error and aimlessly clicking around.
This experiement was repeated. The consistantly showed that the users using the unhelpful software demonstrated more focus, more diret and economical solutions, better strategies, and better imprinting of knowledge. The more people depended on expicit guidance from the software the less engaged they were in the task.
When I watched the playthough video, the youtuber's default state was in a puzzle-solving, engaged mindset. The function of my quests were basically to show the player exactly how to do things, so they don't have to think. This makes the player less engaged and the result is that they expect the game to tell them everything, and their brain kind of shuts off the creative, exploritive, part. So instead of trying to figure stuff out, they PM me "How do I get feathers?" or as I witnesse in the youtube video, it seemed like the player refused to find out things by doing quests, and when they got stuck, they got tired of the game.
The best solution would be to keep the lore, because I think it serves a purpose, but remove the quest's function as a tutorial. Instead of NPCs being guru's and the player being the fool, the NPCs should be in need, an the player should have been the helper. For example, instead of the Wise man telling you how to make a stone club, the player has to figure out for themselves to make a stone club and experiement with different combinations of things to solve increasingly different problems. I would also remove the furnace and anvil's list of recipes. Maybe list those that the player has already crafted.
I want to make a new game to redeem my mistakes, using the same base mechanics, but totally new graphics, and use a Don't Starve type of camera perspective, so 2.5D-ish. I'm thinking about a desert island game where your partner gets sick and you have to find a cure. The game will be in a smaller scope so I have more time to focus on game design rather than the programming, it helps to have done the hard part of the code anyway. I might have to find time in the christmas vacation. So it wont be out for a while. I really hope that this new game will be my first properly "well-recieved" game, The hard part will find an artist. I want to make the game emotional, instead of funny and cute. I'm thinking the title "I'm here for you." The frantic amount of trying to craft/interact with differnet objects is supposed to replicate the desperateness of the situation.
Okay so I rushed the completion of the game so it wouldn't bother me by school start.
90% of development time was killing slimes for sticks.
The golden rule of all game development is every new feature is shitfaced broken in a hundred different ways until you've tested it... a hundred different ways.
Hence I've been killing so many slimes.
Looking back... What would I do differently if I were to start from scratch?
Firstly, I refactored the inventory system so many times, and it needs another refactor now actually. I would have saved days of work if I pre-planned with class diagrams 'n' shit.
I would have took off some time to build some tools to help me test things faster, such as giving items in the inventory by having a cheat menu or something. I should've also split all business logic from the visual representation so I could automate testing. That would've saved so much time. Especially for testing balancing the exp gains/costs..etc...
Even tho the game is complete, I'm a little bit ashamed I will actually refactor stuff for fun. Gosh, that's so nerdy. But I can't help myself. Neatly knitted systems are so satisfactory X_X
Anyway, I hope the game will be enjoyed. I sure enjoyed making it.
As the summer is coming to an end, I've been rushing to finish the game. It'll probably be published here on Newgrounds tomorrow. I reached a bottleneck when it came to world-size. Expanding the world would require a refactor, which I don't have time for right now.
The main problem right now is that scene managment is run by strings, so renaming shit would requrire lots of labor. Save data is string based, which in turn is pretty unstable. Making a massive singleplayer game would require secure data.
Other than that I think the system is fairly robust and expandable. I'm going to look into mobile opportunities, as well as revisiting multiplayer options. I think it would be cool to have a marketplace area that's multiplayer. I also have in mind to redo the world system so it's split into nodes, and then possibly make my own heightmap thingy in 2D...
I'm less than a month away from updating a big update to the game. I hope Newgrounds is okay with me releasing it as a new game, so more people will see it.
Major changes: Been working on fleshing out the content of the game. That means, many more interesting quests with somewhat storyline, NPCs, monsters and items. Noteably magic and alchemy is much more useful.
Instead of one giant world, I've decided to split up the game into several "Levels." You travel to them via NPCs, portals, etc transportation devices. Splitting up scenes was easier said than done X_X - but in the end, this saves memory and allows me to have a bigger scope of the project - even if I'm going mobile.
Durability on items. Whew, that had me refactor the entire system. Easier said than done.
*Removed the minimap - it wasn't very useful anyway.
- I hope I can find an artist can help me to create a fancy world map.
- Finish fleshing out the world and quests - increasing the game's length
- Different music for levels maybe
If Henry Ford asked what people wanted, they would've told him they wanted faster horses.
Game designers are faced with the same problem. When you ask for feedback for your game, don't focus on what they're suggesting, focus on why they suggest it. As a game developer, you have a better understanding and power to completely redo mechanics that players would've never thought of. If you know WHY your game is interesting for players, and if you focus on WHY people are suggesting thing, it's much easier to find out what to change, who to listen to and whom to ignore.
Henry Ford did not try to make horses faster, he focused on why people want faster horses, so that they can travel faster. So he invented cars.
Been done with my exams, now I've been working on my game!
I've been working on the general look and feel of the game, adding more things to the world to make it feel more alive.
Other things I've added:
A tutorial that reveals first the inventory, the quests and then the stats menu, so the player donesn't get overwhelmed.
A bunch of items and details to the world such as cartwheels, mushrooms, birds flying up in the trees that fly away when you hit that tree, bunnies that steal the carrots on the ground, hedgehogs that do hedgehog stuff, etc.
Item stacking, now items can stack to a certain amount depending on what type of item (yay)
Magic wand that autofires magic missiles.
New dialog UI
Next: I will continue fleshing out the world, make much more interesting quests, items and abilities.
Autumn semester been busy, this semester not so busy, got time to work on this.
I dropped the multiplayer because I will not be able to make it actually work right now. I'd rather make a decent singleplayer game than a crap multiplayer one, and if I follow good practices I will be able to easily convert it to multiplayer again.
I've been real busy with working out the nit-bits of each little mechanic of the user experience when it comes to interacting with items and stuff in the world.
To craft you can either drag an item on another, or right click, select use, and the click on another item, or right click on the other item and select the crafting option.
Smoothed out the combat, feels pretty good now.
I think I am close with finishing the core game mechanics for this iteration. Then I will add content, add the menus and figure out saving data, add achievements integrated with Newgrounds and then do the art and graphical design.
I will release a simplistic version of the game for general feedback, etc. And then I will re-release the games multiple times with more contents.
Been a little uninspired to make a progress post due to my computer broke down and I haven't been able to make a lot of progress as I'd like. But regardless:
I went with a whole different world design... players can move up and down, left and right as they please.
Skills, gaining exp, leveling up.
You can equip any item as of now. Cuz why not.
New items to interact with: Anvil, furnace, different types of ore.
Attackable NPC. Players can also fight eachother. Players drop items at death.
Adding furnace recipes and anvil recipes is done via inspector in Unity. Everything is handled automatic. What took 10 minutes in flash takes 1 minute in Unity.
Doing the ground work takes longer in Unity, but it will be possible to make a lot of content, fast, when I'm done.
This is how I edit the world, I have made a custom inspector that visually displays the spawn range of each item. The spawn range is also the area where the NPC spawned is to wander.
Yeah doing weekly updates.
So far: Mutliplayer is going good and is more or less non-buggy now. Players can chat, run, crouch, change colors of their heads... all working good and dandy. Seems like making the game for MP was a doable challenge. However, the main challenge will be to make the game handle big servers and actual MP problems like cheating. I will need to figure out how to split up the servers. So maybe I will have to rent a couple servers that can hold like 100 people. Another challenge in front of me is optimize the game so the client only retrieves information from the server that it actually needs. (things in a certain proximity.)
I'm aiming for a highly-scalable game. In comparison to Kingslayer which was holding barely by a thin thread. Which brings up a dilemma in game design...
I have made the camera follow the player horizontally, so the "area" is much bigger. However, I can't seem to figure out how to handle the world itself. If I were to do it like I have in Kingslayer1, I would want to design a system in Unity that allows me to make areas much easier, like:
This would be the most complicated approach. And it would be hard to make the world look artistically beautiful. However, despite the hard work of setting it up, creating and managing the game would be easier. By splitting areas like this it's obvious to know what information is relevant. (client/server)
Another approach would be to have the entire world as a stretched out in one area. And to make transportation not amazingly boring, I would have quick-travel points around the world. This is slightly more "realistic" than the method above. And it makes more sense of a "physical world."
Lastly, scrap the original Kingslayer1 world design and have the player move up and down as well, and travel to another cave layer. This gives a perfectly realistic sense of the physical world. Maybe use Minecraft's chunk system to manage resources. By using Unity's new sprite drawing tools I can make the world pretty easily. Adding enemy spawns, adjusting their spawn range and walking range, and much more, in a visible scene!
+overground2, overground3 ... etc, for second floor places in houses for example.
The problem by doing this, however, is I would re-think graphics. I would need to spend much more time on animations such, if for example, rooms in houses were physical space instead of a new "area."
With so much time spent going directly up and down, I feel I must draw animations for going up and down. And this crashes with the gameobject-hiarcy-animation system I have. And I would be forced to use sprite animations. But that doesn't compliment the way I want do handle equipment and character customzing. I could go 3D mode and have it a isometric game, but I want to stick with 2D on this project.
So what I can do instead, is limit players to walk on paths, and avoid the paths being directly up and down IN LONG DISTANCES ... that way I can get away with not having up and down animation.
Houses would be sorta funky... I guess I will have to live with that. I would also need do some pathfinding. Hopefully Unity has some prepared goodies for me to do that :/
So, a way to deal with buildings is to have different views on clients, depending whether you are inside or outside the building. The player walking inside the house would still be at the position in the world of the actual house, but the view is different. This could actually work, but the main problem is that it's a funky hack. On Client 1: the space of the house on the Y axis is walkable floor, like the rest of the game. But on Client 2 the space of the house on the Y axis is HEIGHT ... so, the Y-axis have two different meanings depending on whehter you're inside or outside. I don't know if I like that.