Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 07 Nov 2002
Offline Last Active Jul 26 2016 04:38 PM

#5258996 How to cope with code in different languages?

Posted by alnite on 25 October 2015 - 02:02 PM

I have a few options I thought of, most of them are problematic, so this is where I would appreciate some insights.


What are the problems?  Does the current Pascal codebase have any problem?  If not, why do you insist on porting it to C++?

A game does not have to be built in C++.

#5255209 What exactly is API-First?

Posted by alnite on 02 October 2015 - 12:55 PM

Just had a conference today and they talked about micro services. Seems the trend these days is to push a lot of little web api's and then make your products like legos by picking the services you need to complete the project. So literally your app could be made up of 20 different web api's, where each does their very own very specific task. As a developer I like this approach because you can really break the tasks down for your team and keep things very specific and simple to work on. Just better make sure when you change an api you are really careful since it could be used in a hundred different apps.


Microservices is not a new idea.  It's old.  It wasn't feasible back in the day because the amount of effort to maintain hundreds of services.  For each service, you need a physical machine, sysadmins to maintain the machine, developers to maintain the app, and some deployment process for updates.  One service is fine, but when you have hundreds of them, who's going to take care of it all?


Now with virtualization everywhere, Puppet/Chef/Ansible/Salt scripts for server maintenance and deploys, and recently Docker that can simplify deployment dependencies, the microservices idea resurfaced again.  It's not a paradigm shift.  It's like dusting off an old keyboard and you realized how awesome those springy keys were.

#5255206 What exactly is API-First?

Posted by alnite on 02 October 2015 - 12:49 PM



API is just some methods with bunch of parameters, RESTful HTTP stuff.


Looks like a tech journalist with no real technical knowledge got to talk to some bigshot developer at some crowded convention, and the word API got thrown around in the conversation.  Having first heard of the word API, this journalist think it's the next big thing.  Insert big company names like Google, Intel, HP, and Netflix, API makes it sound like it's a whole new idea that's driving the industry now.

#5254926 How do you plan your project?

Posted by alnite on 30 September 2015 - 10:41 PM

For personal projects, I only keep a TODO file on the project folder.  Inside this TODO file is a list of features I would like to implement.  The purpose of this file however is not to serve as a ticket-tracking like JIRA but a reminder for my future self.  Personal projects tend to suffer from drag with no specific deadlines, due to personal circumstances, changes in your life, etc.


If I am in the middle of implementing something, I will finish that feature even that cost me some sleep hours.  I don't want to be staring at my code 10 weeks later with my code half working and forgetting what I was doing.


For this reason, a full-featured ticket tracking like JIRA or anything else feels a little over the top for personal projects.

#5251672 Is there a language like Python but without the tab requirement?

Posted by alnite on 10 September 2015 - 11:58 PM

The closest I could think of is Ruby, although Python and Ruby has two polarizing philosophy.  Python prefers to only have one way of doing one thingWhile Ruby prefers of having many ways of doing the same thing.

#5249972 Should fanfic games be legal?

Posted by alnite on 31 August 2015 - 12:33 PM

Nintendo recently decided to disallow Let's plays on the platform youtube. As early as 2013, it allegedly already wrote a warning to youtube channels showcasing nintendos content in those vidoes (for those who don't know: Let's play is a form of video format where a person plays through a video game, while giving eigther entertaining, educational, or funny comments), stating that it was infringing copyrights. Unless I am mistaken, legally Let's plays should fall under fair use as "review", since while the Let's player is showing the full game more or less, its his commentary/video feed that actually makes the Let's play. First, nintendo wanted to eigther take down all those videos, or take all the revenue those youtubers are making. Appearently they have now offered a deal for those people, taking "only" 40% of the revenue of all nintendo Let's plays. Now please correct me if Nintendos behaviour is legally correct, but as far as I am aware this should fall under fair use. See https://en.wikipedia.org/wiki/Let's_Play_%28video_gaming%29, under "Legal issues".


You mention that there's some money to be made here, so I'm pretty sure that clouds the legal battle.  Again I'm no lawyer, I can't argue if it's legal or illegal in this case.

Second example that I am personally aware of would concern internet movie reviewers like the "Nostalgia Critic", who has received multiple copyright claims and had videos taken down, from big news company TMZ (which he parodied in one of his episodes), and from (relatively unknown) filmmaker "Tommy Wiseau" due to his review of the film "The room". This is the two examples I know of, but appearently those things happened more frequently. Again, correct me if I'm wrong, but aren't movie reviews/parodies supposed to be fair use?


YouTube is not the court.  I don't think it's within YouTube's interest to mediate between the two parties.  As YouTube, you have companies like Nintendo on one hand who's complaining to you that you are hosting contents that they think are illegal, and you have the other party complaining that it's fair use.  What would you do as YouTube?  Well, you don't want to show support of one but not the other, so it might as well just take the videos down.


You are free to host the videos, it's just that YouTube doesn't want to be involved in the legal battle.  "You two settle this in court, I'm not involved".  YouTube taking down videos does not mean it's legal or illegal, it's them washing their hands.

#5249960 Should fanfic games be legal?

Posted by alnite on 31 August 2015 - 12:09 PM

As I said, Square Enix is out of the option based on multiple reports from people who contacted them. Since the original developement studio ceased to be like 12 years ago, I might actually contact someone at eigther nintendo and/or enix to ask for who the actual current property holder is. Trust me, I much rather do this with endorsement from the developer, and I would have already asked if I didn't already pretty much knew Enix response. Isn't even just word-to-mouth - known someone personal who wanted to make a 3D remake of the same game, but got said unspecific response back from them.


And that's their choice.  You can call them 'jerk' or 'ass', but it's within their rights to be so.  If you have an Aston Martin sitting in your garage, and your whole neighborhood knows about it and wants a test drive, how would you respond to each of their request?  Should you grant all of them?  No.  You can deny all requests, and sit on your lawn with a shotgun, get called asshole, jerk, evil, and you certainly won't be popular in your neighborhood, but it's your right to do so, because it's YOUR car, not theirs.


This stuff is their property not yours, and they can do whatever they want with it, including trash it and never make a remake, and deny everyone who tries to make a remake.

#5249958 Should fanfic games be legal?

Posted by alnite on 31 August 2015 - 12:01 PM

Need I remind you that companies are using the exact same "reasoning" to shut down (negative) reviews, caricarture, persiflage and what not... even though we have fair use to technically protect that.


Do you have examples of this case?  I would be surprised if caricatures are allowed to be taken down by the court, as that should falls under fair use.  Perhaps the author of the caricature decides to take it down anyway rather than take it to court which could be expensive for both parties.


Copyright owners can contact you about it, write a cease and desist letter or whatever they think can scare you off.  Nothing restricts them from doing this.  What you decide between you two is up to you.  If you can't come up with an agreement, then you have the court which shall decide what happens.  But if you decide to take it down before taking it to court, then case is settled.  However, it's not that it's illegal to draw caricatures, it's just you prefer to take it down rather than going to through the costly legal battle in court, which benefit nobody except the lawyers.


No, it's never been legal to create any derivative works unless there's an agreement for it, which I shall advice the OP to do if he's truly passionate about it.  You can always publish your work without permissions, nothing is stopping you from doing that.  Just don't be surprised if you receive a C&D or taken to court.

#5249954 Should fanfic games be legal?

Posted by alnite on 31 August 2015 - 11:51 AM

I am not a lawyer here, so here's my penny.


Is it legal to copy someone else's works, up to the point of similar/identical characters and their names and plot lines?  This is copyright infringement, and it's a clear boundary that it is NOT legal.


Now there's also the fair use law, which is what you can probably use in court, but the way I see it, it is for making references to existing games, kind of like writing a book about game design and using Legend of Zelda as a reference point.  You are not making a whole new game based off it, but you merely use it as a reference.


So, it's not legal and probably not going to be legal anytime soon.


However, legal process only takes place if the rightful owner of the copyright decides to take legal action against you.  The judges, random lawyers, the Supreme Court are not going to be actively scanning the interweb for copyright infringement.  The copyright owners have to be made known of these other derivative works, and they have to file a claim against you.  If they do, be prepared to lose, because all odds are stacked against you.


If the owner does not file a claim against you, then nothing is being argued, and everybody moves along.  Nothing happens.


So, what can we do about this?  You can call or email the copyright owners for a permission to write a derivative game.  You cite all the stuff you said, not for profit, open source, etc, etc, or perhaps you can make a business deal and write an agreement that you have been authorized to make a derivative work.  As a matter of fact, this is happening all the time.  This is how game studios are able to make licensed games, where the owner of the license is typically another entity.  Once the legal owner has granted an approval, within the context that you are both happy with, then you may proceed with the development.

#5248322 Why should I ever program a game again?

Posted by alnite on 22 August 2015 - 10:42 PM

There are points in the development of almost every industry, game industry included, where you will notice some shift in the technology used.  This signifies maturity of the industry.


I'll pick civil engineering, just as an example that has nothing to do with games.  Do you think civil engineers are out there calculating Newtonian physics everyday?  No.  Most of the solutions are already done.  Want to build stairs?  Guess what, you just pull out a template for stairs, with the measurement already done for you.  If you go to Home Depot, if you are in the USA, or some local hardware stores, you will notice hardware materials are already cut the certain sizes.  These sizes are not random.  They satisfy local building code, and also make things easier and faster to build things, because it's been calculated dozens of times.  Why repeat the work?


Let's go back to game industry.  30 years ago, game developers have to tinker with video memory just to put sprites on the screen.  They came up with clever hacks and tricks to push more pixels and colors.  Then there is an advent of graphics API such as DirectDraw, OpenGL, Direct3D, that take care of this for you since the video memory technology had matured enough that you can create a solid API on top of it.  So people then program their games using the graphics API.  No longer hacking in the video memory.


So right now, we are just seeing another maturity progression in industry.  The folks over at Unreal have been honing their engine building tools for years, and people at Unity are also catching up to speed.  You now don't have to code the graphics/sound API anymore, you can skip through all that and just focus on your game.


This does not mean that you can't code at the lower level anymore.  Just like there are some people in architecture who continue to tinker with different building shapes, you too can still code in Direct3D/VRAM so you can get those voxel or whatever graphic theories fancy you.  Software engineering will not die anytime soo, but expect things to move higher in the stack.



If lower level programming interests you more, holographic projection is a thing now.

Now imagine coding a holographic game.

#5246562 Questions before I start solo on a basic 3D RTS...

Posted by alnite on 14 August 2015 - 02:36 PM

At this point in time, it's rather pointless for you to go through any "3D tutorials" that talk about 3d collisions, physics, terrain generation, water surface, etc.  You are interested in building a 3D game, not a 3D engine.  These mechanics are only useful to those who want to make their own engine.


Definitely use the free game engines Unity or Unreal Engine.  They have been made free only recently, and these are powerful tools that allow you to build 3D games.  Enabling 3D collisions may be as simple as a checkbox.  These guys have done it for you, professionally done, and they have made their sweat and labor available for free.  Take advantage of it.


Look up Unity/UE4 tutorials.  Little by little you'll get there.

#5244352 High Speed Collision Detection

Posted by alnite on 03 August 2015 - 01:22 PM

During the collision detection phase I would do a line intersection test with the hitbox of my other collidable objects.


If other objects are also moving, you need to raycast all of them.

#5243470 C++ Loading config files, with extend/inheritance and full error handling

Posted by alnite on 29 July 2015 - 07:37 PM

If I understand you correctly, you need a schema for your config file, another file that defines a list of all the expected fields and their types, and if necessary the structure.  XML has its official schema definition file, while for JSON you may need to create one your own.  Your config loader will read the schema first, and store the expected fields and types in a separate map.


When you load your config files, then comes the error handling.  I would recommend raising the errors as early as possible, rather than populating it with default values that may not even work.  Before it even reaches the `loadVehicleType`, KeyValues should only contain valid values, structures, and types.  If you want to enforce some min-max range, I would put that check in the object's constructor, as it pertains to application logic.


So your step looks like this:

1. Load schema

2. Load config files

3. Check config files against the schema (field's existence, type checking, and structure)

4. Pass values to object constructors

5. Object validates for acceptable values.



Alternatively, you can also put range validation in the schema (step 3), if the schema supports it.  Although, I wouldn't do that personally.  For example, if I have a field "gravity = -2.8" in my config file, I would just accept that as is.  Shit are going to be all over the place, but I am not going to dictate whether that is a good or bad thing.  The solution to that problem is simply "well, don't put -2.8 for gravity".

#5243230 What skills is more important for a Junior programmer to master

Posted by alnite on 28 July 2015 - 12:50 PM

Should I learn Unity or Unreal to the point that I can create a Pong Game and a Retro Game and then learn one of them more in depth? Or, should I learn Unity to the point where I can create any type of game such as a Shooting Game, and a Multiplayer Game and after I have mastered these, then learn the Unreal engine?


Either one of these would work.  The employer will assume that you do everything wrong in your games.  The reason why is that the employer has its own development process and methodologies that there is no way a junior programmer would immediately fit in or understand their process.  Even if you have created a FPS, you won't create the same FPS in the company.


It's a good resume to show that you created multiple simple games.  If you create one complex game, it's also a good thing.  It shows that you have passion and that's a good thing to have.  Don't sweat over what games to show off.  Pong, pacman, tetris, failed attempts at MMORPG work just as effective.

#5242789 Who wants to see a C replacement?

Posted by alnite on 26 July 2015 - 11:52 AM

The Golang is kind of like what you are asking for.

If you use it, it feels a lot like C. IMO, these are the improvements that Golang has over C:

  1. No header files, but you still need to include.  This is obvious for obvious reasons.
  2. Pointers are simplified, but they are still there.
  3. GC.
  4. Simplified threading, thanks to go routines and channels.
  5. Simplified distribution, since all your code is compiled into one big binary.  So you don't need lib this and that to run Go programs.

I'm sure there are a few more.


Some people are super ecstatic about it.  I think this is partly a fad.  It's still a good language.

If what you are making have anything related to multithreading, Golang should be one of your options.