A nice Youtube series of 32 videos by Brent Aureli about developing a Super Mario Bros game step by step using LibGDX and Android Studio. The videos include information about setting up libGDX with Android Studio, screens, viewports, aspect ratios, how to create a HUD, creating and rendering tilemaps, Box2D, spritesheeets and texture packer, animations, collisions, sound and music, moving & spawning items, and various other topics.
One of the issues I had these days was installing an Primefaces application in Glassfish application server running in a container with no external IP address and configuring a nginx front-end for it. While making the two servers work together is just a matter of right configuration files, issues start to pile up when we want to have the context path removed from the nginx. Tried couple of approaches, using URL rewrite, proxy pass, etc, but in the end all of them ended up with links and resource files (ex. CSS files for the themes) not being found. Eventually after many tries ended up with this solution, which (so far) seems to work without any issue. Read the rest of this entry →
Unreal Match 3 is a fully-featured match three-style game. Epic believes that this project can become “learning resource to help people learn how to make great games and apps”
Unreal Match 3 shows how you can use the popular engine to build optimized mobile products for a wide range of mobile devices. It also serves as a great example of how you can implement such features as achievements, analytics and in-app purchases in your game.
The project was developed from the good up by Epic’s learning resources team in just a few months. You can download the game, or you can actually download all the assets and source code, to study the production and make something of your own.
Videos for this Learning Series
Among all the shiny new features, there is a tiny one line in the Unity 5.3 release notes for a feature that I found useful and I think you will too. Custom coroutines, namely the new CustomYieldInstruction class, mean that you can now add your own coroutine yield operations in a very simple way.
For an article about how to use it, please follow this link.
A C++ article about persistent graphic settings in UE4:
In comparison to modern consoles there are hundreds and thousands of various PC hardware configurations. Different graphics cards, central processors, memory etc. in all sizes, shapes and colors allow for an endless number of various hardware setups. Some of those are more powerful than others, and not every PC can play the latest game with graphics settings at their maximum level. Typically on the PC platform one can control different aspects of tuning those graphics settings: from the resolution of the monitor, via anti-aliasing techniques, to texture and shadow quality levels. All these settings allow to adapt the game to the actual performance of the hardware in use.
Modern game engines allow to set such things out of the box, and UE4 is no exception. Epic calls this “scalability”, and on top of those things mentioned before in Unreal you can also set quite a few more game and graphics aspects, such as post processing quality, effects quality, material quality, and others.
Well, in UE4 you basically have two main parts to tweak in terms of graphics settings. On one hand that is the so-called video mode, which is basically nothing else than the game screen resolution, as well as whether or not to render the game in full screen mode or in a (borderless) window. On the other hand you have those quality settings mentioned above and listed in detail in the UE4 scalability documentation.
Now the question is how one can set and change those values and parameters from within the game. The obvious way is to do so via in-game console commands. A simple web search will reveal those commands to you, for example as listed in the UE4 answer hub. However, using those console commands seems to be a bit cumbersome, and from our understanding that is also not the way Epic recommends. For example, you need to explicitly call those commands every time you start the game, which for sure is not what we want. Instead we want the engine itself to automatically do all those things for us. Thus let’s have a look at handling those graphics settings the proper way, and in particular: permanently!
For reading the article, please follow this link.
Recently I had a strange issue: how to increase the size of JComboBox popup without increasing the size of JComboBox itself, specifically displaying during selection options which are longer than the combo box itself. After various unsuccessful approaches, I’ve found a neat solution posted by Rob Camick in 2010 on Java Tips Webbog, in form of a class which acts as a PopupMenuListerner. This class itself allows even more functionalities than I hoped for, and also works neatly in java 8’s Swing. This is how a JComboBox with resized popup would look like:
For a longer description and the class’s usage and source code, follow the original article here.
An alternative to deep inheritance trees for game and application architecture design is “composition”. Separating data (in independent components) from logic (in independent systems) allows the code to be more reusable and more efficient, alongside additional benefits. Using modern C++11 and C++14 features, it is possible to design an efficient and user-friendly component-based entity system library, with intuitive syntax and convenient cost-free abstractions.
A rather old (but nice) article by about self-registering c++ objects. quote from www.drdobbs.com:
An interesting design limitation with C++ is that all the places in the code that create objects have to hardcode the types of objects that can be created because all the usual methods of creating an object in C++, such as
new(classname), require you to specify a concrete type for the class name. This design breaks encapsulation. The situation is understood well by many beginning C++ designers, who try to find a virtual constructor that will create classes without knowing the exact type. These beginners quickly find out that C++ doesn’t have such a thing.
Since the functionality isn’t built into C++, I will add it by creating a class that can create other classes based on some criteria instead of a concrete type. Classes designed to create other classes are frequently called “factories.” I’ll call the class described in this article the “specialty store,” because it only works with objects that are closely related and it leaves the actual work of creation to other classes.
At compile time, the specialty store has no knowledge of the concrete classes it will be working with, but those concrete classes know about the specialty store. There are two remarkable things about this arrangement: A specialty store doesn’t contain a single
newstatement; and the specialty store’s implementation doesn’t include the header files for any of the classes that it will create at run time. (Instead, when the specialty store is asked for a new object, it queries the classes it knows how to create, asking each if it is appropriate for the current situation — if so, then that class is asked to create an instance of itself.)
For the entire article and the source code, follow this link.
For the entire article and the game mechanics explorer, follow this link