Nomi Matisic

Your local programmer

  • Blog
  • About
  • Contact
post5header.PNG

This is a slow moving train

April 19, 2021 by Nomi Matisic in BitEngine Update, General Life Update, GameDev Update

It has been a week now and ill have to update you even tho there might not be that much that I can update you on.

But let’s just jump right into it!

General life Update:

It has been a difficult week for me. Work has been extremely demanding and I had to do a 24h shift. But in the end, it was worth it. I am now allowed to drive vehicles in the Swedish armed forces. But I’m not done yet I have a lot of things to develop and improve on and I still have some “addon” courses to complete.

I don’t like it but I have to say it my plant almost died on me. I forgot to water it for a few days and it started dying. But I managed to save it and I can now say that it is healthy and recovering grat. 

I have also started to try and socialize to get over that hurdle, but it is a slow-moving train. But I think I can do it, and hopefully the restrictions lighten up so that it becomes easier to visit people.

BitEngine Update:

So the updates in BitEngine are almost nonexistent. There are a few backend cleanups and a few things that are easy to show. But due to work holding me for long hours a day and me having other stuff to fix at home, I haven’t had time to sit down that much this week. But ill give you the details of the things that I actually had time to fix.

Image from Gyazo

The first thing that I managed to add this week was gizmos. I used ImGuizmo to accomplish this. ImGuizmo is sort of an addon for ImGui with is nice. It was super easy to implement and after just a few hours I had gizmos up and running so now if u select something in the hierarchy a gizmo shoes up on the origin of that entity. And because it is a gizmo u can move it around and rotate the entity and all those fancy stuff.

But I ran into a problem with it. When I removed the camera entity from the scene everything crashes. So the next thing I decided to do was to fix that. And the most logical thing to do (that I should have done a long time ago) is to add an editor camera for the editor, that can’t be removed and not show up when Runtime stuff is running. But for this, I need to add a lot of future things to do in to my Trello board, but I think ill manage. 

Image from Gyazo

But after a few hours of crunching on this problem, I came up with a solution to add an editor camera, and currently it is using Maya’s control scheme for moving around but ill have to test it a bit more to see if I like it. But so far it feels good.

But after I added the editor camera I felt like I should clean up some code and make it a bit more pretty than it is. So I sat down and just looked thru the code and fixed some small stuff.

But the big thing I did this week was that I refactored the frame buffer code and made it so that it supports multi render targets. This is useful for the future like next week or in two weeks when I sit down and start writing mouse picking possible so that I don’t have to select entities from the hierarchy but by clicking on the entity from the viewport.

GameDev Update:

I have decided to add this category because I have started to think about the game that I have talked about is and how maybe I should structure it. But I don’t what to hype anything up so I’m not going to say too much but I think it will be some sort of like to the moon game ish, and I think more 2D the 2.5D, and of course it will be story-based. I haven’t really started with the story writing but I think I will start with it next week sometime.

But yeah it has been a pretty slow week regarding the development of BitEngine but a stressful week regarding my life.

But I have to thank you for reading thru this week’s post and ill hope to see you in next week’s post. Have a great coming week!

April 19, 2021 /Nomi Matisic
BitEngine Update, General Life Update, GameDev Update
Comment
post4header.jpg

We all have ups and downs

April 12, 2021 by Nomi Matisic in BitEngine Update

We all have our ups and downs. It is a difficult thing to get through. Everyone gets thru it in different ways, and everyone gets affected in different ways. And I start with this because I have been having some shallow lowes this week. It has been affecting me in different ways, and when it comes to programming, it has been affecting me the most. 

Even in my work life, I have noticed some differences in my mood and willingness to do stuff. But I just need to take it easy and figure stuff out.

BitEngine Update:

Even tho I have had some ups and downs this week, I did make some progress on the engine.

The first thing that I did and the last thing that I talked about in the previous post was scene hierarchy and a properties panel. I did add the hierarchy panel last time, and now I can announce the properties panel. Complete with Components and properties. 

Image from Gyazo

No, but back to the serious side. I added a properties panel to complement the hierarchy panel. There were a few things that I needed to work on it to make it work nice and cooperate with everything else in the code. For example, I needed to change some stuff in the scene camera class to change some variables at runtime, And also to have support for a perspective camera, as well as I needed to re-think the recalculation for the projection.

But after that, all the components except Native Scripting now display and can be edited from the properties panel. You can now add and remove both entities and components from the editor as well. Entities can be removed from the hierarchy panel and components from the properties panel.

After that, I wanted to take a break from adding stuff and just sat down and fixed some style stuff, which I don’t know if I like and will probably just change in the future. But it will have to do for now.

Image from Gyazo

Next on the list was Scene serialization. To go away from the “Hard code stuff” I need to be able to save and load scenes from a file of some sort. And this problem can be tackled from a lot of angles, but I went with the same solution that unity uses. And to achieve this, I am using the YAMLcpp library. And I do this just to make it easy and just so (as I always say) not to spend weeks developing my own thing. Of course I have plans to write my own thing just to learn and understand how it is made and all that stuff. But in the meantime, I think it will work. But yeah, I added YAMLcpp to the project, and after a few frustrating design choices, I have successfully added a save and load/open feature. 

The last thing that I did for the week was just some small clean-up things like making it not crash when you add a component that an entity already has and small stuff like that.


That is sort of all for this week. It has been a slow week, and that is just because as I said in the beginning. I have had some ups and downs, but I’m hoping for a productive coming week. 

But this is it for me. I hope that you liked this week post, and I hope to see you next week.

“Even if you have weeks of no motivation and will to develop, keep ongoing. Work on the small stuff. And in time, you will get that spark you always have inside of you!”

-Official404


April 12, 2021 /Nomi Matisic
BitEngine Update
Comment
post3header.jpg

A little work and a lot of life

April 05, 2021 by Nomi Matisic in BitEngine Update, General Life Update

Hello again! This week has been relatively uneventful; But there is still a lot to talk about; so let just get right into it; Also just as a precaution, I am currently writing this on my old laptop because I’m out of town visiting my parents for easter; 

Life update:

I got sent to a course by my work; it involves getting a C driver’s license aka im soon allowed to drive big trucks; And there is nothing more about it. I am just happy that I’m finally am getting a military driver license after two years in service; And as I said at the beginning, I am currently out of town visiting my family over easter; which is nice but I’m hoping on meeting some old friends as well to work on my social skills but we will see about that; other than that life has been pretty straight forward, wake up, go to work, go home and sleep, so my days haven’t been that exciting, but they are moving forward; before I know it summer will come and I will need to take a vacation but I already know what I will do then, programing and living haha;

I am worried about my computer, for the past couple of days it has been making weird sounds and I hope that it is nothing critical; Currently the diagnosis is that it is just a fan that has gone bad but I will just have to check when I’m home again;

BitEngine update:

BitEngine development has been slow this week; I had a hard time finding motivation and time just to sit down and program but I still got in a few features; 

First of, I have started to implement an ECS; I ended up using entt for the moment; I decided to use entt because currently, I don’t have time to code or test my own ECS; So I want to have something for now and maybe and just maybe in the future; I can make my own ECS, but ill just have to say implementing entt was so easy and so enjoyable to do, I’m almost having doubts that I what to make my own ECS haha XD; 

Furthermore, I spent a day or two implementing entt, and after that I needed some components to implement so that the ECS isn’t just an unnecessary feature that I wanted in the engine; so I spent a few days implementing a camera component, transform component, and a sprite renderer component; the camera component needs some work because I didn’t really future proof my camera class from the beginning, and so I had to spend smoke time rewriting and editing that so I didn’t have to ducktape something together; And the other components weren’t that hard; When I wrote those elements I already had a mindset to futureproof everything so implementing those into components didn’t take that long;

And so I put the ECS behind me and move on to new stuff and step on to the world of adding a scripting component, and o god, this is a journey ill probably have to visit again; there are so many ways of implementing this; not mentioning scripting in another programming language;

But I started to implement this Nativ scripting feature; I called it that because I’m planning on adding support to add scripts in C#; but this native scripting is just for c++ and having almost the whole engine at your fingertips; It is a bit more robust, and all that stuff and I don’t want to spend this week on adding support for C# just to realize that I need to add more things in the future because I have modified the engine so much; but yeah, I implemented the native scripting and it is currently in a fundamental form;

post3header.jpg

The last thing I added before I went out of town was a hierarchy panel to have some sort of visualization on what entities is in the current scene, and I have some plans to make the property panel next; And all of this is just to make the editor more useful then it currently is; I want to move my self from hard coding stuff in visual studio and start to make some progress on the editor to make my workflow a bit faster for when I decide to actually start making a games in the engine;

But now this week has come to an end and I just want to say thank you for reading this and for coming back from last week; And I hope you will come back next week;

I hope you had a great easter and I will leave you here;


April 05, 2021 /Nomi Matisic
BitEngine Update, General Life Update
Comment
Header1.jpg

It has been a very productive week

March 29, 2021 by Nomi Matisic in BitEngine Update

BitEngine Update:

Hello! and welcome back to this...thing; I’m glad that u could make it! I have been hard at work so there is a lot to talk about so let’s jump right into the update;

So to start with; It is important to comment your code, even when u know it might only be you who is going to read it, comment it; Because when I sat down to read my code and get back into it, let’s just say that I was sitting there for a few hours; But in the end I had a basic understanding on what I was doing and what my code is actually doing;

pic5.PNG

So moving on from getting back into the code; I had a big problem to solve first; It was not rendering anything even tho the code I had was suppose to render the information I gave it; And i’m not going to say “O it was an easy problem and I will just quickly fixed it”; O no I will be completely honest and say I spent at least an hour; But in the end I found that I sent the memory instead of pointers to the memory and after I changed that it was up and running;

And as you can probably see I also spent some time adding texture support, rotation support to quads and a very simple particle system (I ended up removing it but it was a good way to test the batch renderer);

pic6.PNG

Next on my list of things I ended up doing, I added support for SpriteSheets; It did not take as long as I expected and with some magical wizardry I had support for SpriteSheets;

Now i’m no artist; I started to program at an early age and thru out my school years, I was trained in programming so to compensate for my lack of artist skills, I got a nice small spritesheet from kenney.nl; It is a great site for assets with no strings attached, or so they say on there website;

So at this stage of the development I was quite…I don’t know how to say it but I wanted to start with an editor because my current way of getting sprites and other stuff is to just hard code it into a “SandBox“ project I had; But there is a problem with that, currently the renderer is drawing directly to the window and that is fine for like a finished product that u want to distribute but it is not that good if I what to make and editor; So next on my list is getting a Framebuffer working;

And OpenGL doesn’t make it difficult, but for some reason it does it a bit different from what some other API’s do, and if I what support for other API’s in the future ill have to think a bit clever not to make it a hassle for future me;

pic7.PNG

And so I went digging into the documentation of glad and glfw; And now I am happy to present a working Framebuffer, and if I what to talk about some problems with this;

When I first got it working, I had a problem that I would describe as everything was flipped on the horizontal line; This is an affect of my engine rendering {0, 0} at the bottom left of the screen; But Framebuffers {0, 0} is at the top left of the “image“; This is not a difficult problem to fix, I just have to display the image I put the frame on upsidedown;

And I had a few problems with my old code, so I had to spend some time cleaning up my past self mistakes;

The third bug I had was not so much a bug but an effect that I dide’t like; I Could not send any input to the game if the viewport with the framebuffer was undocked and away from the main window and when it was docked and not in focus I could still move around and zoom; A small problem with an easy fix but when I when started to dig in the input code I saw that I had written it really poorly so I went ahead and cleaned it up and made some modifications to it;

But both these problems sort of loop back to one problem I have at the moment; As I said in the beginning of this post, commenting code is more useful then u could think; A lot of my time this week has been on searching for stuff in my code and trying to figure out what it does; And that is time that I don’t have, but because I didn’t comment my code then I have a difficult time relearn my self to always comment my code; so next week I might need to spend some time going thru my code and commenting it;

But back to the main story now; Now that I have an “editor” sort of, I what to implement some sort of ECS (Entity component system); Now I could spend some a week or two to make one; But I think that is a future project; So I went with entt; It is nice and has a lot of features I can work with to make it easier for future me making games; And after some testing and implementing I have some sort of entity class but the ECS is far from done;

And yeah, this is the end of this week; There will be no life update this week because it has been quite a slow week and nothing exciting happened;

And so I am happy that u read thru this and I hope that u will come back next time and have a nice week;

“Comment your code. Or u will suffer in the future!”

-Official404

March 29, 2021 /Nomi Matisic
BitEngine Update
Comment
Skärmklipp.PNG

Im back in buissness

March 22, 2021 by Nomi Matisic in BitEngine Update, General Life Update

So recently I have been absent from…life I guess. I have had my hands full from work and personal stuff so I haven’t really had time to fix my website/blog, nor have I had time to code or write to this blog. So this is going to be a fresh restart for me.

I will try to write to this blog once every other day or once every week to keep some sort of record of what I am doing and not doing.


General Life Update:

So from the top then, I can start with some general life updates on myself. I have now been working for the Swedish army for about 1,5 years in total, I still love it and I whould’t trade it in for any other job;

My social life is currently on the downfall tho; Due to covid I haven’t really had the opportunity to go out and meet up with a lot of friends, family and close once but I hope that I can get the vaccine to change that soon;

More to the other side of life, I am a mess and I need to change my habits of cleaning my apartment for once XD

Some of my new year’s resolutions:

  • Sort out my economy (so that I might be able to buy a house or buy my own apartment)

  • Work hard and code more than last year

  • Get better at cleaning

  • Spend more time with close once

Altho my list is quite small, it is reasonable for my standard; work usually takes up most of my living time and can be quite stressful;

Recently I have been working on my cooking skill; They are far from perfect, but I am working on them;

My spending habits haven’t really changed, altho I don’t have a lot of money from the beginning; As fast as I get some, it usually disappears on rent and basic needs stuff;

received_1396639737200321.jpg

I also now have a plant named Jeffry; He is the best plant and i hope that i can take care of him; But only the future will tell how he survives


BitEngine Update:

So some BitEngine Updates; A general orientation on what BitEngine is, it is suppose to be a small “in house” rendering engine for my use to make some small-time games or other stuff; At the moment it cant really render anything other than standard ImGui stuff; Currently it supports OpenGL rendering if I could call it that; But i’m planning on adding support of other rendering apis like Vulkan;

The current goal for it is to make a story game; I don’t want to go into details about what the game is suppose to be because that would spoil it ;) But that is the general idea on what i’m going to use it directly after I fell like I can use it for something; I will of course still work on it and make it better and keep it updated for future use;

Back to what I currently need to do with it; The first thing I need to do is to figure out what I last did on it, and that might take some time because 26 000+ lines of code are quite a lot for one person to process;

But after that, I need to start working on some sort of better rendering for it; The current way of rendering is just to dump information and render it immediately; Witch takes a lot of resources to do, and there are a lot of better way to render stuff on the screen without doing a million render calls; I’m currently thinking that batch rendering might be a good option;

After that I might need some way of rendering text and/or texture; <- side note, textures might actually be a thing that I have already implemented but because I haven’t checked the codebase in a while i’m not sure;

I know that I have implemented some sort of shader support for it; I don’t know how good it is, but i know that it exists;

So yeah, that is the current plan at least; I have to start small and work my self up, so I don’t get to much work on my shoulders; If you want to know more about what i’m currently working on, I will leave a Trello link here so that you can check on the progress;


So in conclusion, it feels great to be back to the blog life, and I look forward to the future and to be looking back at this to see what I have done and how my life has been; of course, thank you for reading this and leave a comment or two if u have any question; I will try to answer them as fast as possible or if I feel like I need to answer them in more detail I will answer them in the next post;

Have a great future, and be on the lookout for when the next post get out :)

Dont give up, life may be dificult right now but there is always green grass on the other side of the hill. Hold out and stay safe.

March 22, 2021 /Nomi Matisic
BitEngine Update, General Life Update
Comment
  • Newer
  • Older