Categories
Uncategorized

Week 4 Blog

   Programming in every language is not a fairly difficult task, as long as you use the proper techniques and get creative with your solutions then anything can be accomplished. It does however have certain criteria, some services can be really picky and require very efficient code. In an ideal world, all code would be efficient, but that isn’t always the case. Some implementations are lousy or simply not efficient enough or well fast enough. Give all that all languages share many similarities. However lately I have been work very closely with assembly language for one of my courses. It is very interesting to see how it all really works, I’ve used it before but not a lot.

I now find myself spending a lot of time trying to understand it all. I’ve been aware for a long time now that it all comes down to gates that store 1s and 0s. It’s baffling to see how in high-level languages we can simply declare a variable and all the hard work is done by the assembler to turn it into something the computer processor can run. I have been struggling quite a lot with virtualization. In virtualization it takes physical memory and virtualizes, to avoid programs from having direct access to the physical memory. In my most recent assignments for this course, we have to work very closely in actually implementing these things. Luckily this is done in C. However even in C, this task is quiet difficult to understand and keep track of where you are in memory. 

The positive side of things, I am learning and learning is always a good process. In this industry you must always expect to keep learning. APIs change, languages change, it’s an industry that constantly changes. To think all that change goes down to assembly language and how complex it is is amazing. I hope I can keep learning and truly understand it. I am sure it will become very useful or at least give a deeper understanding of everything I do in programming. 

Categories
Uncategorized

Week 3 Blog

Game development is something that I’m very passionate about. I have been working on a new game that I hope to release within the next year using UE4. Throughout this journey before getting into UE4, I created a simple royale IOS game. One thing I have noticed that is very difficult to accomplish is multiplayer. The amount of variables that come into play are many and depending on the type of video game that you make, can be very difficult or simple. On the very difficult end of the spectrum would be turn based games, such as call of duty. These games require player position to be as close as possible to real time. There are many ways to accomplish the desired behavior, either by interpolating or extrapolating the players position. In a sense what I have learned when building the entirely native IOS app is that for a turn based game, interpolating is the best solution. When extrapolating you have to constantly try and predict the remote clients using their speed, direction, current position, etc. This becomes inaccurate as the players are unpredictably turning constantly. This might be a better solution for racing games where the cars usually just go forward so it’s fairly easy to predict where the car will be in the next second or so. 

In my royale ios app, I had to design my own server. Initially I used a python server, which worked fine but wasn’t very well developed. So I completely remade it using nodejs with the socket io framework/api. This in combination with an interpolating system, made gameplay very smooth. In a sense you are always viewing the past, but at 30-60 ticks a second. I must say that it becomes almost unnoticeable. This is just the tip of the iceberg however, I learned that the response times (ping) from client to server and vice versa, are a big headache themselves. I am very glad that I took the time to go through all of that before using UE4, which basically does it all for you. You just set some priorities, etc and it just works. Which takes all the fun out of it but makes it all easier. There was little to no documentation on creating a server for IOS that is real time or the illusion of it. I think I will be creating a tutorial or website where I can upload information, user friendly content for beginners to start learning.

Categories
Uncategorized

Week 2 Blog

Well we finally got our projects assigned and I’m pretty happy with the one I was put into. Picking a project was pretty difficult, there were so many options which were all very interesting. I was placed into the Hinsdale Wave Research Laboratory project where we have to design on top of their current software that helps measure the level of water in the facility while also allowing the filling and closing of valves to fill the water levels. I’m fairly excited to work on this project. I’m used to working on all virtual projects such as games or other types of utility software, never working with real hardware like valves. 

Now that we are finally going to begin working on this project, my team and I have decided to use discord as our main source of communication. This is going well because as a team communication is key, if we want to succeed in this project we will need to trust each other and work together. I’ve worked on projects before in school and out of school where communication becomes difficult because we are all working asynchronously and sometimes things don’t make as much sense or aren’t done efficiently to meet the entire group pace. So I’m hoping communication stays important and straight forward. 

We are now left trying to communicate with our project sponsor to get more information on developing the app/software that they need created. Our team has mentioned this briefly but I think its time to communicate it clearly so that we can create a meeting. In a professional environment I believe we should have contacted the sponsor as soon as we received the assignment. To proceed professionally and be eye to eye with the sponsor. I imagine as the client, they are very strict and pay tons of money. They would want communication and transparency over the project status to be key, for them to be comfortable and content with the development progress. Overall I’m glad to be this far into my career and on step closer to a real world paid project. 

Categories
Uncategorized

Printf(“Hello World!”)

Welcome to my first blog post! As you can tell by just the title I am a nerdy guy. I’ve always been intrigued by technology and the infinite possibilities that one can make a reality. I am currently an Apple employee, as Tech Support, which is not really what I want to be doing. My passion is programming, because it helps me create amazing things that not too long ago I would have thought an impossible thing to do. I’ve worked on a couple programming projects, mostly personal with one professional that is now an APP in Mexico used for auditing. In that project I helped create over 50% of their back end! I learned a lot from it, before I even took my database classes, I spent lots of time studying and using MongoDb and Mysql. Now that I’ve been through that, it all seems easy but many challenges ahead. I am ready to make a difference.