Jump to content

  • Log In with Google      Sign In   
  • Create Account

smr

Member Since 16 Jul 2004
Offline Last Active Yesterday, 06:31 PM

#5311923 Why do most people recommend Python

Posted by on 22 September 2016 - 10:18 AM

I used to recommend Python because:

* Low barrier to entry

To begin writing Python all you need is the runtime and the included IDLE or notepad.

Also Python doesn't require you to learn any higher-level concepts to get started. You create your text file, enter a line of code and it can be run. You don't have to know or be distracted by things like namespaces, classes, imports/includes, entry points, etc.

* Batteries included

A library for just about everything you will ever need to do is included. For the things that are not, it's easy to find and install a package into your environment.

However...

These days I recommend JavaScript in the browser. The syntax is a little more obscure being c-like, but there is no shortage of simple game engines out there for HTML5 browsers. And all you need to get started is a web browser and text editor. And, like Python, you do not need to learn higher level concepts to begin following a tutorial on phaser.js.


#5304663 Pseudo 3D And Eye Of The Beholder Or Bard's Tale

Posted by on 08 August 2016 - 08:19 AM

I did a little toy project a while back that mimicked the aesthetics of these classic pseudo 3D FPS RPGs. The originals had created static images for all of the walls and doors at their various positions. I used OpenGL and rendered things as you'd expect with the API using 3D.

The difficulty in recreating the experience of these old games is that, as they were only pseudo 3D, the perspective and FOVs don't exactly conform to the physical reality that our 3D hardware was designed to model.

For example, one challenge I had was the fact that the camera position needs to actually be some distance behind the point where your character is standing, otherwise your field of view will not actually intersect with anything in that room besides the back wall (it's too close). You'll actually be viewing the next room. Adjusting the FOV to be much wider and placing the camera on the wall behind where the character was to be standing helped, but this made rotation a little wonky. Rotating the player didn't actually just reorient him. I had to both reorient and move the camera to the other wall. So, if you could imagine a circle that enclosed each room, the camera is always on the perimeter of the circle pointing in at the center. Rotating the camera actually moved it along the perimeter into one of the four cardinal directions pointing inwards. It wasn't perfect but it looked OK.


#5293842 Do you usually prefix your classes with the letter 'C' or something e...

Posted by on 27 May 2016 - 12:43 PM

I always prefix my classes with "C" and suffix them with either "Manager" "Helper" "Utility" or some other meaningless word just because.


#5292483 What is the top factor for MMO engines limiting world size?

Posted by on 19 May 2016 - 08:06 AM

I am skeptical of how a sandbox MMO could be fun when scaled to MMO populations. Sure, running a store or a business in-game might appeal to some people, but what about when there are hundreds of other people selling the exact same stuff? And how could there possibly be unexplored areas and temples within the game? To produce this much content would be impossible as the players would surely explore all areas faster than it could be created by orders of magnitude. You could procedurally generate it, but how then would you keep it interesting? And further than that, the technical challenges to dynamically generating and persisting that much content upon request for that many users would be daunting if not impossible. Also I believe people enjoy replaying content. When I played WoW I frequently replayed instances with friends and even went back to play low-level instances solo. There was satisfaction in learning the strategies to beat the bosses, learning the nooks and crannies, and being able to share that information with other players.

I'm not saying that WoW is the pinnacle of MMO gaming or anything like that, but it gives the players what they want. It may not be infinitely repayable, but there is no shortage of content. People have been playing for ten years now and it's still going strong. That says something about "theme park" MMOs.


#5290083 Is it real?

Posted by on 04 May 2016 - 10:32 AM

By yourself? Years, probably.


#5287068 How beneficial can personal projects be?

Posted by on 15 April 2016 - 12:08 PM

I can say from my own experience that without personal project, I'd likely be flipping burgers today. Instead, I lead development of software that is used to plan all roadway projects funded by the state I live in.

Being able to prove that you actually know what you're talking about is huge when you're competing against a bunch of college grads who only took computer science because someone told them it was where the jobs are.


#5278134 best way to write clean code

Posted by on 25 February 2016 - 12:22 PM

1. Do not litter your code with comments.
2. Do not trace log. It looks ugly.
3. Do not implement features that force you to compromise on the aesthetics of your code.
4. Avoid fixing bugs that require an awkward fix.
5. Ignore errors and exceptions. Error handling often stinks up your fresh code. Also usually involves one or more lines of trace logging.
6. Bury all logic in layers of abstraction. If a coder can look at a method and understand how it's doing what it's doing, then you've not abstracted enough.


#5276026 Best C# library for implementing graphic editor's functions

Posted by on 16 February 2016 - 04:25 PM

Have you confirmed that WPF or WinForms are not up to the task?


#5273948 Advice for a "decoupled" game engine

Posted by on 02 February 2016 - 04:03 PM

Be careful not to fall into the trap of writing layers of abstraction over an engine that is already one or more layers of abstraction itself.

Also, API coupling is a minimal concern, IMO, which is what you are looking to eliminate. Transitioning to a different API is a pain and takes time, but how much more time than building and maintaining additional abstractions up front that you're not even sure you'll need?

A concern that you should have beyond API coupling -- and in my experience is a bigger problem than API coupling -- is feature and pattern coupling. If you set out from the beginning to write a codebase that is decoupled from the engine, you will have to be careful to only use the subset of features of that engine you can be sure will be available in any other engine you may wish to transition to. Otherwise you will find it simply impossible to use another engine, or at the very least find yourself writing code of your own to replace the lost features.


#5272991 Weapon copyright?

Posted by on 28 January 2016 - 08:51 AM

I am not a lawyer, but if you have played GTA you'll notice there are a lot of vehicles that look very similar to vehicles you may have seen in real life. They even have similar names, or names that evoke the meaning of the real-life vehicle. My assumption is that Rockstar did this to avoid licensing costs and the headaches of negotiating licenses with all those companies. I would also assume that same logic would apply to weapons.

So avoid using trademarked names and logos. Also, I'm not sure if "design language" can be trademarked or under copyright. You should look into that too. Design language might be the unique styling of the tail lamps on a Ford Mustang, for example. Not sure if that even relates to weapons, but keep it on mind.


#5271180 Python for 1st language?

Posted by on 14 January 2016 - 06:09 PM

Before you make up your mind, I recommend you consider JavaScript. JavaScript, as you may know already, runs in your web browser which is a very capable platform for games. And there is no end to the number of game programming libraries and tutorials out there to get you started.

 

Plus, if you write something you want to share, all you need to do is host the files somewhere and share the URL. No one needs to download or install python. You don't have to mess with py2exe or anything like that. It couldn't be easier.

 

A great place to start is with phaser.




#5268485 How do I unit test complicated ideas?

Posted by on 30 December 2015 - 10:26 AM

It is difficult to write a test for each corner case in advance because, like you said, you typically don't discover them until after the fact. Once an issue like this is discovered I find that the best thing I can do is write a test for it which initially fails, then correct the bug so that the test passes. Going forward this test will ensure that if the bug is reintroduced it will be identified before it makes it into production or QA.

In general unit tests are not intended to test complex things. They should be testing small units of code with simple assertions, ideally one assertion per test. Sometimes this rule can be bent when to do otherwise is not practical, but that's not usually the case when code is well factored.


#5264067 Old MMOs on new Windows (10)

Posted by on 29 November 2015 - 03:16 AM

You may be able to run the application in a virtual machine which is running an OS version supported by the app. VMs generally don't perform very well for games, but as you want to play an old game the VM performance may be more than sufficient on current hardware.


#5255929 Drawing graphics in C++ w/out APIs?

Posted by on 06 October 2015 - 07:31 PM

You definitely can communicate directly with the graphics card in the same way that OpenGL does. If you're interested check out the source code for some of the open source graphics drivers developed for linux. The issue is that these drivers are very much hardware specific and will not work for chipsets from other manufacturers, and only for certain models of that chipset.

 

If you aren't concerned about OpenGL you can access the hardware with VESA or even VGA. VGA 320x200 was pretty easy to work with. I haven't done it personally since I was working with Turbo C on my 286...




#5249163 What do you guys use as a key in RPG data structures?

Posted by on 27 August 2015 - 07:25 AM

Wrapping usually means creating a class that exposes at least one of the same interfaces as the wrapped class does. That wrapper class will hold a reference to an instance of the wrapped class. When you call a method on the wrapper it will perform some additional behavior or modification to the arguments, then call the wrapped class method. The result will be passed back to the original caller, perhaps even being modified also. Wrapping is a way to add behavior to a class without modifying that class. You can pass around the wrapper instead of the wrapped class and consumers of the class will not know any different as long as the wrapped class still behaves in a way that is rational.

A contrived example would be a logging wrapper. You could wrap some class with your logging wrapper and pass that around instead. Your logging wrapper will log before and after any method is called. It doesn't change the result of the call as far as the consumer is concerned, except that it will slow the call down.




PARTNERS