blewisjr

Members
  • Content count

    485
  • Joined

  • Last visited

Community Reputation

752 Good

About blewisjr

  • Rank
    GDNet+
  1. Best engine for card-based game?

    Hearthstone did use unity like Lactose said but again that is not really your only choice.  UE4 can easily do a card game as well.  Unity and UE4 are the top engine players but really almost if not all engines out their can do a card game.  With that said it would be good to keep in mind that UE4 has blueprints which can be very advantageous for prototyping or even making the whole game with.  Ultimately the choice is yours as you only know the kind of experience you have to work with.
  2. The No-OOP back to basics experiment

      I have been using C for a quite a while.  Mostly programming for hobby type stuff in C and ASM on really tiny devices with little to no processing power or memory.  They call these things Microcontrollers.  The thing is with C you don't necessarily need a shutdown procedure it all depends on what you are doing.  The one thing I tell everyone that is going to do things the non OOP way and use the C way is the golden rule of what allocates the memory frees the memory.  If you remember this things become very smooth and less over engineered.  So you you have a function that allocates memory say for a structure make sure you have a function that frees the memory of that structure.  So what you get is a very smooth flow chart like experience.  It also makes potential memory leaks easy to fix if you forget to call your function that frees up the memory you allocated. When I code in C I usually dedicate specific code files for tasks as well.  So if you are creating a structure or a linked list or whatever have a file that is dedicated to operating on that data which would include manipulation, creation and freeing of the memory.  It makes for some smooth organization and prevents your code cluttering up one file.   I will agree it can seem like a lot of boilerplate but in reality I much prefer the non object oriented style of Functional and Procedural languages it just makes more sense and I feel leads to better code design as there are less over engineering pitfalls you can corner yourself into getting carried away.  Much more linear and understandable.
  3. March 2016: Funding ran out

    Yup mistakes all companies make at some point as long as you learn from them it is well worth the mistake. Just remember almost all individuals game studios and startups went totally broke before they made money. Same for most businesses in general. A lot of it is simply because of the mistakes you made which were not technically mistakes but more of a investment into you business. All of which did not work out but which led to your current product. Just look for the light and gun for it even if it means you need to make some cuts before you get too deep to climb out. Oh and never forget the golden rules of software KISS and there is never perfect software.
  4. Healthbar structure for a game?

    The Health Bar is nothing more then the visual of the Health of the player.  So within the player class you would have the health value then the User interface would use that value to display the current health in the form of a health bar.
  5. The project from insanity

    Thanks for the suggestion but I think I will stay away from that web stuff never did like web lol.  As a little update I have been spending more time with JMonkey and been really digging it so far even if I am not the #1 Java fan I am a Pure C guy it is a really well done engine will probably run with this and see where it goes.
  6. Looks really awesome. Have you considered also randomly generating the base layout (if not already doing). Fully random layouts can be wonderful to experience as a player.
  7. Wow has it really been this long since I posted a journal entry. Man time really flies right by it is just insane. Over the last few months I have been going through the motions of designing a project. The project is rather over ambitious for sure and 99% of the worlds population would probably call me insane. Even as I was going through and laying out the design I realized how insane I really was but it does not matter I want to work on something long term a huge almost impossible endeavor just because I can. I know I have the capability to complete said project and at this point it is more figuring out how to approach the project effectively. So lets get into some of the decisions I have to make to do so after I give a brief layout of what it is I want to do. First and foremost my game is a RPG but not the typical RPG. I don't want to create just another RPG or ARPG to add to the meat grinder. I want to create a RPG that can evolve and hold longevity without costing a player 1 penny. This project is not about making money or creating a business it is about creating a community. The key goals of this project all combine around this fact of community and having friends be able to gather together and adventure. A modular scenario based system (the ability to mod in your own custom adventures in a easy way) A Turn based Action system The ability to customize the rule set The ability to customize various actions in the game (spells, attacks, etc...) The ability to use premade or custom assets for the scenario's The ability to play solo or with friends Open Source/Cross Platform (This project is very ambitious and 100% free + I love open source) As far as technologies to use I have no clue at the moment. I ruled out Unity/UE4 simply because the do not fit the open source motto even if they would be great to use they just do not fit the project. I also need something very flexible that will allow me to create the necessary tools needed to create a good environment for building the custom scenario modules. Since I have a wide variety of applicable programming skills I began evaluation of some potential target technologies. Currently I am evaluating JME3 which just so happens to be very nice to work with despite some of the quirks and lack of direction in its tooling the core engine itself is really well done and easy to pick up on. +1 for great documentation. The only thing I really do not like here is the Netbeans based SDK as I find it very off putting for some reason or another, however, it may be possible to work outside of the sdk and develop some custom tooling to replace some of the features. The goal is to abstract creators away from needing to actually touch the programming language behind the game and from having to install the whole engine + sdk to create scenarios. I have also looked at SDL/SFML way back in the past but the new versions for sure are very slick, however, I am not sure I want to go the route of a 2D game. It for sure would work and it would solve the issue quite quickly of having to work around the JME3 SDK system. This approach could however remove some people from wanting to help contribute to the project due to the use of C/C++ . Sure there are other bindings but they tend to be quirky and awkward to use because they rarely follow the structure the other languages are known for. Any input on other tech that I did not mention would be much appreciated just leave it in the comments and if you want you can even just comment to call me insane. Can't think of anything else to type so see you again soon.
  8. Thanks for the response. I am not sure if a full blown engine like godot, ue4, or unity would work for something this different and customizeable but will for sure look into them you never know. They can go one of two ways make less work or cause much more work. I am quite out of the normal mold here.
  9. Wow it has been quite a while since I have been around here. Well finally getting back into game dev for a few reasons. 1. I am and always will have a passion for it. 2. The US Job market blows and I have a lot of spare time while still trying to obtain a job with my degree might as well use my skills and develop them even more. Ok on topic I am designing a game. Well not exactly a game but a core framework to make endless game content and at the same time a game. Think table top rpg gone digital. So I am looking to put a tools together to create my dream game but obviously we need some restrictions. 1. The project will be 100% open source. 2. I would like to if possible to avoid c/c++ as I would like the project to be more approachable and the game will be turn based and 2d anyway so there is not much need for the "performance". 3. 2d for sure as this is a modular game thin NWN style. The game itself is a tool set the modules are actually the game. There will be pre made modules to enjoy but for a real custom experience custom art may be needed and 2d is more approachable for anyone to do. 4. As a advanced creator feature I would like custom rules etc to be create and this might involve some scripting so here I figure lua and or python would be perfect even if they need to be integrated in a c/c++ codebase. So anyone more in the loop offer some suggestions. First there will be gui requirements for the tools and obviously I will need some sort of 2d api or engine probably api as this system is a unique case. If possible doing the whole thing in python would be awesome but from my experience python + graphics + gui has been a mess over the years. So feel free to bombard me with opinions suggestions etal... Keep in mind despite this being in for beginners I was not sure where to put this I am not a new to making a game or programming. And yes I am go ogling like a mad man looking for options.
  10. Choosing a platform for software

    It really is a nice device Navyman.  Very fast and responsive.  You can quite literally write with the stylus very legibly and accurately.  There is lots I did not do with it yet but I am very impressed at the quality of the device.  The screen is amazing and I actually am not sure how they did it but it is every bit as crisp as a retina display.
  11. One thing I have noticed over the years is that software development is becoming ever more fragmented. When I say fragmented I mean the platform choices are expanding rather dramatically. Years ago if you wanted to develop a piece of software you mainly had one choice the desktop. Whether it was a game or a software application you built it for the desktop or in the case of a game you had the additional option of a console if you were part of a large company. Now not to far in the future our options are huge. We can choose between desktop, tablet, phone, console, and even web. The software landscape has changed so much. More and more options are becoming available for the average Joe who wants to get their foot into the door and get their own little startup going. So now the real question is not really about what development technologies you want to use but more about what platform will your application get more of a benefit from. We are now looking at instead of just looking at what your target market base needs but you now need to take into account what platforms the target market base uses most often. After you solidify this quite often you find that this inherently decides what software development technologies you have to use. It is actually quite interesting and it makes various decisions quite complicated and requires quite a bit of extensive research. Currently I am going through this very process with my latest crazy application idea. This is the main reason I have decided to post this entry as it will really help me think about all these various options more clearly. I find this a very complicated process as this is the first real large project I have done in quite a long time. So lets see where this process can take us. Target Audience: The target audience for a piece of software is rather important so lets get this out of the way. I find that every truly great software idea which spawns outside of a corporate environment often is a direct extension of a gap the developer has in their computing experiences. In essence this means the software developer wants to do something but for some reason they can't find a great way to do that task. Often the software is out there to do these tasks but often to get the required result for them they need to use multiple pieces of software. This is the exact boat I am in currently. For those who do not know I have many hobbies ranging from software development, to writing and much more. I like to be very active and busy. For the longest time I have wanted to write a novel. My real issue is the various technologies to do such a thing the way I want becomes rather convoluted. Sure you can write a novel directly in Microsoft Word but you really lose the fluidity required to write something beyond great without having to jump through hoops to keep track of various divergent plot lines and characters. This could often require multiple documents or other methods. Then their is Emacs and org mode but despite what some think personally I feel org mode is not the right tool for the job and is a pain to use. Other software out there exists but it is actually quite difficult to find, expensive, or very old and will not run on modern PC operating systems. Beyond this they seems to slightly have the idea of what I want but are not quite there. So this software is targeted at individuals who want to write. The goal ultimately is to create a dynamic writing tool that is very fluid to use. Platform: This is actually really hard for the kind of tool I want to make. With my research I have hear that authors love tablets and they really wish there were great tools to write their content with on various tablet devices. It seems that their are huge gaps that they really wish were filled as often it seems to be one way. You have a desktop application but no compatible tablet application or you have a tablet application that is very limited and it is difficult to get that content to the desktop. For me I really think the issue is the developers not having their scope quite right and it is leading to these issues. Desktop Platform: The desktop platform is known to work with these types of application as there is tons of flexibility. The real issue I find with writing and desktops, or laptops is the fact that they are not very portable and when I write I like to be away from everything. Helps keep a clear mind and focused. This is difficult with a desktop PC style system even with ultra portable platforms out there like the UltraBook or MacBook Air. The screen densities are awful as well and after looking at the screen for extended periods of time it really places a lot of stress on the eyes. I think this is really where tablets excel in fixing. The other issue with the desktop is distribution and getting the application noticed. Apple fixed this with the app store, windows is well behind on this and their system is a mess for this approach requiring expensive certificates and redirection to application downloads and such. Quite a shame. Tablet: In all reality the tablet has everything I would want. Nice portability with solid screen densities and nice and easy on the eyes. There are various nice attachments and the new Samsung tablets are of nice size 10.1 inch and has a stylus. There are keyboard attachments and docs for it as well. Battery life is solid and distribution and noticeability are taken quite good care of in these environments. In my opinion if done right I think tablets will over time revolutionize computing even further as developers begin to really push what the platforms can do. I think it will just take a clear mindset. Web: Not much for me to say here. Cloud services and software as a service are beginning to become very common. I however feel the development ecosystem is quite poor. JavaScript, css, html, backend service programming. It is really a mess and needs some consolidation if it is ever going to become the norm. The technology is just very convoluted on the frontend side and could really use some love. Conclusions: My conclusion is heavily skewed towards the tablet. For the longest time I just did not really see their advantages as I never owned one nor did a care to have one. By chance I ended up getting my hands on a Samsung Note 10.1 32Gb device and I am hooked. This device I am already finding quite useful and I can really see the potential these devices can have. I think I found my platform for development. From what I have experienced thus far the Android development ecosystem is quite nice and relatively easy to dive into with a little guidance. Lets see where this tablet device can take me.
  12. On C++ Naming Conventions

    I follow a style similar to Google's style but slightly different probably due to my C and Java roots. Namespaces are done in Pascal case. Class Names are in Pascal case. Interfaces (abstract) use the I + Pascal case. Variables are all lowercase separated by _ but typically tend to be short and sweet names. Functions/Methods are all lowercase separated by _ and again short and sweet. so you tend to get something like this...   In C++ I typically would not use properties unless the variable is read only or if I need to do some background checking on the data first coming in.  Otherwise I would just expose the variable directly as being public.   namespace MyProject { class Bar { public: virtual ~Bar() {} }; class Foo: public Bar { public: void action(int param); int data(); void set_data(int val); }; }
  13. This is a rather short blog post. I have had some ideas for a project recently with some of the various endeavors I have been contemplating. One of these endeavors is either a desktop application or web application not sure which but I think it makes more sense as a desktop application due to it's purpose. When I was thinking about the project I new I would want it cross platform so my real choices would be either Java or C++. I never made a GUI application in C++ before so I said let me modernize my java install and upgrade to IntelliJ Idea 13.1. Oh by the way IntelliJ idea is worth every penny. If you develop in Java you should really spend the $200 and pick up a personal license which can be used for commercial applications. Really great IDE and I can't wait to see what they do with their C++ ide they are working on. Jetbrains makes amazing tools. So I upgraded everything to Java 8 and decided to make a quick and simple GUI application and use Java 8 features. I will say one thing Java should have added Lambda's a long time ago... With this in mind the following Swing code turns from this... [code=java:1]import javax.swing.*;import java.awt.event.*;import java.awt.*;public class TestGui extends JFrame { private JButton btnHello = new JButton("Hello"); public TestGui() { super("Test GUI"); getContentPane().setLayout(new FlowLayout()); getContentPane().add(btnHello); btnHello.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Hello World"); } }); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 100); setLocationRelativeTo(null); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new TestGui().setVisible(true); } }); }} to this... [code=java:1]import javax.swing.*;import java.awt.*;public class TestGui extends JFrame { private JButton btnHello = new JButton("Hello"); public TestGui() { super("Test GUI"); getContentPane().setLayout(new FlowLayout()); getContentPane().add(btnHello); btnHello.addActionListener(e -> System.out.println("Hello World")); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 100); setLocationRelativeTo(null); } public static void main(String[] args) { SwingUtilities.invokeLater(() -> new TestGui().setVisible(true)); }} So much more elegant and readable I think Oracle just really hooked me back on Java with just this one feature.
  14. Is c++ good

    I agree with most of the comments here. C/C++ are great to learn to use but they are fazing out in a lot of more common areas.  They still have their place and will probably have their place for a very long time yet to come.  Learning will make you a better programmer overall even in more modern languages.  For games you really do not need C++ or C.  There are lots of great technologies out there today that are beyond capable of keeping up.  Heck even today much of the games you play are done with scripting languages and those languages hook into the C++ rendering engine on the backend.   The main reason I say C/C++ will be for around for a long time is mainly because of specific areas like kernel development as well as embedded micro controller development.  Sure there are new languages coming out that are compiled to machine code like Google's Go.  The big downfall of those types of languages is the lack of direct memory access through pointers and direct interfacing with assembly code.  In the world of Kernels and embedded micro controller (think ARM Cortex M, PIC, AVR) you really need that otherwise you can't really do anything without extreme C interfacing hoops.  Some of those chips are so tiny in memory you would be lucky to get a runtime driven language on them.  These are extreme cases.   So in the end if you are learning your first language I would recommend it not be C++.  I would rather see a new programmer on their first language use pure C, C#, Java, or Python.  C is a very simple language to learn and will let you learn some really useful concepts this is still my all time favorite language.  C#, Java, and Python are also relatively simple languages that rule out memory management and will allow you to focus on core algorithm concepts.  Choose something you want to choose not what everyone forces you to choose and stick with it for a while before moving on.  Every language you learn will teach you something new.
  15. XNA vs Other

    Now that would be a sight to behold, my tutor scolded me for trying Lazarus instead of Delphi (I had a linux box so Delphi wasn't an option).   Heh I had a teacher scold me for using GCC + Makefiles + Vim in my C++ class because it was all I had available at the time due to a computer explosion.  Apparently Visual Studio is the only way to write C/C++ now a days in school.