Jump to content
    1. Past hour
    2. Zemlaynin

      The Great Tribes

      Album for The Great Tribes
    3. Promit

      Overengeneering Modularity

      Alright, let me try to organize some thoughts on this subject. Modularized design is one of these things that everyone tosses around as of course that must be a good idea, but very few people actually succeed at doing. As has been noted, C++ is particularly poor for modular design compared to most later language designs, but that's far from the only issue or even the major one. Whenever code interacts, there are assumptions involved about how both sides behave. It's tempting to say that oh, B strictly depends on module A and so module A can be cheerfully reused, interchanged, etc without having to worry about B. It's also easy to say that things won't ever end up straddling the boundary, or making assumptions about the internal behavior of either piece. This is where we start to head into the land of leaky abstractions, systems that ostensibly live as independent modules and yet expose much more of their implementation than expected or intended. Eventually at the scale of something like a game, we tend to end up with modules that are entirely co-dependent, at least at a behavioral level and sometimes at a full code level. The physics and rendering code ends up with hacks, taps, or magic variables that exist to enable behaviors and structures that simply did not modularize in any meaningful way. I've seen people argue that the entire concept of code reuse (especially in the context of OOP) is overblown and more of a fantasy than reality, though I think that's extreme. That's all well and good at an academic level, but you'd probably like some advice about what to do about it. I'm going to give the same advice I give for many design problems: don't do anything at all. The biggest mistake developers routinely make is designing systems and interfaces for what they imagine they would like to solve instead of what they're actually solving. Focus on the exact things you need to actually produce the exact product you're making, and put just enough design effort in so that everything doesn't go to hell if you need to reshape it later. KISS and YAGNI are undervalued approaches. Take your matchmaking server that doesn't need math code. Suppose the math code goes in anyway. Who cares? What has this cost you? What problem has it created? What problem does removing it solve? Don't get lost trying to solve problems you don't actually have. Create a module when you have need to share blocks of code smoothly across multiple products, and then you'll have the necessary context to design the module properly. There's no sense making a module out of something that only has one use case in the first place.
    4. Fulcrum.013

      Overengeneering Modularity

      C/C++ headers system much powerful than any other languages have. But as any powerfull tool it just require some expirience and understaning of concepts how to use it properly. Also it applicable to any other C++ features that much more powerfull than any other languages have, like templates magic, operators overloading, pointers arithmetic, multiple inheritance, memory managment, automatic constructors and destructors calls an so on. Only problem of C++ is a commitete that propogate conceptually outdated library instead to add to standart core language features that serve well on modern C++ dialects since midlle of 90-th, like core-implemented properties, delegates and Reflection/RTTI.
    5. Today
    6. lawnjelly

      Suggestion for choosing challenges

      Oo I have a bunch of suggestions, maybe too many, I will think of more later: Hamster danceoff (well could be any animals, you would load in a music file to play and have to press keys to move your hamsters dancemoves in time, maybe 2 player) Squirrel racing (or some other animal) Sheep herding Michael Phelp's shark racing chess frogger pool 2d/3d bomber game, bomb enemy bases before being blown up by enemy fire scrabble worms text adventure (graphics allowed for locations but must be text based)
    7. Important: I am trying to realize in scrtach which is performance very low due to it's "virutal level" scrtach->flashplayer->java... Also i'm new to this forum so i'm sorry if I missed group (like last time) Like a title is saying:I have project ,and I get negative feedback on it because some people need 30 min to complete it (what is the planned time)but problem is that some people need EVEN 5 hours…(game is incremental/idle/upgrade type so it's important to keep same time ...)———————————————————————————————————————-Of course people with slower computer will have less fps so game will be slower for them,so I have created TimeDelta system for each frame to calculate something to do per second for example Update(){move(TimeDelta*speed)} so that mean it will be moving speed number of pixels(or units) per second so it will be same for almost each user.But problem is next:I have to change ySpeed by jumpPower (#PlayerJump in my project)when any jump button is pressed then in each frame decrease ySpeed by gravity it is(-10 * TimeDelta)but when someone have lower fps it will have higher TimeDelta and will fall faster but with same jump it turns out to jump significantly lower that changes core of game BUT even worse if fps suddenly in moment of jump then timeDelta would be 1 so player will jump much much MUCH higher , then fall much slower because timeDelta changed in meanwhile…(and the point of my game is about upgrading jump not complete game in first fps drop) —————————————————————————————————————————————————————Then I got an idea to fix TimeDelta (like in unity for rigibody) so it will be rounded likeif calculated TimeDelta is 0.01834 it will be 0.02 fixedif weaker computer is using it the TImeDelta will be 0.143 so runded to 0.14 and so on…I did not manage to realize it… i tried to calculate it before main initialization of game objectsbut I'm afraid to fps will drop in moment that is calculating so it will be much diffirent…I was trying with empty loop(400)(in scrtach even this is taking time) to calculate it but i'm not sure is it right So is there good way to realize this fixed TimeDelta I only have timer function to use and time difference between frames This_is_the_link_for_the_game
    8. Are you sure your window is just WS_OVERLAPPEDWINDOW? Have you tried getting the window flags from the window itself first, to make sure you are adjusting to the correct ones?
    9. Fulcrum.013

      Overengeneering Modularity

      Most likely remake it from scratch following science proven requirments for development. Most likely it require much less code. For example i has seen a SCRUM-"developed" system that take over 10 human-years to solve 5 specific cases of one geometrical problem, has 300k lines length and not works properly. For comparsion classicaly developed system to solve a complete set of similar problems universally fit to 15-20k lines of code and can be done from scratch in less then 1 human-year.
    10. I have a few ideas, but what will the time-lines be for completion? I don't want to recommend something that I know cannot be completed if there isn't enough time. One suggestion I had, and I can get into more detail if it's of interest, is to create a basic 3D maze where the player travels through and fights monsters while collecting equipment and items as they journey to the exit. This will also be an RPG so levels will go up, as well as stats and abilities. Enemies can either spawn through RNG with battle events, or they can be free moving with real-time combat or turn based once interaction has occurred.
    11. Update. Yes it skips!. This is how it looks when drawing horizontal lines every two pixels in windowed mode (its the same problem with vertical lines): I try this from an internet tutorial: // settings for the window RECT wr = { 0, 0, gfx.screenX, gfx.screenY }; // set the size, but not the position AdjustWindowRect(&wr, WS_OVERLAPPEDWINDOW, FALSE); // adjust the size inHGE->System_SetState(HGE_WINDOWED, !fullScreen); inHGE->System_SetState(HGE_SCREENWIDTH, wr.right - wr.left); inHGE->System_SetState(HGE_SCREENHEIGHT, wr.bottom - wr.top); And it does correct the width and height (was 1600x900 but changed it into 1616x939 pixels) but still the same problem. I also try it with the style WS_BORDER but the same problem persists. Any ideas?
    12. This is not a Game Design question. Moving.
    13. Tom Sloper

      Programming portfolio and resume feedback

      Let's all try and stay on Amperian's portfolio and resume. If someone wants to start a fun grousing thread about HR practices, you're welcome to start a thread in the Lounge.
    14. Vilem Otte

      Beginning developing

      It's simple, you just die out of hunger. Simply said, if you invest in making a game on your own without having a side job - it means you have enough funding to do it. That also means that you have some knowledge in economy and business, and therefore you won't invest all money you have on single game project that has high failure possibility. What are friends? It's not that bad, and it depends. If you're on normal 9-5 job, you will have about as much free time as any other job. If you work on your project it is entirely up to you how much time you dedicate to it - everything incl. your sleep? Just few hours a day? Weekends only? Take your pick! It's like cocaine. It's not physically addictive - yet some people enjoy it. If you ask me whether I go to bar in the evening, or work on the code. I'd pick the code most of the time - but mostly because I have personally more fun working with the code, than getting drunk at the bar. I have one rule - if something stresses me out, and I definitely don't enjoy it - I don't do it. Of course there are some short term things you have to live through (those hard exams we all had to pass while doing universities being such example), but if your job stresses you out - then you've probably picked the wrong job. Doing a work to get money is just not enough for me, take it this way - you have just one life - do you want to spend it stressing yourself in job you clearly don't enjoy? Simply, when your job makes you feel bad - change the job.
    15. This is what I'd like to do. So, let's see the suggestions for the next challenge!
    16. mr_tawan

      Overengeneering Modularity

      Let me goes back to the topic. I think, you should starts with evaluating the scope of your project. 'Modular' can be 'overkill'. I think most people don't go that route because they know that once they start a new project, they would just make a copy of the old one and start reiterating (or may be start from scratch). I think 'modular' design benefit when there are many developers work on different projects based using modules. You can just pull a module when you need to, dependencies are automatically managed (including indirect dependcies). One project might uses one module for one thing, another uses for another, etc. That's something fits larger companies (eg. Google), but probably not indie developer. It's like you said, 'overengineering'. Modern languages have ways to manage library, module, and dependencies so setting up is a breeze. In java for example, we can just create a project with a gradle build file containing direct dependencies it requires. Gradle can then pull anything required from a centralized repository (publicly or privately hosted). It can even host build steps so everything is automated. This is some thing yet to be available for us C++ programmer as C++ module is not yet standardized. We are pretty close though. Until then having modular design can be quite challenging. CMake is probably the closest things to tools available in other languages, but it's still very awkward to use and it can only checks if the system has that modules or not. Installing required module is still essentially a manual work. Anyway we can have project that has modularized design project structure in C++ (though it is essentially a monolithic system, the code just looks like they are modules).
    17. Fulcrum.013

      Overengeneering Modularity

      2015 has a optional experemental __clang-based compiler. 2017 rapidly extends set of supported targets. So looks like thay has do same as Embarcadero - just added his language extensions to __clang and result become to proprientary tool. Ever in case thay turned back to old compiler thay has added a similar to __clang sparce code-generators technology anycase.
    18. Alberth

      Am I biting too much?

      Start with just one of them, while avoiding implementing "etc", since that is not so well-defined. Battle looks most concrete at first sight.
    19. Oberon_Command

      Overengeneering Modularity

      Got a citation for that? My understanding was that even VS 2017 still used MS's proprietary (and, from what I've heard, very hard to maintain) compiler toolchain. That's probably fine for small projects, but how well does that work when your codebase is several million (or even a mere couple of hundred thousand) lines long?
    20. Fulcrum.013

      Overengeneering Modularity

      Its library organization concept serve well since fortrain times. Many other language have similar strategy for common libs. Just C/C++ have a separate headers to solve a module header doubling and cross-dependencies problems. Just one tiny concept help to turn it "nightmare" to powerfull libraries organization tool - common components headers and build libs have to be moved to common libs/include folder (or its subfolders), project specific code have to be placed to project folder. Especially for follow it concept #include have a 2 options of syntax - with "" to begin search from current dir and <> to begin search from dirs specified in project sattings.
    21. Rutin

      Beginning developing

      If you're getting into game development as a commercial venture then it holds the same risks as anything else in business. If my game 'fails', I just move onto the next project once I know why it failed. I can afford to live because I run a few businesses outside of game development that bring in funding. When I'm working on a project I'll make free time so I don't burn out, but to be honest if I'm pushing a project for completion I really don't have a lot of time. 9-5 doesn't exist for me, and hasn't for many years. Some people like to work on their own projects. Any career can be stressful... My legal business is far more stressful than my IT business by far... I strongly believe we either allow or disallow certain conditions to drain us emotionally. It's all about how you respond, not react.
    22. Ilya873

      World of Blocks 3: New World

      World of Blocks 3: New World is an online game in the genre of building sandbox. The game has a huge world with different climatic regions and secrets, many blocks for construction and monsters. Here you can build whatever you want! Travel and explore the world! For faster moving around the world, you can create a car. Also in the game there is a mode of survival and mission. Create and survive with your friends! World of Blocks will teach you how to build!
    23. LorenzoGatti

      Overengeneering Modularity

      Yes, the core component contains anything that is used by other components that are build on top of it. Crypto module for example uses streams and long integer math from Core, Input uses the event implementation from Core, Network uses streams, threading and other stuff from Core ... and so on. So it isn't a cohesive component, it's a collection of low-level libraries that have little to do with each other and would probably benefit from being separated.
    24. mr_tawan

      Programming and Higher Mathematics

      Well IMHO, programming is coding. Add programming to engineering and you'll get something call 'Software Engineering' --- though I think many engineer disagree. Edit: @Oberon_Command has expanded the engineering clause before I finished posting. Well said and well explained.
    25. swiftcoder

      Beginning developing

      Most indie game devs hold day jobs when starting out. I really wouldn't recommend quitting your day job until you have a solid expectation of income from game dev. If you work for a game studio as an employee? Same as anyone in another 9-5 job, though some overtime is to be expected. If you are talking about indie game developers, then due to the aforementioned need to maintain a day job alongside game development, likely to be very little. My day job is writing operating system software for a large enterprise. It doesn't scratch the same itch for me that game development does, so I work on small games in my free time. Not that I've ever heard of. Some folks can get a bit obsessive over it, but at the end of the day, it's much like any other job/hobby.
    26. Oberon_Command

      Programming and Higher Mathematics

      In English - or at least, in Canadian English - "engineering" and "tech" are different things, even though some tech workers are sometimes called "engineers." Colloquially, "tech" usually refers to software or information technology. "Engineering" refers to things like designing bridges and machines. Where I went to school there was a degree program called "software engineering", but it was just a specialization of computer science, which was a department in the faculty of science. "Software engineers" who go through that degree program cannot become certified professional engineers because "software engineering" is not actually recognized as "engineering" by the organizations that license engineers. Some schools even put computer science under the faculty of mathematics, not science! A true "engineer" to a Canadian is someone who wears the Iron Ring - someone who has learned the ethics of engineering and gone through a ritual where they swear an sort of "engineer's oath" to uphold that code of ethics and can be held accountable by the public for mistakes (which is NOT true of the vast majority of software developers!). Typically when I think of engineering, I think of fields like mechanical engineering, where there is a lot of emphasis on rigorous mathematical design of physical things. Such engineers do write software - and there are "computer engineers" - but they tend to approach software problems with the mindset that the code itself is only incidental to the real problem, which is almost always control of a piece of hardware. Computer scientists and "software engineers" typically have the opposite. Most of our problems involve software as the primary thing we are building - how it is structured and how it interacts with other software and even whether the customer is happy with how it looks on the screen. How we are going to deal with (inevitable) requirements changes a month before ship - or three years after shipping our software... Since my undergrad was in computer science, I didn't go through the Ritual of the Calling of an Engineer, I don't wear the Iron Ring, and I am actually not allowed to call myself a "professional engineer." Nonetheless, my job title is "software engineer", which is a term I try to avoid applying to myself because it arguably dilutes the meaning of the word "engineer".
    27. mr_tawan

      Overengeneering Modularity

      That's exactly what I call 'nightmare'
    28. Tom Nook

      Beginning developing

      Hi, so i'm new to programming. I learned so far Python and now i'm into C#. But i was afraid of continuing so i wanted to ask some questions here. First of all, if your game fails how do you afford living? How much free time do game developers really have? And also why do some developers still code when returned home even if they don't have to? Can coding become some kind of addiction? Sorry for some dumb questions but i'm really confused. I hear a lot of stories about developers and how coding ruined their lives, how it can be stressing etc. Hope to seeing some responses down here!
    29. Fulcrum.013

      Overengeneering Modularity

      It newer will work for mathemathic realted tasks. You have to find self-consistent set of operations under your primitives before any coding. Othervice it just will never work. But when it work once it will work forever. Ever in case you need enlarge something you have again find extended self-consistent set and it never require refactoring.
    30. If you think those algorithms "don't work perfect", you must have some idea in mind of what you want them to do. Since you are not giving us any details or examples of what you want, we are likely to produce algorithms with the same problems than the ones you are finding on the web. You've been around these forums long enough that you should know how to ask questions by now.
    31. [OFF TOPIC] When you visit a software company and see somebody with two huge monitors on front of him and you think like: "this person should do a lot of work if they gave him two huge monitors", then you see in the reflection behind him, that he has on one of the monitors Facebook at full screen, on the other monitor he has Skype at full screen..........really happened. [/OFF TOPIC] I was told too, that a good amount of the job offers are fake. There is a real company behind, but they publish those offers because of some tax/subsidies stuff. If they do need to hire somebody for real, they don't open the applications, but ask the employees if they know somebody. Various people told me companies(where they work) do that. Some of those job positions published online are just black hole mail boxes. Real life sux. In real life if you send a resume with DX12 examples to a company that makes tetris like games, they will ban you. That's why many job searching sites are allowing for the user to edit multiple resumes and chose what resume to send whom. One should not apply for a waitress job showing off his engineer studies. Overqualified is a bad thing too.
    32. I want to make a particle effect in my game when my player hit (`OnTriggerEnter2D`) a game object, that object explode and make a few particle and after a few seconds those particles absorb by player.
    33. The days between now and when the last blog entry was written were pretty hard. Not because I had some hard programming problems to solve, but because of procrastination. This is not the first time it became an issue, but this is the longest period of time where I did mostly nothing, and I feel REALLY bad about it. I guess I'm a bit perfectionist and wannabe workaholic who tries to work every minute of my life, but that this when the procrastination doesn't get the best of me. Reasons For Procrastination Before the procrastination started I thought that to become a good game developer you firstly needed to play games yourself. And this might be true, but when playing games becomes more important than actually making games, I see it as a problem. In the last week or so I became kind of addicted to games. That's because it feels like an achievement every time I beat a new game, and somehow it makes me feel good about myself. That never happened to me before. I mean, I did play games, but I didn't enjoy them THAT much. And I think this is the problem. I started enjoying playing games more than developing them, and this needs to be fixed FAST. My Plan For Ending Procrastination First of all, I will try to play less. I will make games a reward after I do something new with my project. Maybe for every hour of coding, I will let myself play 30 minutes of Metro 2033. Next, I noticed that most of my procrastination comes from me being lost between all the different tasks that need to be programmed. Well, the tasks themselves may not be the problem, but the fact that I'm not sure HOW I should do it is. To fix this, I decided that for each task I will spend at least 15 minutes to brainstorm ideas on how it should be implemented. For example, yesterday I knew I needed to make allied bomber plane airstrike which would target enemy vehicles. But I didn't know how to implement it. Where should the airstrike button be, how should it look like, what happens after you click it, should the game randomly choose which enemies the planes target, or should the player do so, and so on. To answer these questions, I turned off my youtube tab (less distractions is better), took a pen and paper, and started writing. And voila, after 10 or so minutes I had a small plan figured out. There's something about writing things down which make them more important and urgent than having them in your mind. Also it makes it easier for you, because you don't have to remember as much stuff. What I've Done Although I procrastinated a lot, there are still some things which I've done. One of them is the allied airstrike which I mentioned earlier. Upon clicking the airstrike button, the mouse turns into a target icon and you can select which enemy you want to bomb. There will be a limited amount of airstrikes per given time. Next, I added some motion blur into the game, which is not necessary, but pretty cool I guess. Also added ambient occlusion. And most importantly I prepared the project to support multiple levels, since now there's only one. Art My artist is working hard on the last turret models. This is what he came up with this week. Next Week During the next week I think I will start implementing other levels, and finally will try to get the project closer to release.
    34. Fulcrum.013

      Overengeneering Modularity

      It fit anycase due to universality of components. For new behaviors/subtasks just new components added that very often use existing componets under hood. Refactoring is just a result of not enought task field analise. Especially it applicable to mathematic related tasks. thanks to header files circular dependencies is not a problem. Separate folders for headers, libs and libs from project specific code folder allow to have multiple implementations for each header and have common libs easily accesible for different projects . For example target specific implementations usualy done by changing libs folder in target settings. Also you can specify as many as you wan additional include and libs folders. MSVC uses __clang-based compiler. It compile thru LLVM code that uses sparse native codegenerators. It mean that it no need to change compiler for changing a target. It only require to change adapter libs that hide differences in OS api. Also compilers have to ignore unknown pragmas. So ever building on compiler than has no support of it pragma only require to add libs to project manually. And have a chaos in folders like that you already unable to manage and asking how to avoid it?
    35. [OFF TOPIC] This 'filtering' debate reminded me a joke, I hope it's understandable after translating it: An HR person comes to work in the morning and there's a huge pile of CVs on his desk. He pushes a good half of the CVs off the pile right into the trash bin and says to himself, satisfied: 'Those who don't have luck are no good anyway". [/OFF TOPIC]
    36. Shaarigan

      Overengeneering Modularity

      Yes, the core component contains anything that is used by other components that are build on top of it. Crypto module for example uses streams and long integer math from Core, Input uses the event implementation from Core, Network uses streams, threading and other stuff from Core ... and so on. I don't think so! Whatever methodology your opinion is my project fits in, I worked that way for long time now, thinking about several features and refactoring while the project grows. The clue of refactoring is that you discover treats while developing and using the framework that needs to be changed, then you change them. Not doing so will result either in a year or two of heavy planning phase or you'll end up in a situation where a specific use-case dosen't fit into your project. You will need to refactor then. A module is similar to a library. It is defined by it's topical use, has it's own sub-directory, project file and build step. This way it is ensured that there won't be any circular dependencies between modules so that anything stays inside a strict dependency graph starting at Core as the root module node and spreading along anything else. I already have anything in static libs also. The reason why Cpp prohects look that crappy is putting anything in a seperate include folder. I don't know how often I worked on projects that have had those strict structure of holding header files in the one path and implementation in the other. This is just one thing, a time consuming missconception when getting into the code. I keep away from those constelations instead keeping header and implementation file near each other and instead make a few more topical sub-folders in my projects. Crawling through a single folder of hundrets of files that is anightmare! #pragma comment (lib, ...) Is another bad design choice! Working on multiple platforms or just using another compiler will crash your whole code base. Instead I manage anything of these by small custom build script files you just add the lib reference to and thats it, also anything I build is placed into the same output folder prefixed by architecture
    37. It can be made as accurate as needed. If I remember correctly, there is a factor of O(log(1/epsilon)) in computation time if you require errors of order epsilon.
    38. Vilem Otte

      Use orbiting planets in 4x game?

      Unless it would be part of certain mechanics of the game, I'd advise against it, as it would just bring additional confusion.
    39. YouFulca

      Music New Music Asset Released

      Recently I`ve released new orchestral music asset for FREE on my website. I made this song as main theme for kind of fantasy games. Of course it`s completely optimized to looping and you can also use this for any other scenes.Check it out! Terms of Use All assets are free of charge, but all copyrights vest with "YouFulca". The assets cannot be repackaged on a CD or in data form for resale or distribution. You are of course welcome to store them on a CD, iPod, or other media for your own personal use. Assets can be freely edited to suit your needs. You can also cut and loop pieces from a song or add effects to a voice asset to make it sound like a different person. Almost all audio assets on this website can be used with any game development tools. and please check the detail in this page. View full story
    40. YouFulca

      Music New Music Asset Released

      Recently I`ve released new orchestral music asset for FREE on my website. I made this song as main theme for kind of fantasy games. Of course it`s completely optimized to looping and you can also use this for any other scenes.Check it out! Terms of Use All assets are free of charge, but all copyrights vest with "YouFulca". The assets cannot be repackaged on a CD or in data form for resale or distribution. You are of course welcome to store them on a CD, iPod, or other media for your own personal use. Assets can be freely edited to suit your needs. You can also cut and loop pieces from a song or add effects to a voice asset to make it sound like a different person. Almost all audio assets on this website can be used with any game development tools. and please check the detail in this page.
    41. @Amperian do you have a personal photo in your linkedin? You need that. Try to look nerdish, but hot at the same time, in case a secretary from the opposite gender is reading your resume.( I can spend a whole day taking hundreds of photos of myself for my resumes ) I think lazy recruiters could skip your application the same way people skip profiles without photo on dating sites.
    42. Fulcrum.013

      Overengeneering Modularity

      Just create folder called include and place any shared headers to it folder. For code that not just a inlined templates and require to add a dependencies make folder libs, a static libs project that have all depndencies compiled in and specify it on #pragma comment (lib, "") on related header by concept one header=one lib . Add all libs to solution in case you need to rebuild libs later. Add a include and lib path to projects settings and output targets of libs projects. And no any nightmare any more. Just include required header and enjoy.
    43. BitsNPiecesMusic

      Bits & Pieces Music

      Good morning and Happy Friday! It's been a while since I uploaded a track, so here you go! This is a somewhat experimental track for me, but is still part of my "The Forgotten Legend" project. I added some vocals and still wanted to keep somewhat of an old school RPG soundtrack, while incorporating some more realistic drums. I think it turned out pretty good, but I may need to tweak some of the audio in some parts, as I feel certain riffs are overpowering the others. Your feedback is greatly appreciated!
    44. mr_tawan

      Overengeneering Modularity

      I personally prefer to have modules separated by projects. However in C++ managing dependencies betwen projects can be a nightmare. Monolithic seems to be more preferable in C++ due to lacking of necessary tools I guess.
    45. lawnjelly

      Overengeneering Modularity

      How you separate your modules can be argued different ways, however you should make a distinction between LIBRARY functionality and modules specific to your engine / app that actually contain data. Things like Vector, Quaternion, Matrix, templates all should go in libraries (static or just pull in the source as a dependency) that you can bring in any where you need them. This is like the way you might use e.g. STL.
    46. Fulcrum.013

      Overengeneering Modularity

      It is root of problems. SCRUM and other pseudo-methodologies do not work with complexive projects. Only metodology for complexive mathematicaly related projects such as game engine is waterfall. Just separate task to subtask and make each component complitely and universally before start another one. By this way yo will never need a refactor already made components. Really any iterational development have a exponential growth of complexity with linear growth of functionality due to refactoring of temporary-made components. Canonical development strategy mathematically proven give a exponential growth of functionality with linear growth of complexity due to universal realisation and reusing of each subcomponents.
    47. LorenzoGatti

      Overengeneering Modularity

      Do you really have a "core component"? Module dependencies form a direct acyclic graph; there can be any number of high level consumers of many dependencies, such as the different engine variants of each game (using almost everything) or the mentioned matchmaking service (probably using network server and player database modules). On a more technical level, you should try to split currently large and incoherent header files into more manageable and faster to compile fine-grained ones, but it doesn't mean you should split everything else: related headers and the respective implementations can reside in the same VS project, the engine can be consolidated into a few static link libraries (probably only one), and you probably need only one source control repository. Only independent projects should be completely separated.
    48. Aceticon

      Programming and Higher Mathematics

      THIS is the core WHY, I think. If one wants to be no more than a monkey-coder making code from detailed specifications (and I've worked with a lot of people like that), then you can get away with a limited knowledge of Maths. If one wants to actually look at a real world problem/need and be able to specify, design and code the system which addresses that problem/need, then you need all the tools you can get in your toolbox, especially Maths as for most things it has a tool or other that works or at least helps.
    49. suliman

      Use orbiting planets in 4x game?

      Yeah I think thats way off scope for my game I will have a 2d map for movement, and ships can travel between star system using "starlanes". Star system will be fixed and no gravity used for movement. My question was rather if planets should orbite the star inside their static star systems. And I now think they should not.
    50. DarkRonin

      Checking if a DLL is present

      Thanks guys. This is probably a case of me over thinking things - LOL
    51. Vilem Otte

      Use orbiting planets in 4x game?

      It depends. Stellaris an other games do travelling completely wrong (at least from physics point of view). If you'd start moving planets around the star you would need to introduce physics - the concepts of gravitational based motion for planetary bodies. Side off topic note: This would actually make your star systems generator and galaxy generator a lot better, and not just randomly generated systems that doesn't really make much sense at all (like in Stellaris case). Downside would be that you could actually end up with real sized star systems and galaxies - not many people realize how BIG is the universe, for that I'd recommend visiting this size-aware map of Solar system http://joshworth.com/dev/pixelspace/pixelspace_solarsystem.html Path finding and generally gameplay would be tricky - as the transfers between planets are known as 'Hohmann transfers' - you basically accelerate in direction of planet velocity around the star if you want to travel further from star, or against it if you want to get closer to the star. This can take huge amounts of energy or huge amounts of time (depending on what are the phasing angles of both planets). Introducing this would add a gameplay feature, yet it definitely would be confusing for players who have no idea how orbital mechanics work. A typical example that could teach you how it is done is Kerbal Space Program - and along with that - what should be the audience for your game? If those people are sci-fi and space enthusiasts it may as well be a good concept to throw in, and it will force you to think in regards to how orbital mechanics work - but certain group of 4X players certainly don't care about the concept and will not learn about it (for them the game will seem way too complex). Kerbal Space Program did this quite right - it focused on specific audience that was extremely interested in such concepts.
  • Advertisement
×

Important Information

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

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!