Even more personal announcements…

And so 4 years have passed. Oddly enough not much has happened since, I moved houses 3 times and worked in 3 places. I found that being a workaholic doesn’t mesh well with crunch culture in the game industry. I did about 22 months of consecutive crunch (some weeks working over 70 hours), in the end I felt really burned out… it took me a while to recover.

Time flew by very fast, and on one hand I feel like I haven’t achieved much on the other… I have some new things on my CV. Eventually I left my previous job after two years of employment, but the reason wasn’t the crunch – it was an overly broad IP clause in my contract. I realised I cannot exist in a universe where I am not allowed to create in my spare time :D

Now I’m in a much better place, work is awesome and satisfying, new colleagues are ace. I can finally start focusing more on personal growth, etc… :)

I am dipping my toes in YouTube, Twitch and social media and planning to do useful and fun things… eventually. I spent some time learning about “content creation” (a technical term apparently, I didn’t know there is a whole science behind it). I am not currently taking it too seriously, just figuring stuff out and checking what is most fun to do (i.e. I’m not committing, just doing a playful exploration). I have been streaming a couple of hours a week and I published my first video a couple of weeks ago… found out video editing is fun, but very time consuming, I will need to find a better way to do it or make shorter videos.

I have been trying to be more active on Twitter as well, but I have a slight problem, my personal mantra of “if you don’t have something useful to say don’t say anything at all” clashes with the social media convention of “post every day”… so there is some figuring out to do there as well. There is the thing that “one man’s trash is another man’s treasure”, but I’d rather not litter too much. (This blog is the exception because I’m the only one reading it :P)

I also started working on a personal brand… of sorts. Since I needed profile picture for YouTube/Twitch and I didn’t want to use my photo (because that would be lame), I drew a slightly exaggerated chibi self-portrait ^_^

Izzo-Dull-Icon-256px

It looks a bit generic but… that’s because I look a bit generic; messy brown hair, check; brown eyes, check; dull expression, check; headphones, check; fox ears… ok, that was a creative choice :D (I borrowed my foxy husky’s ears)

I actually drew a bunch more since my initial idea was to use chibi emotes for YouTube videos.
IzzoEmotesBut the I really liked the dull expression emote so it is now also my new profile pic :)

I will need to redraw it at some point, as it wasn’t meant to be high resolution, and I didn’t want to spend too much time drawing them (there are some glaring mistakes when you stare for too long). I used a bunch of references and this tutorial was a strong influence, there were also other stuff I looked up on pinterest and google.

I’ve got some other brand elements… in pretty generic terms triangles (and triangle fonts) and the colors cyan, blue, yellow and orange or something like that (it is actually pretty vague in my head too). Cyan/blue’s my favorite color because I like clouds and sky, yellow/orange just goes well with it and triangles are pointy (triangles are a very computer games thing so I figured they fit). Thus this banner was born:

gimp-edit5-export-twitch-banner

While on the subject, I guess I never explained where “Super Izzo” comes from. In Bulgarian “Hristoz” (my name) is commonly nicknamed “Itso” (what fam and friends call me), but because I thought it sounded cooler, in high school I started spelling it with two “zz” like an Italian would (think “pizza”). In some forums however “Izzo” was already taken (who would have guessed it’s an actual name :D). The first time that happened I had to come up with a new account name, and I remembered something I read in “The Game Maker’s Apprentice” (I was very much into GameMaker):

These days, some of the most inventive games come out of Japan. Japanese designers have a history of taking crazy design scenarios and turning them into brilliantly addictive games…

…Titles for Japanese games often start with the word “Super” (Super Monkey Ball, Super Smash Brothers, Super Street Fighter, etc.)

So putting 2 and 2 together SuperIzzo became a thing and it’s been my handle on most websites for a long time. Thinking about it in hindsight I sound like a bootleg Super Mario, and my custom font choice doesn’t help the case either xD

So what’s next? Hopefully another blog post in less than 4 years from now and I will try to publish more content in general.

Status Update (10.11.2014)

There is no release this week. Why? (here come the excuses) Well a couple of disasters stroke me: first there was my birthday, then I got sick (and still am), on top of that I’d decided to dive into online multiplayer code.

Oh.. the multiplayer code… I’ll get the hang of it, eventually. I had to learn a lot about how networking stuff work in Unity. Furthermore before I can make a fully functioning online version I have to revisit all of the game logic so far to make sure it works as expected and syncs across multiple instances of the game. On the other hand I’m glad I decided to do this now before there is too much content.

I don’t know how much it is gonna take before I finish this quest, but it doesn’t seem like an easy feat! So at least two more weeks. I’ll keep you folks updated  ;)

I chose a name for the game – “Weaggles: World War”. Because it abbreviates to WWW :D. Also “Weaggles” is also a very unique (made-up) word which is always a good thing. A close runner up was “Weagles: Waging Wars”, it lost because “world” can be associated with online (as well as the WWW).

In other news in two weeks time I’m taking part in the 72 hours “Indie vs PewDiePie” game jam hosted at GameJolt. I have a pretty funny idea and an awesome team, and it’s gonna be loads of fun. I need to get a lot of things ready before the jam starts (collaboration tools, streaming and recording, and other bits of tech) so it’s unlikely that I’ll do any progress on this game. Ah yes, I’ll be streaming the development on Twitch (as SuperIzzo), so you’re welcome to come :)

Day 4 – making things pretty… er

Today was mostly dedicated to visuals. I started the day with 3 new block types:

  • ground/grass – which replaced the previous giant ground box, and allowed for making holes
  • water – so that the holes don’t look so awkward (its an impassible indestructible block, which allows for bullets to fly trough)
  • crates – for now they just take two hits, jiggle a bit and get destroyed (a little bit like bricks), but I have huge plans for them

Then I decided to add some texture, because plain colors were starting to look boring. I also meddled with Unity animations and finally got the hang of them (I think). Minor game-play tweaks, minor setting adjustments here and there, but nothing really significant on the functional side.

How to finish your game?

Historically my individual projects have suffered from a syndrome called “feature creeps”, they always start small but grow exponentially in complexity until the point they are impossible to complete. Other times immense amount of time gets spent on features which turn out to be unimportant. Either way the finish line remains out of sight and the passion that started the project eventually burns out.

A healthy response to a problem is to acknowledge that you are not the first person to have experienced it. Others have probably found the solution, in which case Google becomes your best friend.

Here are some resources that aim to answer the question:

NotePad++ Lua Function List (with tables)

This morning was a morning well spent, despite being constantly distracted I managed to roll up my sleeves and do a lua function parser for Notepad++ (rather than wasting my time with actual work). In the process I learned that a) Notepad++ function list doesn’t support lua by default, you have to add them manually, b) the function list looks very pretty and allows not only function but class definitions as well c) regex have lookaheads, lookbacks and K.

I used this StackOverflow question as a starting point, but noticed that the solution that best matched my situation ignores table functions. This was unacceptable because most of my code tends to be structured in classes. After fiddling around with it I got it just about right.

The first thing to do is locate functionList.xml and open it. It may reside in the installation directory or %APPDATA%Notepad++, depending on your installation. Open it and add to <associationMap> the the folloing:

<association langID="23" id="lua_function"/>

The next snipped is added to <parsers>.

<parser id="lua_function" displayName="Lua">
	<function mainExpr="^[t|locals]*functions+[^0-9][_A-Za-z0-9.: ]+s*(" displayMode="$functionName">
		<functionName>
			<nameExpr expr="[.:]?s*K[^0-9][_A-Za-z0-9]+s*("/>
			<nameExpr expr="[^0-9][_A-Za-z0-9]+s*("/>
			<nameExpr expr="[^0-9][_A-Za-z0-9]+"/>
		</functionName>
		<className>
			<nameExpr expr="functions*K[^0-9][_A-Za-z0-9.:]+(?=s*[.:])"/>
		</className>
	</function>
</parser>

This will group together functions defined as <class>.<function> and <class>:<function> (or <class>.<class>./:<function>) and place them in their appropriate classes in the Function List viewer. It will also capture lose global or local functions and display them as normal. It will unfortunately accept illegal constructs and definitions, but you get compile errors for those.

Finally done

No more exams, no more side distractions, no more time wasters… I know I’ve been saying that for over a month now, but I hope this is the last time I say it.

Unity’s support for android (and iOS) is now free and I’ve been postponing it, but I think it’s high time I actually learned how to use unity, LOVE 2D is awesome (it’s 2d, it’s open source and it’s lua based, what’s not to like) but it’s platform support is still lacking and I was hoping to be able to make games for OUYA by this summer.

Unity’s 3D and even though I don’t particularly mind 3D games I know from experience that they are harder to produce, and not just the art, but the code, and usually 3D is an unnecessary complication in terms of mechanics (few games really benefit from the 3rd dimension).

I also took too long before I started serious work on the Battle Dyzx project, and lost interest, so I’ll drop it (and come back at some time later). I’m starting a strategy game with dice, which I do not have a name for yet. I’ll need to detail the rules in another post, but the main idea is that it is based on constructing a set of dice and cards and reading and manipulating probability in order to win. It should be a game which looks and feels like gambling, but is about making and controlling the odds rather than a series of random events. There are gonna be monsters too :)

Time!

Ok, time to do some management. University’s just ended… only formalities are left, which means no more deadlines and restrictions, I have all the time I need, and can use every hour of every day, so let’s make sure I do it efficiently.

A couple of other game ideas ended up in discussion – a traveling merchant in post-apocalyptic world. It was Emo’s idea which is why I was keen on continuing it, but we couldn’t get it to a point where it has any objectives or final goals, so it would end up being a toy and toys aren’t that fun. As it turns Emo wouldn’t be available in the following few months, he’s got a busy schedule, I alone wouldn’t attempt to tackle it especially when I haven’t got a clear idea of the gameplay nor have I prototyped it, besides I would lose interest if I’m not working in a team, therefore I shall continue with “Battle Dyzx” for now. The primary objective is to get a (incomplete) working version ASAP.

TDD is occasionally helpful, but very distracting and slows the process, I start to feel like it better to do RAD instead of XP. Next steps will be to properly address what needs to be done and try to plan at least a few weeks ahead.

Unity has announced that mobile games tools are now free, I have to absolutely learn how to use it and start using it. So there might be a slight change of plans. The game has to be 3D unity based!

21-26 May

This will be the basis for the multilayer and the battle system itself

  • Get a spinning disc working
  • integrate joypad control
  • make a server
  • have two discs remotely controlled on the same server

27 May – 2 June

Dedicate most of this to the battle system,

  • collisi0n
  • clashes
  • more physics battle mechanics

Later on start thinking about progression, how to improve the performance of tops over time, possibly without adding too many artificial numbers I would love to keep all data associated with the image only.

3D reconstruction from projections

Thinking back at that post about volume reconstruction from sprite depth, I start to feel that there is actually a bigger and better use for cube projections, than just reducing data.

It is possible to reconstruct a complete image from multiple depth mapped projection as each of them contains 3D data.One way to do it is to project every point from every projection into the 3D space effectively forming a point cloud, however it is also possible to render them directly using ray casting a transformed ray trough all projections.

This is something I want to test after I’m done with university, one thing that is cool about the idea is that if the projections are cube based only the front 3 faces of the cube need to be considered. Hence reducing the amount of computation by half.

I can tell a few limitation to this approach even from now – it is going to have hard time with concave objects and self-occlusion, it will not work well with transparency and for operations on the 3D data multiple projections have to be considered. One challenge in particular would be the problem of how to fill up holes in concave regions.

It however would have many advantages as well… technically it is a compromise between volume and polygon graphics – it allows complex 3 dimensional shapes to be defined without the need to model them with triangles (just like volumes) but also only contain surface data (just like polygons).

A few terms that might be useful when looking for related literature:

  • Digital Evaluation Model (DEM) – mainly used with terrain height mapping
  • Displacement mapping – applying per pixel 3D deformations to polygons

Blog’s Purpose

I ramble a lot and need something to organize my thoughts and plan activities (so that no time is wasted :) This is mostly going to be a private blog with loads of randomly scattered entries floating around in semi-structured fashion, but I’ll occasionally publish stuff as well (I promise)