fredag 31 januari 2020
Connect Four
The thing that I have been working on lately is a simple Connect Four game. The game logic works and was quite simple to implement using C#. I used the Model-View-Controller pattern when I created the logic. I have an idea which is to start making board games, rapidly, while also allowing players to compete against each other over LAN connections. If I create many of these board games in a way that ooze quality, a lot of people might just start downloading these. Presumably, the market for board games is rather big, but the competition still high. However, most free board games are of very low quality, so if I make things good, players may start searching for games specifically made by me. I guess the main goal of this project is to get a good foundation of network programming while gaining attention.
onsdag 29 januari 2020
Unreal Engine 4 & Future Plans
Someone told me online that I should check out Unreal Engine 4, as I have pretty much used Unity as a professional game engine. So, I did check it out, downloaded it and installed necessary files. I noted that I could not use the game engine properly on my laptop since it was too demanding. My laptop does not have a graphics card which probably is the biggest explanation to why. Anyways, it did work on my desktop computer. I set up some example programs and looked up an Unreal tutorial series on Udemy. There was a sale in January 2020 where all courses only cost 119 dollars instead of their normal prices. So, it was not really a big deal buying one. I did not follow all the videos completely, but I did notice some peculiarities. In Unreal Engine, you can apparently only have one animation per skeleton. Clearly, it would be much better if an animation could apply to any skeleton. This is a major issue, but I guess it's not much easier in other engines either. Unity has a technology they call Mecanim that allows the same animation to be used on different models. When I tried Mecanim, I did not get 100% desirable results.
I fast forwarded in the Unreal tutorial series. It appeared to me that at least 50% or more of the development process when using this engine involves setting up something called Blueprints. This is not programming, but instead a copy/paste process where you connect dots. While it could probably be used efficiently when creating games, it poses no intellectual challenge that I can appreciate. When you do everything from code, you get to solve puzzles in your head. Only connecting dots however quickly becomes very boring in my opinion, and it's not something that I am interested in spending a lot of time doing at all. Also, most of the tutorial heavily focused on technologies that are heavily coupled to the Unreal engine, for instance when creating multiplayer, you seem to heavily rely on existing functions only for the engine. This makes it very difficult to separate code logic from the engine itself or have detailed knowledge about how the network programming works. Maybe I haven't seen enough videos about this, but so far this is the overall impression that I got.
The dilemmas that I am considering as for today are what type of game I should try to make. While a 3D game is fully possible, it would require a lot of animations, and I am not interested in creating animations. It would be helpful to find an animator that works for free, but that is not a reasonable thought. I know that a character should be cosmetically customizable, because if it isn't there is little motivation to level up or use money in a game. By having upgrades games quickly becomes addicting. This is sort of what I want to achieve, make a game addicting.
Intuitively, I strongly believe that I perhaps should go back to creating 2D games, either completely from scratch or by using Unity where I get to do more coding.
I fast forwarded in the Unreal tutorial series. It appeared to me that at least 50% or more of the development process when using this engine involves setting up something called Blueprints. This is not programming, but instead a copy/paste process where you connect dots. While it could probably be used efficiently when creating games, it poses no intellectual challenge that I can appreciate. When you do everything from code, you get to solve puzzles in your head. Only connecting dots however quickly becomes very boring in my opinion, and it's not something that I am interested in spending a lot of time doing at all. Also, most of the tutorial heavily focused on technologies that are heavily coupled to the Unreal engine, for instance when creating multiplayer, you seem to heavily rely on existing functions only for the engine. This makes it very difficult to separate code logic from the engine itself or have detailed knowledge about how the network programming works. Maybe I haven't seen enough videos about this, but so far this is the overall impression that I got.
The dilemmas that I am considering as for today are what type of game I should try to make. While a 3D game is fully possible, it would require a lot of animations, and I am not interested in creating animations. It would be helpful to find an animator that works for free, but that is not a reasonable thought. I know that a character should be cosmetically customizable, because if it isn't there is little motivation to level up or use money in a game. By having upgrades games quickly becomes addicting. This is sort of what I want to achieve, make a game addicting.
Intuitively, I strongly believe that I perhaps should go back to creating 2D games, either completely from scratch or by using Unity where I get to do more coding.
torsdag 23 januari 2020
GunzGame: Delaying
It might happen that I put this project on ice. If not, there will probably be major changes and simplifications to how this game is made. The main issue right now is that the playable character would need quite a bit of animations. I am not a fan of creating animations, and have little interest in learning that skill right now. So the options that remain are to either find someone to make the animations for me or make things simpler. For instance, instead of allowing swords, I could start by just letting the player have a gun. I found a free Unity asset that may be interesting, but it requires me to update my current Unity version. Sadly, my computer disk space has been full for a long time. Will probably need to free it up a bit...
onsdag 22 januari 2020
Gambling in Games
A lot of games feature some element of randomness combined with betting. Examples being poker, roulette, loot crates (CS:GO) etc. Not that I would call poker or roulette real games. Or well, maybe card games can be seen as games, but roulette is just like the lottery. I do like card games, perhaps there should be more of them easily available for multiplayer online. I guess I could make a website app via Unity pretty easily, but the server would need to be hosted somewhere. I guess I could host it on my Raspberry PI now that I think of it. Card games are mostly turn-based and people don't notice if turn-based games lag at all. Apparently you can get some good ideas while you are writing. On the flip side, it would not bring in any money, but it would be a merit to have people play my games.
Should there be more gambling involved in games? GTA V had an update where they added a casino. Early on after this update, a lot of cheaters gathered millions or billions of GTA money from the casino since it was not made securely. I am not sure if they completely fixed that, but shortly after they also started banning people who were cheating using the casino. At least people have claimed to be banned. Unless you are cheating, there is not really much of a reason to gamble in GTA since you will just end up loosing money. Gambling could be done if you play against other players.
Should there be more gambling involved in games? GTA V had an update where they added a casino. Early on after this update, a lot of cheaters gathered millions or billions of GTA money from the casino since it was not made securely. I am not sure if they completely fixed that, but shortly after they also started banning people who were cheating using the casino. At least people have claimed to be banned. Unless you are cheating, there is not really much of a reason to gamble in GTA since you will just end up loosing money. Gambling could be done if you play against other players.
måndag 20 januari 2020
Game Review: Arcanists
What was Arcanists?
Arcanists was a 2D game similar to Worms and published by Jagex for their website FunOrb.com. It had a strong community going, despite lack of updates. It was possible to buy so called FunOrb membership that accessed certain locked features in the game. This features most importantly gave players advantages via new spells. I did not get these upgrades as I didn't feel it was worth to spend money on a monthly subscription for a game where a lot of people hack or DDoS.
If you know nothing about it, you had a single player unit. You also had a spell book. The spell book could contain a finite number of spells. These spells were used to attack enemies in combat. The game was a turn-based player-vs-player battle royale. If you fail to terminate the enemies, most maps would start exploding.
What could you do in Arcanists?
You had a 2D character that you could customize cosmetically. There were unlockable achievements. You could gain rank or loose rank or play unranked games. Ranked games were for paying members only. You could create a room and invite friends to play the game with you, or just invite random people.
Why did people play Arcanists?
A majority of the players had in some form or another had also played RuneScape. RuneScape is a very boring game, as everyone who has tried it knows. So, we RuneScapers had to fill our time doing something else. One day RuneScape started making advertisements for their new game platform at FunOrb and I just had to try it. Maybe partially because it contained a substring of my RuneScape username, "zORByt".
There was a "community", scoundrels from all over the world wrote all sorts of extremely stupid and offensive things 24/7. If a moderator entered it only got worse, as the language used was simply adapted to avoid reasons to get banned. That said, most moderators were "silver" moderators, and these do not have any admin rights. Their only superpower is that if they report a player, that player is much more likely to get punished than if the report were from a normal player. This of course assumes that a rule was broken. Some of the posts, did have comedic value. It may have helped that no one liked moderators.
When it comes to gaming, the game had replayability. Not in the form of levelling up, but in forms of having fun and learning to become a better player at the game. If you played against a person that was apparently bad at the game compared to yourself, you could use that as an opportunity to try out new risky strategies. When you take the possible spells that you can have, the possible spells the opponent can have, the world map, the players position on the map you get a combinatorial explosion of different possibilities. Just like in chess, except that this game had action that everyone can appreciate. If you did not feel like experimenting with new strategies, you could goof around by summoning implings that could be supercharged by arcane spells. After being supercharged, these could be moved similarly to the player to anywhere on the map and create huuuge explosions.
Arcanists was a 2D game similar to Worms and published by Jagex for their website FunOrb.com. It had a strong community going, despite lack of updates. It was possible to buy so called FunOrb membership that accessed certain locked features in the game. This features most importantly gave players advantages via new spells. I did not get these upgrades as I didn't feel it was worth to spend money on a monthly subscription for a game where a lot of people hack or DDoS.
If you know nothing about it, you had a single player unit. You also had a spell book. The spell book could contain a finite number of spells. These spells were used to attack enemies in combat. The game was a turn-based player-vs-player battle royale. If you fail to terminate the enemies, most maps would start exploding.
What could you do in Arcanists?
You had a 2D character that you could customize cosmetically. There were unlockable achievements. You could gain rank or loose rank or play unranked games. Ranked games were for paying members only. You could create a room and invite friends to play the game with you, or just invite random people.
Why did people play Arcanists?
A majority of the players had in some form or another had also played RuneScape. RuneScape is a very boring game, as everyone who has tried it knows. So, we RuneScapers had to fill our time doing something else. One day RuneScape started making advertisements for their new game platform at FunOrb and I just had to try it. Maybe partially because it contained a substring of my RuneScape username, "zORByt".
There was a "community", scoundrels from all over the world wrote all sorts of extremely stupid and offensive things 24/7. If a moderator entered it only got worse, as the language used was simply adapted to avoid reasons to get banned. That said, most moderators were "silver" moderators, and these do not have any admin rights. Their only superpower is that if they report a player, that player is much more likely to get punished than if the report were from a normal player. This of course assumes that a rule was broken. Some of the posts, did have comedic value. It may have helped that no one liked moderators.
When it comes to gaming, the game had replayability. Not in the form of levelling up, but in forms of having fun and learning to become a better player at the game. If you played against a person that was apparently bad at the game compared to yourself, you could use that as an opportunity to try out new risky strategies. When you take the possible spells that you can have, the possible spells the opponent can have, the world map, the players position on the map you get a combinatorial explosion of different possibilities. Just like in chess, except that this game had action that everyone can appreciate. If you did not feel like experimenting with new strategies, you could goof around by summoning implings that could be supercharged by arcane spells. After being supercharged, these could be moved similarly to the player to anywhere on the map and create huuuge explosions.
Caffeine & Productivity
I believe that caffeine does not help me be a more productive programmer. 90% of the time I find it hard to keep focused coding if I have had 60+ mg of caffeine the same day. Contradictory, I do feel like I can understand or learn things better when having caffeine. To sum up from these thoughts I should not have coffee on days that I spend developing but have coffee if I try to learn something complicated. To be fair, I think I could do fine not having caffeine ever, which is also how I have spent most of my life. Unless if you count the small fragments of caffeine that exists in coke, then I have been a caffeine consumer longer. As for the game that I'm working on, I have made some progress. I think that I will need to focus on taking as many shortcuts as possible. If I don't take shortcuts the game will never be finished, and it's as simple as that. Todays work will be spent on working on the state-machine for player actions. After that is finished, some simple animations when moving will be necessary to convince anyone that there actually have been any progress made. Furthermore, attacks with swords or gun(s) will be made possible. This will be apparent from having gunshot marks where bullets land.
lördag 18 januari 2020
GunzGame: Refactoring
It is now possible to move a player unit around. It's also possible to jump by pressing space. As one might expect, having different types of actions resulted in many nested if-statements. Therefore, I decided to refactor the code, so it uses the state-pattern. Walking and standing still are handled in a common state class called WalkingState. The merge is mainly due to standing still not really being worth handling in a separate class. Jumping or just flying in the air is handled in a class called JumpState. All state classes inherit some common abstract methods from an interface called PlayerState. One of the existing downsides of using the state-pattern is that it naturally produces duplicate code, even though one could go through big efforts to minimize it. In my opinion, these efforts are not worth the time. One extra, invisible, downside with the state-pattern is that it hides something horrible... it hides... GOTO calls. Example; WalkingState calls GOTO JumpState and JumpState calls GOTO WalkingState given certain conditions. If you have too many states, these GOTO calls will cause spaghetti code. Hence, it is quite important to not use the state-pattern too much.
The state that I plan to add for this game are the following: WalkState, JumpState, SpecialMoveState1, SpecialMoveState2, SwordAttackState1, SwordAttackState2, DeadState. All states can produce a DeadState, which happen when the player runs out of HP. I should really add a class that holds all player parameters as a next step in my game development process. Now that I have started creating a state machine I may as well create all the states. SpecialMoveState1 will only be possible while holding a gun and SpecialMoveState2 only possible while holding a sword.
The state that I plan to add for this game are the following: WalkState, JumpState, SpecialMoveState1, SpecialMoveState2, SwordAttackState1, SwordAttackState2, DeadState. All states can produce a DeadState, which happen when the player runs out of HP. I should really add a class that holds all player parameters as a next step in my game development process. Now that I have started creating a state machine I may as well create all the states. SpecialMoveState1 will only be possible while holding a gun and SpecialMoveState2 only possible while holding a sword.
Prenumerera på:
Inlägg (Atom)