Jump to content
  • Advertisement

SeelenGeier

Member
  • Content count

    27
  • Joined

  • Last visited

Community Reputation

108 Neutral

About SeelenGeier

  • Rank
    Member

Personal Information

  • Role
    Game Designer
    Programmer
  • Interests
    Design
    DevOps
    Education
    Production
    Programming

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. SeelenGeier

    How to balance stats?

    Thank you so much that helps a lot already. Especially point 2 is what I will focus on next. Currently I don't have one baseline to go by and evaluate my stats. This should help to clear things up for now. Although finding a baseline stat might be hard when considering that a run could go infinitely if the player is really lucky. He will lose health due to attacks and his equipment will get damaged and eventually break, but if he is lucky enough, he could go through many more rooms than on an average run. I will try to set a default when I am done implementing the rooms. This way I can see how long a room might take and how much rooms on average I want the player to clear.
  2. SeelenGeier

    How to balance stats?

    Hey guys (and gals), I am currently working on a very very very simple dungeon crawler. You have a profile that contains all items and stats of the player. The inventory can contain a certain amount of items (currently 30...totally made up on the spot) and you can equip one of each equipment type (except for valuables). The shop and profile management (call it town/camp if you like). You can see the current state here: https://seelengeier.github.io/projects/rbdc/src/index.html Ignore all values for the prices and durability, I don't have any serious data yet. All data and numbers have been added as "to be replaced during the balancing phase". Now I need to implement the dungeon part of my game (going right in the profile overview aka. camp). My current plan says to implement something like this: - you go into a room. - if the room contains a monster, you can fight it - if the room contains no (more) monster, you can go to the next room - during a fight, you can only choose to strike or flee - a strike leads to first the player doing one strike, then the enemy doing one - fleeing leads to the enemy striking once and the player going into the next room if he survives - When the enemy is dead, the player can get some loot - if the player finds a room with a portal or exit or whatever (not sure yet, I don't want magic in the game), he can go back to town with his loot - Or he can go back anytime (I think that's a bit too "easy mode") - rince and repeat I know how to implement the dungeon part, but I am not sure on how to balance it. How do you balance your games? Do you just come up with random numbers and tweak them by guessing and listening to your guts until they feel right (I get the feeling this would take ages)? I don't want to have the player go from fight to fight one shotting every enemy, only to get one shotted back when the enemy gets a little bit harder. I want the player to be able to go through many rooms with enemies while his equipment is getting worn down little by little. He should have the mindset "should I go on for a chance of better loot or should I save my current loot". He is supposed to have a good chance to survive the next room, but run the risk of losing if he is not careful. How can he be careful if all he can choose is "go forward or go back" even during a fight? I don't want to implement skills or anything fancy. The player should interact as little as possible with the fight. All he has to do is decide to either take the risk or not. Going home with his current loot makes the next run(s) easier due to better loot and the enemies should be easier to deal with in the beginning. I am currently writing an excel file with all stats but when I look at that I only think "yup...nice stats, but no idea how to make them interact with each other". So, how can I balance damage types, armor types, equipment durability, enemy hp, enemy damage (same as damage types), time invested, rooms cleared, run success rate (I'm sure I missed something)? Where do I start? Thanks, SeelenGeier
  3. SeelenGeier

    Healing during travels in RPG?

    You can always change the cost for the healing to be shared by other (usually more important) skills. The player should have the thought of "should I use my resource for healing or can I survive the next engagement with the health I got?". For example you can have healing cost items looted from monsters that the player can sell for a lot of money if they bring them back to town. The amount of healing would depend on the value of the item which would make every loot be a potential healing item. If the item heals 30% of the unit health but would otherwise sell for enough to hire 3-5 new units, the player will use these sparingly. Of course using Golden statues or non-organic matter might be not suited for healing. Instead you could use biological components like monster parts (tails, wings, intestines, etc.) you looted from wild animals. Or cloth and medicine found from humanoid enemies. Another idea would be to have your healer receive a penalty for healing. This would lead to either less healing or less combat effectiveness for the healer. Or he could use his own health to boost others (e.g. spend 1 point of health to heal 3 points of damage on another unit (except healers)). That would make the player treat healers and healing as a limited resource and he would have to focus more on protecting his healers to keep their health high for future healing. Many games limit healing to infight only (Darkest Dungeon is the best example). This leads to players provoking an easy fight just to heal their troops. I never liked this kind of healing restriction, but having an out-of-fight healing would make many dungeons too easy.
  4. If the gameplay needs the units to be slow, try to change the turns per year. If the turns can't be changed but you still want the units to be that slow, find an in-lore reason for that. "Your units are progressing very slowly due to minefields being all over the place" "Air transports would be gunned down in an instant which means armies only travel by ground (even air units get transported on trucks until the battle)" "Fuel is rare and needs to be conserved as much as possible which means only few vehicles are used for transport which makes movement of bigger armies very slow" With this you can have small units that can operate all over the globe in strike teams while armies only move at a very slow pace. If you don't want any units to move fast: "Enemy drones are constantly scanning for single units they can hunt which makes movement ins small teams very dangerous"
  5. Also keep in mind that some players might hold the phone in one hand in portrait mode which means they won't have the full range of the screen to tap on. That's why many portrait-only games on mobile devices only have buttons on the bottom of the screen. Have a look at this: https://www.uxmatters.com/mt/archives/2013/02/how-do-users-really-hold-mobile-devices.php
  6. You could use a node based system. Define each region as one node with x and y coordinates and then link them (e.g. in another array). If you want you could also make one directional routes that only go in one direction (e.g. you can go from China to India but not back), which would make the linking a bit easier but less logical. for example: var regionA = {id=>'A', x=>100,y=>200}; var regionB = {id=>'B', x=>10, y=>400}; ... var connections = {}; connections[] = {'A','B'}; If you want to have something more detailed you will have to do a much more complex approach which I wouldn't recommend if it is not really necessary.
  7. Great idea and the execution looks solid. Did you get inspiration from Hacknet? If you don't know it yet, take a look: It's even on sale for 2,49€ right now (no I don't get anything for advertising :(). Some advice on your code would be to add more comments and make your variable names more purposeful. Some parts of the code are hard to understand which could be fixed by just leaving a simple sentence description for each function. I don't have much experience in C-Development but would it be hard to implement a config file where you get all numbers from? I've seen a few config variables in your functions (on the geolocator I think) which might be better to keep in a config location. e.g. I am using json files which hold my entire configuration. Magic numbers (https://en.wikipedia.org/wiki/Magic_number_(programming)) could lead to bad code structure and make functions harder to understand and change later on.
  8. SeelenGeier

    Dealing with my messy code

    Although I like the idea of TDD, I would rather recommend taking a look at what the framework presents as "best practice". If you are using a framework that is very hard to test, you should not use 99% of your time trying to get your tests to run at all. I think it is better to plan your game structure before starting to code and try to use code structures and concepts that align more with how the framework is supposed to be used. I am currently using Phaser to write games in Javascript which is reeeeaaaallly unfriendly in terms of testing. Don't get me wrong, I agree with having organized code and spending more time to implement a good structure than patching something presentable together which breaks apart after the first change (and change is coming for every project!). When I am more proficient and plan my next project, I will try to implement some unittests. Until then I did a lot of documentation and structuring for my current project which hopefully is enough to hold it together for a while ^^. Can you even write decent unittests for Unity or similar UI based frameworks?
  9. SeelenGeier

    Should I share my ideas?

    Implementation > Concept Make sure your game is playing great and the concept can be bad. A good concept with bad gameplay is worth nothing as history shows. The player has to have a good feeling from a game, he does not care about the overarching concept or setting. Just think about all those awful film adaptations that had a great concept (the film) as reference and bad gameplay (just crammed something in there). There are very few adaptation games that were actually good (Spiderman 2 was awesome ^^).
  10. SeelenGeier

    Dealing with my messy code

    That's a neat kind of development. Bigger structures can be used as libraries that should be kept in a different repository. Those libraries can be reused later and if you have a setting where using libraries is the standard way, you can easily add external libraries to your project.
  11. SeelenGeier

    examples of how pickups are handled

    First of all, please format your text when posting, that was hard to read ^^ Then I would suggest you use PickupList.count() instead of a flag that you set and unset manually. I don't know how your code is structured so I can't give a specific advice for the collision. I would try to implement an event list where you can register callbacks. Something like this: When the player receives the pickup, you set an event called onPaddleHit which calls the multishot function. every time the ball hits the paddle, you check if this event has been registered and then fire the multishot function if it is.
  12. SeelenGeier

    Should I share my ideas?

    Ideas are only getting better and refined with time and involvement. Usually the first one to implement an idea is not the one succeeding with it. Just remember how the iPhone was just a smartphone with a very refined Interface. Apple did nothing new and made billions with this. In case of code, think World of Warcraft which in theory is only Ultima in 3D in the Warcraft universe. It made Blizzard the industry giant it is now but no one really complains. Counterstrike was just Team Deathmatch from half-life with realistic military setting and started as a simple mod...now it is an esport giant. You can also refine your own ideas and games with a second version of your game. Many game series best games were the second game and not the first.
  13. SeelenGeier

    examples of how pickups are handled

    My guess would be that most games add pickup stats in their "getStatusXY()" function which then calls something like "getPickupBonus()" which loops through all pickups and calculates the bonus for this specific situation and status and returns a flat number or percentage to add to the actual status value. Pick out 10 different games and they will all do it a different way. You have to find a way for your specific case. I would suggest you to make a myPickups array and save your aquired pickups in there. Then whenever you call your getStatXY() function (e.g. getSpeed()) you add a function in there to check for pickups. This checkForPickups() function then should loop through all pickups and add all stat changes. Then you can be sure to always get the correct stat and won't miss any line in code where the stat might be without the pickup. You could then add a parameter like "withoutPickups = false" which can be set to true and then only returns the stat without the pickup. For example: When you get the pickup, you add it to the myPickups array. Then you get the speed from function getSpeed() which checks the myPickup array for speed modifying pickups. This way you don't have to worry about pickups when you just want to have the current speed. When you hit the pickup, you add it to the myPickups array. When hitting the paddle you check the myPickups array if this pickup is in there. This way you could have more than one pickup at the same time. Of course you can also change the myPickups array to one Pickup called activePickup which is referring to the currently active pickup. When the time for this pickup is up, you change activePickup to the next pickup. If that is not possible for you, you might want to give some code examples or a more detailed explanation on your pickup code.
  14. SeelenGeier

    Dealing with my messy code

    Don't be discouraged, we all have this problem. I usually plan a bit of my game and start coding. This leads to a lot of spaghetti code and me getting frustrated after a while which then leads to me dropping the project. I can give you several ideas which you could use to improve your mess: 1. try to plan your code just like your game itself. Plan the folder structure and classes and how they interact. 2. try to implement dependency injection if you use a lot of communicating objects. A container that can help with the handling of classes might make your code easier to sort. 3. try to use manager classes which handle the communication instead of the classes themself. 4. try to implement systems and entities instead of functions and classes. This means you build entities that can interact with systems and not classes that call other classes. This would help to logically connect your code instead of creating technical dependencies In case of books I can not help you since I am not reading many books (internet ftw :P) but I know that there are a lot of good resources so maybe others can help with that.
  15. SeelenGeier

    Should I share my ideas?

    I don't think it is a good idea to hold back information just to secure your idea. The chance that someone sees your idea and says "this is exactly what I want with no modifications" is close to zero. If someone thinks "hey this is a really neat idea, let me take an approach on this", he might take the idea and modify it before starting to work on it. If you fear that other developers might steal your audience, be aware that games are not exclusive and if a game is free, you can be sure that people who are interested in the idea will take a look at your game. You won't be able to prevent your idea from leaking to the public when you release your game and then you have the exact same problems with other devs copying the idea. Usually they won't copy the setting and add or remove a few mechanics to make their game feel different to yours. But the input from other developers who are trying to help you is much more valuable than the problems sharing your idea might cause. Getting input on settings, mechanics and code is how you can improve the game by a lot. Also be aware that most ideas are not that great on their own. Ever heard of a game where you place blocks on top of others in a 2D environment to fill a hole? Or a plumber walking from left to right jumping through obstacles and onto turtles? Of course those ideas sound lame, but I don't think Tetris and Mario where that bad. It's the result that matters.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!