Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

115 Neutral

About electrikdave

  • Rank

Personal Information

  • Interests
  1. electrikdave

    Novice Seeking Guidance

    Kylotan Yeah, it is surely a challenging subject to self-teach, but I must to what I must to accomplish my goals. Maybe ink and paper books are what I need. The tutorials are helpful, but so far I can't help but think "I don't think I would have done it that way." I'm going to read through Game Programming Patterns, this looks to be a fantastic resource. Thank you so much for posting that. Knowing the terms "persistence," "serialization," and "game states" are all very helpful. It's hard to know what to Google when you're starting fully from scratch, so these terms even so common to you are like a rosetta stone for me. Satharis Your railroad analogy is perfect. It's like how different drummers play different things to the same bass line. Yeah I get that, everyone has such a different way to accomplish even simple things like character movement and loading menus. I've been doing different tutorials so I can learn a variety of ways to think, and figuring out how all the scripts talk to each other has been the most helpful part for me so far. I'm not so worried about minute efficiency. The game I am making is not likely to be heavy on the system, it's mostly going to be dialogue and character interaction, with random and triggered battles being the most intense thing the game does. Ease of use is important to me as I intend to take on crew when the project is ready to demo. I've noticed what you mentioned about scale already in tutorials. I decided to add a new stat to character sheets and I had to edit my leveling scripts, my saving scripts, my base item properties scripts, etc. It was more work than I expected but I think once all the nuts and bolts are working on character movement, leveling and items, I can focus on triggering dialogue and story events without having to revisit that stuff much. Here's hoping. Gian-Reto I am of the mind to always be ready to compete in the highest of ends. I believe Unity is adequate, but if my game is well-received I don't want to regret having made unnecessary compromises to get done just a little more quickly. Third-party assets appear to be a great option, and I have no issue paying for them, they're just a little expensive to purchase without trying before my game is even functional, considering I may switch platforms. Since my game is mostly character interaction in real-life environments like inside of buildings and out in the woods, I worry about the realism. Most of what I am doing right now is just scripting characters and working on their interaction. I think the actual character scripting, dialogue, game events, etc. are going to be largely similar on either engine, but I think the user experience for Unreal will be better as far as realism. The distribution for Unity is the only thing I know it does better. What does terrain streaming mean? I'm happy to hear that you can get good realism from Unity. I have been working in unity so far, and I like it, but I haven't been able to make any of the test environments stand up to other games. I'm sure it's largely due to my skill level, but I worry that I might wind up with less realistic gameplay on Unity. Your final point was exactly the thought I needed to consider. If I learn both I will know better which I prefer. Thank you for your advice.
  2. electrikdave

    Novice Seeking Guidance

    Your music analogy is helpful. To expand on the analogy, let's say I'm learning to play and write on piano. Right now I am just sitting at it hitting keys, and sometimes playing along to the radio. I am trying to find copies of sheet music to read so I can study what the different composers have done. I understood it that writing the parts of the game like characters, story, events, villains, game environment et cetera is more like the composition aspect, and the coding would be more like the sequencing, recording, editing and mixing part of the project. The part that goes unseen but takes it from being an idea in your head to a sellable phonorecord. Obviously there is a knowledge gap to bridge here for me. I want to know how to find working code to read so I can study, or a resource for learning basics other than "you just gotta keep trying." Back to the piano analogy, someone might recommend I work the Hannon book, or practice the Inventions, or maybe send me a link to some MIDI files I can deconstruct, or like jwpepper.com to get some sheets to look at. Is there a way to like dismantle a game to read its code? Are there common techniques used for things like Saving? I would imagine for example Final Fantasy V and Final Fantasy VI used similar code for things like changing from the World Map to a Village, or launching the Menu when you hit X, and didn't have to figure out how to code that stuff all over again. I came here to try and learn from the people who have walked this path before me, but so far I think the only answer I have really gotten is "You're thinking about it wrong, just Google it yourself," at which point I wonder if the reply was more for me or more for the person replying. It's tough to be new and know very little. It's embarrassing and frustrating. I don't need to be reminded that it's hard, or that there's a lot of testing, trial, and error. What I would like is someone who understands the challenge from the perspective of a beginner to say "here's a great resource" or "try X" or "a book that really helped me is" or "here's a link to a great tutorial project with assets you can download to read." I know how forums are. I am on a few for my industry and it's impossible to help everyone who comes looking, but I must no matter what continue working on this project until it is finished, and I am at a standstill pending guidance. To close on the music analogy, imagine a punk guitarist with a knowledge only of power chords, wanting to learn to play funk. Telling him "it's more complicated than punk" or "asking classical musicians how to go from punk to funk will confuse you because of lingo" is an unhelpful sort of masturbation. Recommending that they look into R&B first, or to study blues scales or like dorian modes, aeolian/minor scales, or "just practice along to James Brown records" would be far more helpful.
  3. electrikdave

    Novice Seeking Guidance

    Well it's up to you really, you could look at the features of both and try and get an idea of what wouldbenefit you more. Thanks.   Without going into a huge rant with traditional code the goal is to turn a text file(source code) into machine code(numbers in memory that act as instructions the CPU can run.) There are different ways of getting to that goal, scripts are basically text files that use the rules of a certain language(C# for example) but other than that they are just text files. The goal is for the game engine to take your script and use some wizardry to make it execute machine instructions at the endpoint. Pretty much all data the computer is working with is in memory, the CPU reads instructions and executes them. Maybe it reads a number from a spot in memory, adds a number to it, then sets that memory to the resulting number. In scripts you're essentially reserving a space in memory whenever you create a variable. Int i = 3; In most languages that gives you a chunk of memory of size int and sets it to value 3. Code is literally just millions of math instructions modifying memory. When you play a game anything that you can see is currently loaded into memory, any number is a game is either loaded in memory or has to be grabbed from storage before you use it(a very slow process.) I guess the part that's hard for me is learning to relate to memory vs storage. I've only ever worked with storage directly before coding, so I don't really know what the save data will be doing while it is "in memory."    Everything is essentially broken up into functions in most modern programming languages. Functions being blocks of code that you can "jump to" and run and then jump back when you're finished. Scripts follow the same premise, you might write some code somewhere to save your game data, then you can call that code whenever you get into a situation where you need to save the data. Maybe your character just collided with a save point then he clicked yes on a dialogue box, the dialogue box could call your save code. You can think of code as building blocks. I think learning the terms, like function vs object vs method etc is a pretty fundamental starting point, but remarkably more difficult to search for online than I had anticipated. Perhaps again this is a case of my not knowing what terms specifically to query.   Honestly a lot of this stuff has to be learned by experience, you will end up writing awful code and rewriting things because coding is so deep that you often have to write something before you understand what you could have done better with it. It's like cooking, you can teach anyone the basics of cooking but it takes experience to know how to cut up, cook and season the perfect roast chicken. Does everyone write every game they make from total scratch and testing, or are there techniques that have become sort of the common way of doing things? In my native art (Music) there are no real "rules" per se, but the ways to do many things in production and engineering have become largely standardized.   Just pick something and do it and see how it works. A lot of people(myself included) start coding with this attitude of "I have to do everything the best way/efficiently" after awhile you learn that getting the thing working is the basic and most important goal. Unless you have some reason you think multiple files is better, why not shove it all in one file? You can always change it later. As for XML, usually that just depends on your personal taste and what kind of data you're storing. Unity might offer prewritten code you can call that writes files in different formats. XML and JSON are probably the most generally used text formats.   Ok, I suppose then I'll seek resources for those, although if Binary is faster maybe that's the best.   No! Well, not quite anyway. That was what I was trying to get across, you don't want multiple scripts modifying one file, you want the data to -stay- in memory. When you start a new game or load a game you have an int somewhere representing gold amount, you either set this to a starter value or you load that value from storage. When code adjusts your gold amount it is adjusting the number in memory, not a file. It could take 10,000x longer to open a file and read that int, modify it and save it then it would to just keep changing it in memory. So everything is in memory until we hit a save point. That makes sense, obviously. Maybe I can find a save point script I can read.   It's good to question but don't let it paralyze you, I can almost guarantee you will not find any feature between both engines that will ever make you want to port the entire thing after you've made any decent amount of content. You'll just work around it. The graphic capabilities of Unreal seem to be greater, which is honestly the only reason I would use it over Unity, since Unity has way better distribution.   It makes sense when you think about it. What if you opened a chest in a map an hour ago, saved your game 5 minutes ago then your game crashed and you had to load it up again. How would it know you opened that chest if it doesn't read it from a file? Anything you don't save to storage is lost when your program ends, just like everything in ram is lost if your computer shuts off. On the bright side you can save data like that pretty cheaply, something like a chest id and a true or false if it is opened. A few MB text file can contain massive levels of information, if its binary you can fit even more. So every chest, NPC, etc needs an ID? That's extremely helpful. Any examples of how to format something like this to keep it organized?   Google is the coder's friend, honestly it's hard to find how something works on demand. Often if I don't know how to do something I can spend many hours researching it, prototyping it, looking at games that do something similar. It's part of why knowledge is so powerful in game dev, when you know how to assemble something you can throw it together very quickly in the future. If you don't it's a big chore. Unity related sites will probably help you a lot with specifics, google can help with concepts. What I am looking for specifically are examples of code that work which I can read to disassemble and understand.
  4. electrikdave

    Novice Seeking Guidance

    They're actually pretty similar. On one layer you have the actual engine, the engine being code that provides all the base functionality for your game. Then you have a suite of content creation tools to actually assemble a "game" which is just a bunch of data the engine loads and works with. It's not that different from something like game maker when you boil it down to it. As for which to pick that kinda depends on the needs of your game. Unity probably is easier to pick up for people that have never coded before because it's more marketed towards that group and has a lot of supporting information. Unreal is pretty nice too though, it's arguably designed to be more industrial grade than unity, which is why you see very graphically demanding games use it a lot.      The reason I originally chose Unity is their distribution. I want as many people to have access to my game as possible once it's done. But it's tough because if Unreal can do enough more, it might draw more people to the game. It's a quandary I'm sure many here have battled. Either way I have to learn to code in the native language of the engine I choose.    Arguably you can think of saving as being completely distinct from normal gameplay. Your normal gameplay will be manipulating data that's loaded into memory and saving is just you "backing up" that data to be loaded again later.     That makes sense. I'm still not sure how stuff gets from my code into memory, but I am able to give my "player" stats that can be recalled later by another script, so I know I am doing it. I assume this is managed by the engine, but I know soon I will need to learn to make save points or auto-save. I'm still working on battling and dialog, because without leveling or making choices there's nothing to save.    People often bring up game engines using certain languages for scripting like it should affect their decision, but frankly it shouldn't really. Scripting with a language is rather different from using it for pure programming, you'll often have a limited selection of logic you need to code for and don't have to think about the big picture very often. It's sort of like knowing enough English to count and read basic math word problems vs knowing enough English to write a novel. Although you often CAN use in depth features of the language for scripting you generally do not need to.     This makes sense. I feel like whichever language I use, once it clicks I will learn as much about it as I can, as that's how I generally am with things, but I don't want to underestimate my project and wind up having to rewrite everything.    Going back to what I said about saving, saving is really just taking data in RAM and dumping it into longterm storage. XML is just a format for how to read/write the data. You could just as easily dump out all the data as binary then read it back in, well, "easily" anyway. The main advantage of formats like xml is both to make them human readable-easy to edit, and to give convenient structure to the file so it's easy to save and load certain parts of the data. These things also depend on what you're using to write files too though. I assume unity has built in functionality for serializing things so they might have all the code already written to easily read or write different kinds of files. I'm not a unity expert so I couldn't advise on that directly.     Would you say XML is a good way to store things like current Level/HP/MP/Exp/Gold/Inventory? I wanted originally to write the game in a manner in which I can look at one file and read all the stats/player choices etc. I assume other scripts throughout playing would modify this file, like a int for current gold, or a bool for like didTalkToWizardinCave could be true or false and you can read that file to see what choice the player made. I am not sure if one file is the best place for all of this anymore though. What do you think?       You certainly CAN switch but I'd be highly suspect that many of Unreal's power selling points will affect anything you make at all, unless you suddenly form a large capable team.     My concern is if I eventually will want to. I know which point in the game I must write by myself to demo, but I will be expanding the project to include more people once it's playable up to a certain level. I want to make sure that once I start growing the project I don't find myself wishing I had chosen differently.    Alas you've hit one of the pitfalls of game development, it's often not clear how something really works until you try to create it. Game development definitely benefits from experience on making different systems. Your best bet to figure it out is to try and break the goal into different tasks you need to accomplish. Like you know you'll have to detect when you're near an NPC and change into some sort of "chatting" state, that pops up the dialogue and stops your input from moving your character. You'll also have to tell the game what dialogue to actually display(loading it based on npc id or something.) The hardest part is figuring out those steps when you aren't familiar with them.   Yeah, right now I'm making an invisible collider around each NPC, and I'm trying to write it so if you GetKey while in the collider it will launch the dialog sequence associated with that collider/NPC. I'm sure once I get it to remember one player choice and make that affect a second conversation, I'll be able to write the entire game's story and build the whole world.    There aren't any "rules" for writing save files and trust me, every game uses a million different versions. Some games save everything into one giant file, some games save almost every object and its position and some only save character data and reset everything else. I will say usually everything gets stuck in one file for a "save" though, for simplicity sake. Think about the use pattern, if you'll be loading it all at once when you load a game then it probably should all be in the same place. That's a lot to think about. I never thought about saving whether each chest that's out in the wild has been opened, or whether the character has spoken to an NPC yet or not. I'm going to have to I guess first figure out how to make an NPC that says one thing the first time you speak to them, and then something different every time after that.        Do you know what a good resource is to read scripts that do something like this, or to learn what functions I must understand to write this stuff?
  5. electrikdave

    Novice Seeking Guidance

    Thanks for the reply L,      I've been using Unity so far, but I am getting the sense that Unreal is more powerful so I think I may switch. I have a demo project in Unity that I want to finish though. I've made a few scenes and a world map, and I am working to discover how I can create dialog with NPCs. Like "Go tell X to that guy over there then come back" and then when you talk to the guy over there, the first guy's dialog changes to something like "thanks for telling him for me." Once I learn that I can build a small game and play around with the fine tuning until I know the program well, but I don't know what to search for.    It sounds to me like you are saying C++ and Unreal may be a better long-term plan, and Unity a better short term plan.    As far as Inventory, I would like to have one file that contains the information about character level and stats, inventory, player choices, and a variety of other variables. I learn best from dissecting working code, but I don't know where to find example code from games like this.    What search terms do you recommend for saving and for dialog? 
  6. electrikdave

    Novice Seeking Guidance

    Hello,    I'm Dave, thank you for having me on your forum. I am making a video game (RPG) and I am here for guidance. Preproduction is largely complete so I've begun learning how to actually put this thing together so I can make a demo. I am essentially new to coding (my only languages before this project were HTML, Applescript, and some javascript). I know to read and write as much as I can, but I don't know where to begin. I intended to lurk moar before posting, but then realized I'd no idea what terms to search.    So far, I'm learning Unity (and thus C#) because the distribution platform looks dope, but am considering a switch to Unreal (which  uses C++ if I'm not mistaken). I don't know how to ascertain which better suits my work. I have a cube that walks via arrow keys and the game saves his stats and inventory as a binary string. I learned from tutorials (and debugging my transcription errors), but I am still dissecting the roles of different objects and functions and don't fully comprehend why what I've written works.    Currently I'm seeking to create NPCs the player can walk up to and interact with, making dialog choices that affect other dialog options with other NPCs. I also want to ask people who know more than me, is C# a good language for that sort of thing? Are there others I should be learning instead or as well? I've heard that XML is good for storing inventory and character sheets.    Being a n00b is hard. I know that I am taking on a large project for a complete beginner, but as a man of boundless optimism I welcome the challenge. If you can point me in any direction it would be greatly appreciated.          Love and kisses,    Electrik Dave xoxo     Edit: I have discovered the FAQ since posting this, apologize for posting before reading it, and still welcome any guidance. Especially with dialog choices.    Love and Kittens,   Dave
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!