• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

SkylearJ

Members
  • Content count

    5
  • Joined

  • Last visited

Community Reputation

155 Neutral

About SkylearJ

  • Rank
    Newbie

Personal Information

  • Location
    Southeast Kansas
  1. Hey, guys! I've returned to GameDev and I'll be bringing my BattleGame project along with me. For those who've been waiting these past few months to finish up, I'll be doing so this week. Recently, I've been trying to establish my website/company and started on an animation project, so I've been busy. Anywho, I'll be posting Part 3 soon!
  2. First off, learning the basic game system would be the best start. If you're planning on graphics, look for tutorials on recreating classics like Pong. If you want to learn basic game structure, there are badoodles of tutorials on here that can get you started. I've been working on my own tutorial series for beginning game programmers. ^_^   As for what language to choose; that's all up to you. I'd recommend the SFML library for 2D games, though OpenGL can do it, as well.
  3. Thanks for your feedback, BeerNutts!   I actually didn't mean to put the random values in just yet; forgot to edit those out when I copied it from my project. Thanks for pointing those out, 'cause now I can improve my code once more. :P   As for using Being's constructor to construct both Monsters and Characters; I don't know how to apply that. Could you send me a PM with an example if you have the time? ^_^   Thanks again!
  4. Thanks for those tips, Frob!   I edited the code here again, and hopefully minimized on unused headers. I usually include anything that need to be included in the header, and then just include the header in my .cpp files. I missed the mark by forgetting that, since I'm using inheritance, I wouldn't need to include iostream into Character and Monster, haha.   Hopefully I fixed most, if not all, of the issues you pointed out.   Thanks again! ^_^
  5. Sorry for the double post, but part 2 was released, and I'm gonna bump this thread up for the newbies. 
  6. [color=#ff8c00]Introduction![/color] Hello again, people! In Part 2, we're going to fill out all the .cpp files we made last tutorial. These are the meat and potatoes, the thing that makes it all run, what'll give us our game (mostly)! Hopefully the last tutorial was easy to follow, and you've already prepared the headers for everything we'll be doing here. [color=#ff8c00]Coding Time![/color] Alright, first off, we're going to create the attack types we defined in Being.h. Open up the Being.cpp you made yesterday, and type this:#include "Being.h"using namespace std;void Being::meleeAttack(Being& target) { target.health -= baseDamage; cout
  7.   Ah, musta been because it was a draft. Try again. :)
  8. I redrafted the first part, and hopefully it's better.    EDIT: Apologies for double posting... 
  9. Thanks for your feedback, Juliean!   At this point, I'm actually writing this program myself, while teaching it as I go along. Right now, I don't see much use for Private. I think I could put some things into Private later, but we'll see once I release Part 2. Also, I'm not entirely sure how composition works, so I'm going to use the method I've tried-and-tested.   As for it's 'absolute beginner' aspect, I'm hoping that whomever decides to read this has enough C++ background to understand what's going on here. It's fairly simple to myself, and I included a couple links that might help.   I know it's not the most efficient design, but I'll be changing that in future tutorials.   Thanks again! ^_^
  10. Well, after a bit of thinking, I decided to begin making a tutorial series for beginning game programmers. Of course, it's primarily in C++, so you'll need to have a little background in it, but it's overall (hopefully) easy to follow.   You can check out the first part here.   Second part published!   I want lots o' feedback on it.        The forum needs a Delete Post button. 
  11. Working on the Let's Make: BattleGame! tutorial series. :D
  12. [color=#ff8c00][font=verdana]Introductions![/font][/color] [font=verdana]Hello everehbody! [/font] [font=verdana]This is my first journal entry/tutorial here on GameDev, and I hope I do a good job at explaining the concepts I want to get across. This tutorial series is mainly aimed at beginners (given the blog's name) and I hope it's simple enough.[/font] [color=#ff8c00][font=verdana]What We'll Be Making.[/font][/color] Using the fantastical language of C++ (which is what this blog is primarily for), we'll be making a turn-and-text-based combat game. [font=verdana]"What's a turn-and-text-based combat game," you ask? Well, you'll see by the end of this tutorial.[/font] [font=verdana]The point of this series is to introduce beginners to the basic game loop and to simple algorithms, such as would be seen in any basic RPG game. We'll be making a game where you have a set of things you can do while fighting an enemy.[/font] [font=verdana]The target product of the first few tutorials is a game where you:[/font] [font=verdana]Have an intro to set your name[/font] Allow the player to allocate his/her stat points to various upgrades Allow the player to choose what enemy he/she will be fighting Give the player three options during combat: Melee Attack, Gun Attack and using a Health Potion Create an enemy that can perform all three of the above Hopefully, as we go along, this list will become more apparent. [color=#ff8c00]Let's Get Started![/color] Alright, so fire up whatever IDE you're using and let's get started! So, first off, we're only making the barebones of the system in this tutorial. We'll be implementing an Engine later. Open up a new C++ file and name it Being.h.#ifndef Being_h#define Being_h#include class Being { protected: std::string name; int health, maxHealth; int baseDamage, damage, gunDamage; int ammo, maxAmmo; int potions, maxPotions; public: void meleeAttack(Being& target); void gunAttack(Being& target); void useHP(Being& target); std::string getName(); int getHealth(); int getAmmo(); int getPotions(); void Reset();};#endif What're we doing here? This is actually pretty simple. We're going to use inheritance to make our Character and Monster classes smaller and simpler. In Protected, we're defining the values that both Character and Monster will need. Protected makes sure that only Being and it's 'children' will be able to get/modify those values. In Public, we're defining the methods that other classes (outside of Character and Monster) will need to use; for example, since string name; is a Protected value, we'll need some way for other classes to find out what that Being's name is. The attack types will also need to be used outside of Being. Not too bad, right? Grab a cup of joe and let's continue. Alright, so we've got our Being class now. Create a new file and name it Being.cpp, but leave it alone for now. Create a new header file and call it Character.h. Put this stuff in it:#ifndef Character_h#define Character_h#include "Being.h"class Character : public Being { public: Character(string newName, int newHealth, int newDamage, int newAmmo, int newPotions); void Display();};#endif Much shorter, thanks to Being. Time for explanations! Character is inheriting all the values that Being.h has, and that's why we don't need to redefine all the ints. You can call Character a 'child' of Being. Like before, make a new file called Character.cpp and leave it be. Now, we're going to need to be able to create a Monster just like we will for Character. Create a new header called Monster.h.#ifndef Monster_h#define Monster_h#include "Being.h"class Monster : public Being { public: Monster(string newName, short newHealth, short newDamage);};#endif Hopefully, this is self-explanatory. Monster is also a 'child' of Being, since we're inheriting it from Being as well. If you haven't noticed, we're defining fewer values in Monster's constructor; this is because (for now) Monster will only have the Melee Attack type. Once we delve into a more involved combat system, we'll give the monsters their own special attacks. [color=#ff8c00]Mortal Combat~![/color] I'm sure you've gathered what class is next, based on the title of this section. We'll need to have our Combat class up and ready for the next part of the tutorial, and I think this will be the most interesting part of our game.#ifndef Combat_h#define Combat_h#include "Character.h"#include "Monster.h"class Combat { private: Monster& M; void combatChoice(Character& C); public: Combat(Monster& newM); void combat1(Character& C);};#endif Although the class itself is small, our Combat.cpp is going to be pretty involved. Alright, time to explain the things we see in here... Monster& M; - This is creating a reference to Monster, and it's how we'll be affecting the monster in Combat.cpp. Our reference here will be referencing the instance of the Monster we'll make in Main.cpp. Combat(Monster& newM); - This is Combat's constructor, which is how we'll create new combat instances for when we start a fight with a monster. We're referencing a new Monster here, similar to Monster& M. void combatChoice(Character& C); - Here, we're going through loop for the player's options in battle. We're referencing the Character instance (or object?) that will be created in Main.cpp. void combat1(Character& C); - This will be the loop for our combat. We'll use this to go through the attacks, and check to see wether or not the Monster died. We're referencing the Character instance (or object?) here. Simple enough, right? Now, the reason we're putting our reference to Monster (Monster& M) and our combatChoice() into Private, is because only Combat will need to use these. For an explanation of the reasons behind using Public, Private and Protected, click here. [color=#ff8c00]Conclusion[/color] Well, we've set up all the classes we'll need to begin our game, and that's what we'll be doing in the next part. Hopefully I get it out by tomorrow, or tonight if I'm lucky. Leave all the feedback, positive or negative, you want! I'm taking all criticisms into account.