Jump to content
  • Advertisement

mr_tawan

Member
  • Content count

    116
  • Joined

  • Last visited

  • Days Won

    1

mr_tawan last won the day on April 10

mr_tawan had the most liked content!

Community Reputation

181 Neutral

1 Follower

About mr_tawan

  • Rank
    Member

Personal Information

  • Role
    Programmer
  • Interests
    Art
    Audio
    Programming

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Regarding using a commercial engine, I find this video interesting about Unity. So basically they track the usage of their 'free' licenses (with no options to close.). If they find something wrong with it, then they will take action against. I don't know whether or not the people mentioned in this video have violated the EULA of Unity or not. However if you value your privacy (unlike myself :P) then you wouldn't want to use Unity, at least the free license. This may or may not applies to other engines in the market. However, I don't think you would mind your own engine tracking your own usage :).
  2. @Stragen I think I understand @Mike MGarcia's point. I'm also in the 'starting all over' camp as well. Personally I'd write a new engine code, rather then changing the old one. However I'll take parts that would work in the new project, and then refactor them to fit the new project. I think this is better especially when the 2 projects are quite different from each other. I understand that starting all over will take significantly more afford then modifying an old one. However, it gives me a chance to think through at the beginning of the project. Quite often I find that I make use of something in an totally different context, and it bites me back at the end (because it's not designed to work in that context). Of course, I could extract these parts and turn them to external libraries, especially in the 'input/output' area. However in C++, dependency is quite a pain to deal with. Also having multiple projects in multiple places can be very difficult to work with as well. Just my 2 cents
  3. mr_tawan

    C++ Common Runtime

    Well yes, one of the big obstruccle here is of course the system call/system library. Different OS has a different mechanism so you have abstract this away in a portable runtime.
  4. mr_tawan

    How to avoid bugs

    Well you can go to a store and buy a pesticide! Joking aside, the only way to completely avoid bugs is ... to do nothing! They say, when there's no code, there's no bug. You will face a lot of bugs along the way, with most of them created by your very self. That's just a natural. With knowledge and experience, you will have a way to make a decision that leads to less bug. But to gain that you'll face bugs, a lot of them. My suggestion would be, start slow, start small, get a mentor, and write unit tests if possible!
  5. My another thought, which comes from my background as a support programmer, is 'are you able to support your own code' ? It's quite easy to write code. However once it is created, you need someone to look after it. I mean, there will be bugs and issues, and you need to resolve this. This will take effort. So I think you have to take this into the consideration whether you're using an in-house engine or someone else's. Using commercial engine means if there's an issue, someone will (might?) fix it for you. Of course it depends on the engine developer, bug can be a feature too, or you're holding it wrong :P. Your issue can be in the multiple-year-long waiting list, who knows?
  6. Here is my another thought. I think, as many of us here already mentioned, that you can start in any language (JavaScript included). However, I think it's important to use some kind of framework or library -- they are not the same thing, I'll explain later. This is to make sure you're focusing on the game code itself, not the low-level stuff (which can be pretty scary for beginners). There are different framework and library for different language and platform. For example, SDL(C), SFML(C++) and Cocos2d-X(C++), LOVE(Lua), LibGDX(Java), MonoGame(C#) etc. Framework or library are not game engine, they are something game engine is created on top of that. A game library is a library which simplified a lot of low-level process like initialization, texture loading, for instance. You will still have to write quite a lot of code to do these process, but it is abstracted away so it will be much easier than say in DirectX. In a framework, most of the low-level process like initialization will be handled by the framework itself. You just create an entry point so the framework can call your function. Your code will end up like. @Init void doInit(){ textureA = loadTexture("a.texture"); hitSound = loadAudio("hit.wav"); } @Update void doUpdate(Input input){ //... update all game object. } @Render void doRender(RenderDevice device){ //...draw all objects } @CleanUp void doCleanUp(){ release(textureA); release(hitSound); } The main different between framework and library comparing to game engine is, they does not provide any game logic-related code. In game engine, you are provided with game object and components. Using framework means you have to write your own game objects. The reason that I think, you could start with either a framework or a library is, you'll end up writing a framework yourself if you go with a library (it's not that difficult, and it's a basic everyone should know too). So if you want to learn how framework works, go for a library. Otherwise use a framework.
  7. My take on commercial engine is, if they make a wrong decision, you will be hit by that mistake too. For example, in Unity, every single function members are 'camel case' (eg. doSomething()). Usually in C# functions are 'alternate case' (eg. DoSomething()). When using 3rd party library with Unity, especially one that does not implemented specifically for Unity, you will end up with 2 different conventions on the same code base. It might be sounds like a small issue, at least until you use some kind of linter. (In fact I see this kind of problem in Unreal Engine too. However in C# the code convention doesn't vary much across libraries, as majority of them make use the style that MS suggests right at the beginning. I have seen some good project that has no user just because it uses Java's convention instead of C#'s one.)
  8. This is not exactly difficult to archive, but it depends largely on what is engine implemented on. If it's DirectX then it would be quite difficult IMHO. There are cross-platform graphics API like Vulkan or OpenGL, the same things go for audio (OpenAL, OpenSLES). Other than that there are also compatible layer or wrappers. If you implement the engine in says SDL2 (for example) then at least the game should run on Windows, Mac and Linux. The same code might not be running on one platform as well as another, but that goes for using commercial engine too. In fact this is how the commercial game engine is implemented as well. I have a little experience on console, as I had worked on some of them a long time ago. Some platforms are based on totally different concept than what we have on PC today (for example Nintendo DS is tile-based graphics and sequencer-based audio), but I don't think this exists anymore. For other platforms, it will be pretty similar. You should be able to just write a compatibility layer and the game will run (but I wouldn't not know how well it will be).
  9. mr_tawan

    where did you start to make a game?

    Start small. I mean, start very small. I remember myself starting at a very small game, it was a maze running game. The game rule is simple, the player is in a maze, he needs to go to the destination within 5 minutes. I think this is a good start for beginner as it involve with a very few concepts. I don't think something this small will be your passionate. However, if you can't do something this small, you can't do something bigger. Anyway this kind of game should only takes an evening to implement (if you're using game engine, it will be much shorter. I was doing everything on my own at that time however.), why don't you give it a try :).
  10. I'm running in an opposite direction I guess. I have been creating an engine in my free time , as I think I had a specific need (I was doing something called 'Visual Novel'. Not exactly a video game however.), up to the point where I think I need to a make game, not an engine. I just think that I should leave the game development as a hobby, and return to the professional space one more time. Well I just loses my interest in Enterprise Software and such... Of course I couldn't just leave there and enter the area where I don't know if I can make a living or not. Being a lone wolf means I cannot support my own engine, as I have quite a few time each day (spending too much on commuting). So I decided to stop develop my own engine, and switch to something else (I settled up in Unreal Engine, just for now). I guess if I can make a living and able to hire a couple more developer then I could support my own engine, but until then I have to depends on someone else to make a good engine.
  11. mr_tawan

    C++ Common Runtime

    I think the closest thing we could have is a IL code with a JIT compiler, which is what .NET implements already. What about if we just distribute the LLVM IR code, and make the target machine compile it to x86, ARM, or whatever before it runs. The compile time would take quite a while though. (This is a similar idea to web assembly I guess).
  12. I'm no artist, but I learn a bit of painting just to know how the artist work. Whenever I draw or paint something, when bad things happen, I think "sh*t, I need to undo. Oh wait, this a the real paper!". Quite often I have to throw away the paper and start it all over again.
  13. mr_tawan

    Do you still play video games?

    I usually play game 1-2 hours everyday. However, I stopped making games for a few years already. That makes me disqualified right :D.
  14. mr_tawan

    Menu UI - Partial Pausing the Game

    I'm still learning Unreal, so I don't know how to archive this in Unreal. I'm sorry in advance if this might not help!. I think you could just makes all enemy stop updating its states, including animation and such. I guess you could disable most of the components inside the enemy object while keeping the player one active (well I guess you still have to disable some of the player actor's components). Personally I think it might not wort headaches implementing the menu where player actor still active and the rest is not. I think switching to another screen/level/scene temporary (what is the word used in Unreal ?) will look better and more straightforward to implement. Imagine if the actor is middle of some action, and the player enter the menu, are you going to switch the animation to idle ? What about switching back to the old state after exit menu? Will it perform the same? etc.
  15. mr_tawan

    How to organize constants? (c++)

    That was embarrassing of me. I'm sorry about that.
  • 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!