Jump to content

  • Log In with Google      Sign In   
  • Create Account

Josh Petrie

Member Since 11 Jun 2003
Offline Last Active Private

#5312111 Serious Question needs serious logical feedback

Posted by on 23 September 2016 - 08:18 AM

Generally I don't see why questions like this are an issue or why we'd want to downplay them? It seems to me that the crux of the question fits well into the domain of the business forum.

I'd be interested in hearing why you think these sorts of questions shouldn't be acceptable, although perhaps as us own topic so as not to derail this topic further.

#5310935 Computer understands your text and is able to speak back

Posted by on 15 September 2016 - 09:50 AM

Is that supposed to break it? As far as my understanding of English grammar goes, this is an imperative form, which is kind of an order, so to speak.


It was mostly tongue-in-cheek, but was meant to indicate that "seeing 'do' at the start and knowing that's a question" is not a particularly good assumption. Starting a sentence with "do" in English is not a guarantee that the following is a question. It's fairly easy to poke holes in a lot of text-parsing algorithms that rely on that level of rules abstraction. Whether or not that matters for the quality of parsing the OP wants is unclear.

#5310835 Click, hold, pull back, release to fire

Posted by on 14 September 2016 - 02:57 PM

This is not an appropriate way to behave on this site.

#5310633 Game Programmer - Portfolio Feedback

Posted by on 13 September 2016 - 02:15 PM

Yeah, I gotta say as somebody who hires others, I find nothing particularly wrong with using templated sites... but that "3D" screenshot effect needs to go. It's horrible.

#5310531 should i kill paarthurnax?

Posted by on 12 September 2016 - 08:43 PM

I think the crux of the issue here is that this choice (whether or not to kill a prior ally) is really one of the only choices with both signifiant prior investiture and significant meaningful impact in the game, and that makes it stand out (for better or worse). If you look at many of the other similar choices available to you in the game, they either don't require much investiture of your or don't have much impact or both.


You can pick a side in the civil war. Ultimately this affects the color of some enemies you face and some flavor dialog around how you face them, but the fundamental quests play out very formulaically and it really doesn't matter much which side you pick (or if you pick no side).


You can choose to destroy the Dark Brotherhood. This cuts off an entire quest line and kills some interesting characters. But of course you have no relationship or investment in those characters anyway, so it's really not that much different from that perspective than any draugr clearing expedition.


Skyrim is very much an RPG designed to let you "do everything at once," which means the moments where it does force some exclusivity and consequence to your actions stand out that much more. If you wanted to replicate the effect the decision has on you, introducing more consequence would not be a bad direction to explore.

#5310528 Computer understands your text and is able to speak back

Posted by on 12 September 2016 - 08:35 PM

Do note that this is trivially breakable already.

#5310158 Does NDA really work?

Posted by on 09 September 2016 - 02:26 PM

Sure, people who think that an NDA is some kind of ironclad impervious document should be educated. In my experience, nobody I have dealt with in actual business believes this. It's mainly folks on the internet who want me to sign their NDA before telling me about their "copywritten idea" for the next WoW-killer. Or whatever. NDAs are not toys, nor are they magical nuclear weapons. They require will, resources and effort to enforce if violated.

#5310134 Does NDA really work?

Posted by on 09 September 2016 - 11:23 AM

Sure they work.



But "working" doesn't mean that they are ironclad and impossible to circumvent, or that are necessarily even legally enforceable. It's a little like copyright. My copyright does not physically prevent you from copying my works, it just provides me legal justification to go after you if you do. An NDA does not physical prevent the involved parties from talking or trying to covertly leak information (it happens often), but it provides a physical, signed artifact representative of the agreement not to talk that can be "good enough" to dissuade most people from going out and violating it, because it's probably not worth the resulting legal entanglements.

#5310131 Advice on engine to use

Posted by on 09 September 2016 - 10:47 AM

If you know Cocos2D and you are comfortable with it, you will likely make your game more quickly than if you were to pick some other library and learn that. I'd stick with what you're currently familiar with.

#5310031 Looking for feedback on my game engine

Posted by on 08 September 2016 - 03:57 PM

I'll tell you what I told the last poor guy I saw come in with a picture of a UML diagram and ask for design advice.


Your diagram is too generic. It looks like nearly every engine one could possibly envision. That doesn't mean your actual design is good, it doesn't mean it's bad, it just means there's not enough here for anybody to really say. Chances are that means they will presume the worst. I agree with the above advice that having failed to build a concrete game due to ending up with spaghetti code, trying to build something more general with less focus seems questionable. Rather I'd suggest a focus on figuring out how you got to the spaghetti code and how you can un-spaghetti it.




In order to drive the game forward, is it "OK" for HiminbjorgRoot to keep an reference to each one of the Core* and *Manager objects and simply call their respective update methods, or does that go againt the principle of avoiding unnecessary coupling? Should the root class instead spam update messages on the bus?



"MessageBus" sounds like overengineering drivel to me. Generally a "message bus" is a fancy way to call a method on an object without having to know "what" object or "what" method will get called, which very often doesn't buy you much except more spaghetti code. There are times and places where it can be useful, but I would not use it here. Ignoring the question of whether or not those "manager" objects even need to exist, something has to instantiate them and keep them alive. That something may as well be your central engine object, and consequently it may as well be the thing that explicitly calls their update methods. Keep it simple. Don't reinvent the function call.



I also wonder how each 3D model gets rendered to the screen. More specifically, I wan't to know about the relationship between the SceneManager and the RenderManager. Does the RenderManager keep a reference to every mesh (which then is sent to my non-existing draw() function in CoreDraw) or do the entities themselves in SceneManager listen on the message bus for a draw message, and then call CoreDraw->draw()?



Again with the message bus. I don't think this is a good place for it either. Why is does it exist? What purpose does it serve?


As for your question, something should have a list of all the stuff that needs to get drawn, and it should iterate that list and draw it. Something else should be populating that list. How do you want that to work? I think you should approach your design from that perspective, rather than this top-down approach where you create a cute, symmetical UML diagram and then wonder how everything actually fits together.

#5309853 Introduction and plans... sort of

Posted by on 07 September 2016 - 11:59 AM

Welcome, and good luck.


You might want to consider starting a developer journal here. It will give you a place to post updates and solicit feedback on your games.

#5309811 Bullet Physics - Weird collision

Posted by on 07 September 2016 - 08:45 AM

In the future, please do not bump your posts more than once without adding additional information or context.

#5309718 Windows Forms game loop

Posted by on 06 September 2016 - 02:47 PM

As noted on your GDSE post, the problem is likely that you're clogging up the event queue, preventing the application from "becoming idle" and running your render callback.

#5309599 Computer understands your text and is able to speak back

Posted by on 05 September 2016 - 11:01 PM

By limiting how many character could be type and only working with letters and number I aimed to make it truly simple.


As above, this will generally make things harder. The complexity in this problem space is not in the number of characters a user can type.


The basics of the kind of text parsing you're talking about have existed for ages; DOS adventure and text adventure games did this a long time ago. The problem is that natural language has a lot of ambiguity to it that you can't easily resolve algorithmically without context. Punctuation provides some context you can use to get a little more information out of the input, and you will need all you can get. If you choose to go the route of ignoring that sort of contextual information you're basically just going to be building yourself a huge pattern-matching database, which is fundamentally no different (and no more advanced) than what was done in those old games.


If that's what you're aiming for, that's fine: such a system is extremely easy to build and extremely easy to extend. It's just entirely inflexible and most likely won't make anybody think you've got a clever AI under there. If you want something more complex, be prepared for a lot of work trying to understand the context and structure of sentences. Including punctuation and prior input (a "short term memory" of sorts).

#5309394 GameObject class doesn't draw a image but a white box instead

Posted by on 04 September 2016 - 09:59 AM

Not sure what you mean by "school-example type of inheritance", what's the difference between that and "good" inheritance?


In school they teach you things like "a triangle is-a shape" and a "car is-a vehicle." They are examples that are simple to grasp, but in practice they are problematic. A game object should almost certainly not be a sprite, in whole or in part. That implies a lot of things that are extremely inflexible: all game objects are visible sprites with position, no game object can have more than one associated sprite, et cetera.


As for your actual problem, you're not providing enough information to say. You should most more of the code. In particular it's unclear where all of your members are initialized and to what, and as another poster commented above, that's likely the culprit.