Jump to content

  • Log In with Google      Sign In   
  • Create Account

Master Thief

Member Since 01 Oct 2006
Offline Last Active Aug 09 2016 03:00 PM

#5284485 Is Programming an RTS Game still good?

Posted by on 31 March 2016 - 07:43 AM

To be honest, I'm thinking of buying it myself, from what I've read in the responses. I don't intend to ever build any game using DX, or using any platform specific code/lib, but the fact that it involves creating an RTS and terrain generation, and is being well spoken about, has got my mouth watering. I'm all for interesting reads on concepts I feel attracted to. :)


For me, specifically, I think it might be a good source of further knowledge that I might end up translating/incorporating into my actual projects (I don't think I'll be attempting to develop an RTS anytime soon). For you, well, I don't know. You could follow along using the old tools, and it should still work on any windows machine (that's my guess).


One thing to keep in mind is that once you're done you'll want to step up to more up-to-date technology, and that will involve further reading and learning, kind of like starting over, in a way. Might still be a lot easier than to follow along with the book while trying to translate it to its modern counterparts, which, as far as I know, involves not just using different keywords, but writing different code in a different mindset for different specific reasons.


Or you could still buy the book and read it on the side, as you focus on something else with some other book. To be honest, I can't really say what would be the best option, since the most important thing is that you're approaching the subject in a way that you really enjoy and keeps moving you forward. What I think I can say is that, from what it seems, you'll probably not be sorry to have bought it, regardless.

#5284399 Too good to be true?

Posted by on 30 March 2016 - 07:38 PM

I have been writing short stories for some ten years, and I still can't write a decent one in 3 seconds, figuratively speaking or not. In fact, I have yet to finish one...




Okay, so I am between the skill level of making the next 3D game I envision, which will probably turn out bad due to it being too much for one person like myself, and mastering the RPG Maker program, actually maybe producing a good game with it. My question is, what should I go for?


If you're at that skill level, then you'd probably do better with programming. RPG Maker takes a lot of time to get stuff done too, and it imposes many limitations that you'll likely want to program your way around anyway. To me one of the biggest repellent aspects of RPG Maker games (and the reason why I don't find them visually appealing since VX came around) is the square unnatural looking tiles (you can literally tell which games are made with RPGM). Tiles used to be made to not look like tiles, i don't know what went through their minds... RPG Maker kinda died with XP for me. Still, in terms of playing the games, well, I only ever found less than a handful of interesting ones, so... as far as I'm concerned you're chances aren't that great. I don't even play games on a phone anyway, and I have a hard time understanding people who do.


Either way, I do see what you're saying. You could very well throw out some half assed game and see what happened. You could potentially bombard sites with Happy Flocks... and see if any bird would poop some money your way. If your game costs 5 and you sell 200, you got yourself 1000. Doesn't sound that hard, does it? I think you need to get lucky though. Your game will still take some time and effort to make, and there's a good chance it gets stifled in the noisy market. If you're just thinking about the money, you might go broke.


I've never released a game, but I would assume it's like diving into a pool to impress a girl: if you're greedy and don't care to check what you're doing, the pool might be empty.

#5284242 Should I give up?

Posted by on 30 March 2016 - 06:05 AM

If you are discouraged by code and do not like to solve these problems then you should quit now. This will be all you are doing and is the essence of coding. Personally I love to sit all day and tinker on how I can make something faster or more readable.


Indeed. As some programmer (on youtube) once said: "A programmer is, in essence, a problem solver".


Although, if that's the problem, quitting might still not be the choice he should make, yet.

He might want to tackle game making software first.

#5283968 Should I give up?

Posted by on 28 March 2016 - 07:26 PM

It really comes down to what your heart is saying. Your heart always tells the truth. And remember, it's your heart, so you should heed its words. In the real world you only get one life to do that, and you can't save your progress or start over and try different endings. So let your heart speak louder until it stifles the outside noise.


Let it point its figurative finger in the most desired direction.


Look in that direction, see what's on the horizon. It's never the edge of a cliff, and it's usually a long and irregular, yet beautiful path.


Simply start walking. Don't look back.

#5283963 What game is suitable for a beginner to make (with C++)?

Posted by on 28 March 2016 - 06:59 PM

When I was starting I found pure (text) Roguelikes to be quite accessible, as well as Text Adventures (never found a decent tutorial for these, though), as well as adventure Myst-like games, if you have the skills for graphics, or if you like taking photos for the scenery.


Still, some nice choices would be Pong, Arkanoid, Space Invaders, Tetris, Snake, Pacman, Super Mario, 1942/43. It's worth noting that these games get often suggested for learning, not because they're renown titles or challenging to make, but because they all entail a number of important concepts that you'll need to learn in order to make any game you want to make.


Flash games sometimes bring up great simple ideas, like 2D Shooters (those you control a crosshair and shoot things) and simple puzzle games and top-down stealth/shooting games.


There are some games that look simple but in reality (or as far as I can tell) are quite more complex, such as Worms and Lemmings.

#5283960 Beginner with a dream.

Posted by on 28 March 2016 - 06:28 PM

Yes I'm aware about C++ is not a great first language so Ill just try and learn C# instead since I will be able to use Unity and maybe learn java script  :)


Be careful to not be juggled around by the contrary forces of different opinions. They mean no ill will, but they can hurt your progress.

You're still at an age of (hopefully) relentless perseverance, and you got time on your side, so it really doesn't matter what language you choose as long as it's a language that clicks and that you feel like you enjoy.


Had I had persevered when I was your age I would've learned Pascal from a book I was luckily offered. Had I had persevered ten years later I would've learned C from another book I was offered. Now, nearly another ten years later I'm still dreaming like I once was, but without a single completed game that I can feel proud to have made (only a few prototypes). Now I'm learning C++, and it feels like I'm running kinda late. I've been running away from it this whole decade only to come to the conclusion that C++ was what I should've focused on all along. I really do enjoy it more. At this point, I'm fairly familiar with some seven or eight languages, but the will to use C++ kept nagging me all along. So what was I doing all this time, exactly? Well, wasting it.


That said, learning other languages isn't a bad thing. Just make sure to realize when you're procrastinating or running away from your fears. ;)


I don't know if C++ is the right choice for you, but I do know you'll probably gravitate towards a language of your choice if you tackle a few of them. If that is C++, then by all means make it be so, lest you come to feel sorry for having been delaying the inevitable. However, since your main goal is to create games, you might take advantage of any language in which you find yourself progressing faster, for the sake of actually learning the inns and outs of game programming (C++ can be distracting).


I don't know any modern books besides this one (c++/sfml), and as far as I know it's not for the absolute beginner. For starting out, though, I think the best advice I, and anyone, could give you is to read anything (book or not) that you can find that actually focuses on teaching the concepts/terminology/mindset/etc related to game making, since that will help you get a better understanding of how exactly games are made, and it'll help you know what to look/ask for when you need further help (it will also give you an insight on how ambitious your ideas are, as well as help new ideas come up in your mind). The only one I can think of from the top of my head that does that is quite an old one, that was about Flash AS2, and it was called something like Flash MX Game Design Demystified, or something similar. It's a good read, even if you don't want to learn AS2, you still learn some basic math and physics and other stuff you'll need. Feel free to look for others, there's plenty, in fact. :)

#5283842 Wondering how to build a somewhat complex UI...

Posted by on 28 March 2016 - 07:35 AM

I'm trying to make the UI for resource management functionalities, which are also what makes up most of the game I planned to make. However, I'm a bit lost on how exactly to do it.


I'm not sure of all the stuff this will imply, but I could think of these:

  • A manager (the game class itself, probably, containing a stack of all the in-game screens)
  • A container (a screen, if you will, containing an amount of Panels (screen parts))
  • Panels (like viewports, in a way, containing any of the stuff below)
  • Buttons (multi-purpose, with a Sprite icon - much like the ones here above the forum post editing box)
  • Text Buttons (with a label - I wonder if they could double as clickable dialogue responses)
  • Text Boxes (NPC dialogue, item descriptions, story telling, etc)
  • Lists (containing non-clickable Text Buttons as indices (for stock items lists), or clickable Text Buttons (for dialogue choices), or even mini-panels (a third type of button) with a mix of elements (for example, an NPC list, and each index with a name and some stats and a mini-portrait))
  • Portraits (containing a large image of an character - to exist alongside/inside a player/NPC inspection panel)

Now, I don't really know if I can extend those functionalities like that (text button -> dialogue choice, etc). I don't know how to plan to implement all this, in terms of polymorphism and inheritance, interfaces, etc. I did this once in raw c++ in a console app, but I didn't finish it, so I never knew if it would work in the end.


I'm using c++/SFML now, but I'm more interested in understanding this conceptually (or in pseudocode). If I understand it in that way, I'll probably manage to implement it on my own.


What classes could I have and which could derive from which, and which could have versatile functionality, is what I'm trying to figure out. Also trying to figure out the way to repeat less code. Any help or suggestions or ideas, or whatever, would be greatly appreciated.

#5183263 Need advice for user input parser for text adventure

Posted by on 27 September 2014 - 03:29 AM

This isn't the first time I'm doing this, but the first time it was simpler than what I intend now. My goal is to add a little bit of depth. My concern is mostly with how to handle this in the code, although I'm also struggling a bit to find a good way to describe objects and items in an external file, as well (not which format to use, just what elements to consider (name, ID, what variables, etc). So I guess my problem is twofold. 
A few examples of the input I would want to allow: (I'm using parentesis to mark irrelevant commands and commas to mark actual object names. Doing this only for clarity, the user wouldn't type type the markers. Also using slashes to separate equivalent commands.)
lock east door / lock "front door"                     (assuming "front door" is the one at the east)
cover east window (with) sheets / use sheets (on) "big window"
combine key (with) clay / use key (on) clay
(the object names, by the way, is what I thought could be used to distinguish two doors that might be in the same room, for example, as well as allow the player to refer to them by the name they see in the descriptive text of the area they're in)
I'm curious to know how people would go about doing such a thing. The last time I did it I ended up with an gigantic function with a switch() with many switch()'s inside it. I used arrays to separate and store the commands by categories (specials (quit, help, save...), verbs, directions, etc) and their short versions if available in subsequent dimentions, like this,...
string specials[3][7] = {
    {"exit", "quit", "help", "back", "save", "load", "\0"},
    {"----", "qqq" , "h"   , "bk"  , "----", "----", "\0"},
    {"\0"  , "\0"  , "\0"  , "\0"  , "\0"  , "\0"  , "\0"}

...and when I received input I'd compare them to find in which array the command was, and in which column.The column would be the criteria I'd handle in the big switch(). But I never went any further than to accept one command, because, like now, I was struggling to find a way to do it that made sense. My vision was that it would require at least one more huge switch() like the one I already had.

Considering the ammount of combinations, my guess is that I'll have to reduce whatever I get to a set of main commands, (i.e., "cover" and "combine" would evaluate to "use", "walk" to "go", etc.). Being that the case, I wonder if an enum would be of any use. I also wonder if my intermediary method with the arrays couldn't be superseeded by something else more handy.
That's the kind of thing I'm trying to figure out: the tools that are reasonably adequate for the job. Not how to code it, but what to code it with. I may come to simplify/streamline my goals, but I'll have to see what I can do before I make those decisions. Inform games had a pretty neat system for input, I wish I could see a source code for such an engine, because most of the open source games I found on google used choice menus... :|
Any help/insights/advice would be really apreciated. Thanks. 

#5141292 Needing some quick tips on how to organize my code

Posted by on 22 March 2014 - 02:53 PM

One question, from what I understand from what I've been reading, vectors are great to be used for, say, a player or a room's inventory. Would they be just as good for maps? Considering that the maps as I'm using them, are just an array of ints, I suppose at first they might be, but then the maps are sort of constant (the number of elements never changes in a map, an index's value can change (i.e, closed door (visible)/open door (not visible), but that's about it).

If so then I wonder if I have any use for arrays at all for what I'm doing.

#5139674 Is Adobe Flash any good?

Posted by on 17 March 2014 - 04:26 AM

You definitely can (I don't know about steam and mobiles though), but I don't know if it's the best option. I've coded a lot in actionscript 2 a few years ago, and it was quite limited (and cpu intensive). Its limitations weren't so much of a problem if your goal was to release games on Kongregate or something, but they kind of turned me off since I was thinking of expanding myself.

AS3 seems much better in many ways, but for the same purposes you could maybe delve into HaXe/openFL (or maybe Flixel or HaxePunk). I find HaXe's documentation a bit lacking, but openFL is basically 99% AS3 only with another name and less limitations and HaXe's functionalities alongside, and AS3's documentation is said to be really useful for it. Papers Please, though different from your goal, was developed in NME (which is the former name for openFL).

I find HaXe/openFL to be quite tempting, to be honest. But some people pointed out some other options here that I've been hearing good things about too. I'm not at all knowledged in any of them, so I can't really comment on them.

That said, I wouldn't say you shouldn't go for flash. It's still a good option in many ways, I find. Even if it's in decline.

#5139661 Needing some quick tips on how to organize my code

Posted by on 17 March 2014 - 03:05 AM

I read (vaguely) something about complexity somewhere but I can't recall where... Not sure if it was in the book I'm reading. Which is C++ Primer, by the way.

My only fear at this point - 5 chapters away from classes and not yet much more versed in anything that I wasn't before - would actually be to end up repeating myself, even if I was trying not to, since if I delve into another project the only things I'll do better right now are maybe just to make use of a few more I/O functions and a few tricks I learned about strings.

Or maybe, since the map editor is pretty much finished (except for one slightly important functionality that I couldn't implement due to the messy code (and loading maps)), I might get back to the game itself and start applying whatever else I learn in the next days.

But maybe I'm getting ahead of myself in my thinking. I'll do some reading as you suggested. Thanks.

#5139594 Needing some quick tips on how to organize my code

Posted by on 16 March 2014 - 08:21 PM

No APIs, just pure c++ and the console. I'm not sure if it matters much but since I'm making it purely on the windows console, the "rendering" may be a little different. Still, I'm doing something comparable to double buffering, where I'm drawing everything to an array, clear the screen, and then draw the whole array on the screen. That's why I named that function blit(), it was just the first thing that came to mind when I needed a name for it. Same with one I have called doThingsWithInput(). smile.png


Here's the source code, by the way. If it matters.


The way I'm "rendering" it has it's caveats, is kind of slow and forced me to use system calls (for CLS - and this is because I didn't want to have the whole history of the console above, and also because the scrolling seemed worse to watch) for lack of better options. I made a post on TIG about it but no one seemed to have any better solutions that didn't involve external libraries. Still, I'm not really worried about that, I'm more worried about progressing. I'll do something better with SDL one of these days. I'm also enjoying the challenge of getting around the limitations of the console.


So, I don't know, since everything that needs to be drawn is drawn on that array before it gets drawn on the screen, either everything draws in it, or everything tells the class what to draw in it... I suppose those are the options, but I'm not sure which to choose. But if I choose the latter, I'm not sure how to make that class grasp every other class's needs.


So the first option, which is basically what you're saying, seems easier.

#5139546 Needing some quick tips on how to organize my code

Posted by on 16 March 2014 - 03:13 PM

I started placing stuff into a new file just to see if I could make sense of it. This is what I could gather so far, but I have conflicting ideas here:
I don't know if I should ask the GraphicsM class to draw the map on the buffer, or if that class should allow other classes to draw on it. Or maybe I'm missing something else that might solve my dilema. Or maybe I'm simply doing it all wrong. smile.png

class GraphicsManager
		char tempBuffer[18][35]; 

		void drawOnBuffer();   // draw something on the buffer?
		void blit();
		void clearBuffer();
		void paintBackground(int symbol);    // paints background with the specified ascii symbol
class Map
		int map[18][35];  // the object is given a map from an output source (file), or from user interface (map editing)
		int tileset[2][7];  // class stores active tileset here

		drawMap();  // draw the map to the buffer?   // or maybe ask the graphics manager to do it instead?
		drawTileset(); // draw the tileset to the buffer?

I still haven't read about constructors and such, so don't mind the lack of anything that may be lacking. This is not even the real thing, it's just me trying to understand how to put it together from the code I already have and from what I already learned (which isn't much).

#5139448 Needing some quick tips on how to organize my code

Posted by on 16 March 2014 - 09:09 AM

@dejaime, from reading that article, which I noticed is quite class heavy (which I guess was to be expected), I think I have to admit that separating code and creating classes seem to be two things that don't really go too well without each other. But classes are 6 chapters away in the book.... I guess I'll make a detour and see what I can manage to do.


I kind of noticed CB had themes, but I didn't feel like losing time with it. I may still try some sometime. One thing I noticed about CB is that it allows you to create a list of "user keywords", which probably helps if I want to make it look more similar to ST. But this is something I don't want to get distracted with right now. It's been two days since I last messed up with my code, and it was always distractions that made me end up stopping in the past...


@tanzanite7, sublime text isn't a "proper IDE", it's just a proper generalized text editor with lots of potential to be a decent coding environment. Much like TextMate (I think) and Vim and another one I can't remember. But of course it never reaches the same level of functionalities of an IDE that's made specifically for a language. I will probably want to use the debugger at some point.

#5139355 Needing some quick tips on how to organize my code

Posted by on 15 March 2014 - 07:21 PM

Thanks everyone for the responses. It's being quite insightful. I'm going to try some stuff tomorrow.

I've also just found an article that may also be helpful, though not today. smile.png


@Vortez, about the classes, I have... some degree of awareness on how to make them and how to use them, since I was starting to use them in actionscript 2 a few years ago before I stopped coding then. But there's two problems: 1-  I always just create a bunch of files and end up staring at them indecisively, due to not quite having an idea where to put what, and 2- I'm not yet familiar with c++'s syntax for classes and their baggage. I skipped a bit in the book I'm reading to quickly get to pointers, but I'm intending to get back to what I skipped (structs, enums, and more on strings). I don't want to rush it.


@dejaime, well... I'm extremely (really) picky when it comes to colors. I can't stand writing code in a white background, and I like to just get my hands dirty when I'm learning something. All the IDEs I tried (well, CB, VC and DC, don't know any others), kind of got in the way of it. There's always something that needs to be set or some intricacy that needs to be understood (i.e., project templates, MS's main() arguments), or otherwise something that doesn't work for very specific reasons. I've been away from C++ for years because of this. Also, they clutter my hard drive with project folders (VS is particularly unorganized, it mixes projects from all apps in one folder by default) when all I want at this point is a source file to experiment with. When learning the basics, I need a basic setup to get right down to it and keep me focused and without obstacles.


To that end I'm using Sublime Text for now, which seems to work well so far, though I see times where an IDE would be beneficial. But I find that those apps aren't much good at replicating the level of customization from ST, sadly. ST is great in it's keyword highlighting and dark background, it makes me feel extremely comfortable. So, at least for now I'm stuck with it. That said, I'm still using CB to, for example, compile tutorials I'm following on SDL. I code them in ST and compile them in CB. I still think it's too early for me to be delving into their distractions. I rather be reading the book instead of losing time with the IDEs.



EDIT: By the way, should, or could, variable declarations go on (non-class) header files too?