Jump to content

  • Log In with Google      Sign In   
  • Create Account

Herwin P

Member Since 09 Apr 2013
Offline Last Active Yesterday, 07:30 PM

#5264847 How to ease sprite creation for an RPG

Posted by Herwin P on 04 December 2015 - 03:32 AM

I'm not sure what you are using for a game engine here, but I have seen a method in Unity where you draw the basic sprites and then animate them in the editor using bone/rigging techniques similar to 3D animation methods.  I'm not sure if this reduces the work load as I'm pretty new to game dev. in general, but this came to mind and I don't think anyone above mentioned it.


I'm not using an engine for this one actually. I'm using C++ and SFML for study purposes. I already made a simple top-down shooter with basic data-driven design, which we're using as the base for this RPG now. Though that shooter has a flat top-down view, so the sprites and animations are really simple.


We used Unity for our previous platformer, so we already have experience with that technique. We decided not to use for this RPG because we plan to have the character to be able to face 8-directions, and we thought using sprite sheets would be easier for that. Not sure if other people would think differently.

#5264830 C++ Classes, Hierarchy, Friends Chart

Posted by Herwin P on 03 December 2015 - 10:24 PM


I have 3 types of "objs" Player, Enemy, Items

Each contains a vector.


I want one loop to iterate a single vector. How can I relate all 3 in a way I can add to a single vector?

You can contain objects of those classes in a single vector of the base class of those classes, like std::vector<Move>.

#5220608 I am 21 years of age, with absolutely zero knowledge of Coding/Programming. H...

Posted by Herwin P on 01 April 2015 - 12:32 AM

Python is a good language to introduce basic programming logic with. Python goes straight into the general concept of programming with easy syntax and rules that total beginners can easily follow. I know a very good online book about Python. You don't necessarily need college to learn coding. Internet has a lot of tutorials, and there are communities to help you with your problems.


Of course, I recommend you to give C++ another try after getting the hang out of Python because C++ is really important. This is just my personal opinion, but here's what you need to do:

  1. Start with a programming language (like Python or C++).
  2. Take a look at a multimedia framework like PyGame for Python to see how game mechanics are done. SFML for C++
  3. Try using a game engine like Panda3D.

Some people say that you can just go straight to game engine after learning a programming language, but I think learning about game mechanics first is better since you'll know what you want to do when facing a game engine. It'll make it easier to learn the engine too.

#5220407 Python for data-driven design?

Posted by Herwin P on 30 March 2015 - 10:15 PM

Wow. That's a very informative post, Sean. Thanks.



You'd use a scripting language when you want extension of behavior and logic and you'd use a data format like JSON when you want to tweak and modify existing behavior and logic via simple data definitions. For instance, do your users need to define whole new AI modules for different enemies, or do they merely need to provide input values like Aggression to a single core unified AI module?


Ah I see. So scripting language is used to provide extension to the core game. I can imagine a lot of things to try. Though I don't think I will use it on my current project, or at least not yet, I will definitely take a deeper look at it.



Going out of your way to make it harder for users to mod your game does nothing but make your game less popular. Online games keep all of the critical data and scripts on a server that the user has no ability to mod. For single-player games or the client of multi-player games, though, modding should at least be tolerated if not outright encouraged; a heavy modding community for a game is a sign of popularity and longevity.


Yeah. That game I mentioned is famous mostly because of the modding community. When I was designing this game, modding did come to mind, but I asked because I think there might be some data that needs to be hidden from the users. The modding I plan would be limited to making new entities like monsters or items, so JSON would be enough.

#5164229 In need on some guidance.

Posted by Herwin P on 01 July 2014 - 11:13 PM


they are all irrelevant.

Just choose whatever you want and get going.. these are not "issues", they are just excuses to faff around.

Wow what a dev community and want me to subscribe for this kind of answers... Thanks a lot...



He has a point. Just pick whatever you're most comfortable with and get going. Many people are stuck in a search of a perfect engine for a game they're planning to make. It won't get them anywhere, since there's no such thing as a perfect engine. They usually ended up spending too much time looking for an engine that they lost interest in their project in the wait. You should just pick an engine that's enough for your project and actually make a game.

#5161681 Question for Experts, especially for Beginners: Motivation, how NOT to lose it?

Posted by Herwin P on 20 June 2014 - 05:27 AM

I'm not an expert, but I've been working on web development projects before. One of them was for the government, and I had always hated government stuff, so it really took none of my interest. Not to mention that I was a new guy and the project documentation sucked. Had to do it because it's my job, so I did it anyway, and that's the point. Actually doing something. When you're messing with lines of code, you will find that solving problems one by one is fun. To actually achieve something is satisfying, and it keeps driving someone forward.


It's similar with other creative works like fiction writing. You're less likely to find inspiration or motivation when you're not facing a piece of paper. In most cases, creativity happens when you're writing. You may think like, "Ah, what if it goes like this, and this, and that," during the process. If you just wait for inspiration to come, it won't come. That's what professional writers do, someone told me. Write even though they're not feeling motivated. Don't wait for it, don't beg for it, but earn it.


So, get that project of yours and force yourself to code something. You will get motivated as you achieve one small thing after another. It's hard to move a giant boulder at first, but things will be easy once you can get it rolling... except for stopping it from crushing your puppy flat into the dirt. ._.

#5161445 Share the most challenging problem you solved recently! What made you fee...

Posted by Herwin P on 19 June 2014 - 04:01 AM

I haven't done much game development stuff, because my job as a web dev and preparation for entering college have been taking most of my time in the past few months. I couldn't find a tutorial about how to render a camera which focuses on the character for my 2D RPG, so I coded it myself with PyGame one free afternoon. I needed to store the entities' world coordinate, and calculate their screen coordinate based on the character's world coordinate. It was fun, drawing the logic on a piece of paper and wrote the code right away. It's nothing big, but I'm kinda proud about it. I still need to learn so many things. biggrin.png

#5151951 What is a good 2D game engine?

Posted by Herwin P on 06 May 2014 - 07:46 PM

Most 2D games don't use engines. Usually they write their own game-specific logic code, because 2D games vary alot more than 3D games do.


Thank you very much. I was just in doubt whether to continue coding my own game without an engine or not, because I thought most 2D games used game engines. biggrin.png

#5147519 game implementation advice

Posted by Herwin P on 16 April 2014 - 08:20 PM

My question: whats the best way to tie the concepts together so the skills can modify an attribute of a weapon and spell. Also how do I represent that a a user has unlocked a skill. Do I create a table that has the user id, skill id, and a field that shows it's been unlocked?


Use relationships and pivot tables. It's easier if you see tables as classes, and columns as attributes in object oriented programming. You can make a table which defines a class of objects and its basic attributes, and these attributes can be a reference to another class of objects (another table). For example, you can define a weapon table, and it has:


id, name, weapon_type, weight, attack_range, damage, price, other_attributes

And an element table:


id, name, other, attributes, goes, here

To assign an element to a weapon, you can make a pivot table which stores the relation between a weapon and its elements. We use a pivot table because a weapon can have more than one elements (ex: fire, wind). Just name this table weapon_elements.


id, weapon_id, element_id

Here, weapon_id is an integer which refers to a weapon's id (weapon.id), and element_id refers to an id of an element from the element table. You can insert some rows which define the relations of a weapon to several elements, like:

id | weapon_id | element_id
1  | 1         | 1
2  | 1         | 3
3  | 2         | 4
Say weapon 1 is a sword with fire and wind element, and weapon 2 is an axe with earth element. You can get a list of weapon 1 elements by making a query to this table with only the weapon's id, or you can try to find out if weapon 2 has a fire element or not. It can be applied on the case where you want to see if a skill is unlocked already on a character, or in other word, if a character already has that particular skill. If it returns no result, then the character simply hasn't got that skill yet. It's much better than making the weapon table like:
id, name, type, weight, attack_range, damage, price, element_one, element_two, element_three, element...

If it's just a one-to-one relationship, where an attribute refers to only an object of another class, you don't need a pivot table. For example, a weapon only has one type. A weapon can't be a sword and a bow at the same time, can it? That's why type in in the weapon table refers to a weapon_type table which defines the types of weapons available in the game.


id, name, other, attributes, that, defines, a_type, of_weapons

Be creative with the rest.


P.S. I hate formatting.

#5147115 I need some serious help from you guys! (Bring spatulas)

Posted by Herwin P on 15 April 2014 - 08:28 AM

Well my idea of the work i was going to do, was that I'd be doing most of the gamedesign, however, i figured I would need some type of prototype to show people what i was even talking about before I could get someone competent to work on my game.. Therefore, i would need to learn some programming as well. It would be nice to learn it anyway just for the sake of knowing how things work. 


And To Herwin: I didn't mean to be rude or anything, but I've been closely following the gaming industry for almost 10 years, and I do mean closely!  I know, what a programmer is and what he does, and I know what a Designer does. I just didn't seem like he even read my thread.. I'm not looking to get hired, and I'm not interested in making Tech demoes.. I want to make this game, and this game will be the showcase of all the things I'm about to learn. I don't have any illusions of game-developing being easy. I know it's damn hard, and I also know how it works. I just thought i made it clear from my post, that I wanted to do an indie game with me and another person who would join development at a later point.. And I don't want to mod ;(


You need a good design document to make people interested too. Sometimes you will find difficulties in showing people a prototype (you might meet some bugs while showing them, etc), and it also takes time to make one. A well-written design document can give enough information to make people interested to join your team, and it acts as a looking-point while you're working on your game.


The design focus is written in the design document, as well as the sub focuses and other stuff like what engine you're going to use, what kind of art, music, why, how, etc. Even when you're working on your prototype, a design document can be helpful too, so make that first. You might find some potential problems or benefits you haven't seen before while writing it.


A good game designer should understand every components of a game. He needs to understand visual art, music, story telling, programming, and project management, but there's no need to be an expert on those. You don't have to be a maestro who can play 18 instruments. You just need to know what kind of music can make a boss fight feel daring.


For now, just learn a programming language and Object Oriented Programming. You will find a lot more to learn as you go.


Edit: A design focus is the idea that makes the game interesting. For example, Dark Souls' design focus could be its difficulties, because some hardcore gamers love challenge. Other stuff like gameplay, art theme, and story are chosen to achieve the focus. In Dark Souls' case, the difficulties is served in a real-time action RPG (the gameplay) and resolves around a main character who's a weak undead (story line). The game is wrapped in a dark atmosphere (visual) to support the difficult nature of the game. All of these stuff is written in the design document.

#5147105 I need some serious help from you guys! (Bring spatulas)

Posted by Herwin P on 15 April 2014 - 07:58 AM

Eh, I don't think starting with making a 3D game is a good idea. I mean, here you said you're just starting. Listen to any advice people give you. It's a useful attitude when you're learning. Ashaman's post is right, you know. If you want to know what you need to learn, here you go.


First of all, you will want to learn a programming language. For the love of all mothers, just pick one and actually get started. Don't get too busy picking the 'right' language. I'd recommend Python, though, because it's less likely to stress you with syntax errors and stuff. Well, whatever language you pick, you will end up learning about Object Oriented Programming. Make sure you understand that before going further because it will give you an abstract idea of how things work.


Well, there's so much after that, really. It will make a very long post to explain what you need to learn to become a game developer, because it really is a lot. My advice is to learn a programming language and try to make a simple game like Pong to give yourself a taste.

#5113988 Need more than 1 value to unpack?

Posted by Herwin P on 03 December 2013 - 04:24 AM

Wow i can do that now.It is really clear thank you for helping me smile.png  and sorry because i really hard to understand that biggrin.png


My pleasure.


Don't worry about it. Everyone starts somewhere. Fully understanding these little things in the beginning can save a whole lot of pain down the road. There are actually people who don't care about how exactly their program runs as long as it's working, and when things go wild, they can't find the source of the problem, so whenever you feel unsure about how a piece of code works, track it down until it's clear. You can always ask, of course. That's what this community is for.


Study hard!

#5113920 Need more than 1 value to unpack?

Posted by Herwin P on 02 December 2013 - 07:54 PM


I still don't get it when i tried that it give me an error say invalid syntax.Here my script:



from sys import argv

$ python ex13.py first 2nd 3rd

script, first, second, third = argv

print "This script called.:", script
print "Your first variable is:", first
print "Your second variable is:", second
print "Your third variable is:", third


Thank you for answering my question



No. It's not like that. What Renega means with this:


If you execute this:
$ python ex13.py first 2nd 3rd
You should see this:


is not for the script. It's a Linux terminal command.




While talking about terminal command on the Internet, people tend to use the $ to indicate that "This is run in the terminal," so what Renega is saying is that you run:

python ex13.py first 2nd 3rd

on the Command Prompt (I guess you're running on Windows).


There's nothing wrong with your original script. What caused the problem is that you didn't give enough arguments for the script to unpack (explained in my first post). Let me explain it with more detail. argv is a list, so when you're unpacking it like this:

script, first, second, third = argv

It's basically just like this:

script, first, second, third = 'ex13.py', '1st', '2nd', '3rd'

Because argv is actually like this:

['ex13.py', '1st', '2nd', '3rd']

And it gets those items from those arguments you pass when you call the script on the Command Prompt:

python ex13.py 1st 2nd 3rd

Try to print argv and you will get what I mean. Is it clear now? :)

#5113478 Need more than 1 value to unpack?

Posted by Herwin P on 01 December 2013 - 07:47 AM

Can you tell me how you call the script? The script takes three extra argumens (first, second, third). From what I get, you're supposed to call it like this:

python myscript.py somethingforfirst somethingforsecond somethingforthird

Those are called arguments. Those arguments are first taken and packed into argv. In this line:

script, first, second, third = argv

You're unpacking stuff inside argv into separate variables. How do I explain it? Just say argv is a list (array, whatever). The content of argv is like:

['myscript.py', 'somethingforfirst', 'somethingforsecond', 'somethingforthird']

When you unpack it, those items in the array go to the variables in order, so 'myscipt.py' goes to script, 'somethingforfirst' goes to first, and the rest goes like that.


The error you see is caused because you try to take more than argv actually has. You're likely to only pass one argument ('myscript.py'), while you try to unpack argv into four variables. Python simply tells you that she needs more items to unpack.


Try to make a simple list of five items, and try to unpack it into six variables. You will get the same error message.

#5064741 A few painful questions about Databases

Posted by Herwin P on 25 May 2013 - 05:16 AM

because it sounds like possible overkill if you have 100,000 distinct tables.


It will. Trust me. Even in my multiplayer RPG game database design, I just need about 43 tables to cover most of the things like items, skills, magics, users, characters, quests, etc. laugh.png


I think, instead of using a table for each character to contains its items, you can do something like this:

character_table : id, name, other, information, needed
item_table : id, item_name, type, price, weight, other, information, needed


And make a pivot table like this:

character_items : id, character_id, item_id, quantity, slot_number


The character_id and item_id attributes in the pivot table refer to the id of character_table and item_table.


The tuples will be like this:


id, character_id, item_id, quantity, slot_number
01, 142         , 153    , 30      , 1
02, 143         , 153    , 20      , 5
03, 142         , 192    , 14      , 2
04, 142         , 112    , 11      , 3 

See? You don't need one table for each character.


Oh no! I want to delete character 142! Simple. MySQL, just delete any tuple in character_item table where the character_id is 142.


Oh no! I want to delete item 153! Simple. Just do like the previous.


If you need to use the item information for something else, like what items are in a room, you can simply make a pivot table to connect the room table with the item table. This makes your data re-usable, and, magically, reduce redundancy.


You don't need a table with 1000000 columns either. Remember that those attributes can be separated into tables. Just use your imagination.


As for empty data in a row, try to keep it minimum. It just doesn't feel right to me.


Remember to make the id attribute a numerical auto_increment-ed column and set it as primary_key. It will make the search faster. It's very good for consistency.


My Little SQL : Normalization is Magic.