• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Indie Game Development Thread 3: Indie Jones and the Template of Doom

Makai

Member
krLG50v.png


I decided to break with the discouraging tradition of Thread Title |OT| I am poor - sorry 4k fans :p

Indie Game Development |OT2| High Res Work for Low Res Pay
Indie Game Development |OT| Of Being Professionally Poor

It's fun to see games while they're early in development and it's encouraging to share your own progress. That's the main purpose of this community, so I'm dedicating the whole first page to your projects. Send me a GIF and a description so I can put it here!

Salaryman Suzuki San by RiamuBME
You play as Suzuki-san, a Japanese-box who has to get to work on his first day as a Salaryman! An auto-scrolling platformer where you grow and shrink in size to cartwheel over various "Japan-inspired" obstacles to get to work.

giphy.gif


Rogue Hero by bearbytes
Explore the world and fight your way through generated dungeons. Collect gems to build up your village and buy upgrades to your heroes and equipment!

pRz7h4D.gif


Clive 'N' Wrench by _Rob_
3D Platforming, time travelling & cartoon action!

giphy.gif


Aggrocrag Buttfuck by Timedog

Dudebro%20II%202.jpg
 

Makai

Member
Demotivation

Jon Blow - Code quickly
Jon Blow - Run quickly
Derek Yu - Finish your game
Derek Yu - Don't make jaggy sprites

Previous threads gave a wide overview of various tools and game engines but I want to try a more focused approach. Nearly all of us know what we want to use, so I think it's more helpful to share useful techniques for using those tools. I haven't released a commercial game, but I've released several game-like 3D applications for serious business purposes (e.g. Roller Coaster Tycoon but it's an assembly line that someone will build in real life). These were in Unity and I can share a few simple techniques that have proven most productive to me. I hope others share war stories with their tools and how they overcame roadblocks - I'll add them here. But first, a couple techniques that apply to everybody.

Version Control

Oh no, your computer broke and you lost everything! One approach is to archive your project regularly. This is fine for solo projects with regular uploads to online storage, but there are professional tools that do essentially the same thing but with more convenience for combining work between multiple contributors - repositories. Examples include Mercurial, SVN, TFS, PlasticSCM, and Perforce, but if you don't already use version control, you should use Git. This is a controversial recommendation because Git isn't the easiest to learn, and more troubling it's not even the best tool for game development - Git doesn't handle large binary files well - e.g. textures and videos. But you're indie, and probably have small asset loads. And what you gain from Git is ubiquity - there are popular sites where you can host your huge project for free, and you definitely know somebody who can send you the right commands to fix problems you will run into.

Github and Bitbucket are the most popular repository hosts, but I recommend the up-and-comer GitLab. Without comparing features, I can safely say it's the most generous. Unlimited private repos, each with 10 GB of storage. Free project management boards. Free Docker hosting for continuous integration.

Github has a good tutorial.

Continuous Integration

This is probably really rare in indie dev, but it's a huge win for tracking bug regressions and enabling QA down the line. Every time you commit to your main branch, a server automatically creates builds for all your platforms and associates them with that commit. I don't have a walkthrough for setting this up because it depends on your build stack, but if you google Docker [Your Game Engine], you might find help. If you're using Unity, you can use their version of this called Cloud Build - it has limitations but if you haven't done anything interesting with the build settings it should work.

----- Custom Engine -----

Missile's advice for learning software rendering: 1 2

----- Unity -----

Exotic Scripting Languages

Because scripts defined in managed DLLs can be attached to GameObjects, you can use any CLI language as your primary language.
I played around with F# in Unity and it was a good fit because of a couple design choices: 1 2

But Unity clings to DLLs, so testing code changes is tedious:

Code:
close Unity
rebuild DLL
reopen Unity
play

Lazy initialization

Nobody does this, but because most API calls can only be called on the main thread I think it's essential.

This code will crash.

Code:
class GameLoop : MonoBehaviour
{
    readonly GameObject example = new GameObject("Example");
}

Pretty sure the reason is because the initialization happens off the main thread. The common workaround is to split the definition and initialize the field in a startup method.

Code:
class GameLoop : MonoBehaviour
{
    GameObject example;

    void Awake()
    {
        example = new GameObject("Example");
    }
}

But I now prefer to create a construct for that.

Code:
class GameLoop : MonoBehaviour
{
    readonly Lazy<GameObject> example = new Lazy<GameObject>(() => new GameObject("Example"));
}

Code:
public class Lazy<T> where T : class
{
    T value;

    readonly Action constructor;

    public Lazy(Action constructor)
    {
        this.action = action;
    }

    public bool HasValue { get { return value != null; } }

    public T Value { get { return value ?? (value = constructor()); } }

    public void Destroy()
    {
        if (value is Component && value != null)
        {
            Destroy(value.gameObject);
        }

        value = null;
    }
}

This way, it won't be initialized until you call .Value for the first time, and you can easily recreate it by calling .Destroy() and then .Value. May not seem like much, but the code that tries this with null checks is a lot more prone to disaster down the line. This is a contrived example, but this type of thing is everywhere.

Code:
class GameLoop : MonoBehaviour
{
    readonly GameObject example;

    void Awake()
    {
        example = new GameObject("Example");
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A) && example != null)
        {
            GameObject.Destroy(example);
        }

        if (Input.GetKeyDown(KeyCode.S))
        {
            if (example == null)
            {
                example = new GameObject("Example");
            }

            Debug.Log(example.Value.name);
        }
    }
}

Code:
class GameLoop : MonoBehaviour
{
    readonly Lazy<GameObject> example = new Lazy<GameObject>(() => new GameObject("Example"));

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            example.Destroy();
        }

        if (Input.GetKeyDown(KeyCode.S))
        {
            Debug.Log(example.Value.name);
        }
    }
}

Threading

Coroutines are almost always used for operations that could happen on a separate thread, putting unnecessary strain on the main core. Even the Unity API does this for downloading, which is bs. Maybe you're decompressing an image you downloaded over http and need to set a material's texture to that at the end - do that on another thread. Just make a thread for the heavy lifting and hook back onto the main thread to call the Unity API.

Code:
class GameLoop : MonoBehaviour
{
    void Awake()
    {
        var thread = new Thread(() =>
        {
            // Pretend this is doing something meaningful and expensive

            int count = 0;

            for (var i = 0; i < 1000000; i++)
            {
                count += i;
            }

            Globals.ThreadHelper.Add(() =>
            {
                Debug.Log(count);
            });
        });

        thread.Start();
    }

    void Update()
    {
        Globals.ThreadHelper.Execute();
    }
}

Code:
public static class Globals
{
    public static readonly ThreadHelper ThreadHelper = new ThreadHelper();
}

Code:
public class ThreadHelper
{
    readonly Queue<Action> actions = new Queue<Action>();

    public void Add(Action action)
    {
        lock (actions)
        {
            actions.Enqueue(action);
        }
    }

    public void Execute()
    {
        if (actions.Count > 0)
        {
            Action action = null;

            lock (actions)
            {
                action = actions.Dequeue();
            }

            action();
        }
    }
}

Allocation

Everybody talks about this, so I'll just summarize. Someday Unity will upgrade to the modern version of C# that improves this problem, although a Unity engineer told me the upgrade was right around the corner back in 2014 and here we are. Garbage collection of heap allocated objects is slow, so use stack allocations where possible - use structs instead of classes for temporary variables. Keep small objects in memory forever I found an FPS counter which created a collection of strings for each possible framerate, "1" through "60" - completely ridiculous, but also the most practical implementation. Small allocations from converting the framerate integer to a string every time would slowly build up until inevitably triggering a hang. The Job Simulator team spawn every object they will ever need and never destroys anything. They picked the perfect game design for this - player is in a big room full of stuff that you never leave.

----- Unreal -----

They made similar decisions as Unity so the same tactics apply. Core API functions must be called from the main thread and they even use a custom garbage collector. The scripting language is C++ so you won't have to do as much silliness to avoid allocation.

----- MonoGame -----

You get the latest C# and F# if you use this, modern generational garbage collector included. I ported an allocation-heavy Unity project to MonoGame and got about a 10x speedup.
 

Pehesse

Member
Marketing suggestions

General considerations article
#screenshotsaturday (on saturdays), #indiedevhour (on wednesdays, 7PM UTC+1); #indiedev on Twitter, Tumblr
cartrdge - Videogame focused portfolios
TIGsource devlogs
ProjectMQ - indie focused exposure+community
IndieDB

Marketing Tools


Indie Focused Publishers


Expanded thoughts on the topic here

Graphics related stuff

Design related stuff

-----

New thread, new smell, thanks Makai!

As much as I like unorthodoxy, and I don't want to sound overly critical, but I find it a shame not to put more emphasis on the OT2's resource list, as huge parts of it are still enormously relevant (if only for the regular "what engine should I use" posts). I also feel it's a bit too much code centric of a "main body" post for something that aims to put the community's work at the forefront, and skews the perception of our work towards the overly technical.
And also, my OT title, you monster ;_;
Was it also a mod decision to move the thread to Community? I wonder if this won't stifle the visibility of the thread, which is arguably in large parts one of its most important traits.

Still, I'm glad the adventure continues, and I'm looking forward to seeing everyone's progress in our new home!
 

zdenko1

Member
First of all thank you for the new thread Makai.

I don't post in this thread as I currently don't have anything to show off with my game but I browse pretty regularly and enjoy seeing other people's games. I'll definitely subscribe and keep following this thread. Now here's the things I would like to mention.

New thread, new smell, thanks Makai!

As much as I like unorthodoxy, and I don't want to sound overly critical, but I find it a shame not to put more emphasis on the OT2's resource list, as huge parts of it are still enormously relevant (if only for the regular "what engine should I use" posts). I also feel it's a bit too much code centric of a "main body" post for something that aims to put the community's work at the forefront, and skews the perception of our work towards the overly technical.
And also, my OT title, you monster ;_;
Was it also a mod decision to move the thread to Community? I wonder if this won't stifle the visibility of the thread, which is arguably in large parts one of its most important traits.

Still, I'm glad the adventure continues, and I'm looking forward to seeing everyone's progress in our new home!

Since one of the topics of the last thread was about platformers, here are a number of articles regarding platforming design, with everything from camera to character control!

http://platformerpower.com/platformer-design

I have exactly same issues as Pehesse with this new OT3.

I loved having big list of software (even though it wasn't updated) for 2 reasons:
  • It was really welcoming for new users and give them a quick overview of who we are, what we do, how we do it etc. It had great flow and really introduced all the different aspects that indie dev has.
  • I checked that list pretty regularly and as I work I tried different SW and found few, that suit me most. This and multiple other lists helped me (in the beginnings) move from Unity to Unreal, from Github to Gitlab and so on.
Now it's just a mess and here's why:
  • #1 post is just a waste of space and I think it's in bad place - it should be post #2 or #3 - after the introduction of all the dev resources. I like the idea of having showcase of games that people finished. I would love if it could be done in format similar to usual photo gallery like in image below but I'm not sure though if it can be done on GAF (very likely it can't). Indie games thread is also pretty good. http://www.neogaf.com/forum/showthread.php?t=1370023 One thing that worries me though is that it will hit word count limit pretty quickly and will have to be split up. I'm not sure how to deal with that.
  • #2 post is probably even worse as currently it's just wall of text that's discouraging to even look at. It looks more like a post from unity forum about some random problem. I think it's not useful for 99% people that come here and that remaining 1% of people will just google it and try it out. Add to that fact that it's very Unity-centric which is not relevant for all users.
I sound really really harsh and I'm sorry for that but current OT is for me big step down from previous OTs. It would be great improvement to include all the old dev resources from previous OTs, update them and add new stuff - Gitlab, DaVinci Resolve (which is probably one of the most amazing free SWs and I still don't get how it can be free), Lumberyard engine etc. If you want help with updating the list just PM me Makai and I'll try to help out to some extent. Thank you for hearing me out and good luck to all of you fellow devs. I hope I'll finally get my game to somewhat presentable state in June and create dev blog and start posting here with you guys.
 

Pehesse

Member
I like the idea of having showcase of games that people finished. I would love if it could be done in format similar to usual photo gallery like in image below but I'm not sure though if it can be done on GAF (very likely it can't). Indie games thread is also pretty good. http://www.neogaf.com/forum/showthread.php?t=1370023 One thing that worries me though is that it will hit word count limit pretty quickly and will have to be split up. I'm not sure how to deal with that.

I agree with the above, and that kind of presentation would be very cool - though I also fear a huge intro post with GIFS would be murder for most mobiles, as evidenced by the monthly indie threads (I simply can't get into them on page 1 on mobile), and I find those threads actually do an excellent job at showcasing the work done by the indie community at large, which is why I've kind of stopped updating the list we had started with Jack. If it's of any use, it can still be referenced for more GAF-centric work if need be, but yeah, as far as showcasing the community's work, I'm both all for it, as it's the main purpose of the thread, but have some concerns about condensing it in a single OP post (one of the reasons we had it as an external list, so it could be expanded at will without worry for character limit, even though it meant less visibility - better that, than preventing potential viewers from seeing the OP at all, in my eyes, but there's a discussion to be had on that topic).

Anyhoo, positive thoughts, and buckle up for some more ANIMEYSHON soon!
 

Blizzard

Banned
Thanks for making the thread, though I will respectfully echo the earlier comments. Big lists and/or pictures of resources are probably much better. There is a lot of code that as far as I can tell basically applies only to Unity.

Someone coming into the OT will probably be looking for resources (which were in the last thread) and not necessarily to look at what other independent developers have made (which could be saved for a later post). In particular, a lot of new developers may not be wanting to code much at all, and pages full of rather sudden Unity code are probably going to be discouraging.

I turn GIFs off for mobile but I do agree tons of GIFs can hurt performance.
 

HelloMeow

Member
But Unity clings to DLLs, so testing code changes is tedious:

Code:
close Unity
rebuild DLL
reopen Unity
play

Usually Unity reloads the whole scripting environment whenever the scripts are recompiled or whenever an assembly is updated, so restarting Unity shouldn't be necessary. In some rare circumstances it stops doing so, but that seems to be a bug.
 
New thread yay!
Going to post some of the stuff we have been adding of Sitcom Valley on twitter this last weeks.
Two character concepts, the grumpy lady that can affect your fight, and Ophie, that is the protagonist's ex-girlfriend and one of the enemies/allies in the game.
marujavouq1.png


opheliaconceptshsusf.png


And two animations, one of Alex eating your food, and the other with the old lady attacking in the middle of a fight.
cocinasitcomjwud4.gif


vecinagallina_ascenso4fur4.gif
 

oxrock

Gravity is a myth, the Earth SUCKS!
I suppose I'll chime in as well. 90% of second post really only pertains to about 0.01% of people reading the thread. OP's are about general information for people just getting acquainted with what's going on, not for people already knee deep in it. That's why previous OP's have been packed to the gills with starter information about all the game engines, art software, etc. It's a crash course for people who have no idea what's going on to educate themselves. Otherwise the discussion would likely be sidetracked quite frequently (even more than now) as to what software is available, what they should be using, how can I codes, etc.

I will say that I like that you included room to show off projects that we're working on in the OP, but I don't think it should be the first post personally. That's where the uninformed would normally be looking for information pertaining to what resources are available to them. Perhaps you could re-purpose the third post for this.

I also liked that you included some informative videos in the second post and talked a bit about source control. Having a more robust list of videos and guides would be very welcome in my opinion, more so than several screen-fulls of code that most people will never use and will simply frighten a lot of people away. That's not to say I think it's useless information, but I think it's best hosted elsewhere with a link to it for those interested, or posted further down within the thread's discussion, not in the OP area.

Anyhow, that's my 2 cents. I dunno what good it'll do but I hope there's no hard feelings.
 

LordRaptor

Member
Going to echo the concerns with the format;
  1. Who is the thread aimed at?
  2. What information is useful?

These are IMO what should be in the OP.

If the answer to (1) is "People who were regular contributors in the old thread" then being in community and offering no links and assuming people know what they are doing and don't need any additional information is fine.

I would suggest that the answer to (1) should be aimed at people who would like to make a game - any game, in any format, on any platform - and have no idea where to begin.

For example;
Engines - GameMaker, Unity, Unreal, Construct being the obvious ones, but also more specific types of projects like RPGMaker, Twine, Adventure Game Studio, because if you just want to make a 16-bit JRPG styled game, RPGM is an excellent choice for doing that instead of struggling to tame Unity.

Resources - something like this super useful page Ludum Dare has of content creation, but also links to things like Open Game Art or Blender Swap for 'legit' free assets (as opposed to somewhere like a Sprite Rips site), generic useful resources like Open Font Library or Game Sounds that are going to be useful for any purpose.

Getting Started / FAQs - There are loads of questions that regularly popped up in previous OTs, and the answers usually the same. Given how many were "I'd really like to make a _____ game, what engine do you think I should use?" I think its overly presumptive to assume everyone knows what engine they want to use from the get go in the OP

Business / Legal - helpful resources for this side of things for non-hobbyists; payment structures for the "free" engines, the importance of correctly licencing assets where applicable, links to places like developer signup portals for the various platforms, links to things like presskit for when people need that service, etc.

Contacts - often people post "where can I hire an artist?" or "Where can I hire a musician?" and links to places to do that (or I guess this could be covered in a FAQ).

Also its a real shame the threads now in Community - unless the mods were explicit about not wanting it in general gaming, this just completely killed any visibility people have for showcasing new work here for people not already following the thread.

e:
TL;DR - IMO the OP should assume a reader knows nothing about making a game, and should aim to get them up and running
 

oxrock

Gravity is a myth, the Earth SUCKS!
I didn't even notice the thread was in community, that killed our visibility by at least 1000% :(
 

DemonNite

Member
To start with, many thanks for the new thread Makai :D

new thread means new gif! the final result of the farting monster

UnimportantPlushGoshawk.gif


I didn't even notice the thread was in community, that killed our visibility by at least 1000% :(

For me, this is my main issue with the new format. As we're all in here as indie devs, one of the biggest problems we all have in this industry is visibility. Neogaf being one of the leading gaming communities for thousands alike and to allow us post here at our own leisure is a huge boost for us, and our games being seen by 1, 2 or 10 new eyes is a big bonus. Now that it's in the Community section, I fear that the motivation for some devs here will rapidly drop and revert back to just posting on other mediums. Personally, I never set foot in the Community section :)

But if this is the direction from a mod then we all just have to upgrade to neogaf gold.
 
Yup, I think if a thread has to be outside of the community graveyard rules is this one. This types of threads need more visitbilty to move games made my memeber of neogaf forward, not hidden from everyone.
 
I didn't even notice the thread was in community, that killed our visibility by at least 1000% :(

Ouch me neither. Hopefully a mod can change it.


But OT3 thread woohoo we made it! Here's my game's current art style.


I've been posting it around to gather feedback. The line stuff I was asking yesterday is unrelated to this grid line effect. It's all done with a pixel shader.

On the subject of the lines, GL seems to be working pretty well. Performance isn't too bad as long as I cull the lines and do LOD.
 
Hey, guys, wanted to update the community here regarding the thread placement. I talked with the other mods, and the general idea is that usually threads such as this (ongoing, focused on a singular topic/hobby/etc., a group of regulars mainly posting, etc.) are placed in Community to keep the Gaming side from getting too cluttered and to stay focused on current new news/releases/whatnot.

However, the Indie Dev thread is quite unique in this regard, as it's supported by both regular contributors and an influx of new devs and new members/posters interested in getting into game devs and looking for resources, so the compromise is that the Indie Dev thread can be started in Gaming, and then we'll see how it is in a month, (ie more regulars posting often, or a healthy mix of regulars and new posters joining in the discussion), and if it is best to stay in Gaming or moved to Community.

Hope that helps to clear things up
 

oxrock

Gravity is a myth, the Earth SUCKS!
Just got done doing my weekly DevLog post on tigsource, figure I'd give GAF the super abridged version. I spent some time working on the quest system, so now quest generation and tracking is now working. As of yet completion is not recognized.

yfXPrTI.gif


There's also a bunch of campfire related stuff, but I'm sure everyone's tired of hearing about my campfires by now. Lastly, there's now a groups of lizardmen roaming the forest.

nIEtssG.gif


There's more detailed information at the DevLog if anyone's interested. Personally, I can't wait to get rid of the text displays over everyone's heads, they're so damn ugly. I just can't decide on a health display to go with.
 
Hello gamedev GAF!
Finally built myself a PC to get started on some game development stuff. Currently getting to grips with Substance Designer/Painter and Unreal Engine 4.

Hopefully I can share with you a few things over the coming months! This front page post will hold me to that, hahaha.
 

Pehesse

Member
Hey, guys, wanted to update the community here regarding the thread placement. I talked with the other mods, and the general idea is that usually threads such as this (ongoing, focused on a singular topic/hobby/etc., a group of regulars mainly posting, etc.) are placed in Community to keep the Gaming side from getting too cluttered and to stay focused on current new news/releases/whatnot.

However, the Indie Dev thread is quite unique in this regard, as it's supported by both regular contributors and an influx of new devs and new members/posters interested in getting into game devs and looking for resources, so the compromise is that the Indie Dev thread can be started in Gaming, and then we'll see how it is in a month, (ie more regulars posting often, or a healthy mix of regulars and new posters joining in the discussion), and if it is best to stay in Gaming or moved to Community.

Hope that helps to clear things up

Thanks for the update!
 
I love these threads, I hope to make some more posts soon!

Thanks OP!

Hey, guys, wanted to update the community here regarding the thread placement. I talked with the other mods, and the general idea is that usually threads such as this (ongoing, focused on a singular topic/hobby/etc., a group of regulars mainly posting, etc.) are placed in Community to keep the Gaming side from getting too cluttered and to stay focused on current new news/releases/whatnot.

However, the Indie Dev thread is quite unique in this regard, as it's supported by both regular contributors and an influx of new devs and new members/posters interested in getting into game devs and looking for resources, so the compromise is that the Indie Dev thread can be started in Gaming, and then we'll see how it is in a month, (ie more regulars posting often, or a healthy mix of regulars and new posters joining in the discussion), and if it is best to stay in Gaming or moved to Community.

Hope that helps to clear things up

Thanks, this is really great!
 

atbigelow

Member
I'm using Github for my game and non-game projects, and their client is nice. It's pretty straightforward and attaches pretty easily with your account there.

https://desktop.github.com/

Also of note: I've really been spinning my wheels on my game project and it's getting a little stressful.
 
Thanks for the new thread; I'll echo some statements about it needing it to have a few more links to resources and a look at Indiedev in general.

I look forward to seeing people's updates and posting my own :)

Here's a recent gif of my game Cozen Servo showing some testing of the Flak Gun.

FlakCombat.gif
 
Hey, guys, wanted to update the community here regarding the thread placement. I talked with the other mods, and the general idea is that usually threads such as this (ongoing, focused on a singular topic/hobby/etc., a group of regulars mainly posting, etc.) are placed in Community to keep the Gaming side from getting too cluttered and to stay focused on current new news/releases/whatnot.

However, the Indie Dev thread is quite unique in this regard, as it's supported by both regular contributors and an influx of new devs and new members/posters interested in getting into game devs and looking for resources, so the compromise is that the Indie Dev thread can be started in Gaming, and then we'll see how it is in a month, (ie more regulars posting often, or a healthy mix of regulars and new posters joining in the discussion), and if it is best to stay in Gaming or moved to Community.

Hope that helps to clear things up

Thank you man! Tou really are the indie god!
 
Yeah, wouldn't mind if this thread had since business/legal advice in it as well. I'm at a stage in developing REDFOXES where I'm going to need to start going about setting things up as an actual proper business for the sake of copyrights/trademarks/taxes etc as well as being able to talk with one of the 1st parties about being able to port it to consoles some time after the PC release.
 

belushy

Banned
Hoping to stop procrastinating and finally start working on my game and to share with you all.... I've lurked for awhile and am amazed by the work.
 

DemonNite

Member
I mean doing both is the perfect way to do things. I find it hard to gamedev with out some Giantbomb or something on in the background.

Yep, agreed. I can't work in the main office room where the PC is and prefer to do all my game dev on a slow macbook air in the living room so I can watch TV at the same time.
 
I have some fun ideas that I want to work out, but I'm a terrible planner and I don't want my game to have a scope that's too big. I want to actually finish my projects (could be months, could be a year) instead of working on it until kingdom come. Does anyone have advice or know some useful tool? I'm only in university, so I don't have that much practical experience in undertaking projects.
 

oxrock

Gravity is a myth, the Earth SUCKS!
I have some fun ideas that I want to work out, but I'm a terrible planner and I don't want my game to have a scope that's too big. I want to actually finish my projects (could be months, could be a year) instead of working on it until kingdom come. Does anyone have advice or know some useful tool? I'm only in university, so I don't have that much practical experience in undertaking projects.

A lot of people don't want to hear this, but I suggest making simple games that you can actually complete within a week or two and move onto the next. Games you've actually completed mean a lot more than big projects that'll never see the light of day. That will also help give you a sense of how long it takes you to do certain things so that you can better plan out future projects.
 

nillapuddin

Member
nillapuddin said:
question from a non-dev

I'm a big time fan of indie games, I try to support as much as I can and I appreciate all the work yall do, one of my favorite threads to lurk.

I currently don't have a Desktop PC and only have a SP3 so my gaming potential is limited, but I love playing on my Xbox. I was wondering, I was watching /build/ the other day and learned more about the Desktop Bridge for UWP Conversion process, I saw some random guy on reddit did it for Discord (just for himself) and praised the process.

Does this have actual possibility for converting Games to Win store apps and furthermore, Xbox accessible?

I'm not sure if the process is different for games specifically (have to through ID@Xbox?), anyways, hopefully someone can answer my question and if not, no worries.

Keep up the good work yall, look forward to lurking in OT3!

.
 
Allocation

Everybody talks about this, so I'll just summarize. Someday Unity will upgrade to the modern version of C# that improves this problem, although a Unity engineer told me the upgrade was right around the corner back in 2014 and here we are. Garbage collection of heap allocated objects is slow, so use stack allocations where possible - use structs instead of classes for temporary variables. Keep small objects in memory forever I found an FPS counter which created a collection of strings for each possible framerate, "1" through "60" - completely ridiculous, but also the most practical implementation. Small allocations from converting the framerate integer to a string every time would slowly build up until inevitably triggering a hang. The Job Simulator team spawn every object they will ever need and never destroys anything. They picked the perfect game design for this - player is in a big room full of stuff that you never leave.

Good news, Unity will be updated to support C# 6 and .NET 4.6 in June with 2017.1. Support for a modern garbage collector is still a ways off.
 

Costia

Member
https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-root#convert
Desktop App Converter
While the term "Converter" appears in the name of this tool, it doesn't actually convert your app. Your app remains unchanged. However, this tool generates a Windows app package for you. It can be very convenient in cases where your app makes lots of system modifications, or if you have any uncertainty about what your installer does.
Looks like its only a converter for the installer.
 
Top Bottom