Nomi Matisic

Your local programmer

  • Blog
  • About
  • Contact

Hi Again! Alot to go thru...

August 01, 2022 by Nomi Matisic in BitEngine Update, GameDev Update, General Life Update

Oh god, it has been a while since I did this! But here I am again. Before I get into specific reasons why it's been a while, I just have to say that it's difficult to develop games and game engines while having a full-time job. Before I start, I just have to say that there won't be any pictures in this post due to everything I have done being very backend development and really hard to show. So with that said, let's get into the topics of this post!


General Life Update:

So a lot has happened in my life since last. Much of it is personal, so I won't be talking about it that much. But the biggest reason I haven't posted a lot of stuff here is that I have been really depressed. There are some reasons why I got that depressed but to make a long story short involves me being trans and feeling a lot of insecurity about it. But there have been a lot of good things happening in my life as well so I'm fighting on and trying to be optimistic about everything.


BitEngine Update:

There have been a few changes with the engine since last time. First and foremost, the most significant difference is that I have realized that my skills aren't up to par with what I wanted to do. There is so much I still don't know about, which has made development difficult and slow. So for the moment, I have decided to go with Mono for the scripting engine part. Now, this is not a permanent solution to my problem. I still want to have the scripting engine in C++, but not really knowing how to do so made it a bit difficult to implement. Now let's get into it. As I said, I decided to go with mono in the meantime, and so I did. I started by installing mono and the corresponding library to implement that. After downloading Mono, I had to build it so that I had a Lib to implement, and this step was really easy due to the fact that Mono has made it really easy to both build and implement. So after building and including Mono, I started by adding a C# project to the engine. This project will be the intermediary between the C++ and C# sides. I began by writing a small constructor and a few functions in the C# project just to get a feel for how I would read this code in c++ and gain an understanding of how mono works with this implementation. This step was quite a bit of work. I had some difficulty finding good documentation on how to use it. And it took some time to actually get this going. But in the end I managed to find a way and read both the constructor and the functions from the C# project in the engine. If any of you people want an explanation on how I did it and all that, just leave a comment or send me an email, and ill see if I can make a post on how I did it. So the next step I had to do was to actually make a good way to speak between the C# project and my ECS system. Because if I can't do that, then why have scripting for the entities? And this was relatively easy now that I had a basic understanding of what I needed to do to talk between languages. So after refactoring some code and adding a few lines, I had a system to talk between languages and the ECS system. Now we are where I ended up last time I even sat behind the codebase. And after writing this, I can see that my development has been prolonged. And that is kind of due to what I talked about earlier. Depression and having a full-time job make it quite difficult to find time just to sit down and start coding. I'm either too tired or not in the mood to code. But ill keep trying to make time when I can to keep developing this. So I'll have to add a User space for the scripting part before I can make some kind of update post again. And what I mean by that is that the current C# project is just for the engine and not for general scripting stuff that I write for a game or anything like that. So I need to generate a C# poroject for the current project the engine is working on and then find a way to read it in runtime and re-read it after a newly compiled version is done there. Either way, I will have some stuff to do before I can confidently say that the scripting part is done. 

Now that I write this, I really need to sit down again and just write down what I need to do before I can make a game with this. Feels like I need to make a list of features that I really need just so that I can start with the game idea that I have.


GameDev Update:

Well, this section will be short, but I feel like I need to say something here. I'm still working on my game idea and I'm still making “Progress” on it even tho I'm not coding anything. I'm just writing down everything and trying to find a solution that will work and is still fun to play. There is not a lot I can say yet, but I'm still thinking about this.


Well, this brings this to an end again. This time I hope that I won't be gone for a long time again. But I can't promise anything due to all the circumstances in my life. Hope to see you all next post and thank you for reading thru this again!

August 01, 2022 /Nomi Matisic
BitEngine Update, GameDev Update, General Life Update
1 Comment

A new week of updates!

January 31, 2022 by Nomi Matisic in BitEngine Update, General Life Update

Hi Again!

This week I made it in time to actually post something. Well, at least I didn't ghost the blog for a few months between this post and the last. But anyway I'm here and I have had some time on my hand to actually develop some features for the engine so let's just get right into it!


General Life Update:

So ill update you right here in the general life section. I won't have time to write a blog post next week due to some stuff dragging me down. So next week will be quite silent from me again. But ill try to write a post as soon as I'm free and have something to update you on!


BitEngine Update:

So for the big update that I had for this section, well…. There is a lot of back-end stuff that has been updated so ill try to write about it, but as for the visual part it might be difficult but ill try.

So let's start from the beginning. Last week I said that I wanted to add some sort of scripting system for the engine so after I was done writing last week's blog post I started researching this subject. And I found quite a lot of solutions on how to implement it. There is the way that unity implements it with the help of Mono. But to be honest, I didn't really like the feel of it, it just didn't feel like a solution that I would like and would probably get frustrated at it in the future so I decided not to use it. After that I looked into Swig, almost the same as mono so if decided quite quickly that I didn't want to use it as well. So after a few hours of researching, I found a way that I like and felt like I could implement in a nice way.

So I when with the approach of having a C++ scripting solution, and in my mind it would work something like the picture shown. So I started with the implementation of it.

Now that I had an idea of how to implement it I started with the easy part of making the editor generate a C++ project that would be used for the scripting. And that implementation when along smoothly and after that was implemented I got thinking about how would I now import that dll that the project builds into the editor. And this is a problem that I have never had to deal with before. So back to researching I went and spent almost a whole afternoon trying to figure out how that would work. So after a good night's sleep and a long workday I sat down at my computer and figured out how that would work. So after these two things were implemented I had a way to script my objects in the engine. But there is a glaring problem with the code currently. This is my current problem that I'm trying to fix/work on is that there is no way for the engine to save and load the scripts when the scenes change. So if the game changes scene or in general just starts up no scripts will be loaded onto the entities. And that is sort of where I am currently. Trying to fix this problem but I'm happy to say that when this issue is complete then ill be able to start working on my game dev project in the background while I implement stuff for the engine.


So that is where I am currently. But I have a problem, this week I spent 38 hours on the engine on top of working for 58 hours at work. This is good because I got a lot done while working this much but there is a backlash for doing it. I feel like I'm forced to work on the project again and I feel like I need to slow myself down so I burn myself out. So development might get slower for a few weeks just because of that reason. But eather way I'm happy that u read thru this week's post and yet again I wish you good omens throughout the next few weeks!

January 31, 2022 /Nomi Matisic
BitEngine Update, General Life Update
Comment

So it has been a while....

January 24, 2022 by Nomi Matisic in BitEngine Update, GameDev Update, General Life Update

Hi everyone!

As per usual it’s been a while since I last wrote anything here. Life has been taking a toll on me for the past couple of months. Progress on anything has been slow even my life almost had to take a break just to make everything work together. But hopefully, I’m back on track again and ill try to write something in every category down below me.


General Life Update:

So how has my life been running by me for the past couple of months? Well, that is a long question to answer but ill try. It started with me being sent to another city to do some kind of education for work. So I sent over a month away from my own apartment and had difficulty working on anything. And it doesn’t stop there, after that I was sent to two more courses to get more educated. And last but not least when I was back at my normal workplace I was thrown into a 2-day course at work just because they has some extra room for me. So that is kind of why I haven’t had a lot of time to work on my other projects for a while.

But after that, I had some time to spend for myself to work on my projects and prepare for Christmas and New Year’s which I spent with family and friends. And to be honest I kind of needed some time off just to relax and gather my thoughts. So my holidays went really smoothly and it was the first year that I spent both Christmas and New Year’s like myself. It was a nice feeling at least and for the first time I felt happy and I could actually enjoy myself. But after that, I had to travel back home and start preparing for work again. And so the days flew by me working on my projects and waiting for work to start again. And that is sort of most of the time between this post and the last post.


GameDev Update:

So over here at the game dev part. This update is going to be kind of small because I haven’t really done much progress here because of the engine taking up most of the time. But I did at least have some time to spend at my new “Trello” board to prepare myself for what I need to do when I start my game dev projects. Yes, there are two projects that I’m currently thinking of. I don’t want to go into detail on any of the projects yet because I don’t even know if any of them will stay, but I have at least written down quite some stuff about them.


BitEngine Update:

So here at the BitEngine update part of the blog, there might be quite a lot to talk about but I will try to keep it short and concise. So I can start with that I started working on the 3D renderer for the engine. There is quite a lot to refactor and change just to make it work but I’m chipping away at it one part at a time just to make sure that it hopefully works for when I can show something for it. But at the moment it’s not working, so for the meanwhile, it has to be a secret on why and how it works. The 3D renderer is currently hiding in another branch on my GitHub page so it might be a bit outdated from the main branch of the project when I’m done with it but that is a problem for future me.

Image from Gyazo

So on to the 2D part of the engine. There have been a few things added and fixed, to start off with something let’s talk about the big update. The engine now has physics and collision, YAY. but to be on the serious side the engine has both of these things thanks to Box2D, it’s a 2D physics engine that’s really easy to implement. The only thing I had to do was to import Box2D into my project and then just create a few components for the ECS. after that I just had to do some small code for when the physics should be simulated and stopped. This also brings me to the next feature that I implemented, but we will get to that. After those things were implemented, I just had to build the engine and test the physics and collision out and it seems to work perfectly in my engine. So back to the feature that I talked about a few lines up. For the engine to know when I want the physics to be simulated I had to implement a runtime and an edit time state for the engine. So I had to serialize the editor scene to make a copy of it and put it in the runtime scene so that when you stop the runtime the scene would go back to normal and not just pause the scene as it was run. 

I might have worded that wrong but o well English ain’t my native language so u have to deal with it.

Image from Gyazo

So after all that I just had to implement the play and stop button. After this, I had to work a bit on the renderer because Box2D has no way of visualizing the collisions that are used. So I had to implement some line renderers and some circle renderers and after that, I just had to do some math to make those line up with the magic invisible collider that box2d uses. So after all this work, I had physics and colliders that are visualized in the editor working.


That is kind of everything that I had time to implement since last time. It’s not a lot but as I said before I have been out of town a lot for the last couple of months so I kind of expected it to be a shorter update.

So for next time I really want to do some small work on the engine. Things like start documenting everything from my engine and making some sort of test game for the engine. But to make a test game I kind of need a way to write code in the editor. It would just be a hassle to stop the engine to write some code and then build it just to see that the code I wrote doesn’t work. So ill do some research on how to implement some sort of code editor to the engine.

But that will be it for me this week. I’ll try to write something next week as well but I can’t promise anything.

Thank you for reading thru this and have a wonderful week

January 24, 2022 /Nomi Matisic
BitEngine Update, GameDev Update, General Life Update
1 Comment
Capture.PNG

I'm back....again

September 13, 2021 by Nomi Matisic in BitEngine Update, GameDev Update, General Life Update

Hi everyone!

It has been a while since I last posted anything. And to be honest there has been a lot of stuff going on in my life and I just needed to take a breather and take a step down for a while just to gather my thoughts. But I’m currently going on the right path to figuring out what the hell is going on in my life. But let me not ramble on for any longer and get into the post.


General Life Update

Let us start with the big one, my personal life crisis and what has been happening up in my brain.

Well, the biggest update in my life is probably that I came out of the closet a few months ago as transexual. So a lot of my time since the last post has been going to coming out to family, friends and people close to me. And let me tell you it has been an emotional rollercoaster. But in the end, I managed to tell 10% of the people I know that I’m now transexual. I still have a long way to go but I’m a lot happier than I used to be.

On the other hand. Recently I had a fun but surreal experience. I’ll have to set the mood a little so storytime. 

“I was sitting in the changing room at my work. On a cold autumn evening, you could almost feel the wind blowing thru the glass pains on the window. Then suddenly my boss came rushing in. He was out of breath, almost like he sprinted to tell me something. Then he uttered the words. U need to apply for another job. ” dun dun dun. Okay, I might have exaggerated a bit but I’m working on my story writing skills for my upcoming game idé. But back to the matter at hand, I didn’t expect my boss to say that to me. Altho it’s for a good cause. He told me to apply for a higher position at the same work so it’s not like I’m going somewhere just going up in the work world.

And this I think is everything I’m willing to share at the moment about my personal life and what has been going on these few months. On to the next subject


GameDev Update

The game dev part. It might be difficult for me to write down stuff here for that. I have kind of lost my thought on it. I keep on thinking of ideas for it and features I might need. So I don’t what to write down anything here just to hype people up. But I can still say that it is coming along. I have kinda found an art style that I might choose for the game and I have a feeling I what to portray with the game as well. There is a lot of stuff I need to get down on paper tho before and I also need to start making the game. Even if the engine might not be done I can still start with the stuff that I already have.


BitEngine Update

There has been a lot of updates since the last time a shared my progress. Altho it has been slow updates. I have been taking a few hours a day to just force myself to at least do something with the codebase even if it was just commenting on stuff to organize the code.

But the first thing that brought me lots of pain and that also is the last thing I talked about in the previous post is that I reworked the shader workflow for the engine. I now use SPIRV. And that is just to make it a lot more easter to implement different rendering APIs like Vulkan or anything else. But it may seem easy when I just type it like this but for some reason, I have planned to make this change from the beginning som when it came to it the previous shader code was so poorly written that it took me some time to figure out and implement it. But in the end, it works. Altho there is not an easy way to show it with pictures because it is mostly back en stuff. But just trust me there is a change under the hood.

After that I spent some time with the design of the editor. I kinda like how it is right now but there is still a lot more work needed to be done. For example, I get an error when I drag and drop an “incorrect” file anywhere it’s not suppose to be. But I have a content browser to look thru all the files and folders that the editor should have access to. Altho the icons are temporary. I need to sit down and draw some to make it look a bit more with the style and I don’t want to get a copyright claim on the things I have at the moment.

For the future of the engine, there is still a lot of stuff I need to work on. And I kinda need to make my workload a little bit more varied so I’m thinking about starting the 3d part of the engine even tho the 2d part isn’t done. It is just to keep my brain active and it will probably help me not get stuck on anything. I’m going to sit down and sketch up a plan of action on what I need to do and what is done. I need to write down what features I might need for my game to work properly.


I don’t know how I will continue with this blog. In my current state of mind, I have a lot to think about and some days are better than others. But ill try to keep you all updated on what is happening and my progress with the development of the game and the engine. 

I have learned a lot from these past few months. Not only about myself and what I am capable of doing but also about the development of a game engine. Even tho in my opinion I haven’t done that much on my engine I have read and studied a lot on the fundamentals and techniques used. So it is going to be fun to start developing at a faster pace now that I know a lot more about what I am doing.

I’ll keep on fighting the demons inside of me and leave you off for this time. I have to thank you for reading thru this rambling mess and ill hope you come back for more.

September 13, 2021 /Nomi Matisic
BitEngine Update, GameDev Update, General Life Update
Comment
post6header.PNG

Update on my life and the engine!

May 03, 2021 by Nomi Matisic in BitEngine Update, General Life Update

Hello again!

Because of last week’s incident, I have a normal amount of stuff to update you on!

General Life Update:

Let’s start with the general life update!

I’m still a bit sick. Not that sick that I need to stay home or anything like that. I did a corona test just to make sure and I’m still negative on that so I’m not dying or anything I just have a soar throat.

I’m surprised about my Jeffry (my plant). He has been surviving amazingly. I might not be a great plant owner but I’m impressed with how good he is surviving.

On the other hand, socializing has been a bit difficult due to me being “sick” but I hope that I get better so that I can go back to normal and try to socialize a bit XD

And work-related stuff is going, I guess. There hasn’t been that much to do at work for the past couple of days but soon everything will go to shit and ill probably have to work extra hours just to make everything work.

BitEngine update:

So BitEngine related there is not that much to show you this week. There has been a lot of backend work just to make mouse picking working. But I can share some things that I have done!

First of I started by refactoring the framebuffer...Again. I had to refactor it so that I could add some information to every pixel. I need this because I need to store the Entity Id somewhere easily accessible to do mouse picking. But now I have a way to store an integer as an id in every pixel. At the time of implementing this, I had no way to add anything to that integer but I just made a placeholder and moved on.

Next on the agenda was making it so that the return value when hovering on the clear background not spit out a random value depending on what color the background was. So I did some refactoring of the clearing the frame. That did not take that long to do and there were not that many complications when doing it. Altho I needed to add some functions to convert my format to OpenGL’s format just to make it more modular and functional. There is still some stuff that I need to add but that will have to do for now.

Now on to the big task of implementing mouse picking so that I don’t have to select entities from the hierarchy panel. I started by adding some code to the shader to make it compatible to take in an entityID. After that, I needed to refactor the DrawQuad command to make it able to send my EntityID to the shader for rendering. But I noticed some stuff that could use some refactoring to make the code base a lot smaller and more compact. But after some small deletions, I added the one row I needed to send the EntityID to the shader. That is what I like to see, code that has been through true in the beginning to make it easy to add stuff. I’m still going thru code that I need to change to make these kinds of additions but it is going along slowly due to me wanting to implement more new stuff to bring to this blog.

But after some tweaking and adding I have finally added mouse picking for the viewport. And I can’t say anything more. I’m impressed by myself!

Image from Gyazo


I’ll just have to end this with. I have had a tough week. Not from work or from my normal life. Just from being sick. I lost a lot of motivation to do anything and I have had lower energy levels to just stay awake for one day. But I’m doing everything to get better sooner. I just hope that this doesn’t stick for too long.

But I thank you for reading thru this blog post today again and I hope to see you in next week’s post!


May 03, 2021 /Nomi Matisic
BitEngine Update, General Life Update
Comment
  • Newer
  • Older