Finished polishing up the sketch! I wanted to have a gritty feeling for this one.
AMAZING! ❤️
Wonderful artwork from my extremely talented wife!
NASA

★

No title available
Claire Keane
Today's Document
tumblr dot com
No title available
Show & Tell

祝日 / Permanent Vacation
Peter Solarz
TVSTRANGERTHINGS
we're not kids anymore.
sheepfilms

Kiana Khansmith
taylor price

Andulka
No title available
almost home

tannertan36

⁂
seen from United States
seen from Germany

seen from United Kingdom
seen from United States

seen from Malaysia
seen from United States

seen from Singapore
seen from Thailand

seen from United States

seen from Germany
seen from United States
seen from United States
seen from Malaysia
seen from Sri Lanka

seen from Singapore

seen from Canada

seen from United Kingdom

seen from India

seen from United States

seen from India
@therichardmarks
Finished polishing up the sketch! I wanted to have a gritty feeling for this one.
AMAZING! ❤️
Wonderful artwork from my extremely talented wife!
The beautiful Rhysand. (belongs to the equally beautiful Sarah J. Maas)
Still very rough as far as color goes, but after streaming for 3-4 hours, I need a break. And to sleep. ;)
I’ll be continuing this tomorrow morning/night. Once done I’ll post a step by step.
I need to look into compressing my recordings into more manageable time-lapses and actually post to my youtube some day. I have so many recordings from past streams that are just sitting taking up space.
More amazing work by my amazing wife!
Some fanart of one of my favorite characters from A Court of Mist and Fury, by Sarah J. Maas. Definitely my favorite book of the year thus far. I used a dragon motif because she’s described as having a the personality of a “firedrake”. It’s been a pretty long time since I did any personal semi-realism artwork, or any fanart for anything other than a video game. I need a change of pace with my art so this was a lot of fun to paint. :)
Painted in ClipStudio Paint, color corrections in the final step done in PaintStorm Studio.
I really love when my wife draws for herself. Great job baby!
Something fun that I am working on
So if any of my followers here are Android gamers and you’re looking for something challenging and mindless, my studio recently released a small arcade game called Into the Pitch.
You can check it out on the play store here (it’s free btw)-
https://play.google.com/store/apps/details?id=com.bangbangattackstudios.games.intothepitch
Most of our Android endeavors have been made using the Gideros engine and straight native. This was our first foray into Unity3d (version 5) and even though the game had to be started from scratch 3 times before it made it to market, the development actually went pretty smoothly.
Our next game is a larger puzzle game with a much lighter tone also to be created in Unity.
I took a backseat on the design for Into the Pitch, but am taking the lead for our next title.
For now check out Into the Pitch! (and let us know if you run into any problems while playing it!)
Skype for Linux 4.3 database hack to avoid segfault on start up.
So you just were forced to upgrade your Skype for Linux to 4.3? I bet you like many others had your system lockup a moment, then skype crashed with a segfault.
Here is the solution.
$ sqlite3 ~/.Skype/[YOURUSER}/main.db sqlite> DELETE FROM Messages WHERE type=68; sqlite> .quit
Converting .3gpp to .wav on Linux
So if you're like me and you record an audio file with your Android device and end up with .3gpp files, this short article will tell you how to get your recording into a format you can use on your workstation computer.
$ avconv -i inputfile.3gpp outputfile.wav
And presto, you should have a wav format file that you can dump into Audacity or whatever software you are working with. :)
Vestigium's Debut EP Electric Illusion is available NOW!
Been awhile since I posted. I don't know why I didn't remember to post this when it was released, but I'll just leave this post here now...
iTunes https://itunes.apple.com/en/album/electric-illusion-single/id853927351
Amazon MP3 http://www.amazon.com/Electric-Illusion-Vestigium/dp/B00JQKHU7Q/ref=sr_1_1?s=dmusic&ie=UTF8&qid=1398634736&sr=1-1&keywords=vestigium
Spotify https://play.spotify.com/artist/49LJWBypzxs0e3L0xv9x7p?play=true&utm_source=open.spotify.com&utm_medium=open
More distribution channels to come in the next several weeks.
Spread the links above to any many people as you can and support the indie musician Vestigium (Which btw, is ME).
Well this is cool.
Woke up this morning with an encouraging email.
"Hi Vestigium Congratulations! Your release, Electric Illusion has been approved for distribution. Distribution to all selected retail partners normally takes between 4 and 6 weeks.
Here's to hoping that this turns out well. crosses fingers
Ubuntu 12.04 Restrict Wacom Tablet to Single Monitor
I needed to break out my Wacom tablet today and it works fine in Ubuntu 12.04, out the box, however, with my multi-monitor setup, it mapped the drawing surface of the tablet to all my monitor's screens, which makes it quite impossible to use for drawing anything, as it jumps around like crazy. So, I found myself searching for how to get it to only 'see' the monitor that I have my drawing application open on.
This takes only a couple short commands in the terminal.
First, you need to know the name of the Wacom input device.
$ xinput --list
will tell you what you need to know. In my case it was "Wacom Bamboo stylus"
Next, you need to know the configuration of the target monitor. Use the following command to get a list of connected monitors.
$ xrandr --query
You will see a bunch of output depending on the number of monitors you have connected. What you are interested in is the dimension information. For me it was "1920x1080+0+0"
Finally, tell wacom to map the output to the proper monitor with the following command.
$ xsetwacom set "Wacom Bamboo stylus" MapToOutput 1920x1080+0+0
And you're all set.
Progress
It looks like the new approach is working well. I've finished the prototype, and am working on taking the project to the alpha stage while the assets are being created.
HTML5 Game Development is Fun
Slipping on keeping this thing updated lately. Oh well. Last time I had said I was developing my own HTML5 framework, and that project has been put behind me for a bit. I've moved my focus from frameworks/engines and reusability to functionality and finishing. Tired of so many unfinished projects, I've started working on a small game, focusing not on the architecture of the game, nor what engine to use, but solely on getting the GAME done. And so far, this approach is going well. I have nearly all of the mechanics in place, with only a short list of things to still figure out and implement. I've avoided graphics and have been working with colored rectangles as place holders so that I do not get distracted with unnecessary premature asset creation, and have been able to quickly go from iteration to iteration of the code.
With my tool set consisting of
Ubuntu - Operating System
Chromium - Web Browser / Javascript Debugger
Geany - Syntax Highlighting Supported Code Editor
Git - Version Control
XAMPP - Apache Server
I have everything that I need.
Busy Busy
Whoops, it's been a few days...well, 8 days since I posted last. Been kind of busy with evaluating various HTML5 frameworks. Then #cyberpunkjam came round and I've been scrambling to try to get something done. Time and luck has been against me. Got a great idea for my entry, but it's not looking like I will get to participate in the jam. Still plan to make the game even if I miss the jam.
With no HTML5 frameworks suiting my needs, I've taken on the task of building my own from scratch. Making progress. It's a slow hard road. Learning HTML5 and building a game engine plus game specific code and content before the jam ends just seems like it's too much. Oh well. Learning a lot, and having fun. So, w00t for that.
Keeping Busy ...Maybe Too Busy...
As the lead developer for Bang Bang Attack Studios, I am pretty busy with the project queue. In addition to that, I also take on freelance jobs programming software, games, consulting about programming or game development in general, and even lettering comics and designing book cover titles. Not only that, but I am a full-time father and husband, and a console gamer.
All of this leaves little room for the extra personal projects which I want to work on, like taking part in competitions like RPGDX mini-compos and Ludum Dare, etc... and even less time to have a social life outside of my family, which isn't the worst thing, but I do miss hanging out with friends... Then there is my music. I am a guitarist, and have not played much this year, since finding time to record, even practice can be daunting.
Any fellow developers wish to share suggestions on how to better manage time? What methods and/or software do you use to keep on schedule, and still find time for life?
//rant
NOGDUS Archives - Obscure C++ Syntax
Originally written for NOGDUS in 2010. Edited and formatted for ToV in 2014.
OK, today I just discovered an apparently undocumented (as far as I can tell - hours of googling has returned nothing) feature of the C++ language.
You likely already know that you can create arrays of data types using the brackets:
int myarray[100];
And that the size is optional if you initialize inline:
int myarray[] = {1,2,3,4,5,6};
And that you access the elements of the array like this:
int index = 4; int value = myarray[index]; // value = 5 using the array init above
But here is what I just learned.
You can use the array name as the index and the index as the variable! :o
int index = 3; int value = index[myarray]; // value = 4 using the array init above
This also works:
int value = 3[myarray];
Woah.. coolness! This lets you do some interesting things. Here is a fun little program. See if you can figure out what it does BEFORE you try it out!
#include <iostream> using namespace std; int main(int argc, char* argv[]) { char god[] = " !ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int am_a[] = { 9, 6, 13, 13, 16, 0, 24, 16, 19, 13, 5, 1 }; for (unsigned int i = 0; i < (sizeof(am_a) / sizeof(int)); i++) { cout << i[am_a][god]; } cout << endl; return(0); }
Pretty slick stuff. I love C++. 8)
Cropping Images with ImageMagick
ImageMagick can be used to quickly and easily crop a batch of images to the alpha boundaries.
This example will assume that all images are png files stored in the same folder. First, ensure that the images have a transparent border that surrounds the image with the following command.
$ mogrify -bordercolor none -border 50 *.png
Now with another command we can crop all the images in one go.
$ mogrify -trim +repage *.png
There is a lot more that can be done with ImageMagick. Be sure to read the documentation!
How to create a gradient using SDL
Shoot! Looks like I missed a day in updating this thing. I was looking through my NOGDUS archives, and was going to just toss up another old piece of code for your viewing pleasure, but then I decided it would be better to write something new.
This code is inspired by a small demo written for NOGDUS, however the original was an Allegro demonstration. I decided to build an SDL 1.2 example from the ground up. I don't have time to explain everything in detail, however, if you have questions, feel free to contact me and ask me.
The code below is an excerpt from the code that I wrote for this post, which you can check out the example using the link below the code listing. I wanted to create a linear gradient between two colors. The following class is what performs this magic.
class VGradient { public: VGradient(const SDL_Surface* surface, const SDL_Rect* rect, const Uint32 colorStop0, const Uint32 colorStop1) { target = surface; int x1 = rect->x; int x2 = x1 + rect->w; int y = rect->y; int height = rect->h; for (int i = 0; i < height; i++) { float distance = (float)i / (float)height; Uint8 r = LinearInterpolation(GetRValue(colorStop0), GetRValue(colorStop1), distance); Uint8 g = LinearInterpolation(GetGValue(colorStop0), GetGValue(colorStop1), distance); Uint8 b = LinearInterpolation(GetBValue(colorStop0), GetBValue(colorStop1), distance); Uint32 color = GetRGBValue(r, g, b); DrawHLine(x1, x2, y+i, color); } } private: inline Uint8 LinearInterpolation(const Uint8 from, const Uint8 to, const float distance) const { return (from + (to - from) * distance); } private: inline void DrawPixel(const int x, const int y, const Uint32 color) const { *((Uint32*)((Uint8*)target->pixels + (y * target->pitch) + x * target->format->BytesPerPixel)) = color; } private: void DrawHLine(const int x1, const int x2, const int y, const Uint32 color) const { for (int x = x1; x < x2; x++) { DrawPixel(x, y, color); } } private: inline Uint8 GetRValue(const Uint32 color) { return (color >> 16) & 0xFF; } private: inline Uint8 GetGValue(const Uint32 color) { return (color >> 8) & 0xFF; } private: inline Uint8 GetBValue(const Uint32 color) { return (color & 0xFF); } private: inline Uint32 GetRGBValue(const Uint8 r, const Uint8 g, const Uint8 b) { return ((r << 16) | (g << 8) | b); } private: const SDL_Surface* target; };
View the complete example
The code in this post is licensed as follows.
/* The MIT License (MIT) Copyright (c) 2014 Richard Marks, Bang Bang Attack Studios Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
Thank you for taking the time to read my blog.