I highly recommend you take a look at Godot Engine. It may not be has popular as Unity or the Unreal Engine, but I feel it's a lot more cross-platform and maybe a bit more simplistic.
Some books for you:
I'd also reccomend you learn a thing or two about building systems like automake or CMake, it will allow you to build bigger projects and make them IDE-independent.
The one always has enough knowledge to do a small project. It's only a matter of picking the right one (the one you can handle with your current skills). As for the technical stuff - I recommend solving problems (a good place to start is https://www.hackerrank.com/) and learning more about algorithms and data structures ("Introduction to Algorithms" by CLRS is considered to be a must-read book on this topic).
For the second month, I made a second game with similar combat mechanics but a more advanced AI: http://gamejolt.com/games/just-a-robot/185852
Unfortunately I wasn't able to add any procedural elements.
I will post again later and describe the AI a bit.
"cls" is the command line order to erase it in Windows and "clear" is the equivalent command in Unix-like system (Linux and OSx). Although the user can do it him/herself, you always must assume that he/she is lazy, and you have to do it for him/her!
###Take a look at the following snippet:
#First import the modules platform and os
import platform, os
#Then identify the operative system with platform.system
#and assign the correct command in a variable
if platform.system() == "Windows": command="cls"
else: command = "clear"
#Then run the command using the system function from the os module
os.system(command)
see: https://stackoverflow.com/questions/110362/how-can-i-find-the-current-os-in-python
and here about the os module: https://docs.python.org/2/library/os.html
I ended up turning the code from my submission into a Ludum Dare jam entry, since it was still all placeholder assets by the time that came up. You can play it here: http://gamejolt.com/games/write-only/184615
It approaches the theme mostly from a plot perspective - it is about Artificially Intelligent robots from the distant future fighting over a floppy disk that they consider sacred.
The enemies also have an AI as well of course, but it is pretty basic. In their initial state they just have a "Patrol" component active which just moves them between two set points. This isn't even a FSM, it just does one thing. If their "Vision" component detects the player, it switches off the patrol component and turns on a "Combat" component, which is a simple FSM.
The "Combat" FSM moves between the states "Wait" (in cover), "Strafe" (move to another cover point while firing at the player), and "RunToTarget" (after a set number of shots have been fired while strafing, run the rest of the way to cover). Then it goes back to the wait state. One final state, "Evade", becomes active if the player gets too close, and just involves continuous fire while maintaining a distance from the player.
I had much greater ambitions for the AI. I wanted the enemies to choose the best cover based on the player's position, attempt flanking manoeuvres, flee when taking fire, etc. But I kept putting it off and ran out of time for any of that!
Hope you get to play the game!
If you just want to 'import' a graphics library into a c++ project and go from there I highly recommend SFML
Took me a while to get working but has all you would need to make a simple 2d game :)
UE4 has some amazing capabilities, it deserves its status as one of the top game engines. However it was made for use by big studios, and as such they don't care a lot about making the editor efficient, nor the output optimized much at all. It is a behemoth that sucks up a ton of system resources and spits out huge project files for even the most simple of demos.
It takes an approach that encourages you to throw more money and people at problems that isn't at all ideal for small solo developers or indie studios. Though if you have a beast of a system and a ton of spare storage and are willing to do a lot of manual housekeeping and tinkering it can be a viable solution, despite not being ideal.
For a lot of people looking to get into game development on their own or with a couple of friends, something like Unity would be a lot more appropriate and better suited to the task. It has a huge community around it, making it pretty easy to find solutions to just about any problem you are likely to come across and the editor is a fair bit more lightweight then UE4s and the output a lot smaller when doing similar things with each.
Another strong contender that is on its way to being one of the best options for indie devs is the Godot engine. It is totally free and open source, can do both 2D and 3D games, has a ton of great and useful features that make it very appealing and is constantly improving and adding new features. The only down side is that it still has a much smaller community around it and since it has only been open source for the past couple years, the documentation and tutorials for it are a bit behind where they could be, but they've been improving a lot on that front this past year. Definitely something worth taking a week or two to check out and see if it fits your needs.
That article felt all over the place really.
The best material I have read on the subject of code 'cleanness', are Clean Code and Code Complete.
The method I follow is variable intent, not type or anything. So I don't ever follow hungarian however I have used variables with names like rowVisible
that might hold any rows that are visible.
That article felt all over the place really.
The best material I have read on the subject of code 'cleanness', are Clean Code and Code Complete.
The method I follow is variable intent, not type or anything. So I don't ever follow hungarian however I have used variables with names like rowVisible
that might hold any rows that are visible.